Skip to main content
A monitor delivers what it finds as records. Read them with the paged cursor, or hold a stream open and take them as they arrive. Both start from a monitor you already created — see the Quickstart.

Page through records

Records are returned oldest first. since is exclusive: store the record_id of the last record you handled and pass it back to resume without re-delivery. There is no cursor token — the record id is the cursor. A page can hold fewer records than limit, so a short page is normal. Page until has_more is false rather than until you get fewer records than you asked for.
record_id is a bigint in TypeScript and a string over REST — see Reference. To omit document content and get a cheaper list view, pass include_content: include_content=False in Python, includeContent: false in TypeScript, and ?include_content=false over REST. Records stay readable for 30 days, so persist anything you need to keep. See Reference.

Stream records

The SDKs can hold a long-lived stream open and receive records as the monitor produces them, instead of polling. since works the same way it does on the paged call: pass the last record id you handled to resume. A stream ends when the server closes it. Reopen it from the last id you saw. The stream yields a response message carrying record, not a bare record.
Streaming records is server-streaming gRPC. There is no REST equivalent — no cURL form of this call exists, so poll GET /v1/monitors/{monitor_id}/records if you are working over REST.