People & IdentityList people

List people

List resolved person profiles for the location, most-recent first. Each row carries resolved display fields top-level — display_name, email (falls back to an email-type identity when no $email property is set), and user_id (the person's first user_id-type identity) — so list UIs can label rows (e.g. user_id → email → name) without a per-row GET /people/{personId} fetch. Rows also include company, avatar, session_count, and first/last-touch channel fields. Use search to match against name, email, or identities.

curl -X GET "https://mythic-analytics.gulp.workers.dev/client/v1/data/people?location_id=acme-retail&limit=50&offset=0&search=example_string&segment_id=example_string" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
{
  "success": true,
  "data": [
    {
      "id": "8f3c1e00-4a2b-4c9d-9e11-1a2b3c4d5e6f",
      "location_id": "acme-retail",
      "display_name": "Dana Reyes",
      "email": "dana@example.com",
      "user_id": "usr_2841",
      "company": "Example Co",
      "avatar": "https://cdn.example.com/avatars/dana.png",
      "session_count": 17,
      "first_channel": "paid/google",
      "last_channel": "direct/none",
      "last_utm_source": "example_string",
      "last_utm_medium": "example_string",
      "last_utm_campaign": "example_string",
      "last_geo_country_name": "United States",
      "first_geo_country": "US",
      "last_device_type": "desktop",
      "first_landing_page": "https://example.com/pricing",
      "last_landing_page": "https://example.com/blog/launch",
      "properties": {
        "$name": "Dana Reyes",
        "$email": "dana@example.com",
        "$company": "Example Co",
        "$avatar": "https://cdn.example.com/avatars/dana.png"
      },
      "first_seen_at": "2024-12-25T10:00:00Z",
      "last_seen_at": "2024-12-25T10:00:00Z",
      "identity_count": 3
    }
  ],
  "count": 50
}
GET
/people
GET
Base URLstring

Target server for requests. Edit to use your own host.

Bearer Token
Bearer Tokenstring
Required

Agency key as bearer token. Format: Bearer ak_.... Must name a location via the location_id query parameter or X-Location-Id header. Scoped keys (mcp_) are accepted too and need people:read. See Using an mcp_ key over HTTP.

Agency key as bearer token. Format: Bearer ak_.... Must name a location via the location_id query parameter or X-Location-Id header. Scoped keys (mcp_) are accepted too and need people:read. See Using an mcp_ key over HTTP.
Bearer Token
Bearer Tokenstring
Required

Location secret key as bearer token. Format: Bearer sk_.... Resolves its own location — no location_id needed.

Location secret key as bearer token. Format: Bearer sk_.... Resolves its own location — no location_id needed.
query
location_idstring

Required for agency (ak_) keys. Ignored for secret (sk_) keys, which resolve their own location. May also be supplied via the X-Location-Id header.

query
limitinteger

Maximum results per page. Default 50, min 1, max 200.

Min: 1 • Max: 200
query
offsetinteger

Number of results to skip. Default 0.

Min: 0
query
segment_idstring

Scope the list to a stored segment's members (same segments as GET /builder/segments), keeping this endpoint's full row shape — the same scoping already available on /sessions, /sessions/breakdown, and /replays. search, limit, and offset compose. Unknown ids return 404 segment_not_found.

Request Preview
Response

Response will appear here after sending the request

Authentication

header
Authorizationstring
Required

Bearer token. Agency key as bearer token. Format: Bearer ak_.... Must name a location via the location_id query parameter or X-Location-Id header. Scoped keys (mcp_) are accepted too and need people:read. See Using an mcp_ key over HTTP.

header
Authorizationstring
Required

Bearer token. Location secret key as bearer token. Format: Bearer sk_.... Resolves its own location — no location_id needed.

Query Parameters

location_idstring

Required for agency (ak_) keys. Ignored for secret (sk_) keys, which resolve their own location. May also be supplied via the X-Location-Id header.

Example:
acme-retail
limitinteger

Maximum results per page. Default 50, min 1, max 200.

offsetinteger

Number of results to skip. Default 0.

segment_idstring

Scope the list to a stored segment's members (same segments as GET /builder/segments), keeping this endpoint's full row shape — the same scoping already available on /sessions, /sessions/breakdown, and /replays. search, limit, and offset compose. Unknown ids return 404 segment_not_found.

Responses

successboolean
dataarray
countinteger

Number of rows returned.