Naslag voor elk object van de REST API van Personyze: doel, ondersteunde HTTP-methoden, kolommen met opmerkingen over indexering, en voorbeelden.
23 min readUpdated 32 minutes ago
Naslag voor elk object dat de REST API van Personyze beschikbaar stelt. Elk onderdeel hieronder behandelt één object: het doel, de ondersteunde HTTP-methoden, de kolommen (met type en opmerkingen over indexering), en curl -voorbeelden die klaar zijn om te kopiëren.
Vereisten — lees deze eerst als je dat nog niet hebt gedaan:
Gebruikt door de JS-tracker, native SDK’s en integraties om zichzelf op te starten. Meestal niet direct aangeroepen door gebruikers van de REST API.
tracker_codeGeeft het JS-snippet terug om in een klantpagina in te sluiten (HTML-uitvoer).
users
Klantprofielen. Elke rij is één bezoeker of klant. Kolomnamen zijn dynamisch — naast de gedocumenteerde huishoudelijke kolommen kun je alle eigen sleutels/waarden opslaan die je account nodig heeft.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Identificerende / huishoudelijke kolommen
Kolom
Opmerkingen
user_id
Interne primaire sleutel van Personyze. Automatisch toegekend bij het invoegen. Geïndexeerd.
internal_id
Je externe identificator (CRM-ID, account-ID, SKU). Geïndexeerd.
fb_id
Facebook-gebruikers-ID. Geïndexeerd.
email
E-mailadres van de bezoeker. Geïndexeerd.
last_session_time
Unix-seconden. Geïndexeerd.
data_last_modified
Unix-seconden. Geïndexeerd.
session_counter
Totaal aantal sessies dat tot nu toe voor deze gebruiker is gezien.
Veelgebruikte profielvelden (eigen)
first_name, middle_name, last_name, sex, birthday, timezone, current_city, current_state, current_country, religion, political, interests, relationship_status, education_year, plus custom_t_1…custom_t_6 (tekst), custom_i_1…custom_i_4 (geheel getal), custom_f_1…custom_f_2 (kommagetal), custom_d_1, custom_d_2 (datum) — en alle extra velden die je op je account hebt ingesteld.
Voorbeelden
# Lookup by your external id
curl 'https://api:KEY@app.personyze.com/rest/users/where/internal_id=42'
GET /rest/users zonder where vereist order_by op een geïndexeerde kolom — user_id, last_session_time, data_last_modified, fb_id, email, of internal_id. Anders: 400 Cannot do this operation on whole table.
Snelheidsbeperking
POST /rest/users wordt per Personyze-account geserialiseerd: hooguit één lopende insert tegelijk. Verzoeken die langer dan 1 seconde wachten, worden geweigerd met 400 Too many simultaneous requests — probeer opnieuw met exponentiële backoff.
user_lists
Benoemde lijsten met gebruikers (bijv. “VIP’s”, “Aanmeldingen voor de nieuwsbrief”). Eén rij per lijst. Het lidmaatschap staat in een apart object — zie user_list_users.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Kolommen
Kolom
Opmerkingen
id
Primaire sleutel. Automatisch toegekend.
name
Weergavenaam van de lijst. Geïndexeerd.
Voorbeelden
# All lists
curl 'https://api:KEY@app.personyze.com/rest/user_lists'
# Delete (also clears all memberships in user_list_users via FK cascade)
curl -X DELETE 'https://api:KEY@app.personyze.com/rest/user_lists/17'
# → 1
user_list_users
Lidmaatschap: welke gebruikers bij welke user_listshoren. Eén rij per (user_list_id, user_id) -paar.
GET
POST
PUT
DELETE
✅
✅
—
✅
POST accepteert een bestaande user_id, of een opzoeksleutel (user_internal_id, user_email) — de API zet die om naar een user_id, en maakt zo nodig een tijdelijke users -rij aan.
Kolommen
Kolom
Opmerkingen
user_list_id
FK → user_lists.id. Deel van de samengestelde sleutel.
user_id
FK → users.user_id. Deel van de samengestelde sleutel.
Extra’s in de POST-body (omgezet naar user_id aan de serverkant, en daarna weggelaten)
Veld
Wordt omgezet naar
user_internal_id
user_id voor de gebruiker met die internal_id. Maakt de gebruiker aan als die ontbreekt.
user_email
user_id voor de gebruiker met die email. Maakt de gebruiker aan als die ontbreekt.
Voorbeelden
# Members of list 17
curl 'https://api:KEY@app.personyze.com/rest/user_list_users/where/user_list_id=17/limit/1000'
# Add by user_id
curl -X POST 'https://api:KEY@app.personyze.com/rest/user_list_users' \
-H 'Content-Type: application/json' \
-d '{"user_list_id":17,"user_id":5712334}'
# Add by external id (auto-creates a users row if needed)
curl -X POST 'https://api:KEY@app.personyze.com/rest/user_list_users' \
-H 'Content-Type: application/json' \
-d '{"user_list_id":17,"user_internal_id":"acct-987"}'
# Add by email
curl -X POST 'https://api:KEY@app.personyze.com/rest/user_list_users' \
-H 'Content-Type: application/json' \
-d '{"user_list_id":17,"user_email":"alice@example.com"}'
Personalisatieacties — wat je campagnes doen: HTML weergeven, een pop-up tonen, een e-mail versturen, een melding pushen, enz. Via REST op dit moment alleen-lezen (maken/bewerken via de interface).
GET
POST
PUT
DELETE
✅
—
—
—
Kolommen
Kolom
Opmerkingen
id
Primaire sleutel.
version_tag
production of testing.
name
Weergavenaam van de actie.
type_id
Het actietype (HTML / pop-up / e-mail / push / …). Afgeleid van het onderliggende action_js_id.
placeholders
JSON-array met ID’s van de placeholders waarop de actie is gericht.
content_type
Mime-type / soort content (uit actions_js).
content_param
Naam van de sleutel van de JS-parameter waarvan de waarde de weer te geven content is.
content_begin
Berekend: openingsfragment van de weergegeven content (na vervanging van de wrapper).
content_end
Berekend: afsluitend fragment.
presenting_rules
JSON: regels voor timing / frequentie.
libs_app
App-bibliotheken waarvan de actie afhangt.
Voorbeelden
# All production actions
curl 'https://api:KEY@app.personyze.com/rest/actions
/where/version_tag=production
/columns/id,name,type_id,placeholders'
# One action's full content
curl 'https://api:KEY@app.personyze.com/rest/actions/where/id=42
/columns/id,name,content_type,content_param,content_begin,content_end'
conditions
Doelgroepvoorwaarden — het wanneer van campagnes. Via REST alleen-lezen.
GET
POST
PUT
DELETE
✅
—
—
—
Kolommen
Kolom
Opmerkingen
id
Primaire sleutel.
name
Weergavenaam van de voorwaarde.
Voorbeelden
# All tracker/offline conditions
curl 'https://api:KEY@app.personyze.com/rest/conditions/limit/1000'
placeholders
Containers van het type placeholder — DOM-plekken waar acties content weergeven. Beheer de catalogus met placeholders die voor je site zijn gedefinieerd.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Kolommen
Kolom
Opmerkingen
id
Primaire sleutel.
name
Weergavenaam.
html_id
DOM-selector / id waar de placeholder wordt ingevoegd.
units_count_max
Maximaal aantal actie-eenheden dat deze placeholder kan vullen. Standaard 1.
Voorbeelden
# All placeholders
curl 'https://api:KEY@app.personyze.com/rest/placeholders'
# One
curl 'https://api:KEY@app.personyze.com/rest/placeholders/14'
Bereik van het endpoint.De handler beperkt alle query’s tot container_types='placeholder', dus andere containertypen (bijv. “grab variable”) zijn vanaf dit endpoint niet zichtbaar — zie containers_grab_variable.
containers_grab_variable
Containers van het type “grab variable” — halen DOM-/JS-waarden van de pagina van de bezoeker terug naar het bezoekersprofiel. Elke container zegt “houd deze variabele / dit DOM-element in de gaten; verschijnt die, leg die dan vast als profielveld.”
GET
POST
PUT
DELETE
✅
✅
✅
✅
Kolommen
Kolom
Opmerkingen
id
Primaire sleutel.
name
Weergavenaam.
is_active
1 / 0.
variable_path
DOM-pad of JS-expressie om op te halen.
mask
Optionele regex/template die op de opgehaalde tekenreeks wordt toegepast.
constant_value
Optionele terugval- / geforceerde waarde.
watch_variable
Opnieuw ophalen zodra de variabele verandert (1 / 0).
profile_column
Profielkolom waarnaar de waarde wordt geschreven.
Voorbeelden
# All grab-variable containers
curl 'https://api:KEY@app.personyze.com/rest/containers_grab_variable'
Productcatalogus. Elke rij is één SKU. Kolomnamen zijn dynamisch — naast de gedocumenteerde huishoudelijke kolommen kun je alle eigen velden opslaan die je catalogus nodig heeft.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Identificerende / huishoudelijke kolommen
Kolom
Opmerkingen
id
Primaire sleutel. Automatisch toegekend.
internal_id
Je SKU / externe identificator.
data_last_modified
Unix-seconden.
is_in_stock
'yes' / 'no' -enum (niet 1/0).
Veelgebruikte productvelden (eigen)
title, description_short, description_long, price, sale_price, image_big_url, image_medium_url, image_small_url, cart_url, brand, manufacturer, category, inventory, expiration_date, size, color, rank, is_new, age_from, age_to, available_location, not_available_location, enz. De werkelijke set velden hangt af van de configuratie van je account.
Hernoemde invoer (bij POST / PUT)
Invoer
Opgeslagen als
image_1
image_big_url
image_2
image_medium_url
image_3
image_small_url
Voorbeelden
# In-stock products in a category
curl 'https://api:KEY@app.personyze.com/rest/products
/where/category=tools&is_in_stock=yes
/columns/id,internal_id,title,price,inventory
/order_by/title
/limit/100'
# Lookup by internal_id
curl 'https://api:KEY@app.personyze.com/rest/products/where/internal_id=SKU-1234'
# Insert (or "patch" — duplicate internal_id will UPDATE rather than fail)
curl -X POST 'https://api:KEY@app.personyze.com/rest/products' \
-H 'Content-Type: application/json' \
-d '{"internal_id":"SKU-1234",
"title":"Cordless Drill",
"price":129.99,
"is_in_stock":"yes",
"image_1":"https://cdn.example.com/big.jpg"}'
# → 51234
# Update by internal_id
curl -X PUT 'https://api:KEY@app.personyze.com/rest/products/where/internal_id=SKU-1234' \
-H 'Content-Type: application/json' \
-d '{"price":119.99,"is_in_stock":"no"}'
Upsertgedrag bij POST.POST doet patch-on-duplicate: een bestaande internal_id werkt de rij bij in plaats van te mislukken. Gebruik voor een bulkimport vanaf een feed-URL liever de geplande feedsynchronisatie via de interface van Personyze dan REST-aanroepen per rij.
articles
Artikelcatalogus (blogberichten, nieuws, items in een kennisbank). Dezelfde vorm als products maar voor redactionele content.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Identificerende / huishoudelijke kolommen
Kolom
Opmerkingen
id
Primaire sleutel. Automatisch toegekend.
internal_id
Je externe identificator (slug, CMS-id).
data_last_modified
Unix-seconden.
is_published
'yes' / 'no' -enum.
Veelgebruikte artikelvelden (eigen)
title, description_short, description_long, image_big_url, image_medium_url, image_small_url, author, publish_date, category, tags, rank, enz. De werkelijke lijst hangt af van de other_columns_info -configuratie van je site.
Hernoemde invoer
Invoer
Opgeslagen als
image_1
image_big_url
image_2
image_medium_url
image_3
image_small_url
Voorbeelden
# Recent published articles
curl 'https://api:KEY@app.personyze.com/rest/articles
/where/is_published=yes
/columns/id,internal_id,title,author,publish_date
/order_by_desc/publish_date
/limit/100'
# Lookup by internal_id
curl 'https://api:KEY@app.personyze.com/rest/articles/where/internal_id=how-to-personalize'
# Insert
curl -X POST 'https://api:KEY@app.personyze.com/rest/articles' \
-H 'Content-Type: application/json' \
-d '{"internal_id":"how-to-personalize",
"title":"How to personalize your site",
"author":"Alice",
"is_published":"yes",
"image_1":"https://cdn.example.com/big.jpg"}'
Artikelinteracties staan op het endpoint do.POST doet patch-on-duplicate (hetzelfde als products). Gebruik voor het volgen van bezoekersinteracties met artikelen (bekeken / gereageerd / geliket) do met de Article … -commando’s — er is op dit moment geen eigen REST-object voor.
products_interactions
Logboek van interacties met producten: weergaven, toevoegingen aan de winkelwagen, aankopen, “favoriet”, “bezorgd”. Vooral toevoegen. Ondersteund door een archieftabel.
GET
POST
PUT
DELETE
✅
✅
✅
✅
Kolommen
Kolom
Opmerkingen
user_id
FK → users.user_id. Geïndexeerd.
product_internal_id
FK → products.internal_id. Eerste kolom van een samengestelde index [product_internal_id, user_id, transaction_time].
quantity
Standaard 1 bij het invoegen.
status
Een van viewed, delivered, extra (≈ aan de winkelwagen toegevoegd), favorite, goal (aankoop). Geïndexeerd.
action_id
Als de interactie aan een Personyze-actie is toegeschreven, de ID daarvan. Anders null.
transaction_time
Unix-seconden — tijd van de bestelling/transactie.
time
Unix-seconden — wanneer de rij is gelogd. Geïndexeerd.
amount
Geldwaarde (volgens de valuta-instellingen van de site).
Invoegen: de gebruiker identificeren
POST accepteert één van deze om de gebruiker te identificeren:
Veld
Wordt omgezet naar
user_id (numeriek)
Direct opzoeken op de primaire sleutel.
user_internal_id
user_id van de gebruiker met die internal_id. Maakt automatisch een tijdelijke users -rij aan als die ontbreekt.
user_email
user_id van de gebruiker met die email. Maakt die automatisch aan als die ontbreekt.
Voorbeelden
# All purchases in a window, paged
curl 'https://api:KEY@app.personyze.com/rest/products_interactions
/where/status=goal&time>1730000000
/order_by_desc/time
/limit/1000'
# A specific user's history with a product
curl 'https://api:KEY@app.personyze.com/rest/products_interactions
/where/product_internal_id=SKU-1234
/columns/user_id,status,quantity,amount,transaction_time'
# Log a purchase
curl -X POST 'https://api:KEY@app.personyze.com/rest/products_interactions' \
-H 'Content-Type: application/json' \
-d '{"user_internal_id":"acct-987",
"product_internal_id":"SKU-1234",
"quantity":2,
"status":"goal",
"transaction_time":1734000000,
"amount":259.98}'
# Delete by composite key
curl -X DELETE 'https://api:KEY@app.personyze.com/rest/products_interactions
/where/user_id=5712334&product_internal_id=SKU-1234&status=viewed'
Geïndexeerde kolommen
user_id, [product_internal_id, user_id, transaction_time], status, time. Query’s zonder where op een van deze (of order_by op dezelfde) worden geweigerd als scans van de volledige tabel.
events
Algemeen eventlogboek — één rij per gevolgd event dat is vastgelegd door de JS-tracker, de SDK of het endpoint do . Via REST op dit moment alleen-lezen.
GET
POST
PUT
DELETE
✅
—
—
—
Kolommen
Kolom
Opmerkingen
id
Primaire sleutel.
user_id
FK → users.user_id. Geïndexeerd.
time
Unix-seconden.
visit_id
FK → rij van het bezoek.
container_id
FK → containers.id (de bron van het event). Geïndexeerd.
container_types
Het type van de container (click event, submit event, enz.).
value
Tekenreeks met de payload van het event.
first_visit_id
Eerste visit_id van de sessie.
session_start_time
Unix-seconden.
Voorbeelden
# Recent events for a user
curl 'https://api:KEY@app.personyze.com/rest/events
/where/user_id=5712334
/order_by_desc/time
/limit/100'
# Events from a specific container in a window
curl 'https://api:KEY@app.personyze.com/rest/events
/where/container_id=1234&time>1730000000&time<1731000000
/columns/id,user_id,time,value
/order_by_desc/time
/limit/1000'
Wanneer je events gebruikt en wanneer summary_actions.De tabel is groot; query’s moeten filteren op een geïndexeerde kolom (id, user_id, container_id, …), anders wordt het verzoek geweigerd. Gebruik voor geaggregeerde KPI’s over tijd in plaats daarvan summary_actions — daarin staan vooraf berekende dagelijkse tellers per actie.
forms
Logboek van formulierinzendingen. Eén rij per formulierinzending die door de tracker is vastgelegd. Via REST op dit moment alleen-lezen.
GET
POST
PUT
DELETE
✅
—
—
—
Kolommen
Kolom
Opmerkingen
user_id
FK → users.user_id. Geïndexeerd.
time
Unix-seconden.
action_id
De Personyze-actie die dit formulier activeerde of bevatte, indien van toepassing.
session_start_time
Unix-seconden.
plus data (JSON)
De ingezonden formulierpayload, verpakt als JSON. Wordt inline gelezen (de sleutels verschijnen als kolommen in het antwoord).
De data -JSON wordt bij het lezen automatisch uitgevouwen tot sleutels op het hoogste niveau — vraag specifieke eigen velden op naam op.
Voorbeelden
# Submissions for a user
curl 'https://api:KEY@app.personyze.com/rest/forms
/where/user_id=5712334
/order_by_desc/time
/limit/100'
# Submissions tied to a specific action
curl 'https://api:KEY@app.personyze.com/rest/forms
/where/action_id=42&time>1730000000
/columns/user_id,time,email,name,message
/limit/1000'
Geïndexeerde kolommen zijn onder meer user_id, action_id, en time. Query’s moeten op een van deze filteren.
do
Verdeler voor commando’s die je afvuurt en vergeet: stuur één update van een gebruikersprofiel of één interactie-event zonder het trackerprotocol te spreken. De body is een array met commando’s; elk commando wordt afzonderlijk verwerkt.
# Tag a user as VIP
curl -X POST 'https://api:KEY@app.personyze.com/rest/do' \
-H 'Content-Type: application/json' \
-d '[["internal_id","acct-987","User profile","custom_t_1","VIP","first_name","Alice"]]'
# Log a purchase + a profile update in one round-trip
curl -X POST 'https://api:KEY@app.personyze.com/rest/do' \
-H 'Content-Type: application/json' \
-d '[
["email","alice@example.com","Product purchased","SKU-1234","quantity",2,"amount",259.98],
["email","alice@example.com","User profile","customer_segment","loyal"]
]'
Wanneer je do gebruikt en wanneer getypeerde endpoints.Opzoeksleutels (internal_id / email) maken automatisch een tijdelijke users -rij aan als geen gebruiker overeenkomt. Gebruik voor het loggen van interacties met een hoge doorvoer liever products_interactions (getypeerd en geïndexeerd) of de gebundelde event-API van de SDK.
sessions_archive
Eén rij per bezoekerssessie (een aaneengesloten periode van activiteit). Ondersteund door de archieftabel met een lange levensduur — veel breder dan events, met metadata over locatie, apparaat, scherm en browser.
GET
POST
PUT
DELETE
✅
—
—
—
Identificerend / huishoudelijk
Kolom
Opmerkingen
first_visit_id
Primaire sleutel. De id van de eerste visit -rij in deze sessie.
user_id
FK → users.user_id. Geïndexeerd.
session_start_time
Unix-seconden.
last_session_time
Unix-seconden.
session_counter
Het hoeveelste sessienummer voor deze gebruiker (1, 2, 3, …).
total_visits
Bekeken pagina’s in de sessie.
time_in_focus
Seconden dat het tabblad echt de focus had.
time_total
Seconden van het begin tot de laatste activiteit.
Geo / taalinstelling / apparaat
Kolom
Opmerkingen
time_zone
Tijdzoneverschil van de bezoeker (uren).
country_code, region_code, city
Geo (op basis van IP). city wordt gekoppeld uit de gedeelde opzoektabel, dus het is een leesbare naam (null als er geen match is).
ad_campaign, ad_source, ad_medium, ad_term, ad_content — de standaard UTM-parameters zoals vastgelegd bij binnenkomst.
Voorbeelden
# Sessions for a user, most recent first
curl 'https://api:KEY@app.personyze.com/rest/sessions_archive
/where/user_id=5712334
/columns/first_visit_id,session_start_time,total_visits,country_code,city
/order_by_desc/session_start_time
/limit/100'
# Single session by primary key
curl 'https://api:KEY@app.personyze.com/rest/sessions_archive
/where/first_visit_id=900000000123
/columns/user_id,session_start_time,total_visits,total_goal_value'
Geïndexeerde kolommen: first_visit_id, user_id, plus verschillende andere. Query’s moeten filteren op een geïndexeerde kolom, anders wordt het verzoek geweigerd als scan van de volledige tabel.
user_interests
Interesses, categorieën, tags en tags voor familie/cross-sell/upsell per gebruiker, afgeleid door de pipeline van de tracker. Eén rij per (user_id, value, class, time). Alleen-lezen.
GET
POST
PUT
DELETE
✅
—
—
—
Kolommen
Kolom
Opmerkingen
user_id
FK → users.user_id. Geïndexeerd.
value
Het interessetoken (bijv. categorienaam, tag, trefwoord).
Hoe vaak deze waarde voor de gebruiker is waargenomen.
time
Unix-seconden — wanneer de interesse voor het laatst is bijgewerkt. Geïndexeerd.
Geïndexeerde kolommen: user_id, time. Query’s moeten filteren op een geïndexeerde kolom.
Voorbeelden
# All interests for one user, strongest first
curl 'https://api:KEY@app.personyze.com/rest/user_interests
/where/user_id=5712334
/columns/value,class,rank,n_times,time
/order_by_desc/rank
/limit/100'
# Only categories, recently updated
curl 'https://api:KEY@app.personyze.com/rest/user_interests
/where/user_id=5712334&class=category
/order_by_desc/time
/limit/50'
products_stats_*
Geaggregeerde interactietellers per product, bijgehouden door de offline pipeline voor samenvattingen. Zes doorlopende vensters zijn beschikbaar op aparte paden — kies het venster dat past bij je rapportagehorizon. Ze delen allemaal dezelfde kolomvorm en indexen; alleen het tijdvenster verschilt.
GET
POST
PUT
DELETE
✅
—
—
—
Endpoints
Pad
Venster
/rest/products_stats_1day
laatste 1 dag
/rest/products_stats_2day
laatste 2 dagen
/rest/products_stats_4day
laatste 4 dagen
/rest/products_stats_week
laatste 7 dagen
/rest/products_stats_recent
recent (doorlopend — bepaald door de pipeline)
/rest/products_stats_all
hele levensduur
Identificerend
Kolom
Opmerkingen
internal_id
Primaire sleutel. De externe identificator van het product (SKU / id uit de catalogus die je hebt aangeleverd). Geïndexeerd.
Tellers per product (aantal interacties met dit product binnen het venster)
Kolom
Opmerkingen
n_viewed
Aantal weergave-events. Geïndexeerd.
n_delivered
Aantal bezorgde (getoonde) aanbevelingen. Geïndexeerd (samengesteld met n_viewed).
n_extra
“Extra” interacties (bijv. in de winkelwagen). Geïndexeerd (samengesteld met n_viewed).
n_favorite
Als favoriet / op de verlanglijst gezet. Geïndexeerd (samengesteld met n_viewed).
n_goal
Voltooide doelen (aankopen). Geïndexeerd (samengesteld met n_viewed).
Verdelingsstatistieken voor de hele catalogus
Dezelfde waarde op elke rij — beschrijft de hele catalogus binnen dit venster. Voor elke metriek M ∈ {viewed, delivered, extra, favorite, goal}:
Kolom
Opmerkingen
overall_n_<M>
Som over alle producten.
overall_avg_<M>
Gemiddelde over alle producten.
overall_avg_nonzero_<M>
Gemiddelde over producten met minstens één event.
percentile_<M>
De percentielrang van deze rij voor de metriek.
Laatste 3 doelgebruikers (meest recente kopers van dit product)
internal_id, n_viewed, n_delivered, n_extra, n_favorite, n_goal, last_goal_user_id_0, last_goal_user_id_1, last_goal_user_id_2. Query’s moeten filteren op (of order_by) een van deze.
Voorbeelden
# Top 50 most-viewed products this week
curl 'https://api:KEY@app.personyze.com/rest/products_stats_week
/where/n_viewed>0
/columns/internal_id,n_viewed,n_delivered,n_extra,n_goal,percentile_viewed
/order_by_desc/n_viewed
/limit/50'
# Lookup one product's lifetime stats
curl 'https://api:KEY@app.personyze.com/rest/products_stats_all
/where/internal_id=SKU-12345'
# What a specific user purchased recently (matches against last 3 goal users)
curl 'https://api:KEY@app.personyze.com/rest/products_stats_recent
/where/last_goal_user_id_0=5712334
/columns/internal_id,n_goal,last_goal_user_time_0'
summary_actions
Dagelijks geaggregeerde KPI’s per actie — één rij per (day, action_id) voor acties die aan een specifieke campagne zijn gekoppeld (condition_id). Alleen-lezen.
GET
POST
PUT
DELETE
✅
—
—
—
Strikte eis voor indexering.Alleen day is geïndexeerd. Elk verzoek moet where/day… bevatten — er is geen uitweg met alleen order_by.
Identificerend
Kolom
Opmerkingen
day
Unix-tijdstempel (seconden) van 0:00 (middernacht) van de dag in Greenwich-tijd (GMT+0000).
action_name
Naam van de actie.
action_id
ID van de actie.
campaign_name
Naam van de campagne waartoe de actie behoort.
campaign_id
ID van de campagne waartoe de actie behoort.
Blootstelling van de actie
Kolom
Opmerkingen
n_executed
Hoe vaak uitgevoerd (acties gelden als uitgevoerd, ook als de visuele content nog niet is getoond).
n_delivered
Hoe vaak we van de browserpagina de melding kregen dat de content zichtbaar werd.
n_extra
Hangt af van het actietype. Voor HTML-acties: het aantal kliks. Voor formulieracties: het aantal inzendingen.
n_failed
Alleen geteld voor e-mailacties. Hoe vaak het versturen van een e-mail mislukte (bijv. een ongeldig adres).
n_closed
Hoe vaak de gebruiker op de knop “sluiten” klikte nadat de content van de actie zichtbaar werd.
n_sessions_executed
In hoeveel afzonderlijke sessies er minstens één n_executed voor deze actie was.
n_sessions_delivered
In hoeveel afzonderlijke sessies er minstens één was: n_delivered.
n_sessions_extra
In hoeveel afzonderlijke sessies er minstens één n_extra.
n_sessions_failed
In hoeveel afzonderlijke sessies er minstens één n_failed.
n_sessions_closed
In hoeveel afzonderlijke sessies er minstens één n_closed.
Toeschrijving aan producten (als deze actie producten aanbeval)
Kolom
Opmerkingen
products_goal_n_times
Hoeveel producten (over alle bezoekers) “gekocht” bereikten tijdens een sessie waarin deze actie werd uitgevoerd. Telt elk aankoopevent van een product, dus één bestelling met 3 items telt 3.
products_goal_n_sessions
In hoeveel afzonderlijke sessies er minstens één product werd gekocht nadat deze actie was uitgevoerd.
products_goal_value
Som van de geldwaarden van alle gekochte producten die zijn geteld in products_goal_n_times.
products_recom_viewed_n_times
Hoe vaak een product dat deze actie aanbeval daarna werd bekeken.
products_recom_viewed_n_sessions
In hoeveel afzonderlijke sessies minstens één aanbevolen product werd bekeken.
products_recom_extra_n_times
Hoe vaak een aanbevolen product daarna aan de winkelwagen werd toegevoegd (of op een andere manier de interactie “extra” bereikte).
products_recom_extra_n_sessions
In hoeveel afzonderlijke sessies minstens één aanbevolen product de interactie “extra” bereikte.
products_recom_extra_value
Som van de geldwaarden van alle aanbevolen producten met een interactie “extra”.
products_recom_goal_n_times
Hoe vaak een aanbevolen product daarna werd gekocht.
products_recom_goal_n_sessions
In hoeveel afzonderlijke sessies minstens één aanbevolen product werd gekocht.
products_recom_goal_value
Som van de geldwaarden van alle gekochte aanbevolen producten.
Toeschrijving aan artikelen
Dezelfde vorm als bij de toeschrijving aan producten, maar voor artikelen: articles_recom_viewed_n_times, articles_recom_viewed_n_sessions, articles_recom_extra_n_times, articles_recom_extra_n_sessions, articles_recom_extra_value, articles_recom_goal_n_times, articles_recom_goal_n_sessions, articles_recom_goal_value.
Eigen doelevents per account
Een account kan tot 12 doelevents instellen. Voor elke eventcontainer die in je account is ingesteld met een goal_event_index (N van 1 tot 12 die niet nul is, verschijnen er vier extra kolommen in het antwoord:
goal_event_N_name — Weergavenaam van het ingestelde doelevent. Wordt teruggegeven als letterlijke tekenreeks, op elke rij hetzelfde.
goal_event_N_n_times — Hoe vaak dit doelevent afging tijdens een sessie waarin de actie werd uitgevoerd.
goal_event_N_n_sessions — In hoeveel afzonderlijke sessies dit doelevent minstens één keer afging nadat de actie was uitgevoerd.
goal_event_N_value — Som van de geldwaarden die voor dit doelevent zijn gerapporteerd over de keren die zijn geteld in goal_event_N_n_times (nul, tenzij de container van het doelevent is ingesteld om een waarde vast te leggen).
Voorbeelden
# Last 30 days, daily KPIs per action
curl 'https://api:KEY@app.personyze.com/rest/summary_actions
/where/day>1730000000
/columns/day,action_name,n_executed,n_delivered,n_extra,products_goal_value
/order_by_desc/day
/limit/1000'
# A specific action's lifetime
curl 'https://api:KEY@app.personyze.com/rest/summary_actions
/where/action_id=42&day>1700000000
/order_by/day
/limit/1000'
tracker_code
Geeft het JS-snippet terug dat je op je site insluit om de Personyze-tracker op te starten. De inhoud wordt afgeleid uit de instellingen van je account (account-ID, trackinghost, vlaggen voor async/niet verbergen).
GET
POST
PUT
DELETE
✅
—
—
—
Antwoord
Een gewoon text/html -snippet (of JS in een<script>), klaar om in een <head>te plakken. De body is geen JSON — dit is het ene REST-endpoint dat ruwe HTML teruggeeft.
Conventies voor het trackersnippet.Het snippet bevat je account-ID en de lijst met toegestane hostnamen die voor dat account zijn geregistreerd. Bewerk het niet met de hand; haal het opnieuw op als je via de interface nieuwe domeinen toevoegt. Voor native SDK-clients (iOS / Android) is dit endpoint niet relevant — de SDK spreekt het trackerprotocol direct via interne endpoints.
Volgende stappen
📖 Syntaxis van padparametersVerdiep je in where/columns/order_by/limit met alle operatoren en voorbeelden. Lezen →
🔑 AuthenticatieOmgaan met de API-sleutel, indeling van de header, foutcodes, opzetten met meerdere accounts. Lezen →