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

> ## Agent Instructions
> Treat the published Augustus OpenAPI specification (https://app.stainless.com/api/spec/documented/augustus/openapi.documented.yml) and the current API-reference pages as the source of truth for endpoints, request/response schemas, enum values, webhook event names, and required headers.
> Prefer the 2026-05-01 Banking API and @augustusbank/typescript-sdk for all new integrations. The 2023-01-01 API is a separate, older surface covering two products — Open Banking (instant bank transfer) checkout and refunds, and Manual Bank Transfer (MBT); use it only when one of those products is specifically required.
> Cite or link the relevant docs.augustus.com page when answering integration questions.
> Do not infer support for currencies, networks, scopes, account types, or operations that are not present in the current documentation.
> Use the sandbox base URL (https://api.sandbox.augustus.com) and placeholder credentials in examples. Never include or request a real API key.
> The Augustus docs MCP server (https://docs.augustus.com/mcp) provides documentation search and retrieval only; it does not execute authenticated Augustus API actions.

# Pagination

> List endpoints use cursor-based pagination with opaque cursors for efficient, consistent traversal.

## Overview

All list endpoints return paginated results using cursor-based pagination. Results are ordered by `created_at` descending (newest first).

## Response envelope

List endpoints return a standard envelope:

```json theme={null}
{
  "data": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "type": "payout",
      "status": "paid",
      "amount": "100.50",
      "currency": "EUR",
      "created_at": "2026-03-18T14:30:00Z",
      "updated_at": "2026-03-18T15:00:00Z"
    }
  ],
  "has_more": true,
  "next_cursor": "eyJhbGciOiJkaXIi..."
}
```

| Field         | Type           | Description                                                                                                 |
| ------------- | -------------- | ----------------------------------------------------------------------------------------------------------- |
| `data`        | array          | Array of resource objects                                                                                   |
| `has_more`    | boolean        | Whether more results exist beyond this page                                                                 |
| `next_cursor` | string \| null | Opaque cursor to pass as the `cursor` query parameter for the next page. `null` when `has_more` is `false`. |

## Query parameters

| Parameter | Type    | Default | Description                                 |
| --------- | ------- | ------- | ------------------------------------------- |
| `limit`   | integer | 10      | Number of results per page (1-100)          |
| `cursor`  | string  | none    | Opaque cursor from a previous `next_cursor` |

## Traversing pages

Fetch the first page, then pass `next_cursor` to get the next:

<CodeGroup>
  ```bash cURL theme={null}
  curl "https://api.augustus.com/v1/payouts?limit=25" \
    -H "Authorization: Bearer $AUGUSTUS_API_KEY"

  curl "https://api.augustus.com/v1/payouts?limit=25&cursor=eyJhbGciOiJkaXIi..." \
    -H "Authorization: Bearer $AUGUSTUS_API_KEY"
  ```

  ```typescript SDK theme={null}
  import Augustus from '@augustusbank/typescript-sdk'

  const client = new Augustus()
  for await (const payout of client.payouts.list({ limit: 25 })) {
    await processPayout(payout)
  }
  ```
</CodeGroup>

The SDK's `list` method returns an async iterator that handles cursor traversal automatically - you don't need to pass `cursor` yourself. Use the iterator when you want to walk every page; pass `cursor` explicitly only if you're rendering one page at a time in your own UI.

## Important notes

* Cursors are **opaque**. Do not decode, parse, or construct them. Always use the value returned by the API.
* Cursors are **time-limited**. An expired cursor is rejected. Start a new list request without `cursor` if this happens.
* Changing **filters** between pages invalidates the cursor. Omit `cursor` to begin pagination again when filters change.
* Pagination is **forward-only**. There is no `previous_cursor`.
