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

# API Reference Overview

> Authentication, base URL, response envelopes, errors, and request tracing for the Sarj.ai Developer API.

The Sarj.ai Developer API creates, schedules, and inspects outbound voice calls.

## Base URL

```text theme={null}
https://platform-api.sarj.ai/api/v1
```

## Authentication

Send your dashboard API key as a Bearer token on API operations. `GET /health` is public, and recording links can also use the call-scoped token embedded in the link.

```bash theme={null}
Authorization: Bearer $SARJ_API_KEY
```

Create and copy an API key from the [Sarj.ai dashboard](https://platform.sarj.ai/api-keys). The key is shown only once.

## Response envelopes

Successful responses contain `data` and request metadata:

```json theme={null}
{
  "data": {},
  "meta": { "request_id": "550e8400-e29b-41d4-a716-446655440000" }
}
```

Errors contain a stable, discriminated `error.type` and the same metadata:

```json theme={null}
{
  "error": {
    "type": "validation_error",
    "message": "Request validation failed.",
    "field_violations": []
  },
  "meta": { "request_id": "550e8400-e29b-41d4-a716-446655440000" }
}
```

Branch on `error.type`, not on the human-readable message. Include `meta.request_id` when contacting support.

## Start building

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/getting-started">
    Create an API key and place your first call.
  </Card>

  <Card title="Python SDK" icon="python" href="/python-sdk">
    Install the typed sync and async client.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/webhooks">
    Receive call lifecycle updates without polling.
  </Card>

  <Card title="MCP Server" icon="plug" href="/mcp-server">
    Give an AI agent controlled access to the API.
  </Card>
</CardGroup>
