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

# API reference

> Base URL, auth, response shape, money and ids: everything you need before your first request.

A REST API over JSON. Every path starts with `/v2` and every request carries your API key.

&#x20;TOLT\_API\_KEY
GET /v2/partners
&#x20;Tolt

200 OK

**response**listsuccesstruedata\[part\_8fKq…]has\_moretruenext\_cursor"cur\_WyIy…"

4xx or 5xx

**error**404successfalsecode"not\_found"doc\_url"…/errors#not\_found"

## First request

Create a key in **Dashboard → Settings → Integrations → Tolt API**, then list your partners:

```ts TypeScript theme={"system"}
import { ToltApiClient } from "@tolt/api";

const tolt = new ToltApiClient({ token: process.env.TOLT_API_KEY! });
const { data } = await tolt.partners.list({ limit: 10 });
```

```python Python theme={"system"}
import os
from tolt import ToltApi

client = ToltApi(token=os.environ["TOLT_API_KEY"])
page = client.partners.list(limit=10)
```

```bash cURL theme={"system"}
curl "https://platform.tolt.com/v2/partners?limit=10" \
  -H "Authorization: Bearer $TOLT_API_KEY"
```

## Response envelope

Every response wraps the result in `data`. Lists add [pagination](/api-reference/pagination) fields; errors set `success: false` and a [`code`](/api-reference/errors).

```json theme={"system"}
{
  "success": true,
  "message": "Success",
  "data": [
    {
      "id": "part_8fKq2LmZx7RtYw3nVbHc5dPj",
      "email": "sam@riverastudio.com",
      "first_name": "Sam",
      "last_name": "Rivera",
      "status": "active",
      "program_id": "prg_3hTq9WxLm2RbZk7VnYc4DsPf",
      "created_at": "2026-09-14T09:12:44.000Z"
    }
  ],
  "has_more": true,
  "next_cursor": "cur_WyIyMDI2LTA5LTE0VDA5OjEyOjQ0LjAwMFoiXQ",
  "prev_cursor": "cur_WyIyMDI2LTA5LTE0VDA5OjEyOjQ0LjAwMFoiXQ"
}
```

## Conventions

| Topic | Rule |
| - | - |
| **Money** | Integers in minor units. Send `4900` for \$49.00; responses return it as the string `"4900"` |
| **Timestamps** | Responses use ISO 8601 in UTC. Request datetimes need an offset: `2026-01-01T00:00:00Z` |
| **Updates** | `PUT` is a partial update. Send only what changes; `null` clears a nullable field |
| **Naming** | `snake_case` everywhere. Unknown body fields are ignored |
| **Request-Id** | Every response has a `Request-Id` header. Send your own `Request-Id` to trace a call end to end |

> [!NOTE]
>
> Promotion code `value` is the exception to the money rule: a string, as a percent for `percentage` codes and in major units for `fixed` codes (`"20"` = \$20.00).

## ID prefixes

| Prefix | Resource | Prefix | Resource |
| - | - | - | - |
| `prg_` | Program | `clk_` | Click |
| `grp_` | Group | `cus_` | Customer |
| `part_` | Partner | `txn_` | Transaction |
| `lnk_` | Link | `comm_` | Commission |
| `promo_` | Promotion code | `flw_` | Flow |

Records created before prefixed ids can still have plain ids. Treat every id as an opaque string.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.