Place an Order as a Builder
Both L2 (HMAC) credentials and the OPENFISH_BUILDER_ID header are required. The order enters the same matching engine as standard orders, and the builder attribution is recorded on every resulting trade.
Endpoint
Section titled “Endpoint”POST /builder/orderServer: https://api.openfish.fun
Authentication: L2 (HMAC) + Builder ID header
Headers
Section titled “Headers”| Header | Required | Description |
|---|---|---|
OPENFISH_API_KEY | Yes | API key (UUID) |
OPENFISH_TIMESTAMP | Yes | Unix timestamp |
OPENFISH_PASSPHRASE | Yes | API passphrase |
OPENFISH_SIGNATURE | Yes | HMAC-SHA256 signature |
OPENFISH_BUILDER_ID | Yes | Builder identifier string |
Request Body
Section titled “Request Body”Content-Type: application/json
| Field | Type | Required | Description |
|---|---|---|---|
order | object | Yes | Order object (same schema as POST /order) |
orderType | string | No | "GTC" (default), "GTD", or "FOK" |
Order Object Fields:
| Field | Type | Required | Description |
|---|---|---|---|
tokenId | string | Yes | Token ID |
maker | string | No | Maker address (defaults to auth address) |
side | string | Yes | "BUY" or "SELL" |
makerAmount | string | Yes | Maker amount (raw units) |
takerAmount | string | Yes | Taker amount (raw units) |
signature | string | No | Order signature |
expiration | string/integer | No | Expiration timestamp (for GTD) |
Responses
Section titled “Responses”200 — Order accepted
Section titled “200 — Order accepted”{ "orderID": "0190b317-a1d3-7bec-9b91-eeb6dcd3a620", "status": "LIVE", "success": true, "builder_id": "my-trading-bot", "tradeIds": ["28c4d2eb-bbea-40e7-a9f0-b2fdb56b2c2e"]}400 — Bad Request
Section titled “400 — Bad Request”{ "error": "OPENFISH_BUILDER_ID header required" }401 — Unauthorized
Section titled “401 — Unauthorized”{ "error": "invalid authorization" }