Per-contact activity timeline

Search Documentation

Search across all developer documentation

activities

Per-contact activity timeline

GET /v1/contacts/{id}/activities
Auth required api.activities.view

Returns one contact's activities, newest first, cursor-paginated. 404 not_found when the handle names no contact in this org. Filters: name, from/to (default last 30 days, capped by plan retention).

Path parameters

id string required

The contact's UUID, its external_id, or its email address (percent-encoded) — the same three handles the contact= filter on GET /v1/activities accepts. Unknown handles read as 404 not_found.

Query parameters

from string<date-time> optional

Window start (RFC 3339). Defaults to 30 days ago.

to string<date-time> optional

Window end (RFC 3339). Defaults to now.

limit integer optional

Page size (1–200). Default 50.

cursor string optional

Opaque cursor returned from the previous page.

name string optional

Exact activity name to filter by.

Responses

Errors follow the RFC 7807 problem format — see the error reference.

200 Cursor-paginated per-contact timeline application/json
data array<object> required

Each entry in data:

activity_id string<uuid> required
contact_id string<uuid> required
email string optional

Contact email at ingest time.

name string required
properties object required

The free-form payload as submitted.

occurred_at string<date-time> required
received_at string<date-time> required
source string optional

The ingesting API key's prefix.

pagination object required

Fields of pagination:

has_more boolean required
next_cursor string | null optional
401 Missing, malformed, or unknown API key application/problem+json
403 Key lacks the required scope or plan limit violated application/problem+json
404 Resource not found application/problem+json
422 A query parameter, path value or body field failed validation. The body is a validation_failed Problem. When the refusal is about a reference — a segment key, template slug, topic or attribute name the organization does not have — it additionally carries validation_code, field, line/column, missing, candidates and next_step, so a client can correct the call without a second round of guessing. See ValidationProblem. application/problem+json
429 Per-org rate limit exceeded application/problem+json
500 Unexpected server-side failure. The code is internal_error. The request_id field can be quoted to SendOps support to investigate. application/problem+json