curl --request GET \
--url https://api.rook.pm/v1/quotes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rook.pm/v1/quotes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rook.pm/v1/quotes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"items": [
{
"listing_id": "lst_pm_fed_dec_2026_cut_yes",
"market_id": "mkt_fed_dec_2026_cut",
"outcome_id": "out_fed_dec_2026_cut_yes",
"venue": "polymarket",
"status": "LIVE",
"quote_currency": "USDC",
"payout_currency": "USDC",
"payout_unit": "1",
"quantity_unit": "shares",
"mapping_version": "1",
"quote_id": "quote_cut_120000",
"book_revision": "book_1842",
"best_bid": {
"price": "0.40",
"quantity": "1200"
},
"best_ask": {
"price": "0.42",
"quantity": "900"
},
"midpoint": "0.41",
"spread": "0.02",
"last_trade_price": "0.41",
"last_trade_quantity": "250",
"last_trade_at": "2026-10-19T11:59:52Z",
"origin": "VENUE",
"upstream_status": "CONNECTED",
"times": {
"source_timestamp": "2026-10-19T11:59:59.800Z",
"received_at": "2026-10-19T11:59:59.910Z",
"published_at": "2026-10-19T12:00:00Z"
}
}
],
"next_page_token": null,
"snapshot_id": "snap_rates_20261019_120000",
"as_of": "2026-10-19T12:00:00Z"
}Get quotes
Fetch the latest bid, ask and last-trade observations for explicitly selected Rook listing_ids. Listing IDs identify an outcome on a venue and come from /markets or /markets:resolve; a market ID alone does not select a side or venue.
Every requested listing receives a status-bearing result. Available values specify the selected outcome orientation, quote currency, payout unit, source timestamps and mapping/book revisions. A missing side, stale source or unavailable feed remains explicit rather than becoming zero. Use /orderbooks for executable depth and /price-history for recorded observations; a quote is an observation, not an execution guarantee.
curl --request GET \
--url https://api.rook.pm/v1/quotes \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.rook.pm/v1/quotes"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.rook.pm/v1/quotes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"items": [
{
"listing_id": "lst_pm_fed_dec_2026_cut_yes",
"market_id": "mkt_fed_dec_2026_cut",
"outcome_id": "out_fed_dec_2026_cut_yes",
"venue": "polymarket",
"status": "LIVE",
"quote_currency": "USDC",
"payout_currency": "USDC",
"payout_unit": "1",
"quantity_unit": "shares",
"mapping_version": "1",
"quote_id": "quote_cut_120000",
"book_revision": "book_1842",
"best_bid": {
"price": "0.40",
"quantity": "1200"
},
"best_ask": {
"price": "0.42",
"quantity": "900"
},
"midpoint": "0.41",
"spread": "0.02",
"last_trade_price": "0.41",
"last_trade_quantity": "250",
"last_trade_at": "2026-10-19T11:59:52Z",
"origin": "VENUE",
"upstream_status": "CONNECTED",
"times": {
"source_timestamp": "2026-10-19T11:59:59.800Z",
"received_at": "2026-10-19T11:59:59.910Z",
"published_at": "2026-10-19T12:00:00Z"
}
}
],
"next_page_token": null,
"snapshot_id": "snap_rates_20261019_120000",
"as_of": "2026-10-19T12:00:00Z"
}Authorizations
Proposed server-to-server API key. No client request HMAC signing scheme is specified.
Headers
Caller correlation reference; not an idempotency guarantee.
Query Parameters
Rook listing IDs from /markets or /markets:resolve. Select the venue and outcome side explicitly; repeat the query parameter for multiple listings.
1Opaque text identifier. Preserve its exact value.
1Response
Success.