Skip to content

Post Multiple Orders

Sends up to 15 signed orders to the matching engine in one request. Each order is validated and processed independently.

POST /orders

Base URL: https://api.openfish.fun

L2 authentication required. All five OPENFISH_* headers must be present.

A JSON array of order objects. Every element follows the same schema documented in Post a New Order.

[
{
"order": {
"tokenId": "0xabc123...",
"maker": "0x1234...",
"signer": "0x1234...",
"taker": "0x0000000000000000000000000000000000000000",
"side": "BUY",
"makerAmount": "100000000",
"takerAmount": "200000000",
"expiration": "1735689600",
"nonce": "0",
"feeRateBps": "10",
"signature": "0x...",
"salt": 1234567890,
"signatureType": 2
},
"orderType": "GTC"
}
]

The server returns an array with one result object per submitted order, preserving the original submission order.

[
{
"success": true,
"orderID": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "LIVE",
"makingAmount": "100000000",
"takingAmount": "200000000",
"transactionsHashes": [],
"tradeIds": [],
"errorMsg": ""
},
{
"success": false,
"orderID": "",
"status": "CANCELED",
"makingAmount": "0",
"takingAmount": "0",
"transactionsHashes": [],
"tradeIds": [],
"errorMsg": "insufficient USDC balance"
}
]
FieldTypeDescription
successbooleanWhether this particular order was accepted
orderIDstringUUID assigned to the order (blank on rejection)
statusstringLIVE, MATCHED, or CANCELED
errorMsgstringReason for rejection (blank on acceptance)
Terminal window
curl -X POST https://api.openfish.fun/orders \
-H "Content-Type: application/json" \
-H "OPENFISH_ADDRESS: 0x..." \
-H "OPENFISH_SIGNATURE: ..." \
-H "OPENFISH_TIMESTAMP: 1700000000" \
-H "OPENFISH_API_KEY: ..." \
-H "OPENFISH_PASSPHRASE: ..." \
-d '[{"order":{...},"orderType":"GTC"},{"order":{...},"orderType":"GTC"}]'