Luxor PlatformAPI DocumentationDerivatives

Place derivatives orders

Places up to 500 orders in one request — the same bulk path the CSV import uses in the app. Responds 202: the batch is handed to a workflow rather than written straight to the book, and if the workspace requires approvals the orders wait for them. required_approvals says how many are outstanding (0 means the batch is already on its way), and the orders appear under GET /v2/derivatives/orders once it completes. The batch is all-or-nothing: if any order is rejected, none are placed. Placing orders requires the Workspace Owner, Workspace Admin or Derivatives Admin role and a signed ISDA agreement; without either the request is rejected with 403.

POST
/v2/derivatives/orders

Authorization

LuxorAPIKey
authorization<token>

Use your API key here.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X POST "https://example.com/v2/derivatives/orders" \  -H "Content-Type: application/json" \  -d '{    "orders": [      {        "contract": "1226",        "denomination": "BTC",        "side": "BUY",        "unit_hashprice": 0.0005,        "daily_hashrate_ph": 10      }    ]  }'
{  "action_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",  "accepted_orders": 12,  "required_approvals": 0,  "orders_url": "/v2/derivatives/orders"}
{  "statusCode": 400,  "code": "FST_ERR_VALIDATION",  "error": "Bad Request",  "message": "body/end_date Required"}
{  "statusCode": 403,  "code": "7",  "error": "Forbidden",  "message": "[permission_denied] site_id does not belong to this workspace"}