List ICP signals
Signals detected on companies matching your watched ICPs — including companies that are not in your Key Accounts and that you have never unlocked.
To poll: call with no cursor, process the events, save next_cursor, and pass it back next time to get whatever has been detected since. next_cursor comes back on every non-empty page, including the last one; has_more: false means you are caught up, not that the feed has ended.
Delivery is at-least-once. Each event carries a stable id; store the ids you have processed and skip repeats rather than assuming an event arrives exactly once.
Events are ordered by when they were detected, oldest first. Note that is not the same as when they happened: news commonly surfaces days after the fact, so occurred_at can move backwards from one event to the next while detected_at never does.
Authorizations
Account API key passed in the Authorization header
Query Parameters
Target account UUID. Required for staff callers; ignored for customer API keys (they always read their own account).
Only return events detected for this ICP. Omit for every watched ICP on the account.
Repeatable. Only return these signal types (news, job_posting). Omit for all of them.
Only return events detected at or after this RFC3339 timestamp. Prefer the cursor for sequential polling: since re-reads a window, the cursor advances through it.
"2026-08-01T00:00:00Z"
Pagination cursor from a previous call. Save next_cursor and pass it back unchanged to fetch what has arrived since. Cursors stay valid indefinitely unless this endpoint returns a 400.
Maximum events to return.
1 <= x <= 500Response
OK
Events in detection order, oldest first, so a consumer can walk forward without new arrivals reshuffling the page.
True when more events are already waiting. False means you are caught up, not that the feed is finished.
Pass back unchanged to fetch events detected after this page. Returned on every non-empty page, including the last: a feed has no end, only a current position.