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

# List your orders

`GET /orders`

## Request

- Base URL: `https://0.0.0.0:3000/api/v1`
- URL: `https://0.0.0.0:3000/api/v1/orders`
- Auth: API key in header `x-api-key`

Cursor paginated and filterable. The filters are the same ones the dashboard's own table uses — one shared query builder — so a filtered list here and a filtered table there can never disagree, and no filter can widen what the key is allowed to see.

The list is deliberately lean. For every parcel, the artwork and the proof photo, read one order with `GET /orders/{id}`.

## Query parameters

- `cursor` integer
- `limit` integer
- `status` string
- `hold_reason` string
- `marketplace` string
- `external_id` string
- `paid` boolean
- `warehouse` string
- `placed_after` string
- `placed_before` string
- `updated_after` string

## Response `200`

A page of orders. `next_cursor` is null on the last page.

## Other responses

- `401`: No key, or a key that is unknown, revoked or expired. One message for all four — telling you which would confirm to a guesser that a key exists.
- `429`: Over the per-key limit. `Retry-After` says how many seconds to wait.
- `500`: Our fault. `error.request_id` matches the X-Request-Id header — quote it to support.

---

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