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

# List orders

> Query orders across channels and stores for operational dashboards and support.

Returns a paginated list of orders for the authenticated merchant. Use this endpoint to power operational dashboards, support tools, and cross-channel reporting.

<Note>
  Requires an access token with the `orders:read` scope. See
  [Token](/docs/admin-api/oauth/token/post) to obtain a token.
</Note>

## Query parameters

| Parameter      | Required | Description                                                                                                                |
| -------------- | -------- | -------------------------------------------------------------------------------------------------------------------------- |
| `from`         | Yes      | Pagination start index (base 0).                                                                                           |
| `to`           | Yes      | Pagination end index (inclusive). Must be greater than or equal to `from`.                                                 |
| `store_id`     | No       | Filter by external store identifier.                                                                                       |
| `channel_id`   | No       | Filter by external channel identifier.                                                                                     |
| `customer_id`  | No       | Filter by external customer identifier.                                                                                    |
| `is_anonymous` | No       | When `true`, return only guest checkout orders. When `false`, return only identified customer orders. Omit to return both. |

## Request

```bash theme={null}
curl "https://firespark.cloud/api/admin/v1/orders?from=0&to=24&customer_id=cust-001&is_anonymous=false" \
  -H "Authorization: Bearer ACCESS_TOKEN"
```

## Response

The response wraps an array of order objects in `data`.

<ResponseExample>
  ```json Success theme={null}
  {
    "data": [
      {
        "uid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "id": "ord-48291",
        "brand_id": "0001",
        "store_id": "downtown",
        "channel_id": "app",
        "customer_id": "cust-001",
        "is_anonymous": false,
        "fulfillment_id": "delivery",
        "fulfillment_type": "DELIVERY",
        "status": "OPEN",
        "payment_status": "PAID",
        "fulfillment_status": "PREPARING",
        "totals": {
          "currency": "USD",
          "total": 14.94
        },
        "issued_at": "2026-06-17T14:31:45.000Z"
      }
    ]
  }
  ```
</ResponseExample>

## Order object

| Field                | Required | Type             | Description                                                                  |
| -------------------- | -------- | ---------------- | ---------------------------------------------------------------------------- |
| `id`                 | Yes      | string           | External order identifier                                                    |
| `brand_id`           | No       | string \ \| null | External brand identifier when the order belongs to a brand                  |
| `store_id`           | Yes      | string           | External store identifier                                                    |
| `channel_id`         | Yes      | string           | External channel identifier                                                  |
| `customer_id`        | Yes      | string           | External customer identifier linked to the order                             |
| `is_anonymous`       | Yes      | boolean          | `true` when the customer checked out as a guest without a registered profile |
| `fulfillment_id`     | Yes      | string           | External fulfillment option selected                                         |
| `fulfillment_type`   | Yes      | string           | Fulfillment type label (for example `DELIVERY`, `PICKUP`)                    |
| `status`             | Yes      | string           | `OPEN`, `CLOSED`, `COMPLETED`, `CANCELLED`, or `REFUNDED`                    |
| `payment_status`     | Yes      | string           | Payment processing state                                                     |
| `fulfillment_status` | Yes      | string           | Kitchen and delivery progress                                                |
| `lines`              | Yes      | array            | Line items with pricing, modifier hierarchy, and per-line `metadata`         |
| `customer`           | Yes      | object           | Snapshot of customer, delivery, and billing details at checkout              |
| `payment_intents`    | Yes      | array            | Payment attempts                                                             |
| `totals`             | Yes      | object           | Order-level subtotal, tax, discount, and total                               |
| `metadata`           | No       | object           | Partner-specific metadata. Defaults to `{}`.                                 |

<AccordionGroup>
  <Accordion title="lines">
    Each entry in `lines` represents a product, fee, or modifier row:

    | Field            | Required | Type                  | Description                                                          |
    | ---------------- | -------- | --------------------- | -------------------------------------------------------------------- |
    | `type`           | Yes      | string                | `PRODUCT` or `FEE`                                                   |
    | `uid`            | Yes      | string (UUID)         | Fire spark internal line identifier                                  |
    | `id`             | Yes      | string                | External product or modifier identifier                              |
    | `parent_uid`     | Yes      | string (UUID) \| null | Parent line uid for nested modifiers. `null` for root lines.         |
    | `parent_id`      | Yes      | string \| null        | Parent line external id for nested modifiers. `null` for root lines. |
    | `name`           | Yes      | string                | Display name on the ticket                                           |
    | `image_url`      | No       | string                | Product image URL. Optional.                                         |
    | `metadata`       | No       | object                | Partner-specific data for this line. Defaults to `{}`.               |
    | `quantity`       | Yes      | number                | Units ordered. Minimum `1`.                                          |
    | `tax_rate`       | Yes      | number                | Tax rate as a decimal (for example `0.15`)                           |
    | `discount_rate`  | Yes      | number                | Discount rate as a decimal                                           |
    | `unit_subtotal`  | Yes      | number                | Subtotal for one unit, excluding children                            |
    | `unit_discount`  | Yes      | number                | Discount for one unit                                                |
    | `unit_tax_total` | Yes      | number                | Tax for one unit                                                     |
    | `unit_total`     | Yes      | number                | Total for one unit                                                   |
    | `subtotal`       | Yes      | number                | Line subtotal for `quantity`, excluding children                     |
    | `discount_total` | Yes      | number                | Line discount total                                                  |
    | `tax_total`      | Yes      | number                | Line tax total                                                       |
    | `total`          | Yes      | number                | Line total for `quantity`                                            |
    | `unit_group_*`   | Yes      | number                | Same pricing fields including all child lines at quantity 1          |
    | `group_*`        | Yes      | number                | Same pricing fields including all child lines for `quantity`         |
  </Accordion>
</AccordionGroup>

<Tip>
  Use `customer_id` to pull order history for a known shopper. Use
  `is_anonymous=true` to analyze guest checkout volume separately from registered
  customers.
</Tip>

## Error responses

| Status | Description                                    |
| ------ | ---------------------------------------------- |
| `401`  | Missing or invalid access token                |
| `403`  | Token does not include the `orders:read` scope |


## OpenAPI

````yaml GET /orders
openapi: 3.0.1
info:
  title: Fire spark Admin API
  description: Back-office and merchant operations endpoints for Fire spark.
  version: 1.0.0
servers:
  - url: https://firespark.cloud/api/admin/v1
security:
  - bearerAuth: []
paths:
  /orders:
    get:
      summary: List orders
      parameters:
        - in: query
          name: from
          required: true
          schema:
            type: string
        - in: query
          name: to
          required: true
          schema:
            type: string
        - in: query
          name: store_id
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-zA-Z0-9_-]+$
          description: Filter by external store identifier.
        - in: query
          name: channel_id
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-zA-Z0-9_-]+$
          description: Filter by external channel identifier.
        - in: query
          name: customer_id
          required: false
          schema:
            type: string
            minLength: 1
            maxLength: 64
            pattern: ^[a-zA-Z0-9_-]+$
          description: Filter by external customer identifier.
        - in: query
          name: is_anonymous
          required: false
          schema:
            type: boolean
          description: Filter by anonymous checkout orders.
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      additionalProperties: true
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````