Prediction Markets and Derivatives — List Polymarket markets with cursor-based keyset pagination (same filters as /poly…
List Polymarket markets with cursor-based keyset pagination (same filters as /polymarket/markets) Provider: Predexon (polymarket). Tier 1 pricing — payment goes directly to the Predexon recipient wallet.
- Selected price
- $0.0075 / callPublished pricing
- Providers / implementations
- 1 / 1
- Requests · 30d
- —Loading...
- Success rate · 30d
- —Loading...
| Provider | Price / call | Requests · 30d | Performance | Access |
|---|---|---|---|---|
blockrunCurrent Prediction Markets and Derivatives — List Polymarket markets with cursor-based keyset pagination (same filters as /poly… · GET | $0.0075 / call | — | —successP50— |
Statistics use persisted gateway logs from the last 30 days up to now, including today.
Success rate = successful requests / all requests;
P50 = median latency of successful requests.
Prices reflect the published API contract. Contract revision: 3. Price update time: not supplied.
Playground
Run sends a real API request. Charges follow the published API contract.
curl \
'https://api.openany.si/v1/agent-apis/blockrun/v1/pm/polymarket/markets/keyset?limit=1&sort=volume&status=closed' \
-X GET \
-H "Authorization: Bearer $OPENANY_API_KEY" \
-H 'Content-Type: application/json'- Method
- GET
- Endpoint
https://api.openany.si/v1/agent-apis/blockrun/v1/pm/polymarket/markets/keyset- Content type
- application/json
- Authentication
Authorization: Bearer $OPENANY_API_KEY
curl \
'https://api.openany.si/v1/agent-apis/blockrun/v1/pm/polymarket/markets/keyset?limit=1&sort=volume&status=closed' \
-X GET \
-H "Authorization: Bearer $OPENANY_API_KEY" \
-H 'Content-Type: application/json'Input parameters
Fields in this listing; additional options and input encoding can vary by provider.
| Parameter | Location | Type | Required | Description |
|---|---|---|---|---|
condition_id | URL query parametersquery | array | null | No | Polymarket condition ID(s).Nested fields and variants
|
end_after | URL query parametersquery | integer | null | No | Only markets ending after this unix timestamp (seconds). minimum: 0 |
end_before | URL query parametersquery | integer | null | No | Only markets ending before this unix timestamp (seconds). minimum: 0 |
event_slug | URL query parametersquery | array | null | No | Event slug(s). The slug filter for /markets is `event_slug` (or `market_slug`), NOT `slug`.Nested fields and variants
|
limit | URL query parametersquery | integer | No | Max results to return (default 20, max 100). minimum: 1 · maximum: 100 |
market_id | URL query parametersquery | array | null | No | Filter by market ID(s)Nested fields and variants
|
market_slug | URL query parametersquery | array | null | No | Market slug(s).Nested fields and variants
|
max_price | URL query parametersquery | number | null | No | Maximum price minimum: 0 · maximum: 1 |
min_open_interest | URL query parametersquery | number | null | No | Minimum open interest (USD) minimum: 0 |
min_price | URL query parametersquery | number | null | No | Minimum price minimum: 0 · maximum: 1 |
min_trades_1d | URL query parametersquery | integer | null | No | Minimum rolling 1-day trade count minimum: 0 |
min_trades_30d | URL query parametersquery | integer | null | No | Minimum rolling 30-day trade count minimum: 0 |
min_trades_7d | URL query parametersquery | integer | null | No | Minimum rolling 7-day trade count minimum: 0 |
min_volume | URL query parametersquery | number | null | No | Minimum volume (USD) minimum: 0 |
min_volume_1d | URL query parametersquery | number | null | No | Minimum rolling 1-day volume (USD) minimum: 0 |
min_volume_30d | URL query parametersquery | number | null | No | Minimum rolling 30-day volume (USD) minimum: 0 |
min_volume_7d | URL query parametersquery | number | null | No | Minimum rolling 7-day volume (USD) minimum: 0 |
offset | URL query parametersquery | integer | No | Deprecated — use pagination_key. minimum: 0 |
pagination_key | URL query parametersquery | string | null | No | Opaque cursor from a prior response for keyset pagination. |
predexon_id | URL query parametersquery | array | null | No | Canonical cross-venue Predexon ID(s).Nested fields and variants
|
question_id | URL query parametersquery | array | null | No | Filter by question ID(s)Nested fields and variants
|
search | URL query parametersquery | string | null | No | Free-text search over market/question text (min 3 chars). Note: this param is `search` here, NOT `q` — only /markets/search uses `q`. minLength: 3 · maxLength: 100 |
sort | URL query parametersquery | string | No | Sort order for results. enum: "volume", "open_interest", "price_desc", "price_asc", "expiration", "expiration_asc", "created", "created_asc", "relevance", "volume_1d", "volume_7d", "volume_30d", "trades_1d", "trades_7d", "trades_30d", "oi_change_1d", "oi_change_7d", "oi_change_30d" |
status | URL query parametersquery | string | null | No | Filter by market status (e.g. "open", "closed"). enum: "open", "closed", null |
tags | URL query parametersquery | array | null | No | Filter by Polymarket tag(s).Nested fields and variants
|
token_id | URL query parametersquery | array | null | No | Filter by token ID(s) - matches either side_a or side_bNested fields and variants
|
Required markers inside a nested object or variant apply when that object or variant is used.
Sample response
Published response example · Documented HTTP 200; not a live result. Published documentation example. Verify the actual response after an approved call.
{
"markets": [
{
"condition_id": "0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917",
"description": "This market will resolve to “Yes” if Donald J. Trump wins the 2024 US Presidential Election. Otherwise, this market will resolve to “No.”\n\nThe resolution source for this market is the Associated Press, Fox News, and NBC. This market will resolve once all three sources call the race for the same candidate. If all three sources haven’t called the race for the same candidate by the inauguration date (January 20, 2025) this market will resolve based on who is inaugurated.",
"end_time": "2024-11-05T12:00:00Z",
"market_id": "253591",
"market_slug": "will-donald-trump-win-the-2024-us-presidential-election",
"question_id": "0xe3b1bc389210504ebcb9cffe4b0ed06ccac50561e0f24abb6379984cec030f00",
"start_time": "2024-01-04T22:58:00Z",
"status": "closed",
"title": "Will Donald Trump win the 2024 US Presidential Election?",
"winning_side": "A"
}
],
"pagination": {
"count": 1,
"has_more": true,
"limit": 1,
"pagination_key": "eyJzdiI6MTYzNjE4ODIyMi40NzcwMzMxLCJ0aWUiOiIweGRkMjI0NzJlNTUyOTIwYjg0MzgxNThlYTcyMzhiZmFkZmE0ZjczNmFhNGNlZTkxYTZiODZjMzllYWQxMTA5MTciLCJzY29wZSI6eyJzdGF0dXMiOiJjbG9zZWQiLCJtaW5fcHJpY2UiOm51bGwsIm1heF9wcmljZSI6bnVsbCwibWluX29wZW5faW50ZXJlc3QiOm51bGwsIm1pbl92b2x1bWUiOm51bGwsInRhZ3MiOm51bGwsImV2ZW50X3NsdWciOm51bGwsInNlYXJjaCI6bnVsbCwiY29uZGl0aW9uX2lkIjpudWxsLCJxdWVzdGlvbl9pZCI6bnVsbCwibWFya2V0X2lkIjpudWxsLCJtYXJrZXRfc2x1ZyI6bnVsbCwidG9rZW5faWQiOm51bGwsInByZWRleG9uX2lkIjpudWxsLCJlbmRfYWZ0ZXIiOm51bGwsImVuZF9iZWZvcmUiOm51bGwsInNvcnQiOiJ2b2x1bWUifX0="
}
}Agent integration
Copy the resource contract without sharing an API key.
View API Markdown
# Prediction Markets and Derivatives — List Polymarket markets with cursor-based keyset pagination (same filters as /poly…
List Polymarket markets with cursor-based keyset pagination (same filters as /polymarket/markets) Provider: Predexon (polymarket). Tier 1 pricing — payment goes directly to the Predexon recipient wallet.
## Available implementations
blockrun · Prediction Markets and Derivatives — List Polymarket markets with cursor-based keyset pagination (same filters as /poly…: https://openany.si/markets/apis/capabilities/blockrun-prediction-markets-and-derivatives-list-polymarket-markets-with-cursor-based-keyset-pag?offering=542f59d2-3e81-49d0-8ed5-3b0204b808e7 · $0.0075 / call
## Selected API contract
Documentation: https://openany.si/markets/apis/capabilities/blockrun-prediction-markets-and-derivatives-list-polymarket-markets-with-cursor-based-keyset-pag
Method: GET
Endpoint: https://api.openany.si/v1/agent-apis/blockrun/v1/pm/polymarket/markets/keyset
Price: $0.0075 / call
Provider: blockrun
Contract revision: 3
Price source: selected implementation in the OpenAny public API catalog. Price update time: not supplied.
Use OPENANY_API_KEY from the environment. API Key calls use your shared balance.
## Prepared request
```bash
curl \
'https://api.openany.si/v1/agent-apis/blockrun/v1/pm/polymarket/markets/keyset?limit=1&sort=volume&status=closed' \
-X GET \
-H "Authorization: Bearer $OPENANY_API_KEY" \
-H 'Content-Type: application/json'
```
## API contract
```json
{
"resource_type": "api",
"name": "Prediction Markets and Derivatives — List Polymarket markets with cursor-based keyset pagination (same filters as /poly…",
"endpoint": "https://api.openany.si/v1/agent-apis/blockrun/v1/pm/polymarket/markets/keyset",
"method": "GET",
"content_type": "none",
"execution_mode": "sync",
"authentication": {
"type": "bearer",
"environment_variable": "OPENANY_API_KEY"
},
"inputs": [
{
"description": "Polymarket condition ID(s).",
"item_type": "string",
"location": "query",
"name": "condition_id",
"nullable": true,
"required": false,
"type": "array"
},
{
"description": "Only markets ending after this unix timestamp (seconds).",
"location": "query",
"minimum": "0",
"name": "end_after",
"nullable": true,
"required": false,
"type": "integer"
},
{
"description": "Only markets ending before this unix timestamp (seconds).",
"location": "query",
"minimum": "0",
"name": "end_before",
"nullable": true,
"required": false,
"type": "integer"
},
{
"description": "Event slug(s). The slug filter for /markets is `event_slug` (or `market_slug`), NOT `slug`.",
"item_type": "string",
"location": "query",
"name": "event_slug",
"nullable": true,
"required": false,
"type": "array"
},
{
"description": "Max results to return (default 20, max 100).",
"location": "query",
"maximum": "100",
"minimum": "1",
"name": "limit",
"nullable": false,
"required": false,
"type": "integer"
},
{
"description": "Filter by market ID(s)",
"item_type": "string",
"location": "query",
"name": "market_id",
"nullable": true,
"required": false,
"type": "array"
},
{
"description": "Market slug(s).",
"item_type": "string",
"location": "query",
"name": "market_slug",
"nullable": true,
"required": false,
"type": "array"
},
{
"description": "Maximum price",
"location": "query",
"maximum": "1.0",
"minimum": "0.0",
"name": "max_price",
"nullable": true,
"required": false,
"type": "number"
},
{
"description": "Minimum open interest (USD)",
"location": "query",
"minimum": "0.0",
"name": "min_open_interest",
"nullable": true,
"required": false,
"type": "number"
},
{
"description": "Minimum price",
"location": "query",
"maximum": "1.0",
"minimum": "0.0",
"name": "min_price",
"nullable": true,
"required": false,
"type": "number"
},
{
"description": "Minimum rolling 1-day trade count",
"location": "query",
"minimum": "0",
"name": "min_trades_1d",
"nullable": true,
"required": false,
"type": "integer"
},
{
"description": "Minimum rolling 30-day trade count",
"location": "query",
"minimum": "0",
"name": "min_trades_30d",
"nullable": true,
"required": false,
"type": "integer"
},
{
"description": "Minimum rolling 7-day trade count",
"location": "query",
"minimum": "0",
"name": "min_trades_7d",
"nullable": true,
"required": false,
"type": "integer"
},
{
"description": "Minimum volume (USD)",
"location": "query",
"minimum": "0.0",
"name": "min_volume",
"nullable": true,
"required": false,
"type": "number"
},
{
"description": "Minimum rolling 1-day volume (USD)",
"location": "query",
"minimum": "0.0",
"name": "min_volume_1d",
"nullable": true,
"required": false,
"type": "number"
},
{
"description": "Minimum rolling 30-day volume (USD)",
"location": "query",
"minimum": "0.0",
"name": "min_volume_30d",
"nullable": true,
"required": false,
"type": "number"
},
{
"description": "Minimum rolling 7-day volume (USD)",
"location": "query",
"minimum": "0.0",
"name": "min_volume_7d",
"nullable": true,
"required": false,
"type": "number"
},
{
"description": "Deprecated — use pagination_key.",
"location": "query",
"minimum": "0",
"name": "offset",
"nullable": false,
"required": false,
"type": "integer"
},
{
"description": "Opaque cursor from a prior response for keyset pagination.",
"location": "query",
"name": "pagination_key",
"nullable": true,
"required": false,
"type": "string"
},
{
"description": "Canonical cross-venue Predexon ID(s).",
"item_type": "string",
"location": "query",
"name": "predexon_id",
"nullable": true,
"required": false,
"type": "array"
},
{
"description": "Filter by question ID(s)",
"item_type": "string",
"location": "query",
"name": "question_id",
"nullable": true,
"required": false,
"type": "array"
},
{
"description": "Free-text search over market/question text (min 3 chars). Note: this param is `search` here, NOT `q` — only /markets/search uses `q`.",
"location": "query",
"max_length": 100,
"min_length": 3,
"name": "search",
"nullable": true,
"required": false,
"type": "string"
},
{
"description": "Sort order for results.",
"enum_values": [
"volume",
"open_interest",
"price_desc",
"price_asc",
"expiration",
"expiration_asc",
"created",
"created_asc",
"relevance",
"volume_1d",
"volume_7d",
"volume_30d",
"trades_1d",
"trades_7d",
"trades_30d",
"oi_change_1d",
"oi_change_7d",
"oi_change_30d"
],
"location": "query",
"name": "sort",
"nullable": false,
"required": false,
"type": "string"
},
{
"description": "Filter by market status (e.g. \"open\", \"closed\").",
"enum_values": [
"open",
"closed"
],
"location": "query",
"name": "status",
"nullable": true,
"required": false,
"type": "string"
},
{
"description": "Filter by Polymarket tag(s).",
"item_type": "string",
"location": "query",
"name": "tags",
"nullable": true,
"required": false,
"type": "array"
},
{
"description": "Filter by token ID(s) - matches either side_a or side_b",
"item_type": "string",
"location": "query",
"name": "token_id",
"nullable": true,
"required": false,
"type": "array"
}
],
"billing": {
"currency": "USD",
"mode": "fixed",
"priceMicroUsd": "7500",
"rounding": null,
"unit": "call",
"unitQuantity": null
},
"examples": [
{
"http_status": 200,
"name": "Documentation example (source abbreviated)",
"request": {
"body": null,
"headers": {},
"path": {},
"query": {
"limit": 1,
"sort": "volume",
"status": "closed"
}
},
"response_body": {
"markets": [
{
"condition_id": "0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917",
"description": "This market will resolve to “Yes” if Donald J. Trump wins the 2024 US Presidential Election. Otherwise, this market will resolve to “No.”\n\nThe resolution source for this market is the Associated Press, Fox News, and NBC. This market will resolve once all three sources call the race for the same candidate. If all three sources haven’t called the race for the same candidate by the inauguration date (January 20, 2025) this market will resolve based on who is inaugurated.",
"end_time": "2024-11-05T12:00:00Z",
"market_id": "253591",
"market_slug": "will-donald-trump-win-the-2024-us-presidential-election",
"question_id": "0xe3b1bc389210504ebcb9cffe4b0ed06ccac50561e0f24abb6379984cec030f00",
"start_time": "2024-01-04T22:58:00Z",
"status": "closed",
"title": "Will Donald Trump win the 2024 US Presidential Election?",
"winning_side": "A"
}
],
"pagination": {
"count": 1,
"has_more": true,
"limit": 1,
"pagination_key": "eyJzdiI6MTYzNjE4ODIyMi40NzcwMzMxLCJ0aWUiOiIweGRkMjI0NzJlNTUyOTIwYjg0MzgxNThlYTcyMzhiZmFkZmE0ZjczNmFhNGNlZTkxYTZiODZjMzllYWQxMTA5MTciLCJzY29wZSI6eyJzdGF0dXMiOiJjbG9zZWQiLCJtaW5fcHJpY2UiOm51bGwsIm1heF9wcmljZSI6bnVsbCwibWluX29wZW5faW50ZXJlc3QiOm51bGwsIm1pbl92b2x1bWUiOm51bGwsInRhZ3MiOm51bGwsImV2ZW50X3NsdWciOm51bGwsInNlYXJjaCI6bnVsbCwiY29uZGl0aW9uX2lkIjpudWxsLCJxdWVzdGlvbl9pZCI6bnVsbCwibWFya2V0X2lkIjpudWxsLCJtYXJrZXRfc2x1ZyI6bnVsbCwidG9rZW5faWQiOm51bGwsInByZWRleG9uX2lkIjpudWxsLCJlbmRfYWZ0ZXIiOm51bGwsImVuZF9iZWZvcmUiOm51bGwsInNvcnQiOiJ2b2x1bWUifX0="
}
}
}
]
}
```Error handling
| Status | Next step |
|---|---|
400 | Check the offering and request fields. |
401 / 403 | Verify your credentials and access permissions. |
402 | Inspect the selected access mode and returned payment requirements. |
429 | Respect the returned rate limit and retry guidance. |
5xx | Inspect the error and usage record before retrying a paid operation. |
Documentation example (source abbreviated)
Published documentation example. Verify the actual response after an approved call.
Prepare your environment
Use a terminal with cURL installed.
Use an OpenAny API key with shared-balance access. Confirm availability and price before running; a call may charge your balance.
Set the key in your terminal using the hidden prompt below. Keep its value out of source files and logs.
Terminal · macOS / Linuxprintf 'OpenAny API key: ' read -r -s OPENANY_API_KEY export OPENANY_API_KEY printf '\n'Run the request
Paste the complete command below into your terminal.
Values to replace before running 26
Review these request fields before running. Keep the published provider and request method unchanged.
condition_id- Polymarket condition ID(s).
end_after- Only markets ending after this unix timestamp (seconds).
end_before- Only markets ending before this unix timestamp (seconds).
event_slug- Event slug(s). The slug filter for /markets is `event_slug` (or `market_slug`), NOT `slug`.
limit- Max results to return (default 20, max 100).
market_id- Filter by market ID(s)
market_slug- Market slug(s).
max_price- Maximum price
min_open_interest- Minimum open interest (USD)
min_price- Minimum price
min_trades_1d- Minimum rolling 1-day trade count
min_trades_30d- Minimum rolling 30-day trade count
min_trades_7d- Minimum rolling 7-day trade count
min_volume- Minimum volume (USD)
min_volume_1d- Minimum rolling 1-day volume (USD)
min_volume_30d- Minimum rolling 30-day volume (USD)
min_volume_7d- Minimum rolling 7-day volume (USD)
offset- Deprecated — use pagination_key.
pagination_key- Opaque cursor from a prior response for keyset pagination.
predexon_id- Canonical cross-venue Predexon ID(s).
question_id- Filter by question ID(s)
search- Free-text search over market/question text (min 3 chars). Note: this param is `search` here, NOT `q` — only /markets/search uses `q`.
sort- Sort order for results.
status- Filter by market status (e.g. "open", "closed").
tags- Filter by Polymarket tag(s).
token_id- Filter by token ID(s) - matches either side_a or side_b
Terminal · cURLcurl \ 'https://api.openany.si/v1/agent-apis/blockrun/v1/pm/polymarket/markets/keyset?limit=1&sort=volume&status=closed' \ -X GET \ -H "Authorization: Bearer $OPENANY_API_KEY" \ -H 'Content-Type: application/json'Check the response
Published response example · Documented HTTP 200; not a live result.
Sample response · not a live result{ "markets": [ { "condition_id": "0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917", "description": "This market will resolve to “Yes” if Donald J. Trump wins the 2024 US Presidential Election. Otherwise, this market will resolve to “No.”\n\nThe resolution source for this market is the Associated Press, Fox News, and NBC. This market will resolve once all three sources call the race for the same candidate. If all three sources haven’t called the race for the same candidate by the inauguration date (January 20, 2025) this market will resolve based on who is inaugurated.", "end_time": "2024-11-05T12:00:00Z", "market_id": "253591", "market_slug": "will-donald-trump-win-the-2024-us-presidential-election", "question_id": "0xe3b1bc389210504ebcb9cffe4b0ed06ccac50561e0f24abb6379984cec030f00", "start_time": "2024-01-04T22:58:00Z", "status": "closed", "title": "Will Donald Trump win the 2024 US Presidential Election?", "winning_side": "A" } ], "pagination": { "count": 1, "has_more": true, "limit": 1, "pagination_key": "eyJzdiI6MTYzNjE4ODIyMi40NzcwMzMxLCJ0aWUiOiIweGRkMjI0NzJlNTUyOTIwYjg0MzgxNThlYTcyMzhiZmFkZmE0ZjczNmFhNGNlZTkxYTZiODZjMzllYWQxMTA5MTciLCJzY29wZSI6eyJzdGF0dXMiOiJjbG9zZWQiLCJtaW5fcHJpY2UiOm51bGwsIm1heF9wcmljZSI6bnVsbCwibWluX29wZW5faW50ZXJlc3QiOm51bGwsIm1pbl92b2x1bWUiOm51bGwsInRhZ3MiOm51bGwsImV2ZW50X3NsdWciOm51bGwsInNlYXJjaCI6bnVsbCwiY29uZGl0aW9uX2lkIjpudWxsLCJxdWVzdGlvbl9pZCI6bnVsbCwibWFya2V0X2lkIjpudWxsLCJtYXJrZXRfc2x1ZyI6bnVsbCwidG9rZW5faWQiOm51bGwsInByZWRleG9uX2lkIjpudWxsLCJlbmRfYWZ0ZXIiOm51bGwsImVuZF9iZWZvcmUiOm51bGwsInNvcnQiOiJ2b2x1bWUifX0=" } }
Common questions
Do I need a separate key for every provider?
Use your OpenAny API key for standard API access. Read it from OPENANY_API_KEY in your environment and keep it out of prompts, source code and logs.
Are these providers interchangeable?
No. Each offering has its own inputs, pricing and response contract. Selecting a catalog offering does not establish automatic routing or fallback. Confirm the service contract before calling.
How is this API billed?
API-key calls use your shared balance at the selected implementation's published rate. Check the billing unit and request-specific pricing rules before making a paid call. Recorded usage determines the final charge under that contract.
Where do the price and contract come from?
The selected implementation publishes its provider, request contract, revision and billing rules through OpenAny's public API catalog. A revision number identifies a contract version, not a price update date. A price update timestamp is not supplied; do not treat a page date as one.
How do OpenAny Balance and x402 differ?
OpenAny Balance uses an API key and one shared balance. Card, USDC and x402 top-ups, card auto top-up and USDC subscriptions fund that balance; available routes appear on the Credits page. Direct x402 is a separate pay-per-request flow, available only on listings that show it and requiring an authorized payment client.
Does Playground send a paid request?
Yes. After you sign in, Run sends a real API request using an active OpenAny API key. Charges follow the published API contract and use your shared balance. Selecting an implementation, editing inputs and viewing sample responses do not send requests.