Long-poll for events
Drain the agent’s durable event log past cursor (Telegram getUpdates model). When no newer events exist the request holds open up to timeout seconds and returns as soon as one lands. Passing a cursor durably acknowledges every event at or below it. Before making the next request, atomically persist this page’s events to the engine queue together with next_cursor; never advance the cursor before the events are durable. While any webhook endpoint is enabled this endpoint returns 409 conflict; the check runs per request and on every wake, so around a registration or disable both paths may briefly observe the same events — deduplicate by event_id. One consumer per agent: starting a newer poll terminates an older held-open request with 409 terminated_by_other_consumer.
Authorizations
Agent Token (rly_live_…), shown once at agent creation.
Query Parameters
The next_cursor from a previous response. It durably acknowledges that handed-out page and advances message delivery receipts; Relay rejects values above the highest cursor it has delivered. 0 starts from the beginning of the retained log.
x >= 0Seconds to hold the request open when no events are pending. 0 returns immediately with any pending events (nonblocking poll).
0 <= x <= 301 <= x <= 100