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

# List Orders

> Retrieve a list of orders

# List Orders

Returns a paginated list of orders for the store.

## Request

```bash theme={null}
curl -X GET "https://api.launchmystore.io/api/v1/orders.json" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
```

## Parameters

<ParamField query="page" type="integer" default="1">
  Page number for pagination
</ParamField>

<ParamField query="limit" type="integer" default="50">
  Number of results per page
</ParamField>

<ParamField query="status" type="string">
  Filter by order status. One of: `pending`, `confirmed`, `processing`, `shipped`, `delivered`, `cancelled`
</ParamField>

<ParamField query="since_id" type="string">
  Return only orders with an ID greater than the supplied value
</ParamField>

## Response

This endpoint returns a bare response body: a bare object whose `orders` key holds the array of orders. There is no `success`/envelope wrapper. Pagination is conveyed through the RFC-5988 `Link` response header (`rel="next"` / `rel="previous"`) rather than a body field, and the resolved contract version is returned in the `X-LMS-Api-Version` header. Monetary values are decimal strings (for example `"59.50"`).

<ResponseField name="orders" type="array">
  Array of order objects

  <Expandable title="Order Object">
    <ResponseField name="id" type="string">
      Unique order ID
    </ResponseField>

    <ResponseField name="name" type="string">
      Order name (e.g. `#1001`)
    </ResponseField>

    <ResponseField name="order_number" type="integer">
      Human-readable order number
    </ResponseField>

    <ResponseField name="email" type="string">
      Customer email
    </ResponseField>

    <ResponseField name="phone" type="string">
      Customer phone
    </ResponseField>

    <ResponseField name="financial_status" type="string">
      Payment status
    </ResponseField>

    <ResponseField name="fulfillment_status" type="string">
      Fulfillment status
    </ResponseField>

    <ResponseField name="subtotal_price" type="string">
      Subtotal as a decimal string
    </ResponseField>

    <ResponseField name="tax_price" type="string">
      Total tax as a decimal string
    </ResponseField>

    <ResponseField name="shipping_price" type="string">
      Total shipping cost as a decimal string
    </ResponseField>

    <ResponseField name="total_discounts" type="string">
      Total discounts as a decimal string
    </ResponseField>

    <ResponseField name="total_price" type="string">
      Total price as a decimal string
    </ResponseField>

    <ResponseField name="line_items" type="array">
      Array of line items
    </ResponseField>

    <ResponseField name="customer" type="object">
      Customer information
    </ResponseField>

    <ResponseField name="shipping_address" type="object">
      Shipping address
    </ResponseField>

    <ResponseField name="billing_address" type="object">
      Billing address
    </ResponseField>

    <ResponseField name="shipping_lines" type="array">
      Chosen shipping rate(s)
    </ResponseField>

    <ResponseField name="created_at" type="string">
      Creation timestamp (ISO 8601)
    </ResponseField>

    <ResponseField name="updated_at" type="string">
      Last update timestamp (ISO 8601)
    </ResponseField>
  </Expandable>
</ResponseField>

## Example Response

```
Link: <https://api.launchmystore.io/api/v1/orders.json?limit=50&page=2>; rel="next"
X-LMS-Api-Version: 2026-06
```

```json theme={null}
{
  "orders": [
    {
      "id": "b2c3d4e5-1001-4f6a-8b9c-0d1e2f3a4b5c",
      "name": "#1001",
      "order_number": 1001,
      "email": "customer@example.com",
      "phone": "",
      "financial_status": "paid",
      "fulfillment_status": "unfulfilled",
      "subtotal_price": "50.00",
      "tax_price": "4.50",
      "shipping_price": "5.00",
      "total_discounts": "0.00",
      "total_price": "59.50",
      "line_items": [
        {
          "id": "li-xyz789",
          "product_id": "prod-abc123",
          "variant_id": "var-xyz789",
          "title": "Classic T-Shirt",
          "variant_title": "Small / Black",
          "quantity": 2,
          "price": "25.00",
          "sku": "TSHIRT-S-BLK"
        }
      ],
      "customer": {
        "id": "cust-123",
        "email": "customer@example.com",
        "first_name": "John",
        "last_name": "Doe"
      },
      "shipping_address": {
        "first_name": "John",
        "last_name": "Doe",
        "address1": "123 Main St",
        "city": "New York",
        "province": "NY",
        "country": "US",
        "zip": "10001"
      },
      "billing_address": {
        "first_name": "John",
        "last_name": "Doe",
        "address1": "123 Main St",
        "city": "New York",
        "province": "NY",
        "country": "US",
        "zip": "10001"
      },
      "shipping_lines": [
        {
          "title": "Standard",
          "code": "standard",
          "source": null,
          "price": "5.00",
          "currency": "USD"
        }
      ],
      "created_at": "2024-01-20T14:30:00.000Z",
      "updated_at": "2024-01-20T14:35:00.000Z"
    }
  ]
}
```

## Error Response

Errors on the app surface use a standard `{ errors }` body:

```json theme={null}
{
  "errors": {
    "base": ["Unauthorized"]
  }
}
```

## Error Codes

| HTTP Status | Description                                                  |
| ----------- | ------------------------------------------------------------ |
| `401`       | Invalid or missing access token                              |
| `403`       | App doesn't have `read_orders` scope                         |
| `422`       | Invalid query parameter (e.g. an unsupported `status` value) |
