Polymarket API endpoint
Returns a public market liquidity snapshot that joins market detail with public CLOB market data when token ids are available. This endpoint is not a trading endpoint and does not require a Polymarket user token, wallet signature, cookies, or personal account authentication.
/polymarket/market/condition/{condition_id}/liquidityPath parameters:
condition_id: required Polymarket market condition id.Notable response behavior:
| Field | In the sample | Value in the sample |
|---|---|---|
| id | Has a value | |
| slug | Has a value | |
| condition_id | Has a value | |
| source_urls | Has a value | 6 entries |
| market.id | Has a value | |
| market.slug | Has a value | |
| market.condition_id | Has a value | |
| market.question | Has a value | “Putin out as President of Russia by December 31, 2026?” |
| market.active | Has a value | true |
| market.closed | Has a value | false |
| market.end_date | Has a value | 2027-01-01 |
| market.volume | Has a value | 25,271,599.45 |
| market.volume_24h | Has a value | 378,733.58 |
| market.liquidity | Has a value | 617,108.65 |
| market.best_bid | Has a value | 0.03 |
| market.best_ask | Has a value | 0.03 |
| market.last_trade_price | Has a value | 0.03 |
| market.token_ids | Has a value | |
| market.outcomes | Has a value | 2 entries |
| clob_market.condition_id | Has a value | |
| clob_market.question_id | Has a value | |
| clob_market.question | Has a value | “Putin out as President of Russia by December 31, 2026?” |
| clob_market.description | Has a value | 840 characters |
| clob_market.market_slug | Has a value | |
| clob_market.market_url | Has a value | polymarket.com |
| clob_market.end_date | Has a value | 2027-01-01 |
| clob_market.enable_order_book | Has a value | true |
| clob_market.active | Has a value | true |
| clob_market.closed | Has a value | false |
| clob_market.archived | Has a value | false |
| clob_market.accepting_orders | Has a value | true |
| clob_market.accepting_order_timestamp | Has a value | 2025-07-06 |
| clob_market.minimum_order_size | Has a value | 5 |
| clob_market.minimum_tick_size | Has a value | 0 |
| clob_market.notifications_enabled | Has a value | true |
| clob_market.neg_risk | Has a value | false |
| clob_market.icon_url | Has a value | polymarket-upload.s3.us-east-2.amazonaws.com |
| clob_market.image_url | Has a value | polymarket-upload.s3.us-east-2.amazonaws.com |
| clob_market.rewards | Has a value | |
| clob_market.is_50_50_outcome | Has a value | false |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| condition_id (path) | string | Yes | Polymarket market condition id | 0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/polymarket/market/condition/0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327/liquidity" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"condition_id": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327",
"market": {
"condition_id": "0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327"
},
"tokens": [
{
"outcome": "Yes",
"midpoint": 0.16,
"spread": 0.01
}
]
}
}Request schema
No body schema
Response schema
#/definitions/polymarket.marketLiquidityResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | polymarket.MarketLiquidityResponse | No | ||||
| data.clob_market | object | No | Order-book trading settings and outcome prices for the market. | |||
| data.clob_market.accepting_order_timestamp | string | No | Timestamp from which the market accepts orders. | |||
| data.clob_market.accepting_orders | boolean | No | `true` when the market currently accepts orders. | |||
| data.clob_market.active | boolean | No | `true` when the market is active. | |||
| data.clob_market.archived | boolean | No | `true` when the market is archived. | |||
| data.clob_market.closed | boolean | No | `true` when the market is closed. | |||
| data.clob_market.condition_id | string | No | 0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327 | Condition id that identifies the market on Polymarket. | ||
| data.clob_market.description | string | No | Market description, including its resolution rules as Polymarket shows them. | |||
| data.clob_market.enable_order_book | boolean | No | `true` when the order book is enabled for the market. | |||
| data.clob_market.end_date | string | No | 2026-06-08T00:00:00Z | Date and time the market is scheduled to end (ISO 8601). | ||
| data.clob_market.game_start_time | string | No | 2026-06-07T20:30:00Z | Start time of the game the market is about (ISO 8601). Omitted when not provided. | ||
| data.clob_market.icon_url | string | No | URL of the market's icon image. | |||
| data.clob_market.image_url | string | No | URL of the market's main image. | |||
| data.clob_market.is_50_50_outcome | boolean | No | `true` when the market is flagged as resolving 50-50. | |||
| data.clob_market.maker_base_fee | integer | No | 1000 | Base fee charged to makers on the market. | ||
| data.clob_market.market_slug | string | No | codmw-par-tex-2026-06-07-game4 | URL slug of the market. | ||
| data.clob_market.market_url | string | No | https://polymarket.com/event/codmw-par-tex-2026-06-07/codmw-par-tex-2026-06-07-game4 | Link to the market on polymarket.com. | ||
| data.clob_market.minimum_order_size | number | No | 5 | Smallest order size the market accepts. | ||
| data.clob_market.minimum_tick_size | number | No | 0.01 | Smallest price increment the market accepts. | ||
| data.clob_market.neg_risk | boolean | No | `true` when the market is part of a negative-risk group of linked outcomes. | |||
| data.clob_market.neg_risk_market_id | string | No | Id of the negative-risk group the market belongs to. | |||
| data.clob_market.neg_risk_request_id | string | No | Request id of the negative-risk group the market belongs to. | |||
| data.clob_market.notifications_enabled | boolean | No | `true` when notifications are enabled for the market. | |||
| data.clob_market.question | string | No | Call of Duty: Paris Gentle Mates vs OpTic Texas - Game 4 Winner | Question the market asks. | ||
| data.clob_market.question_id | string | No | 0xf693b08c99a00ca87098bc122ccc956434c2ac8720d8ed77e612d008cf33c2c1 | Id of the question the market resolves. | ||
| data.clob_market.rewards | object | No | Liquidity reward settings for the market. | |||
| data.clob_market.rewards.max_spread | number | No | 2.5 | Maximum spread an order can have and still qualify for rewards. | ||
| data.clob_market.rewards.min_size | number | No | 500 | Minimum order size that qualifies for rewards. | ||
| data.clob_market.rewards.rates | array | No | Daily reward rates, one item per reward asset. | |||
| data.clob_market.rewards.rates[].asset_address | string | No | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 | Contract address of the token paid out as the reward. | ||
| data.clob_market.rewards.rates[].rewards_daily_rate | number | No | 5 | Reward amount paid per day in this asset. | ||
| data.clob_market.seconds_delay | integer | No | 1 | Delay applied to orders on the market, in seconds. | ||
| data.clob_market.tags | array | No | Tag labels attached to the market. | |||
| data.clob_market.taker_base_fee | integer | No | 1000 | Base fee charged to takers on the market. | ||
| data.clob_market.tokens | array | No | Outcome tokens of the market, one item per outcome. | |||
| data.clob_market.tokens[].outcome | string | No | Paris Gentle Mates | Name of the outcome the token represents. | ||
| data.clob_market.tokens[].price | number | No | 0.285 | Current price of the outcome token. | ||
| data.clob_market.tokens[].token_id | string | No | 81927025054404355287140018940169293739219157042658469116956164881873598220211 | Token id of the outcome. | ||
| data.clob_market.tokens[].winner | boolean | No | `true` when this outcome won the resolved market. | |||
| data.condition_id | string | No | 0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327 | Condition id of the market that was requested. | ||
| data.fetched_at | string | No | 2026-06-07T11:00:00Z | Time the data was fetched, in UTC (RFC 3339). | ||
| data.id | string | No | 558934 | Polymarket market id that was requested. | ||
| data.market | object | No | Summary of the market the liquidity snapshot belongs to. | |||
| data.market.active | boolean | No | `true` when the market is active. | |||
| data.market.best_ask | number | No | Lowest ask price currently offered on the market. | |||
| data.market.best_bid | number | No | Highest bid price currently offered on the market. | |||
| data.market.closed | boolean | No | `true` when the market is closed. | |||
| data.market.condition_id | string | No | 0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327 | Condition id that identifies the market on Polymarket. | ||
| data.market.end_date | string | No | Date and time the market is scheduled to end (ISO 8601). | |||
| data.market.id | string | No | 558934 | Polymarket market id. | ||
| data.market.last_trade_price | number | No | Price of the most recent trade on the market. | |||
| data.market.liquidity | number | No | Liquidity Polymarket reports for the market. | |||
| data.market.outcomes | array | No | Outcomes of the market with their current prices, one item per outcome. | |||
| data.market.outcomes[].best_ask | number | No | 0.162 | Lowest ask price currently offered for the outcome. | ||
| data.market.outcomes[].best_bid | number | No | 0.161 | Highest bid price currently offered for the outcome. | ||
| data.market.outcomes[].last_trade_price | number | No | 0.162 | Price of the most recent trade on the outcome. | ||
| data.market.outcomes[].liquidity | number | No | 1093391.84 | Liquidity Polymarket reports for the outcome. | ||
| data.market.outcomes[].market_id | string | No | 558934 | Polymarket id of the market the outcome belongs to. | ||
| data.market.outcomes[].market_slug | string | No | will-spain-win-the-2026-fifa-world-cup-963 | URL slug of the market the outcome belongs to. | ||
| data.market.outcomes[].outcome | string | No | Yes | Name of the outcome, for example `Yes`. | ||
| data.market.outcomes[].price | number | No | 0.1615 | Current price of the outcome. | ||
| data.market.outcomes[].question | string | No | Will Spain win the 2026 FIFA World Cup? | Question of the market the outcome belongs to. | ||
| data.market.outcomes[].volume | number | No | 30983849.24 | Trading volume Polymarket reports for the outcome. | ||
| data.market.question | string | No | Will Spain win the 2026 FIFA World Cup? | Question the market asks, for example `Will Spain win the 2026 FIFA World Cup?`. | ||
| data.market.slug | string | No | will-spain-win-the-2026-fifa-world-cup-963 | URL slug of the market. | ||
| data.market.token_ids | array | No | Token ids of the market outcomes, in the same order as `outcomes`. | |||
| data.market.url | string | No | https://polymarket.com/event/world-cup-winner/will-spain-win-the-2026-fifa-world-cup-963 | Link to the market on polymarket.com. | ||
| data.market.volume | number | No | Total trading volume of the market. | |||
| data.market.volume_24h | number | No | Trading volume of the market over the last 24 hours. | |||
| data.slug | string | No | will-spain-win-the-2026-fifa-world-cup-963 | URL slug of the market that was requested. | ||
| data.source_urls | array | No | URLs the data was read from. | |||
| data.tokens | array | No | Liquidity figures for each outcome token of the market. | |||
| data.tokens[].ask_depth | number | No | 654.33 | Total size of all ask levels in the token's order book. | ||
| data.tokens[].bid_depth | number | No | 117.57 | Total size of all bid levels in the token's order book. | ||
| data.tokens[].buy_price | number | No | 0.16 | Price quoted for buying one share of the outcome. | ||
| data.tokens[].clob_price | number | No | 0.161 | Outcome price taken from the order-book market data. | ||
| data.tokens[].gamma_price | number | No | 0.16 | Outcome price taken from the market listing. | ||
| data.tokens[].last_trade_price | number | No | 0.162 | Price of the most recent trade on the token. | ||
| data.tokens[].midpoint | number | No | 0.165 | Midpoint between the best bid and best ask for the token. | ||
| data.tokens[].orderbook_best_ask | number | No | 0.17 | Lowest ask price in the token's order book. | ||
| data.tokens[].orderbook_best_bid | number | No | 0.16 | Highest bid price in the token's order book. | ||
| data.tokens[].orderbook_spread | number | No | 0.01 | Best ask price minus best bid price in the token's order book. | ||
| data.tokens[].outcome | string | No | Yes | Name of the outcome the token represents, for example `Yes`. | ||
| data.tokens[].sell_price | number | No | 0.17 | Price quoted for selling one share of the outcome. | ||
| data.tokens[].spread | number | No | 0.01 | Spread Polymarket reports for the token. | ||
| data.tokens[].token_id | string | No | 81927025054404355287140018940169293739219157042658469116956164881873598220211 | Token id of the outcome. Use it with the order book and price endpoints. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/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/market/condition/0x1a987cd4e88488fd12905fa9ae82cef381e03f4af68289275c4c0c2613db9327/liquidity" \
-H "x-api-key: $CRAWLORA_API_KEY"