Post Multiple Orders
Sends up to 15 signed orders to the matching engine in one request. Each order is validated and processed independently.
Endpoint
Section titled “Endpoint”POST /orders
Base URL: https://api.openfish.fun
Authentication
Section titled “Authentication”L2 authentication required. All five OPENFISH_* headers must be present.
Request Body
Section titled “Request Body”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" }]Response
Section titled “Response”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" }]| Field | Type | Description |
|---|---|---|
success | boolean | Whether this particular order was accepted |
orderID | string | UUID assigned to the order (blank on rejection) |
status | string | LIVE, MATCHED, or CANCELED |
errorMsg | string | Reason for rejection (blank on acceptance) |
Example
Section titled “Example”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"}]'