Polymarket API endpoint
Returns public rewards-market rows used by Polymarket's `/rewards` page. The `order_by` enum accepts `market`, `earnings`, `max_spread`, `min_size`, `rate_per_day`, `price`, `earning_percentage`, and `spread`; the `position` enum accepts `asc` and `desc`; the `tag_slug` enum accepts `all`, `politics`, `sports`, `crypto`, `pop-culture`, `middle-east`, `business`, and `science`.
/polymarket/rewards/marketsQuery parameters:
order_by: optional rewards market sort. Allowed values: market, earnings, max_spread, min_size, rate_per_day, price, earning_percentage, spread. Defaults to market.position: optional sort direction. Allowed values: asc, desc. Defaults to desc.date: optional reward program date in YYYY-MM-DD format. Defaults to today in UTC.q: optional market question search text.tag_slug: optional rewards category. Allowed values: all, politics, sports, crypto, pop-culture, middle-east, business, science. Defaults to all.cursor: optional rewards cursor from a prior response. Defaults to MA==.limit: optional maximum rows to return. Defaults to 100; maximum 100.Notable response behavior:
/rewards page.max_spread, min_size, and rate_per_day are translated to the upstream app sort keys.| Field | Filled in, of 40 checked | Values in the sample |
|---|---|---|
| market_id | 40 | |
| condition_id | 40 | |
| question | 40 | “Will the Carolina Hurricanes win the 2026-27 NHL Metropolit…” and 39 other values |
| market_slug | 40 | |
| market_url | 40 | polymarket.com |
| event_id | 40 | |
| event_slug | 40 | |
| event_url | 40 | polymarket.com |
| maker_address | 40 | |
| volume_24h | 40 | 0 |
| rewards_max_spread | 40 | 4.5 to 6.5, median 4.5 |
| rewards_min_size | 40 | 20 |
| earning_percentage | 40 | 0 |
| spread | 40 | 0.02 to 0.98, median 0.04 |
| market_competitiveness | 40 | 0 to 729.42, median 1.36 |
| daily_reward_rate | 40 | 2 to 200, median 50 |
| total_configured_rewards | 40 | 0 |
| tokens | 40 | median 2 entries |
| rewards_config | 40 | median 1 entry |
| image_url | 2 | polymarket-upload.s3.us-east-2.amazonaws.com |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| order_by | string | No | Rewards market sort Allowed values: market, earnings, max_spread, min_size, rate_per_day, price, earning_percentage, spread. | ||
| position | string | No | Sort direction Allowed values: asc, desc. | ||
| date | string | No | today in UTC | Reward program date in YYYY-MM-DD format; defaults to today in UTC | 2026-06-07 |
| q | string | No | Optional market question search text | bitcoin | |
| tag_slug | string | No | Rewards category Allowed values: all, politics, sports, crypto, pop-culture, middle-east, business, science. | ||
| cursor | string | No | MA== | Optional rewards cursor from a prior response; defaults to MA== | MA== |
| limit | integer | No | 100 and supports up to 100 | Maximum rows, defaults to 100 and supports up to 100 | 100 |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/polymarket/rewards/markets?order_by=market&position=asc&q=coffee&tag_slug=all&limit=10" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"order_by": "market",
"position": "desc",
"date": "2026-06-07",
"tag_slug": "all",
"cursor": "MA==",
"next_cursor": "MTAw",
"limit": 100,
"count": 100,
"total_count": 5430,
"has_more": true,
"markets": [
{
"market_id": "2461586",
"condition_id": "0x2d293b8d8141edcc3317f6e677a01623dc482e7fe8eb4c4e207c9a0987c37d22",
"question": "StarCraft II: herO vs Cure (BO7)",
"market_slug": "sc2-hero-cure-2026-06-07",
"event_slug": "sc2-hero-cure-2026-06-07",
"volume_24h": 79.9901,
"rewards_max_spread": 4.5,
"rewards_min_size": 50,
"daily_reward_rate": 10.00036,
"tokens": [
{
"token_id": "49033998602764986470838384384660931821099068366428064235699748485619139146655",
"outcome": "herO",
"price": 0.995
}
]
}
]
}
}Request schema
No body schema
Response schema
#/definitions/polymarket.rewardsMarketsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | polymarket.RewardsMarketsResponse | No | ||||
| data.count | integer | No | 100 | Number of reward markets returned on this page. | ||
| data.cursor | string | No | MA== | Cursor that was used to fetch this page. | ||
| data.date | string | No | 2026-06-07 | Reward program date the markets apply to, in YYYY-MM-DD. | ||
| data.fetched_at | string | No | 2026-06-07T11:00:00Z | Time the data was fetched, in UTC (RFC 3339). | ||
| data.has_more | boolean | No | `true` when more reward markets are available after this page. | |||
| data.limit | integer | No | 100 | Maximum number of rows requested. | ||
| data.markets | array | No | Reward markets on this page, one item per market. | |||
| data.markets[].condition_id | string | No | 0x2d293b8d8141edcc3317f6e677a01623dc482e7fe8eb4c4e207c9a0987c37d22 | Condition id that identifies the market on Polymarket. | ||
| data.markets[].daily_reward_rate | number | No | 10.00036 | Daily reward rate offered for the market. | ||
| data.markets[].earning_percentage | number | No | 0 | Earning percentage Polymarket shows for the market. | ||
| data.markets[].earnings | array | No | Reward earnings records for the market, as Polymarket returns them. | |||
| data.markets[].event_id | string | No | 568951 | Polymarket id of the event the market belongs to. | ||
| data.markets[].event_slug | string | No | sc2-hero-cure-2026-06-07 | URL slug of the event the market belongs to. | ||
| data.markets[].event_url | string | No | https://polymarket.com/event/sc2-hero-cure-2026-06-07 | Link to the event on polymarket.com. | ||
| data.markets[].image_url | string | No | URL of the market's image. | |||
| data.markets[].maker_address | string | No | 0x0000000000000000000000000000000000000000 | Maker address Polymarket reports for the market's rewards. | ||
| data.markets[].market_competitiveness | number | No | 2.83 | Competitiveness score Polymarket shows for the market's rewards. | ||
| data.markets[].market_id | string | No | 2461586 | Polymarket market id. | ||
| data.markets[].market_slug | string | No | sc2-hero-cure-2026-06-07 | URL slug of the market. | ||
| data.markets[].market_url | string | No | https://polymarket.com/event/sc2-hero-cure-2026-06-07/sc2-hero-cure-2026-06-07 | Link to the market on polymarket.com. | ||
| data.markets[].question | string | No | StarCraft II: herO vs Cure (BO7) - Global StarCraft II League Playoffs | Question the market asks. | ||
| data.markets[].rewards_config | array | No | Reward programs configured for the market, one item per program. | |||
| data.markets[].rewards_config[].asset_address | string | No | 0xC011a7E12a19f7B1f670d46F03B03f3342E82DFB | Contract address of the token paid out as the reward. | ||
| data.markets[].rewards_config[].end_date | string | No | 2500-12-31 | Date the reward program ends, in YYYY-MM-DD. | ||
| data.markets[].rewards_config[].id | integer | No | 0 | Id of the reward program configuration. | ||
| data.markets[].rewards_config[].rate_per_day | number | No | 10.00036 | Reward amount paid per day. | ||
| data.markets[].rewards_config[].start_date | string | No | 2026-06-07 | Date the reward program starts, in YYYY-MM-DD. | ||
| data.markets[].rewards_config[].total_rewards | number | No | 0 | Total reward amount configured for the program. | ||
| data.markets[].rewards_max_spread | number | No | 4.5 | Maximum spread an order can have and still qualify for rewards. | ||
| data.markets[].rewards_min_size | number | No | 50 | Minimum order size that qualifies for rewards. | ||
| data.markets[].spread | number | No | 0.01 | Current spread of the market. | ||
| data.markets[].tokens | array | No | Outcome tokens of the market with their prices, one item per outcome. | |||
| data.markets[].tokens[].outcome | string | No | herO | Name of the outcome the token represents. | ||
| data.markets[].tokens[].price | number | No | 0.995 | Current price of the outcome token. | ||
| data.markets[].tokens[].token_id | string | No | 49033998602764986470838384384660931821099068366428064235699748485619139146655 | Token id of the outcome. | ||
| data.markets[].total_configured_rewards | number | No | 0 | Total rewards configured for the market. | ||
| data.markets[].volume_24h | number | No | 79.9901 | Trading volume of the market over the last 24 hours. | ||
| data.next_cursor | string | No | MTAw | Cursor to pass to fetch the next page. | ||
| data.order_by | string | No | market | Field the markets are sorted by, for example `market`. | ||
| data.position | string | No | desc | Sort direction applied: `asc` or `desc`. | ||
| data.q | string | No | bitcoin | Market question search text that was applied. | ||
| data.source_url | string | No | https://polymarket.com/api/rewards/markets?orderBy=market | URL the data was read from. | ||
| data.tag_slug | string | No | all | Rewards category the markets were filtered by, for example `all` or `politics`. | ||
| data.total_count | integer | No | 5430 | Total number of reward markets matching the filters. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/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/rewards/markets?order_by=market&position=asc&q=coffee&tag_slug=all&limit=10" \
-H "x-api-key: $CRAWLORA_API_KEY"