Docs·Visitors and people
GET
/api/v1/spreelytics/people/:contactIdentityIdGet a person
Returns one identified person: their email addresses, the identifiers tied to them, when they were first and last seen, the channel of their first visit and their lifetime totals. What they did before they were identified counts too, because the anonymous visits that led up to their identify() call are linked to them.
It answers 404 for an id that is not a person in this audience. Anonymous visitors have no person id; read them with the visitor endpoints on this page. Every role can call it, Viewer included.
Keys: an account key or an audience key. Getting started explains both kinds.
Parameters
| Prop | In | Type | Notes |
|---|---|---|---|
contactIdentityId | path | string | The person id, a UUID, from GET /people/search or a member list. |
contactListId | query | string | The audience id, a UUID. With an audience key it must be that key's own audience. |
Response
| Prop | Type | Notes |
|---|---|---|
contactIdentityId | string | The person id. |
emails | string[] | Every email address on the person. |
aliases | PersonAliasDto[] | The identifiers tied to this person. Each has idType (such as email), value (normalised, so email addresses are lower case) and source, such as sdk_identify for an address an identify() call recorded. |
firstSeen | string | Their earliest recorded activity as an ISO 8601 timestamp, or null when there is none. |
lastSeen | string | Their latest recorded activity, or null. |
firstTouchChannel | string | The channel of their earliest visit, such as Organic Search. Empty when they have no visits. |
totals | PersonSourceTotalsDto | Lifetime counts: sessions, webEvents (page views and custom events, not counting payments) and revenue (net of refunds, in your reporting currency). |
Request
curl 'https://app.spreelytics.com/api/v1/spreelytics/people/:contactIdentityId?contactListId=…' \
-H 'Authorization: Bearer YOUR_API_KEY'
const url = new URL('https://app.spreelytics.com/api/v1/spreelytics/people/:contactIdentityId');
url.searchParams.set('contactListId', '…');
const res = await fetch(url, {
headers: { Authorization: 'Bearer YOUR_API_KEY' },
});
const data = await res.json();
import requests
res = requests.get(
"https://app.spreelytics.com/api/v1/spreelytics/people/:contactIdentityId",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"contactListId": "…"},
)
data = res.json()
Response
{
"contactIdentityId": "string",
"emails": [
"string"
],
"aliases": [
{
"idType": "string",
"value": "string",
"source": "string"
}
],
"firstSeen": "string",
"lastSeen": "string",
"firstTouchChannel": "string",
"totals": {
"sessions": 0,
"webEvents": 0,
"revenue": 0
}
}