List Activities (Global Feed)
Global activity feed for the active org with filters.
Returns activities of any type (meeting, message, email, call, note, etc.)
sorted by effective_time desc — a generated column = COALESCE(due_at, created_at).
This gives a single linear time axis regardless of activity type, so manual
notes don’t get pushed to the bottom just because they lack a due_at.
effective_time descending. effective_time is a generated column — COALESCE(due_at, created_at) computed by Postgres, so it can never be sent on a write — and sorting by it means manual notes (no due_at) don’t get pushed to the bottom of a timeline that’s otherwise ordered by scheduled time.
Returns a bare JSON array — no total-count header, no pagination envelope. limit is capped at 500 server-side. Note that the from/to filters constrain due_at, not effective_time.
unlinked_account=true together with an explicit account_id, or unlinked_deal=true with deal_id, sends the same PostgREST query key twice (eq.<id> and is.null), which is a self-contradicting AND — you get an empty result, not an error.Auth
Requires a CRM read scope and an active organization on the token. Any ofcontacts:read, deals:read, companies:read, or activities:read qualifies, as does any *:manage scope — manage implies read.
Response
Same row shape as List Meetings, excepttype varies per row instead of always being "meeting":
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Filter to activities of this type (e.g. note, call, meeting, email, task).
Filter to activities from this source (manual, import, or a sync source such as calendar, gmail, outlook, slack, teams).
Case-insensitive substring match against subject.
Filter to activities linked to this contact.
Filter to activities linked to this deal.
Filter to activities linked to this account.
If true, only return activities with no account_id. Combining with an explicit account_id filter yields an empty result.
If true, only return activities with no deal_id. Combining with an explicit deal_id filter yields an empty result.
If true, hide activities whose effective_time is later than the current UTC instant. Note this cuts at 'now', not at end of day — an activity due later today is excluded.
Only return activities with due_at on or after this ISO 8601 timestamp — filters due_at, not the effective_time the feed is sorted by.
Only return activities with due_at on or before this ISO 8601 timestamp — filters due_at, not the effective_time the feed is sorted by.
Maximum rows to return; capped at 500 server-side.
Number of rows to skip, for pagination.
Response
Successful Response