---
title: "List orders"
method: GET
path: "/api/v1/orders"
tags: ["Orders"]
---

# List orders

`GET /api/v1/orders`

## Request

- Base URL: `https://spoofy.social`
- URL: `https://spoofy.social/api/v1/orders`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `better-auth.session_token`

Your orders, newest first. Page with `before` = the smallest order number you have.

## Query parameters

- `status` 'pending' | 'processing' | 'completed' | 'partial' | 'refunded' | 'cancelled' | 'failed'
- `limit` integer
- `before` integer

## Response `200`

Orders.

- object
  - `orders` Order[]
    - `id` integer: Order number.
    - `service` object
      - `id` integer
      - `name` string
      - `platform` string
      - `metric` string
    - `link` string
    - `quantity` integer
    - `charge` string: Charged at placement. USD as a decimal string.
    - `refunded` string: Refunded so far (partial deliveries and failures refund automatically). USD as a decimal string.
    - `status` 'pending' | 'processing' | 'completed' | 'partial' | 'refunded' | 'cancelled' | 'failed'
    - `kind` 'count' | 'time' | 'manual': As the service’s `kind`.
    - `startCount` integer, nullable: Count on the target when delivery started.
    - `delivered` integer, nullable
    - `remains` integer, nullable: Units not delivered. Time-based orders: viewers, already counting the minutes that did not run — the refund is charge × remains / quantity.
    - `run` object, nullable: Time-based orders: minutes ordered, minutes run so far, and the peak live count reached (at most `quantity`).
      - `minutes` integer
      - `servedMinutes` integer
      - `peak` integer, nullable
    - `stage` object, nullable: Done-for-you orders: where the work is. `step`: queued, submitted (with the platform, waiting for their review), approved, rejected (refunded in full), cancelled or failed.
      - `step` string
      - `label` string: The step in words.
      - `note` string, nullable
      - `at` string, date-time, nullable
    - `inputs` object, nullable: The order fields as sent and checked (`shape` + its fields); null for a plain order.
    - `review` object, nullable: Text orders our team checks before they go out: `state` checking (nothing started; cancel any time for a full refund) or rejected (refunded in full).
      - `state` 'checking' | 'rejected'
      - `label` string
    - `cancelable` boolean: A cancel can be requested now.
    - `source` 'web' | 'api' | 'v2' | 'mcp'
    - `createdAt` string, date-time
    - `finishedAt` string, date-time, nullable
    - `expectedAt` string, date-time, nullable: When we expect it fully delivered (estimate made when the order was placed); null when there is no estimate.

## Other responses

- `401`: No valid API key or session.
- `429`: Slow down: too many requests in a short time. Wait `Retry-After` seconds and carry on.

---

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