Polling with updated_since
To keep a copy in sync, page through everything once, then poll for what changed: updated_since returns only documents whose updated_at is at or after the instant you pass (an ISO date or timestamp). Sort order is unchanged, so combine it with cursor exactly as you would a full list.
Everything changed since a timestamp
From the published contract
curl "https://api.rivet.network/v1/documents?updated_since=2026-09-01T00:00:00Z&limit=50" \
-H "Authorization: Bearer rk_live_…"- Store the time you started each poll and pass it next time — not the time it finished.
- Overlap the window by a few seconds; deduplicate by document
id. Cheap, and it never misses a change at a boundary. - For push instead of poll, see Webhooks.
Filtering by phase
Document statuses are per type (submitted, acknowledged, …). phase is the one vocabulary across every type — draft, awaiting_counterparty, in_review, approved, scheduled, overdue, exception, settled, closed — so “everything overdue, of any kind” is one filter.
Everything overdue, across document types
From the published contract
curl "https://api.rivet.network/v1/documents?phase=overdue" \
-H "Authorization: Bearer rk_live_…"Combine any of
connection, type, status, phase, since/until (the document date) and updated_since (the change time) — an unknown parameter is a 400, never a silently ignored typo that returns everything.