REST API Reference
This reference is for developers integrating market data, portfolio data, and trading actions into their own apps.
BASE_URL = gameday.markets/api
Before You Start
Authenticated endpoints require Authorization: Bearer <Token> header.
- Obtain your API KEY on
/accountpage under thesettingstab - Read permission is required for balances, positions, transactions, and open orders.
- Write permission is required to place or cancel orders.
Successful responses use a shared envelope:
{
"data": {},
"meta": {}
}
Errors use a consistent envelope:
{
"error": {
"code": "market_not_found",
"message": "Market does not exist"
}
}
Request conventions
- Use Unix seconds for
start_timeandend_timefilters. - You may pass multi-value filters for
marketandidas comma-separated strings. - Every REST endpoint accepts the optional
chainquery parameter. If you omit it, the backend defaults to11155420.
Rate limits
Order related endpoints are limited to 120 r/m with 30 burst allowance, and 1 r/s with 10 burst for other endpoints.
Endpoints summary
| Area | Endpoint | Auth | Returns |
|---|---|---|---|
| Market data | GET /collections | Public | Names of collections and active market account in each |
| Market data | GET /collections/:entity | Public | All active Market descriptions for collection name |
| Market data | GET /markets | Public | Descriptions for filtered Markets |
| Market data | GET /market/:market | Public | Description for provided Market address |
| Market data | GET /orderbook/:market | Public | Order book states for Market address and token ids |
| Market data | GET /trades | Public | Trade information |
| Market data | GET /trades/price | Public | Price information |
| Account data | GET /balances | Bearer token (read) | Account's allowance and CLOB reserved balances |
| Account data | GET /positions | Bearer token (read) | Account's positions in markets |
| Account data | GET /transactions | Bearer token (read) | Account's executed transaction history |
| Orders | GET /orders | Bearer token (read) | Account's outstanding orders |
| Orders | POST /orders | Bearer token (write) | Place a single order |
| Orders | POST /orders/batch | Bearer token (write) | Place up to 20 orders |
| Orders | POST /orders/delete | Bearer token (write) | Delete orders by order id |
| Orders | POST /orders/delete/batch | Bearer token (write) | Delete orders by market, token id |
Public Market Data
GET /collections
Collections
List every active collection and the number of active markets inside it.
This endpoint does not expose any collection-specific filters beyond chain.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
chain | query | string | no | Network selector. Defaults to 11155420. |
Example response
{
"data": [
{
"entity": "NBA",
"marketCount": 12
},
{
"entity": "Bitcoin",
"marketCount": 4
}
],
"meta": {}
}
Payload shape
type Collection = {
entity: string;
marketCount: number;
};
GET /collections/:entity
Collection Markets
Fetch every active market for a single collection such as NBA, Bitcoin, or F1.
Select the collection through the :entity path segment.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
entity | path | string | yes | Collection identifier. |
chain | query | string | no | Network selector. Defaults to 11155420. |
Example response
{
"data": [
{
"marketName": "Group A: Mexico vs South Africa",
"description": "FIFA World Cup 2026 Matchday 1, Group A match between Mexico and South Africa in Mexico City Scheduled Start: Thursday, June 11, 2026 at 07:00 PM UTC",
"descriptionHash": "7757962724999b28d09d68bbb2bb3b018f7ef853f5075801bf7db2666555b60b",
"eventId": "18568566312947289722104530323130404698620178579483588220412103555084861387298",
"settlementType": "1",
"nOutcomes": "1",
"expiry": "1781211600",
"currency": "0x672f464846e86ce6fe0F2dF8358b8249A12439d8",
"version": "ranked_v2",
"address": "0x6be27081bC2BF0F318BB9C62A098646Be8D1f730",
"nameShort": "Mexico vs South Africa",
"startTime": "1781204400",
"betType": "winner",
"displayStatus": "0",
"displayPriority": "[0,0,0]",
"candidateOutcomes": "[\"Mexico\",\"Draw\",\"South Africa\"]",
"status": "0",
"resolutionState": "0",
"outcome": "[]",
"entity": "FIFA World Cup",
"volume": "10000000"
}
],
"meta": {}
}
Payload shape
type MarketParams = {
marketName: string;
description: string;
descriptionHash: string;
eventId: string;
settlementType: string;
nOutcomes: string;
expiry: string;
currency: string;
version: string;
address: string;
nameShort: string;
startTime: string;
betType: string;
displayStatus: string;
displayPriority: string;
candidateOutcomes: string;
status: string;
resolutionState: string;
outcome: string;
entity: string;
volume: string;
};
GET /markets
Market Search
Use this route to discover markets when you want to search or filter instead of looking up one exact market address.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
address | query | string | no | Filter by market address. |
entity | query | string | no | Filter by collection name. |
group | query | string | no | Filter by market grouping key. sports, price, politics |
bet_type | query | string | no | Filter by market bet type. winner, price, points |
settled | query | boolean | no | Filter settled versus unsettled markets. |
start_time | query | integer | no | Lower bound for the time window, in Unix seconds. |
end_time | query | integer | no | Upper bound for the time window, in Unix seconds. |
chain | query | string | no | Network selector. Defaults to 11155420. |
Bet types:
winner- singular winner of a game, competitiontop- top n finishers in a ranked event in any order. For example, F1 race podiumranked- ordered list of finishers in a ranked event.price- asset price over underpoints- game points/goals over underspread- points/goals differenceexact- exact numeric value, like total pointsrange- price, points, points differential is within bounds
Example response
{
"data": [
{
"marketName": "BTCUSD price 2026-06-06",
"description": "Event resolves to YES if BitMEX .BXBT index (bitmex.com/app/index/.BXBT) is greater than or equal to the target price on 2026-06-06 20:00 UTC.",
"descriptionHash": "6909cec446e362e07db9e83def246319f8e2c9fe3d59c9016fa619abf1c0e68c",
"eventId": "59284192173660553983829066293343914472327160798828592751200376623956234053690",
"settlementType": "3",
"nOutcomes": "1",
"expiry": "1780776000",
"currency": "0x672f464846e86ce6fe0F2dF8358b8249A12439d8",
"version": "ou_v2",
"address": "0x1d93d964ce88eaeFE7d459B062EC848b458139d6",
"nameShort": "BTCUSD 20260606",
"startTime": "1779875166",
"betType": "price",
"displayStatus": "0",
"displayPriority": "[]",
"candidateOutcomes": "[\"64500\",\"65500\",\"66500\",\"67500\",\"68500\",\"69500\",\"70500\",\"71500\",\"72500\",\"73500\",\"74500\",\"75500\",\"76500\",\"77500\",\"78500\",\"79500\",\"80500\",\"81500\",\"62000\",\"62500\",\"63000\",\"63500\",\"64000\",\"65000\",\"66000\",\"67000\",\"68000\",\"69000\",\"70000\",\"71000\",\"72000\"]",
"status": "1",
"resolutionState": "0",
"outcome": "[]",
"entity": "Bitcoin",
"volume": "66000000"
}
],
"meta": {}
}
Payload shape
type MarketParams = {
marketName: string;
description: string;
descriptionHash: string;
eventId: string;
settlementType: string;
nOutcomes: string;
expiry: string;
currency: string;
version: string;
address: string;
nameShort: string;
startTime: string;
betType: string;
displayStatus: string;
displayPriority: string;
candidateOutcomes: string;
status: string;
resolutionState: string;
outcome: string;
entity: string;
volume: string;
};
GET /market/:market
Market Details
Fetch a single market by address.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
market | path | string | YES | Market address. |
chain | query | string | no | Network selector. Defaults to 11155420. |
Example request
- cURL
- Python
curl "$BASE_URL/market/0x1d93d964ce88eaeFE7d459B062EC848b458139d6?chain=11155420"
import requests
MARKET_ADDRESS = "0x1d93d964ce88eaeFE7d459B062EC848b458139d6"
response = requests.get(
f"{BASE_URL}/market/{MARKET_ADDRESS}",
params={"chain": "11155420"}
)
Payload shape
type MarketParams = {
marketName: string;
description: string;
descriptionHash: string;
eventId: string;
settlementType: string;
nOutcomes: string;
expiry: string;
currency: string;
version: string;
address: string;
nameShort: string;
startTime: string;
betType: string;
displayStatus: string;
displayPriority: string;
candidateOutcomes: string;
status: string;
resolutionState: string;
outcome: string;
entity: string;
volume: string;
};
Common error
{
"error": {
"code": "market_not_found",
"message": "Market does not exist"
}
}
GET /orderbook/:market
Market Orderbook
Fetch the orderbook for a market. Use the optional id query to filter to one or more token IDs.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
market | path | string | YES | Market address. |
id | query | string | no | Comma-separated token IDs or side identifiers. |
chain | query | string | no | Network selector. Defaults to 11155420. |
Example request
- cURL
- Python
curl "$BASE_URL/orderbook/0x1234...abcd?id=0,1&chain=11155420"
import requests
params = {
"id": "0,1",
"chain": "11155420",
}
response = requests.get(f"{BASE_URL}/orderbook/0x1234...abcd", params=params)
print(response.json())
Example response
{
"data": [
{
"market": "0x1234...abcd",
"books": {
"0": [
{
"9900": 15
}
],
"1": [
{
"100": 11
}
]
},
"ts": 1767225600
}
],
"meta": {}
}
Payload shape
type BookState = {
market: string;
books: Record<string, Array<Record<number, number>>>;
ts: number;
};
GET /trades
Trades
Fetch recent trades. You can filter directly by market or use the collection shortcut to retrieve trades for a single collection.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
market | query | string | no | Filter one or more market addresses, comma-separated. |
id | query | string | no | Filter one or more side or token IDs, comma-separated. |
size | query | integer | no | Minimum trade size. Without decimals. |
start_time | query | integer | no | Lower bound for the time window, in Unix seconds. |
end_time | query | integer | no | Upper bound for the time window, in Unix seconds. |
chain | query | string | no | Network selector. Defaults to 11155420. |
Example response
{
"data": [
{
"txHash": "24627237d754a64cf2ef1b25ce36c898b251aa0aae5d8e7d91e3d1568b61939f",
"market": "0x1d93d964ce88eaeFE7d459B062EC848b458139d6",
"marketName": "BTCUSD price 2026-06-06",
"amount": 20,
"price": 6500,
"takerSide": "21716317273191121794908309581631211478035604576498232614272661820087589741316",
"makerSide": "21714550426126343410578726284130468559519777092601356995314540213886297121540",
"takerSideName": "[74500]",
"makerSideName": "[74500]",
"timestamp": 1780164950
}
],
"meta": {}
}
Payload shape
type Trade = {
txHash: string;
market: string;
marketName: string;
amount: number;
price: number;
takerSide: string;
makerSide: string;
takerSideName: string;
makerSideName: string;
timestamp: number;
};
GET /trades/price
Price Snapshots
Fetch prices per market and token Id. Key is always YES side
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
market | query | string | YES | Filter one or more market addresses, comma-separated. |
id | query | string | no | Filter one or more side or token IDs, comma-separated. |
freq | query | string | no | Price bucket interval. 1m, 15m, 1h, 4h, 1d |
start_time | query | string | no | Lower bound for the time window, in Unix seconds. |
end_time | query | string | no | Upper bound for the time window, in Unix seconds. |
chain | query | string | no | Network selector. Defaults to 11155420 |
Example response
{
'data':
{
'21714550426126343410578726284130468559519777092601356995314540213886297120540':
[
{
'market': '0x1d93d964ce88eaeFE7d459B062EC848b458139d6',
'takerSide': '21714550426126343410578726284130468559519777092601356995314540213886297120540', 'makerSide': '21716317273191121794908309581631211478035604576498232614272661820087589740316', 'takerSideName': '[73500]',
'makerSideName': '[73500]',
'timestamp': 1780065240,
'open': 7500,
'high': 7500,
'low': 7500,
'close': 7500,
'volume': 10,
'tradeCount': 1
},
{
'market': '0x1d93d964ce88eaeFE7d459B062EC848b458139d6',
'takerSide': '21714550426126343410578726284130468559519777092601356995314540213886297120540', 'makerSide': '21716317273191121794908309581631211478035604576498232614272661820087589740316', 'takerSideName': '[73500]',
'makerSideName': '[73500]',
'timestamp': 1780066140,
'open': 7500,
'high': 7500,
'low': 7500,
'close': 7500,
'volume': 5,
'tradeCount': 1
}
]
},
'meta': {}
}
Payload shape
type PricePoint = {
market: string;
takerSide: string;
makerSide: string;
takerSideName: string,
makerSideName: string,
timestamp: number;
open: int,
high: int,
low: int,
close: int,
volume: number;
tradeCount: number;
};
Authenticated Account Data
Include your API_KEY in the request headers:
Authorization: Bearer <API_KEY>
GET /balances
Balances
Fetch the caller's current balance summary.
This endpoint does not expose any account-specific filters beyond chain.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
chain | query | string | no | Network selector. Defaults to 11155420. |
Example request
- cURL
- Python
curl "$BASE_URL/balances?chain=11155420" \
-H "Authorization: Bearer $API_KEY"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
requests.get(f"{BASE_URL}/balances", params={"chain": "11155420"}, headers=headers)
Example response
{
"data": {
"allowance": 5000,
"balanceOf": 4200,
"reserved": 300
},
"meta": {}
}
GET /positions
Positions
Fetch the caller's open or settled positions across markets.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
market | query | string | no | Filter one or more market addresses, comma-separated. |
id | query | string | no | Filter one or more side or token IDs, comma-separated. |
settled | query | bool | no | If provided filters markets by resolution status. |
winning | query | bool | no | If provided filters settled positions by win status |
claimed | query | bool | no | If provided filters positions by claimed status |
chain | query | string | no | Network selector. Defaults to 11155420. |
Example response
{
"data": [
{
"market": "0xa7bCBC7F3CE7003F28819D6408E91452bD830818",
"balance": "30000000",
"avgPrice": "0.45",
"claimable": 0, // 0 - no, 1 - yes, 2 - refundable
"marketName": "F1 Monaco GP Race Winner",
"side": "7242306118526597366961936455545222996376856493293162109340463819098448461842",
"sideName": "[\"Russell\"]",
"isFinal": false,
"outcome": "[]",
"txHash": "",
"timestamp": 0,
"expiry": 1780844400
}
]
"meta": {}
}
Payload shape
type Position = {
market: string;
balance: string;
avgPrice: string;
claimable: number; // 0 - no, 1 - yes, 2 - refundable
marketName: string;
side: string;
sideName: string;
isFinal: boolean; // market is settled
outcome: string; // settled outcome
txHash: string; // claim txhash
timestamp: number; // claim time
expiry: number;
};
GET /transactions
Transactions
Fetch the caller's transaction history.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
market | query | string | no | Filter one or more market addresses, comma-separated. |
id | query | string | no | Filter one or more side or token IDs, comma-separated. |
type | query | string | no | Filter by transaction type. trade or settlement |
start_time | query | integer | no | Lower bound for the time window, in Unix seconds. |
end_time | query | integer | no | Upper bound for the time window, in Unix seconds. |
chain | query | string | no | Network selector. Defaults to 11155420. |
Example response
{
"data": [
{
"txHash": "964adbdc71a8e44e6185e1a62bf7d7a01c3e98c283def69e18f4363ecbcebca7",
"type": "TRADE",
"market": "0x1d93d964ce88eaeFE7d459B062EC848b458139d6",
"marketName": "BTCUSD 20260606",
"side": "21716317273191121794908309581631211478035604576498232614272661820087589740316",
"sideName": "[73500]",
"price": 2500,
"amount": "10000000",
"aggrSide": "MAKER",
"contractSpend": "0",
"contractReceive": "10000000",
"currencySpend": "2500000",
"currencyReceive": "0",
"rewardFee": "14687",
"poolNet": "-2500000",
"timestamp": 1780065282
}
],
"meta": {}
}
Payload shape
type Transaction = {
txHash: string;
type: string;
market: string;
marketName: string;
side: string;
sideName: string;
price: number;
amount: string;
aggrSide: string;
contractSpend: string;
contractReceive: string;
currencySpend: string;
currencyReceive: string;
rewardFee: string;
poolNet: string;
timestamp: number;
};
Orders
Order endpoints require authentication.
- Use
readpermission to inspect your open orders. - Use
writepermission to place or cancel orders. - Send large order values such as
price,size,side, andexpiryas strings.
GET /orders
List Open Orders
Fetch the caller's currently open orders.
This route returns your current open orders. Query filters are not currently supported on this endpoint.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
market | query | string | no | Filter one or more market addresses, comma-separated. |
id | query | string | no | Filter one or more token ids, comma-separated. |
salt | query | string | no | Filter one or more order salts, comma-separated. |
chain | query | string | no | Network selector. Defaults to 11155420. |
Example response
{
"data": [
{
"owner": "0xF6206615a2b222dbA064B83Fc2449d5dBf057224",
"salt": "PY-17805120871b487103e8126541",
"market": "0x1d93d964ce88eaeFE7d459B062EC848b458139d6",
"side": "21716317273191121794908309581631211478035604576498232614272661820087589735316",
"price": 5700,
"size": "400000000",
"expiry": 0,
"signature": "2bd51c5c592d41c928bef23e7607de831363fc3b036f84b67d325e3bc6705a5913db950e2f3bfe1b945edfc37c0cb2fab21e8cee43e952e9825fdc8f25d9cbdb1c",
"fill": "0",
"timestamp": 1780512087,
"marketName": "BTCUSD 20260606",
"sideName": "[68500]"
}
],
"meta": {}
}
Payload shape
type Order = {
owner: string;
salt: string;
market: string;
side: string;
price: number;
size: string;
expiry: number;
signature: string;
fill: string;
timestamp: number;
marketName: string;
sideName: string;
};
POST /orders
Submit Order
Submit a single order.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
chain | query | string | no | Network selector. Defaults to 11155420. |
Order payload
| Field | Type | Required | Description |
|---|---|---|---|
| market | string | yes | Market address |
| side | string | yes | Token ID uint256 as string |
| owner | string | yes | Order signer address |
| size | string | yes | Order size in outcome tokens (6 decimals). Min size 1e6 |
| price | string | yes | Limit price as basis points, 1 to 9999. |
| expiry | string | yes | Order expiration unix timestamp in seconds or 0 if order does not expire |
| salt | string | yes | Unique order Id string, alphanum and _,-, maxlen 128 |
| signature | string | yes | EIP-712 signature hexstring |
EIP-712 Types
domain_data = {
"name": "gameday.markets",
"chainId": {CHAIN_ID},
"verifyingContract": {MARKET_ADDRESS},
"version": "1",
}
message_types = {
"Order": [
{"name": "market", "type": "address"},
{"name": "side", "type": "uint256"},
{"name": "owner", "type": "address"},
{"name": "size", "type": "uint256"},
{"name": "price", "type": "uint256"},
{"name": "expiry", "type": "uint48"},
{"name": "salt", "type": "string"}
]
}
Example request
- cURL
- Python
curl -X POST "$BASE_URL/orders?chain=11155420" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"market": "0x1d93d964ce88eaeFE7d459B062EC848b458139d6",
"side": "21716317273191121794908309581631211478035604576498232614272661820087589733316",
"owner": "0xF6206615a2b222dbA064B83Fc2449d5dBf057224",
"size": "5000000000",
"price": "4100",
"expiry": "0",
"salt": "PY-1780678126360447c238ab313d",
"signature": "818a887c2f6775ec8b456dca82613af7b567ee5ca1a51e991c24abc8102ec2d7110ec49261af1cd2b299e9a7f64764f9b792b1eb7b2de0ddc8a210bd547c4f391b"
}'
import requests
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
payload = {
'market': '0x1d93d964ce88eaeFE7d459B062EC848b458139d6',
'side': '21716317273191121794908309581631211478035604576498232614272661820087589733316',
'owner': '0xF6206615a2b222dbA064B83Fc2449d5dBf057224',
'size': '5000000000',
'price': '4100',
'expiry': '0',
'salt': 'PY-1780677823cdc7adf479136b5e',
'signature': '9ae64627a4b35140db30267c7e3b164b3543850818e6030925ef0dc0b140cc936920c22714d7a489f58fb8ea71f650193cbdbfc7a0866ff24a70231fc940d6dc1b'
}
response = requests.post(
f"{BASE_URL}/orders",
params={"chain": "11155420"},
headers=headers,
json=payload,
)
Example response
{
"data": {
"status": "accepted"
},
"meta": {}
}
Common errors
{
"error": {
"code": "invalid_order",
"message": "invalid price"
}
}
Request body shape
type OrderUI = {
market: string;
side: string;
owner: string;
size: string;
price: string;
expiry: string;
salt: string;
signature: string;
};
Validation rules
price: digits only, must be between 1 and 9999
size: digits only, minimum 1_000_000 (1 USDC), maximum 10_000_000_000 (10_000 USDC)
salt: 1..128 chars, pattern ^[a-zA-Z0-9\-_]+$
expiry: "0" or at least 60 seconds in the future
signature: required
owner: should match the authenticated address submitting signing the order
POST /orders/batch
Submit Batch Orders
Submit multiple orders in one request. The backend validates each order and returns batch feedback in the success envelope.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
chain | query | string | no | Network selector. Defaults to 11155420. |
Example request
- cURL
- Python
curl -X POST "$BASE_URL/orders/batch?chain=11155420" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"orders": [
{
"market": "0x1234...abcd",
"side": "0",
"owner": "0xabcd...1234",
"size": "250000000",
"price": "6120",
"expiry": "1767312000",
"salt": "order-001",
"signature": "0xdeadbeef..."
},
{
"market": "0x1234...abcd",
"side": "1",
"owner": "0xabcd...1234",
"size": "125000000",
"price": "3880",
"expiry": "1767312000",
"salt": "order-002",
"signature": "0xfeedface..."
}
]
}'
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
payload = {
"orders": [
{
"market": "0x1234...abcd",
"side": "0",
"owner": "0xabcd...1234",
"size": "250000000",
"price": "6120",
"expiry": "1767312000",
"salt": "order-001",
"signature": "0xdeadbeef...",
},
{
"market": "0x1234...abcd",
"side": "1",
"owner": "0xabcd...1234",
"size": "125000000",
"price": "3880",
"expiry": "1767312000",
"salt": "order-002",
"signature": "0xfeedface...",
},
],
}
response = requests.post(
f"{BASE_URL}/orders/batch",
params={"chain": "11155420"},
headers=headers,
json=payload,
)
Example response
{
"data": {
"feedback": [null, null]
},
"meta": {}
}
Request body shape
type BatchOrderRequest = {
orders: OrderUI[];
};
POST /orders/delete
Cancel Orders by id
Cancel one open order by salt.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
chain | query | string | no | Network selector. Defaults to 11155420. |
Example request
- cURL
- Python
curl -X POST "$BASE_URL/orders/delete?chain=11155420" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"salt": "order-001,order-002"
}'
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
payload = {
"salt": "order-001,order-002"
}
response = requests.post(
f"{BASE_URL}/orders/delete",
params={"chain": "11155420"},
headers=headers,
json=payload,
)
Example response
{
"data": {
"status": "ok"
},
"meta": {}
}
Common error
{
"error": {
"code": "order_cancel_failed",
"message": "Order cancel error"
}
}
Request body shape
type CancelOrderRequest = {
salt: string;
};
POST /orders/delete/batch
Cancel Batch Orders
Cancel multiple open orders by query filter. At least one filter must be provided.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
market | query | string | no | Filter one or more market addresses, comma-separated. |
id | query | string | no | Filter one or more side or token IDs, comma-separated. |
chain | query | string | no | Network selector. Defaults to 11155420. |
Example request
- cURL
- Python
curl -X POST "$BASE_URL/orders/delete/batch?market=0x1234...abcd&id=0,1&chain=11155420" \
-H "Authorization: Bearer $API_KEY"
import requests
params = {
"market": "0x1234...abcd",
"id": "0,1",
"chain": "11155420",
}
headers = {
"Authorization": f"Bearer {API_KEY}",
}
response = requests.post(
f"{BASE_URL}/orders/delete/batch",
params=params,
headers=headers,
)
Example response
{
"data": {
"status": "ok"
},
"meta": {}
}
Common error
{
"error": {
"code": "batch_cancel_failed",
"message": "Failed to batch cancel orders: at least one filter must be provided"
}
}
POST /orders/delete/all
Cancel All Orders
Cancel multiple all outstanding orders.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
chain | query | string | no | Network selector. Defaults to 11155420. |
Example response
{
"data": {
"status": "ok"
},
"meta": {}
}