# Polymarket List markets (keyset pagination) API

> List markets (keyset pagination) from Polymarket. Returns the official Polymarket API response unchanged.

Source: https://www.sandbase.ai/model/polymarket/markets-keyset
API reference: https://www.sandbase.ai/model/polymarket/markets-keyset/docs

## Facts

- Provider: Polymarket
- Type: Data API
- Endpoint: `POST https://api.sandbase.ai/v1/api/polymarket/markets-keyset`
- Price: $0.0007 per call
- Free allowance: 100 calls per organization per UTC day, shared across eligible APIs
- Capabilities: api, polymarket, prediction markets
- Billing: pay per use from one SandBase balance; no provider account or subscription needed

## Call it

`POST https://api.sandbase.ai/v1/api/polymarket/markets-keyset` with `Authorization: Bearer $SANDBASE_API_KEY` and the parameters as a JSON body.

| Parameter | Type | Required | Allowed values |
| --- | --- | --- | --- |
| `after_cursor` | string | no |  |
| `ascending` | boolean | no |  |
| `clob_token_ids` | array | no |  |
| `closed` | boolean | no | any |
| `condition_ids` | array | no |  |
| `cyom` | boolean | no |  |
| `decimalized` | boolean | no |  |
| `end_date_max` | string | no |  |
| `end_date_min` | string | no |  |
| `game_id` | string | no |  |
| `id` | array | no |  |
| `include_tag` | boolean | no |  |
| `limit` | integer | no |  |
| `liquidity_num_max` | number | no |  |
| `liquidity_num_min` | number | no |  |
| `locale` | string | no |  |
| `offset` | integer | no |  |
| `order` | string | no |  |
| `question_ids` | array | no |  |
| `related_tags` | boolean | no |  |
| `rfq_enabled` | boolean | no |  |
| `slug` | array | no |  |
| `sports_market_types` | array | no |  |
| `start_date_max` | string | no |  |
| `start_date_min` | string | no |  |
| `tag_id` | array | no |  |
| `tag_match` | string | no |  |
| `uma_resolution_status` | string | no |  |
| `volume_num_max` | number | no |  |
| `volume_num_min` | number | no |  |

## FAQ

### How do I use the Polymarket List markets (keyset pagination) API?

Send a POST request to https://api.sandbase.ai/v1/api/polymarket/markets-keyset with your SandBase API key in the Authorization header (Bearer) and the parameters as a JSON body. You can also try it in the Playground on this page without writing code.

### How much does the Polymarket List markets (keyset pagination) API cost?

$0.0007 per call. Every organization gets 100 free calls per UTC day, shared across eligible SandBase APIs including this one; after that each call is billed at this price from your SandBase balance. There is no subscription.

### What parameters does the Polymarket List markets (keyset pagination) API accept?

No parameters are required. Optional: after_cursor (string), ascending (boolean), clob_token_ids (array), closed (one of any), condition_ids (array) and cyom (boolean) and 24 more. The Parameters table and the Playground on this page list every field.

### What does the Polymarket List markets (keyset pagination) API return?

A JSON response returned in the same HTTP request (synchronous).

### Do I need a Polymarket developer account or API key?

No. Polymarket List markets (keyset pagination) runs through SandBase, so one SandBase API key covers this endpoint and every other API and model in the catalog. You do not need to apply for Polymarket API access separately.

## README

### Polymarket List markets (keyset pagination) API

List markets (keyset pagination) from Polymarket. Returns the official Polymarket API response unchanged.

The response is the official Polymarket API response, unchanged.

#### Request

```bash
curl -X POST "https://api.sandbase.ai/v1/run" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "polymarket/markets-keyset"}'
```

#### Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `after_cursor` | string | No | Opaque cursor token from a previous response's next_cursor |
| `ascending` | boolean | No | Sort direction. Only used when order is set. |
| `clob_token_ids` | array | No | clob_token_ids |
| `closed` | boolean | No | Filter by closed state. Omitted or false returns open markets; true returns closed markets. Use any (case-insensitive) to include both states in an identifier l |
| `condition_ids` | array | No | condition_ids |
| `cyom` | boolean | No | cyom |
| `decimalized` | boolean | No | decimalized |
| `end_date_max` | string | No | end_date_max |
| `end_date_min` | string | No | end_date_min |
| `game_id` | string | No | game_id |
| `id` | array | No | id |
| `include_tag` | boolean | No | When true, includes Tags relation on each market |
| `limit` | integer | No | Maximum number of results to return (max 100) |
| `liquidity_num_max` | number | No | liquidity_num_max |
| `liquidity_num_min` | number | No | liquidity_num_min |
| `locale` | string | No | locale |
| `offset` | integer | No | Not allowed. Returns 422 if provided. |
| `order` | string | No | Comma-separated list of JSON field names to order by, e.g. volume_num,liquidity_num |
| `question_ids` | array | No | question_ids |
| `related_tags` | boolean | No | related_tags |
| `rfq_enabled` | boolean | No | rfq_enabled |
| `slug` | array | No | slug |
| `sports_market_types` | array | No | sports_market_types |
| `start_date_max` | string | No | start_date_max |
| `start_date_min` | string | No | start_date_min |
| `tag_id` | array | No | tag_id |
| `tag_match` | string | No | tag_match |
| `uma_resolution_status` | string | No | uma_resolution_status |
| `volume_num_max` | number | No | volume_num_max |
| `volume_num_min` | number | No | volume_num_min |

#### Pricing

Flat price per call. Failed calls are not charged.
