Skip to main content
POST
/
data
/
orders
Fetch multiple orders by ID
curl --request POST \
  --url https://clob.kuest.com/data/orders \
  --header 'Content-Type: application/json' \
  --data '
[
  {
    "orderId": "<string>"
  }
]
'
[
  {
    "order_id": "<string>",
    "status": 123,
    "order": {
      "associateTrades": [
        "<string>"
      ],
      "id": "<string>",
      "status": "<string>",
      "market": "<string>",
      "originalSize": "<string>",
      "outcome": "<string>",
      "makerAddress": "<string>",
      "side": "BUY",
      "sizeMatched": "<string>",
      "assetId": "<string>",
      "expiration": "<string>",
      "type": "FOK",
      "createdAt": "2023-11-07T05:31:56Z",
      "updatedAt": "2023-11-07T05:31:56Z",
      "owner": "<string>",
      "price": "<string>"
    },
    "error": "<string>"
  }
]
Request multiple orders (between 1 and 500 ULIDs) in a single call. Each entry mirrors GET /data/order/{id}, so you can refresh many orders without issuing repeated requests.
No authentication headers are required. Responses always use HTTP 207 Multi-Status, and each array element carries its own status, order, and error fields.

Request body

Send a JSON array of { "orderId": "<ULID>" } entries:
FieldTypeRequiredDescription
orderIdstringYesULID of the order to fetch (case-insensitive). Leave empty only if you need to test error handling; blank values return order_id_cannot_be_empty.
The array must contain at least 1 and no more than 500 entries. Duplicate ULIDs are allowed and simply return duplicate responses.

Response semantics

  • The HTTP status is always 207 Multi-Status. Each element in the response array includes the original order_id, an integer status, and either order (when the lookup succeeded) or error (for failures).
  • status: 200order contains the same structure documented for the single-order endpoint, and error is null/omitted.
  • status: 400 — validation failure for that entry (currently only order_id_cannot_be_empty).
  • status: 404order_not_found when the ULID does not exist.
  • status: 500 — unexpected backend issue; the error string surfaces the internal failure reason.

Per-entry fields

FieldTypeDescription
order_idstringULID echoed from the request (blank if the original entry was blank).
statusintegerEntry-specific status code (200, 400, 404, or 500).
orderobjectPresent only when status is 200. Structure detailed below.
errorstringPresent only when status is not 200. Includes values like order_id_cannot_be_empty, order_not_found, or internal_error.

Order fields

When status is 200, the order object exposes the same attributes as [GET /data/order/{id}]. Key fields are summarized below:
FieldTypeDescription
associateTradesstring[]Trade identifiers linked to this order. Empty when no matches occurred.
idstringULID assigned to the order.
statusstringLifecycle state: live, matched, delayed, or unmatched.
marketstringMarket identifier associated with the order.
originalSizestringSize requested when the order was submitted.
outcomestringMarket outcome identifier (market address + outcome index).
makerAddressstringAddress that funded the maker side.
ownerstringAPI key owner recorded with the order when available.
pricestringLimit price formatted with fixed precision.
sidestringEither BUY or SELL.
sizeMatchedstringTotal quantity matched so far.
assetIdstringToken identifier for the traded outcome.
expirationstringExpiration timestamp in Unix seconds.
typestringExecution policy (GTC, GTD, FAK, FOK).
createdAtstringISO-8601 timestamp for when the order was inserted.
updatedAtstringISO-8601 timestamp for the most recent update (fill, cancel, etc.).

Body

application/json
Required array length: 1 - 500 elements
orderId
string
required

Order identifier to retrieve.

Response

Per-order multi-status results

order_id
string
required
status
integer<int32>
required

HTTP-like status code per entry (e.g., 200, 400, 404).

order
object
error
string

Present when status is not 200 to explain the failure.