REST API
List events (polling feed)
Events in the order we recorded them, after a cursor.
GET
/v1/eventsParameters
sincestringoptionalISO date-time: only events recorded after it (the first call of a sync)
typesstring | string[]optionalevent types (describe_events); a comma-separated string over REST
list_idstringoptionalonly events whose company is on this list of yours
domainstringoptionalonly events about this company
cursorstringoptionallimitintegeroptionaldefault 100 (min 1, max 1000)
What your agent reads
The tool description exactly as an MCP client receives it in tools/list — it doubles as the full behaviour of the endpoint.
Events in the order we recorded them, after a cursor — the same facts subscriptions deliver, for callers that poll instead of receiving webhooks (a Clay enrichment, a warehouse sync). Records: one company_row per event shown. Global data events (job.*, company.*) plus your own (list.*, control-plane); types of unreleased data layers are hidden. Filter by `types`, by membership of one of your lists (`list_id`) or by one `domain`; `since` = recorded after this time. Keep `next_cursor` and pass it as `cursor` next time; an empty page with no next_cursor means nothing new yet.
Over REST, parameters go in the query string.
Errors follow one format.