Incentives API
The Incentives API exposes the active incentive programs and the rewards you have earned. For background on how programs work and their reward formulas, see the Incentive Programs overview.
Base URL
https://api.polymarket.us
Field casing. Query parameters are snake_case (e.g. page_size). Response bodies are lowerCamelCase (e.g. marketSlug). Sending a camelCase query parameter (e.g. pageSize) is silently ignored and the default is used.
Endpoints
| Method | Endpoint | Auth | Description |
|---|
GET | /v1/incentives | Required | Get incentive programs |
GET | /v1/incentives/earnings | Required | Get your incentive earnings |
Get Incentive Programs
Returns active and historical incentive programs grouped by market.
GET /v1/incentives?page_size=10&symbols=aec-nba-bos-nyk-2026-04-01
Query Parameters
| Parameter | Type | Required | Description |
|---|
page_size | integer | No | Number of markets per page. Use with page_token for pagination. |
page_token | string | No | Pagination token from a previous response’s nextPageToken. |
symbols | string[] | No | Filter by market symbols. |
order_by | string | No | Sort field. Defaults to created_at. |
order_direction | string | No | Sort direction: asc or desc. Defaults to desc. |
statuses | string[] | No | Filter by status: active, closed, or pending. |
program_type | string | No | Filter by program type, such as liquidityProgram or volumeProgram. |
query | string | No | Case-insensitive substring match on market slug. |
instrument_states | string[] | No | Filter by instrument lifecycle state. |
category | string | No | Filter by exact event category. |
subcategory | string | No | Filter by exact event subcategory. |
Response
{
"programs": [
{
"marketSlug": "aec-nba-bos-nyk-2026-04-01",
"instrumentState": "INSTRUMENT_STATE_OPEN",
"category": "sports",
"subcategory": "basketball",
"eventStartTime": "2026-04-01T23:30:00Z",
"instrumentProduct": "moneyline",
"timePeriods": [
{
"programId": "nba_t1_ml_early",
"programType": "liquidityProgram",
"start": "2026-03-28T04:00:00Z",
"end": "2026-04-01T21:00:00Z",
"rewardPool": 3000.0,
"status": "closed",
"discountFactor": 0.40,
"targetSize": 20000,
"period": "early",
"createdAt": "2026-03-28T01:00:00Z"
},
{
"programId": "nba_t1_ml_day_of",
"programType": "volumeProgram",
"start": "2026-04-01T21:00:00Z",
"rewardPool": 3000.0,
"status": "active",
"minTakerNotional": 100,
"period": "day_of",
"createdAt": "2026-03-28T01:00:00Z"
}
]
}
],
"nextPageToken": "abc123"
}
Ongoing programs omit end until an end time is set.
IncentiveProgram Fields
| Field | Type | Description |
|---|
marketSlug | string | Market identifier |
timePeriods | TimePeriod[] | Incentive periods for this market |
instrumentState | string | EP3 lifecycle state of the instrument |
category | string | Event category from instrument metadata |
subcategory | string | Event subcategory from instrument metadata |
eventStartTime | string | Event start time from instrument metadata |
instrumentProduct | string | Product from instrument metadata |
TimePeriod Fields
| Field | Type | Description |
|---|
programId | string | Unique program period identifier |
programType | string | Program type (e.g. liquidityProgram) |
start | string | ISO 8601 start timestamp |
end | string | ISO 8601 end timestamp (optional; omitted for ongoing programs) |
rewardPool | number | Total reward pool for this period in USD |
status | string | active, closed, or pending |
discountFactor | number | Discount factor for scoring (optional; omitted if unset) |
targetSize | integer | Minimum book size to qualify (optional; omitted if unset) |
period | string | Reward period type: early, day_of, live, etc. |
createdAt | string | ISO 8601 timestamp when the program was created |
minTakerNotional | integer | Minimum taker notional for volume programs (optional) |
Get Incentive Earnings
Returns rewards earned by the authenticated caller. Each entry sums all payouts for a single (market, date) pair, where date is in Eastern Time.
GET /v1/incentives/earnings?start_date=2026-03-21&market_slug=aec-nba-bos-nyk-2026-04-01
Query Parameters
| Parameter | Type | Required | Description |
|---|
start_date | string | No | Start date filter (YYYY-MM-DD). Defaults to program launch. |
end_date | string | No | End date filter (YYYY-MM-DD). Omit for through-today. |
market_slug | string | No | Filter by market slug. |
program_type | string | No | Filter by program type (e.g. liquidityProgram). |
Response
{
"rewards": [
{
"reward": 1828.62,
"programType": "liquidityProgram",
"marketSlug": "tsc-nba-ny-okc-2026-03-29-223pt5",
"date": "2026-03-30",
"status": "PAID"
},
{
"reward": 325.97,
"programType": "liquidityProgram",
"marketSlug": "aec-cbb-cabap-kan-2026-03-20",
"date": "2026-03-29",
"status": "PENDING"
}
]
}
Each daily entry represents rewards earned from midnight-to-midnight ET. Callers with no rewards receive {"rewards":[]}.
UserReward Fields
| Field | Type | Description |
|---|
reward | number | Reward amount in USD (sum of all payouts for this market on this date) |
programType | string | Program type (e.g. liquidityProgram) |
marketSlug | string | Market identifier |
date | string | Reward date in Eastern Time (YYYY-MM-DD) |
status | string | Payout disposition: PAID, PENDING, or SKIPPED |
Rate Limits
| Endpoint | Rate Limit |
|---|
GET /v1/incentives | 5 requests / second |
GET /v1/incentives/earnings | 5 requests / second |