Analytics
One end user's activity
GET
/analytics/people/{userId}Needsanalytics.viewWhat one identified user (the id your app passes to Cueston.identify()) saw and did. 404 when the workspace has never seen them.
Authorization
secretKeyheader
AuthorizationBearer <sk_…>A secret API key from Settings → API keys. It acts with its creator's role.
Path Parameters
userId*stringYour app's user id, URL-encoded.
Query Parameters
cursor?stringnextCursor from the previous page.
limit?integerPage size, 1–200.
Range
1 <= value <= 200Default
50Response Body
OK
application/json- response
person*frequency*array<>pages*array<>events*array<>nextCursor*string|nullShell
curl -X GET 'https://app.cueston.com/api/analytics/people/string'Example Response
JSON
{
"person": {
"userId": "user-123",
"firstSeenAt": "2026-10-26T09:30:00Z",
"lastSeenAt": "2026-10-26T09:30:00Z",
"sessions": 0,
"devices": null,
"totals": {
"impressions": 1840,
"uniqueVisitors": 960,
"completions": 412,
"ctaClicks": 133,
"dismissals": 210,
"targetMissing": 3
}
},
"frequency": [
{
"contentType": "tour",
"contentId": 42,
"name": "Onboarding tour",
"views": 0,
"firstSeenAt": "2026-10-26T09:30:00Z",
"lastSeenAt": "2026-10-26T09:30:00Z",
"completedAt": "2026-10-26T09:30:00Z",
"dismissedAt": "2026-10-26T09:30:00Z"
}
],
"pages": [
{
"url": "https://app.acme.com/settings/billing",
"events": 0,
"lastSeenAt": "2026-10-26T09:30:00Z"
}
],
"events": [
{}
],
"nextCursor": "string"
}Would this person see it?POST
Explains which published guidance a visitor would get on a URL and why each item would or wouldn't show (domain, URL, schedule, audience, frequency). Read-only: nothing is recorded.
Export analytics as CSVGET
Streams a UTF-8 CSV. Cells that could run as spreadsheet formulas are prefixed with `'`.