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

# API Overview

> Introduction to the Avoca Enterprise API

## Overview

The Avoca Enterprise API gives enterprise customers and partners programmatic, read-only access to Avoca data: call records and transcripts, unified leads, coach (QA) evaluations, Simple Scheduler sessions and analytics, and outbound texting activity.

For pushing data **into** Avoca (lead intake) and receiving real-time notifications **from** Avoca (event webhooks), see [Webhooks & Lead Intake](/api-reference/webhooks/event-webhooks).

## Base URL

All Enterprise API requests are made to:

```
https://enterprise-api.avoca.ai
```

Endpoint paths in this reference include the `/api` prefix (for example `https://enterprise-api.avoca.ai/api/calls`).

## Authentication

Every request requires an API key sent as a Bearer token:

```bash theme={null}
Authorization: Bearer YOUR_API_KEY
```

API keys use the format `avoca_<64 hex characters>`. Multi-team (`enterprise_all_teams`) keys must also identify the target team on v0 endpoints via the `x-team-id` header or `team_id` query parameter — v1 endpoints embed the team ID in the URL path instead. See [Authentication](/api-reference/authentication) for key types, permissions, and how to obtain keys.

## API Versions

| Version                | Style                                                                | Recommendation                   |
| ---------------------- | -------------------------------------------------------------------- | -------------------------------- |
| **v1** (`/api/v1/...`) | RESTful resources, team ID in the URL path, cursor pagination        | Recommended for new integrations |
| **v0** (`/api/...`)    | Flat endpoints, team resolved from the API key or `x-team-id` header | Continues to work unchanged      |

## Pagination

Two pagination styles are used:

* **Offset pagination** (most v0 endpoints): `limit` and `offset` query parameters. Responses include a `pagination` object with `limit`, `offset`, and `has_more`.
* **Cursor (keyset) pagination** (v1 sessions, bookings, leads, and outbound feeds): pass the `cursor` value from a response's `pagination.cursor` back as the `cursor` query parameter to fetch the next page. On the last page `has_more` is `false` and `cursor` is `null`.

## Response Format

Successful responses return JSON with a `data` field, plus `pagination` and/or `meta` where applicable:

```json theme={null}
{
  "data": [ ... ],
  "pagination": { "cursor": "eyJ0Ijoi...", "has_more": true, "limit": 50 },
  "meta": { "team_id": 808 }
}
```

## Errors

Errors use a consistent shape with an `error` field and, on newer endpoints, a human-readable `message`:

```json theme={null}
{
  "error": "Forbidden",
  "message": "This API key does not have the 'read:scheduler_analytics' permission"
}
```

| Code | Description                                                      |
| ---- | ---------------------------------------------------------------- |
| 200  | Success                                                          |
| 400  | Bad Request — invalid parameters                                 |
| 401  | Unauthorized — missing or invalid API key                        |
| 403  | Forbidden — API key lacks the required permission or team access |
| 404  | Not Found — resource does not exist                              |
| 500  | Internal Server Error                                            |

## Rate Limiting

Rate limiting is not currently enforced on the Enterprise API. This may change in future versions; build clients to tolerate `429` responses.

## Support

* **Email**: [support@avoca.ai](mailto:support@avoca.ai)
* **Dashboard**: [app.avoca.ai](https://app.avoca.ai)
