Polymarket API endpoint
Returns price history points for one Polymarket outcome token, identified by the required `token_id`. `interval` is one of `1m`, `1h`, `6h`, `1d` (default), `1w`, `all` or `max`; `fidelity` sets minutes per point (0 means 60, max 1440); `start_ts` and `end_ts` bound the range. Each point has a Unix `timestamp` and `price`. No points returns 404.
/polymarket/token/{token_id}/price-historyPath parameters:
token_id: required Polymarket CLOB token id.Query parameters:
interval: optional history interval. Allowed values are 1m, 1h, 6h, 1d, 1w, all, and max. Defaults to 1d.fidelity: optional data point resolution in minutes. 0 uses the default 60; maximum is 1440.start_ts: optional Unix timestamp lower bound.end_ts: optional Unix timestamp upper bound.Notable response behavior:
404 when there are no points.| Field | Filled in, of 23 checked | Values in the sample |
|---|---|---|
| timestamp | 23 | 2026-10-12 to 2026-10-13 |
| price | 23 | 0.03 to 0.05, median 0.03 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| token_id (path) | string | Yes | Polymarket CLOB token id | 81927025054404355287140018940169293739219157042658469116956164881873598220211 | |
| interval | string | No | History interval Allowed values: 1m, 1h, 6h, 1d, 1w, all, max. | ||
| fidelity | integer | No | Data point resolution in minutes; 0 uses the default 60; maximum 1440 | 60 | |
| start_ts | integer | No | Optional Unix timestamp lower bound | 1780754400 | |
| end_ts | integer | No | Optional Unix timestamp upper bound | 1780840800 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/polymarket/token/81927025054404355287140018940169293739219157042658469116956164881873598220211/price-history?interval=1m" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"token_id": "81927025054404355287140018940169293739219157042658469116956164881873598220211",
"interval": "1d",
"fidelity": 60,
"points": [
{
"timestamp": 1780826405,
"price": 0.48
},
{
"timestamp": 1780839303,
"price": 0.285
}
]
}
}Request schema
No body schema
Response schema
#/definitions/polymarket.tokenPriceHistoryResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | polymarket.TokenPriceHistoryResponse | No | ||||
| data.end_ts | integer | No | 1780840800 | |||
| data.fetched_at | string | No | 2026-06-07T11:00:00Z | |||
| data.fidelity | integer | No | 60 | |||
| data.interval | string | No | 1d | |||
| data.points | array | No | ||||
| data.points[].price | number | No | 0.48 | |||
| data.points[].timestamp | integer | No | 1780826405 | |||
| data.source_url | string | No | https://clob.polymarket.com/prices-history?fidelity=60&interval=1d&market=81927025054404355287140018940169293739219157042658469116956164881873598220211 | |||
| data.start_ts | integer | No | 1780754400 | |||
| data.token_id | string | No | 81927025054404355287140018940169293739219157042658469116956164881873598220211 | |||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/polymarket/token/81927025054404355287140018940169293739219157042658469116956164881873598220211/price-history?interval=1m" \
-H "x-api-key: $CRAWLORA_API_KEY"