# List orders

> Orders for the authenticated account, most recent first.

Source: https://docs.stxapp.io/api/rest/orders/list-orders/

Orders for the authenticated account, most recent first.

```http
GET /api/v1/orders
```

Send it with your own demo key: [Try it](/quick-start/?op=orders_get#try-it).

:::tip[In the SDKs]
- TypeScript: [`STX.orders()`](/sdks/typescript/reference/stx/#orders)
- Python: [`STX.orders()`](/sdks/python/reference/stx/#orders)
- C#: [`STXOrderService.GetMyOrdersAsync()`](/sdks/csharp/reference/trading/#stxorderservice)
:::

## Parameters

| Name | In | Type | Required | Description |
|---|---|---|---|---|
| `order_ids` | `query` | string | no | Comma-separated order UUIDs. |
| `client_order_ids` | `query` | string | no | Comma-separated client order ids you supplied on placement. |
| `market_ids` | `query` | string | no | Comma-separated market UUIDs. |
| `status` | `query` | `created` \| `requested` \| `accepted` \| `delayed` \| `open` \| `filled` \| `rejected` \| `cancelled` \| `partially_cancelled`[] | no | Order statuses, lowercase. An unknown value is a 400. Note that `open` alone does not mean "my working orders": on a `pre_open` market an order rests at `accepted`, so filter on `created,requested,accepted,delayed,open` to list everything still live. |
| `limit` | `query` | integer | no | Rows per page. Defaults to 100 and is silently clamped to 200; a larger value is not an error. |
| `cursor` | `query` | string | no | Cursor from the previous response. Omit for the first page. |

## Responses

| Status | Description | Schema |
|---|---|---|
| `200` | Success | object |
| `400` | A parameter was missing or invalid. | Error |
| `401` | Missing, malformed or unrecognized signature, or a timestamp outside the 30-second window. Body: &#123;"error":"Missing or invalid API key credentials"&#125; | Error |
| `403` | The account behind this key is not active, for example it is pending approval or suspended. Body: &#123;"error":"Your account is suspended. Contact support."&#125;, the message naming the account's status. | Error |

## Example

Request:

```bash
curl --request GET \
  --url 'https://demo.stxapp.io/api/v1/orders' \
  --header 'X-STX-ACCESS-KEY: <key-id>' \
  --header 'X-STX-ACCESS-TIMESTAMP: <unix-ms>' \
  --header 'X-STX-ACCESS-SIGNATURE: <base64-ed25519>'
```

Response `200`:

```json
{
  "cursor": null,
  "orders": [
    {
      "accepted_at": null,
      "action": "buy",
      "amount": "0.6700",
      "avg_price": "0.6700",
      "cancellation_reason": null,
      "client_order_id": null,
      "delayed_until": null,
      "device_id": null,
      "expiration": null,
      "expiration_time": null,
      "expires_at": null,
      "filled": "2.00",
      "filled_amount": "0.6700",
      "filled_percentage": 0,
      "fix_order": false,
      "id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
      "inserted_at": 0,
      "ip_address": null,
      "market_id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
      "odds_type": null,
      "odds_value": null,
      "order_type": "limit",
      "placed_pre_start": false,
      "price": "0.4200000",
      "quantity": "2.00",
      "rejection_reason": null,
      "status": "accepted",
      "time": "2026-08-25T04:42:46.242093Z",
      "total_value": "0.6700"
    }
  ]
}
```

### Response fields

| Field | Type | Description |
|---|---|---|
| `cursor` | string | Opaque cursor for the next page. Pass the value from the previous response; omit for the first page. `null` once there are no more pages. |
| `accepted_at` | int64 | When the matching engine accepted the order. `null` while the order is still pending. UNIX microseconds. |
| `action` | string | The action of the order, either `buy` or `sell`. |
| `amount` | decimal | Order size in dollars, for an order entered by amount rather than by contract quantity. `null` for orders placed through this API, which always take a quantity. |
| `avg_price` | decimal | Volume-weighted average fill price. `null` until the order has its first fill. In dollars. |
| `cancellation_reason` | string | The cancellation reason, if the order was cancelled. |
| `client_order_id` | string | Your own identifier, echoed back unchanged, or `null` if you sent none. A free-form string, not a UUID, and set by REST and FIX callers alike. |
| `delayed_until` | int64 | The extended deadline for a delayed order. UNIX microseconds. |
| `device_id` | string | The device from which this order was placed. |
| `expiration` | string | The expiration condition for the order. |
| `expiration_time` | int64 | The expiration time for time-based expiration. UNIX microseconds. |
| `expires_at` | int64 | When the contracts this order trades expire, as UNIX microseconds: the market's expiration, copied onto the order when it is placed. `null` when the market has no event. Not the same as `expiration_time`. |
| `filled` | decimal | Contracts filled so far. Compare with `quantity` to get remaining size. |
| `filled_amount` | decimal | The portion of `amount` that has been filled. In dollars. |
| `filled_percentage` | integer | The percentage of the contracts on the order that have been filled. A percentage, not money. |
| `fix_order` | boolean | True if the order arrived over FIX rather than REST. |
| `id` | uuid | Unique identifier for the record. |
| `inserted_at` | int64 | Creation time, as UNIX microseconds. |
| `ip_address` | string | The IP address from which this order was placed. |
| `market_id` | uuid | The market this record relates to. |
| `odds_type` | string | Legacy. The odds format (`decimal` or `american`) an order was entered in on an STX app. `null` for orders placed through this API. |
| `odds_value` | string | Legacy. The odds an order was entered at on an STX app, as a string. `null` for orders placed through this API. |
| `order_type` | string | The type of order, either `limit` or `market`. |
| `placed_pre_start` | boolean | Whether the order was placed before the event started. |
| `price` | decimal | Limit price, below the market's `max_price`; read that per market rather than assuming a ceiling. Absent for market orders. In dollars. Carries up to 7 decimal places; parse money with a variable-scale decimal type, not a fixed-width one. |
| `quantity` | decimal | Order size in contracts. |
| `rejection_reason` | string | The rejection reason, if the order was rejected. |
| `status` | string | Order state, one of nine. See [Market and order status](/concepts/market-status/#order-statuses) for the full set and which are terminal. |
| `time` | date-time | The ISO-8601 timestamp of the time the order was placed. |
| `total_value` | decimal | Total premium across all fills on this order. In dollars. |
