Gravv DOCS
Docs Agent Get Started
API Reference List orders

List orders

Lists your OTC orders, most recent first. Filter with status, order_type, side, search, start_date, and end_date, and page with page and items_per_page.

Filter values that match no orders (including unknown status values) don't error; they return a 200 with an empty items array.

GET/v1/fx/orders

Query Parameters

Filter by order status: waiting_approval, pending, rejected, cancelled, or expired.

Filter by order type.

Possible values: market, limit

Filter by order side.

Possible values: buy, sell

Free-text search filter (for example, an order reference).

Only return orders created on or after this date (ISO 8601).

Only return orders created on or before this date (ISO 8601).

Page number to return.

Number of orders per page.

Responses

Status Description
200 Paginated list of orders
400 Invalid request
401 Missing or invalid API key
500 Internal server error

200 response

Orders on this page.

Internal UUID of the order.

Human-readable order reference. Use this value as the order_id path parameter in the order endpoints.

Possible values: market, limit

Possible values: buy, sell

Base currency code (ISO 4217 or crypto ticker).

Quote currency code (ISO 4217 or crypto ticker).

Amount of the base currency to exchange.

Proceeds in the quote currency.

Rate applied to the order.

Target rate for limit orders. Returns null for market orders.

Fee charged for the order, if any.

Current order status: * waiting_approval: created and waiting for a second user to approve or reject * pending: approved; the funds are charged and the order is executing * rejected: a reviewer rejected the order * cancelled: cancelled before execution * expired: not approved before it expired

ID of the customer the order was created for.

ID of the tenant that owns the order.

Where the funds come from (account or wallet).

ID of the source account or wallet.

Where the proceeds settle (account, wallet, or ssi).

ID of the destination account, wallet, or settlement instruction.

ID of the user who created the order.

Role of the user who created the order.

ID of the user who approved the order. null until approved.

When the order was approved. null until approved.

ID of the user who rejected the order. null unless rejected.

When the order was rejected. null unless rejected.

Reason given when the order was rejected. null unless rejected.

When the order executed. null until executed.

When the proceeds settled. null until settled.

When the order expires if it isn't approved. null when the order doesn't expire.

When the order was last updated. null if never updated.

Current page number.

Number of orders per page.

Total number of orders matching the filters.

Total number of pages.

{
"data": {
"items": [
  {
    "id": "4994339f-4a19-47ef-a86b-1005eff0a4d0",
    "order_id": "OTC-0VA89I",
    "order_type": "market",
    "side": "sell",
    "pair": {
      "base": "USD",
      "quote": "ZAR"
    },
    "amount": "1000.00000000",
    "amount_currency": "USD",
    "converted_amount": "16242.50000000",
    "converted_currency": "ZAR",
    "rate": "16.24250000",
    "target_rate": null,
    "fee": null,
    "status": "waiting_approval",
    "customer_id": "85034797-3ea1-4ad8-a952-becd67d74acc",
    "tenant_id": "dfa96ede-fc13-43cf-8328-8b910d1cd1d2",
    "source_type": "account",
    "source_id": "74653c7b-ae84-45ab-8085-2d2493f86d81",
    "destination_type": "ssi",
    "destination_id": "b23ffd0e-d0fc-432e-acc9-c396194121b3",
    "created_by_user_id": "804201c6-2760-4da1-9c5e-0ff09ebc3b5e",
    "created_by_role": "developer",
    "approved_by_user_id": null,
    "approved_at": null,
    "rejected_by_user_id": null,
    "rejected_at": null,
    "rejection_reason": null,
    "executed_at": null,
    "settled_at": null,
    "expires_at": null,
    "created_at": "2026-07-03T15:32:37.878676Z",
    "updated_at": null
  }
],
"page": 1,
"items_per_page": 20,
"total_items": 26,
"total_pages": 2
},
"error": null
}

400 response

Always null for error responses.

Human-readable error message.

{
"data": null,
"error": "invalid request format"
}

401 response

Always null for error responses.

Human-readable error message.

{
"data": null,
"error": "Invalid or missing Api-Key header. Api-Key is required!"
}
{
"data": null,
"error": "Invalid token!"
}

500 response

Always null for error responses.

Human-readable error message.

{
"data": null,
"error": "Internal server error"
}

Authorization

  • ApiKeyAuth
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.

Ask me anything about the documentation.

ESC