> ## Documentation Index
> Fetch the complete documentation index at: https://docs.e-cubee.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List orders

> List and search orders created with your API key.

Returns a paginated list of orders created with the current API key. Your key needs the `orders:list` scope.

## Headers

<ParamField header="X-Api-Key" type="string" required>
  Your API key. You can use `Authorization: Api-Key your_key` instead.
</ParamField>

## Query parameters

<ParamField query="query" type="string">
  Search text, such as an order number.
</ParamField>

<ParamField query="page" type="integer" default="1">
  One-based page number. Values below `1` are treated as `1`.
</ParamField>

Each page contains up to 25 orders.

## Request example

```bash theme={null}
curl --get "$MORABAA_API_URL/external/v1/orders" \
  --header "X-Api-Key: $MORABAA_API_KEY" \
  --data-urlencode "query=ORD-1042" \
  --data-urlencode "page=1"
```

## Response

<ResponseField name="items" type="object[]" required>
  Orders on the current page.

  <Expandable title="Order fields">
    <ResponseField name="id" type="UUID" required>Order ID.</ResponseField>
    <ResponseField name="orderNumber" type="string" required>Order number.</ResponseField>
    <ResponseField name="status" type="string" required>Current order status.</ResponseField>
    <ResponseField name="total" type="number" required>Order subtotal.</ResponseField>
    <ResponseField name="finalTotal" type="number" required>Final order total.</ResponseField>
    <ResponseField name="productsCount" type="integer" required>Total item quantity.</ResponseField>
    <ResponseField name="date" type="string" required>Order date and time in ISO 8601 format.</ResponseField>
    <ResponseField name="customerName" type="string" required>Customer name.</ResponseField>
    <ResponseField name="customerPhone" type="string | null">Customer phone.</ResponseField>
    <ResponseField name="note" type="string | null">Order note.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="page" type="integer" required>Current page.</ResponseField>
<ResponseField name="pageSize" type="integer" required>Maximum items per page. Always `25`.</ResponseField>
<ResponseField name="total" type="integer" required>Total matching orders.</ResponseField>

```json theme={null}
{
  "items": [
    {
      "id": "55555555-5555-5555-5555-555555555555",
      "orderNumber": "ORD-1042",
      "status": "Pending",
      "total": 20000,
      "finalTotal": 20000,
      "productsCount": 2,
      "date": "2026-08-16T10:30:00+03:00",
      "customerName": "Ahmed Ali",
      "customerPhone": "+9647700000000",
      "note": "Leave at reception"
    }
  ],
  "page": 1,
  "pageSize": 25,
  "total": 1
}
```

## Errors

| Status | Cause                                  |
| ------ | -------------------------------------- |
| `401`  | The API key is missing or invalid.     |
| `403`  | The key lacks the `orders:list` scope. |
| `429`  | The rate limit was exceeded.           |
| `500`  | An unexpected error occurred.          |
