Skip to content

List Profiles

GET /cdp/profiles — list / search the brand’s profiles, scoped to your shop.

GET /cdp/profiles
Authorization: Bearer vyg_…
ParamTypeDefaultDescription
bucketcustomers | anonymouscustomerscustomers = deterministically-resolved identities (provenance server); anonymous = pixel-only profiles (provenance pixel). The two are never co-mingled.
qstringSearch term.
limitinteger25Page size, clamped to a maximum of 100.
offsetinteger0Offset; offset + limit must stay within the 10,000-row window or the request is rejected 400.
cursorstringOpaque scope-bound deep-pagination token. When present, offset is ignored.
sortstringitemId.keyword:ascSort key. The default stable sort is cursor-eligible; any other sort makes the page offset-only (no cursor minted).
{
"bucket": "customers",
"list": [
{
"itemId": "shopify_your-shop_1234",
"properties": {},
"provenance": "server"
}
],
"identities": {
"shopify_your-shop_1234": {}
},
"totalSize": 1,
"offset": 0,
"pageSize": 25,
"scope": "your-shop.myshopify.com",
"nextCursor": null
}
FieldTypeDescription
bucketcustomers | anonymousThe bucket this response reflects.
listarrayThe page of profiles. Every profile carries a required provenance label (server | pixel | merged).
identitiesobjectIdentity projection keyed by each profile’s itemId.
totalSizeintegerEstimated total, capped at 10,000 (see Pagination).
offsetintegerOffset this page started at.
pageSizeintegerEffective page size.
scopestringYour brand’s connected shop domain.
nextCursorstring | nullToken for the next page, or null when enumeration is exhausted.
Terminal window
curl -s "https://cdp.vyg.app/cdp/profiles?bucket=customers&limit=25" \
-H "Authorization: Bearer vyg_your_key_here"
StatusWhen
400A deep offset past the result window, or a malformed/cross-endpoint cursor.
401Missing or invalid credential.
403No connected shop resolves a scope; or a cursor minted for a different brand.
405Non-GET method.

See Errors for the full envelope.