Skip to main content
GET
List Activities
New to activities? See the Activities guide for what an activity is and how it attaches to other records. This page (and every other page in this section) is the field-level technical reference.
Returns activities of any type across the active org, sorted by 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.
Passing a linked-filter together with its matching id-filter matches nothing: 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 of contacts:read, deals:read, companies:read, or activities:read qualifies, as does any *:manage scope — manage implies read.

Response

Same row shape as List Meetings, except type varies per row instead of always being "meeting":

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Query Parameters

type
string | null

Filter to activities of this type (e.g. note, call, meeting, email, task).

source
string | null

Filter to activities from this source (manual, import, or a sync source such as calendar, gmail, outlook, slack, teams).

search
string | null

Case-insensitive substring match against subject.

contact_id
string | null

Filter to activities linked to this contact.

deal_id
string | null

Filter to activities linked to this deal.

account_id
string | null

Filter to activities linked to this account.

unlinked_account
boolean
default:false

If true, only return activities with no account_id. Combining with an explicit account_id filter yields an empty result.

unlinked_deal
boolean
default:false

If true, only return activities with no deal_id. Combining with an explicit deal_id filter yields an empty result.

exclude_future
boolean
default:false

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.

from
string | null

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.

to
string | null

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.

limit
integer
default:100

Maximum rows to return; capped at 500 server-side.

offset
integer
default:0

Number of rows to skip, for pagination.

Response

Successful Response