---
title: "List orders"
method: GET
path: "/commerce/orders"
tags: ["Commerce"]
---

# List orders

`GET /commerce/orders`

## Request

- Base URL: `https://sending.dev/api/v1`
- URL: `https://sending.dev/api/v1/commerce/orders`
- Auth: HTTP bearer

Orders from connected stores and from `POST /commerce/orders`, newest first. `attributedMessageId` is the marketing message credited with the order (last content click in the window). Required scope: `commerce:read`.

## Query parameters

- `contactId` string, uuid
- `status` 'placed' | 'fulfilled' | 'cancelled'
- `since` string, date-time: Orders placed at or after this instant (ISO 8601, offset allowed).
- `limit` integer, nullable: Default 50, max 200.
- `cursor` string: `nextCursor` of the previous page; an unreadable cursor is a 422 `invalid_cursor`.

## Response `200`

Orders.

- CommerceOrderList
  - `orders` CommerceOrder[], required
    - `id` string, uuid, required
    - `source` 'store' | 'api', required: `store`: a connected store; `api`: `POST /commerce/orders`.
    - `connectionId` string, uuid, nullable, required
    - `externalId` string, required
    - `contactId` string, uuid, nullable, required
    - `status` 'placed' | 'fulfilled' | 'cancelled', required: API orders are always `placed`: the API knows no fulfillment or cancellation.
    - `total` number, required
    - `refunded` number, required
    - `currency` string, required
    - `placedAt` string, date-time, required
    - `attributedMessageId` string, nullable, required: Marketing message with the last content click in the attribution window before the order; `null` if none.
    - `attributedTo` object, nullable, required
      - `campaignId` string, uuid, nullable, required
      - `automationId` string, uuid, nullable, required
    - `items` object[], required
      - `title` string, required
      - `quantity` number, required
      - `price` number, nullable, required
      - `productId` string, nullable, required
  - `nextCursor` string, nullable, required

## Other responses

- `401`: Missing or invalid token.
- `403`: Insufficient scope.
- `422`: Invalid input.

---

[API](https://skmtc.dev/sending/apis/sending-dev-api.md) · [All operations](https://skmtc.dev/sending/apis/sending-dev-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sending/apis/sending-dev-api/revisions/9fe78d2918a1?raw)
