Naslag voor elk object van de REST API van Personyze: doel, ondersteunde HTTP-methoden, kolommen met opmerkingen over indexering, en voorbeelden.
23 min readUpdated 2 hours 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 →