Skip to main content
The event feed lists every change to your deals and tasks in the order it happened, oldest first. Poll it to keep another system in sync, including changes that a list query can’t show, such as a deleted deal. Requires the events:read scope (and tasks:read for task events).

Event types

New event types may be added. Ignore types you don’t handle.

Polling the feed

1. Start from now. On first run, ask for the current position without replaying history:
Then load your starting state from the list endpoints (for example, page through /v1/deals). 2. Poll forward. Save next_cursor and send it back on every poll:
next_cursor is never null. When has_more is false you are caught up. Wait a little and poll again from the same cursor. 3. Fetch the subject. Each event names its subject (the deal or task) and actor (who made the change). Two changes to the same deal can arrive out of order, so fetch the subject for its current state instead of replaying the change yourself. If the fetch returns 404, the subject was deleted or your key can no longer read it: remove it from your copy.
Narrow the feed with type and brokerage, for example ?type=deal.status_changed&type=deal.created.

When a cursor expires

In rare cases, such as after a major upgrade, an old cursor can no longer be read and the feed returns 410 CURSOR_EXPIRED. Start again from start=latest and reload your state from the list endpoints.