Skip to main content
Update multiple open limit orders in a single API call. Each update cancels the existing open order and creates a replacement with the updated fields, so all order-book validations run normally. Partial failures do not block successful updates in the same batch.

Endpoint

POST https://api.futuur.com/orders/batch-update/

Authentication

This endpoint requires HMAC authentication. Include the Key, Timestamp, and HMAC headers on every request. See the authentication guide for signing instructions.

Headers

Idempotency-Key
string
Optional. A unique value chosen by the client for a logical operation. Replaying the same POST with the same key and the same JSON body returns the stored response without applying duplicate updates. A different body produces a new fingerprint, so requoting is not blocked.

Request

orders
object[]
required
An array of 1 to 20 update objects. Each entry must include the id of an open order plus the fields to change.

Response

Returns 200 OK with one result per submitted update, in the same order as the request.
index
integer
required
Zero-based position of this update in the request payload.
order_id
integer
The original order ID that was submitted for update.
success
boolean
required
true if the order was updated.
order
object
Replacement limit order. Present when success is true. See List orders for the LimitOrder field reference.
errors
any
Validation error for this update. Present when success is false. May be a string or an object describing field-level issues.

Example

curl --request POST \
  --url "https://api.futuur.com/orders/batch-update/" \
  --header "Key: YOUR_PUBLIC_KEY" \
  --header "Timestamp: 1712500000" \
  --header "HMAC: YOUR_HMAC_SIGNATURE" \
  --header "Idempotency-Key: 5b1f0c0a-0b9f-4d3a-9f8c-1d2b3a4e5f60" \
  --header "Content-Type: application/json" \
  --data '{
    "orders": [
      {
        "id": 100,
        "shares": "12",
        "price": "0.48"
      },
      {
        "id": 101,
        "expired_at": null
      }
    ]
  }'
Sample response (200 OK)
[
  {
    "index": 0,
    "order_id": 100,
    "success": true,
    "order": {
      "id": 10550,
      "event": "873",
      "market": "2231",
      "price": 0.48,
      "shares": 12.0,
      "shares_requested": 12.0,
      "shares_filled": "0.0",
      "currency": "OOM",
      "side": "bid",
      "position": "long",
      "expired_at": null,
      "status": "open",
      "created": "2026-06-25T12:00:00Z"
    }
  },
  {
    "index": 1,
    "order_id": 101,
    "success": false,
    "errors": "Order is being processed."
  }
]
To create new orders instead of updating existing ones, use Batch create orders.