---
title: "List receipts (keyset-paginated)"
method: GET
path: "/v1/receipts"
tags: ["Receipt OCR"]
---

# List receipts (keyset-paginated)

`GET /v1/receipts`

## Request

- Base URL: `https://api.nashboard.ai`
- URL: `https://api.nashboard.ai/v1/receipts`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Required scope: `receipts:read`. Returns a summary projection (no line items) ordered by created_at DESC. Supports `after` cursor, `limit` (1-100, default 20), and `status` filter.

## Query parameters

- `limit` integer
- `after` string
- `status` 'queued' | 'parsed' | 'failed'

## Headers

- `X-Nashboard-Version` '2026-06-13'

## Response `200`

Paginated list of receipt summaries.

- ReceiptList
  - `data` ReceiptSummary[], required
    - `id` string, uuid, required
    - `status` 'queued' | 'parsed' | 'failed', required
    - `currency` string, required
    - `total_minor` integer, required
    - `merchant_id` string, uuid, nullable
    - `captured_at` string, date-time, required
    - `created_at` string, date-time, required
  - `next_cursor` string, nullable: Opaque keyset cursor for the next page; null on last page.

## Other responses

- `400`: Bad request (invalid JSON, invalid ID, invalid cursor, etc.)
- `401`: Missing, malformed, or invalid API key.
- `403`: Insufficient scope or scope escalation attempt.
- `404`: Resource not found.
- `409`: Conflict (e.g. email already taken).
- `413`: Request body too large.
- `415`: Unsupported media type.
- `422`: Request body failed schema validation.
- `429`: Rate limited, quota exceeded, or DP budget exhausted.
- `500`: Internal server error.
- `502`: Upstream dependency error (e.g. receipt image storage unavailable — code storage_failure).

---

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