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

# Overview

> Base URL, authentication, versioning, and shared request/response conventions for the CurbWaste partner REST API.

The CurbWaste **partner API** is a versioned REST surface under `/v1`. All partner requests use HTTPS and Bearer company API keys. Interactive endpoints live in the **API Reference** tab (REST + Webhooks). MCP-compatible agents use the [same resources and scopes](/concepts/mcp) over `https://api.curbwaste.com/mcp`.

## Base URL

```text theme={null}
https://api.curbwaste.com
```

All partner routes are prefixed with **`/v1`**.

## Authentication

```http theme={null}
Authorization: Bearer cw_live_YOUR_API_KEY
```

Create keys and choose scopes in the [Developer Platform](https://platform.curbwaste.com). Details: [Authentication](/authentication).

## Request format

`POST` / `PATCH` bodies are JSON:

```http theme={null}
Content-Type: application/json
```

## Response format

**Single resource**

```json theme={null}
{ "data": { ... } }
```

**List**

```json theme={null}
{
  "data": [ ... ],
  "page": 1,
  "limit": 25,
  "total": 142
}
```

## Pagination

| Parameter | Default | Max | Description |
| - | - | - | - |
| `page` | `1` | — | 1-indexed page |
| `limit` | `25` | `100` | Page size |

Resource-specific query params (for example `searchTerm` on customers) are documented on each endpoint.

## Rate limits

Authenticated partner traffic is limited to **100 requests per 60 seconds per company**. REST `/v1` and `POST /mcp` share that quota across every API key for your company. Details, `429` handling, and what does not count: [Usage](/api-reference/usage).

## Versioning

Path-based: `/v1/...`. Breaking changes ship under a new major path.

## Explore the surface

| Domain | Where to look |
| - | - |
| **Customers** | Narrative pages below; also REST OpenAPI |
| **Catalog & pricing** | API Reference → REST (`/v1/skus`, services, pricelists, …) |
| **Locations & zones** | API Reference → REST (`/v1/locations`, `/v1/zones`, …) |
| **Webhooks** | [Webhook payloads](/api-reference/webhooks) and API Reference → Webhooks |

### Customers

Hand-written reference for the customer CRUD guides:

<CardGroup cols={2}>
  <Card title="List customers" icon="list" href="/api-reference/customers/list">
    `GET /v1/customers` — `customers:read`
  </Card>

  <Card title="Create customer" icon="user-plus" href="/api-reference/customers/create">
    `POST /v1/customers` — `customers:write`
  </Card>

  <Card title="Get customer" icon="user" href="/api-reference/customers/get">
    `GET /v1/customers/{id}` — `customers:read`
  </Card>

  <Card title="Update customer" icon="pen-to-square" href="/api-reference/customers/update">
    `PATCH /v1/customers/{id}` — `customers:write`
  </Card>
</CardGroup>

Outbound webhook deliveries are **not** Bearer REST routes — see [Webhook payloads](/api-reference/webhooks).

## Related

<CardGroup cols={2}>
  <Card title="Usage" icon="gauge-high" href="/api-reference/usage">
    Company rate limits for REST and MCP.
  </Card>

  <Card title="Errors" icon="triangle-exclamation" href="/api-reference/errors">
    Common HTTP status codes and how to resolve them.
  </Card>

  <Card title="Webhook payloads" icon="webhook" href="/api-reference/webhooks">
    Envelope and per-event OpenAPI schemas.
  </Card>

  <Card title="Authentication" icon="key" href="/authentication">
    API keys, Bearer tokens, and scopes.
  </Card>
</CardGroup>


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