GET
/v2/statusGet data freshness
How fresh the data behind this API is. `/readyz` answers whether this pod can reach its datastore; this answers how far behind chain head what you are reading is. Two halves, because each is blind exactly where the other sees: * `serving`; the projections that turn ingested rows into what the feeds read (`activity_feed` enrichment, `custody_balances` ingestion, the PnL engine).
- Base URL
- https://data-api.polymarket.com
- Auth
- Public, no key
- Rate limit
- 100 req / 10s (10 per second)
- Limit applies to
- /v2/status
Things to know
Every v2 response wraps its payload in a data field. Paginated reads return an opaque cursor in pagination and do not accept offset. Under load the API answers 429 with a Retry-After header.
Example
curl -X GET "https://data-api.polymarket.com/v2/status"Response fields
| Field | Type | Description |
|---|---|---|
| age_seconds | integer | How old the snapshot is, in seconds. Normally under the refresh interval; a value that keeps climbing means the refresher is not completing, and the freshness figures below are that stale ON TOP of… |
| computed_at | string | When this snapshot was taken, RFC 3339 in UTC. |
| ingestion | object | Ingestion health: one cursor per `(contract, event)` stream. Every figure here is over the LIVE streams only. |
| serving | object | What API consumers actually experience: the projections behind the feeds. One headline number and the name of whichever mechanism produced it, so a single stalled projection cannot hide behind two… |
Responses
| Status | Meaning |
|---|---|
| 200 | Serving and ingestion freshness |
| 503 | No freshness measured yet, a timeout, or a serving dependency outage; retry after `Retry-After` when present |
From Polymarket's published OpenAPI spec and rate-limit tables, synced 2026-10-04.