GET
/markets/keysetList markets (keyset pagination)
Returns markets using cursor-based (keyset) pagination for stable, efficient paging through large result sets. Use `next_cursor` from each response as `after_cursor` in the next request. The `offset` parameter is explicitly rejected; use `after_cursor` instead.
- Base URL
- https://gamma-api.polymarket.com
- Auth
- Public, no key
- Rate limit
- 300 req / 10s (30 per second)
- Limit applies to
- /markets
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| limit | query | integer | no | Maximum number of results to return (max 100) |
| order | query | string | no | Comma-separated list of JSON field names to order by, e.g. volume_num,liquidity_num |
| ascending | query | boolean | no | Sort direction. Only used when order is set. |
| after_cursor | query | string | no | Opaque cursor token from a previous response's next_cursor |
| offset | query | integer | no | Not allowed. Returns 422 if provided. |
| id | query | integer[] | no | |
| slug | query | string[] | no | |
| closed | query | boolean | no | |
| decimalized | query | boolean | no | |
| clob_token_ids | query | string[] | no | |
| condition_ids | query | string[] | no | |
| question_ids | query | string[] | no | |
| liquidity_num_min | query | number | no | |
| liquidity_num_max | query | number | no | |
| volume_num_min | query | number | no | |
| volume_num_max | query | number | no | |
| start_date_min | query | string | no | |
| start_date_max | query | string | no | |
| end_date_min | query | string | no | |
| end_date_max | query | string | no | |
| tag_id | query | integer[] | no | |
| related_tags | query | boolean | no | |
| tag_match | query | string | no | |
| cyom | query | boolean | no | |
| rfq_enabled | query | boolean | no | |
| uma_resolution_status | query | string | no | |
| game_id | query | string | no | |
| sports_market_types | query | string[] | no | |
| include_tag | query | boolean | no | When true, includes Tags relation on each market |
| locale | query | string | no |
Example
curl -X GET "https://gamma-api.polymarket.com/markets/keyset"Response fields
| Field | Type | Description |
|---|---|---|
| markets | object[] | Array of Market objects. Empty array if none found. |
| next_cursor | string | Opaque cursor token for fetching the next page. Present only when the number of returned markets equals the effective limit. Omitted on the last page. |
Responses
| Status | Meaning |
|---|---|
| 200 | Paginated list of markets. Includes Events and Events.Series relations. Tags included only when include_tag=true. Nested clob_rewards and fee_schedule are populated on each market. |
| 422 | Validation error. Returned when offset is provided, cursor is invalid, order fields are not valid, or other filter validation fails. |
| 500 | Internal server error (DB failures, cursor encode failures) |
| 503 | Service unavailable when keyset pagination is not configured |
Related endpoints
- GET /markets Gamma API
- GET /markets/{id} Gamma API
- GET /markets/{id}/description Gamma API
- GET /markets/{id}/tags Gamma API
- GET /markets/slug/{slug} Gamma API
- POST /markets/information Gamma API
From Polymarket's published OpenAPI spec and rate-limit tables, synced 2026-10-04.