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

# API Reference overview

> Base URL, authentication, the response envelope, and how the reference pages work.

The Perform.AI Public API is a JSON REST API over HTTPS.

* **Base URL:** `https://api.perform.ai`
* **Authentication:** OAuth 2.0 Bearer tokens on every endpoint — see [Authentication](/authentication).
* **Versioning:** endpoints are versioned per operation in the path (`/v5/…`, with `/v5-2-0/…` variants where a revision exists). The Checkout API is a separate `/v1` service.

Every reference page in this section is generated from our OpenAPI specification and includes a **live playground** — plug in your Bearer token and call the API directly from the docs.

## The response envelope

Success responses carry `api_response: "200"` and usually a `data` object or array. Warnings use HTTP 299, validation failures HTTP 400 with `api_response: "4030"` and a per-field `errors` object. The full model — including the string-vs-number `api_response` nuance and every shared error code — is in [Responses and errors](/essentials/responses-and-errors).

## Rate limits

40 requests per second per account, shared across all endpoints; exceeding it returns HTTP 429. Details and backoff guidance: [Rate limits](/essentials/rate-limits).

## Pagination at a glance

Pagination differs by endpoint family — check each page:

| Endpoints                         | Scheme                                                                                                                        |
| --------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| List Shipments                    | Cursor: `limit` 25–100 + `next_page`; last page has no `next_page`. A valid search with no matches returns HTTP 404 / `4041`. |
| Documents, Labels, PUDO locations | Page-based: `limit` 25–100 (PUDO from 1) + `page`; empty results return HTTP 200 with empty `data`.                           |
| Carrier configurations            | Page-based: `limit` up to 2000 + `page`.                                                                                      |

## Shared building blocks

* [Field reference](/essentials/field-reference) — the field dictionary with types and character limits.
* [Timestamps](/essentials/timestamps) — precision-aware date and timezone formats.
* [Webhooks](/guides/webhooks) — payloads Perform.AI sends to you, documented per format version in this section's Webhooks group.
