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

# Talkturo REST API overview

> Use the Talkturo REST API to create and manage assistants, campaigns, contacts, companies, and phone numbers, and to retrieve call data programmatically.

The Talkturo REST API gives you full programmatic control over your Voice AI infrastructure. You can create and configure AI assistants, build and launch outbound campaigns, manage your CRM contacts and companies, purchase phone numbers, and retrieve call data — all without touching the dashboard. Every action available in the Talkturo web app is backed by this API.

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/en/api-reference/authentication">
    Learn how to get your API token and authorize requests.
  </Card>

  <Card title="Assistants" icon="robot" href="/en/api-reference/assistants">
    Create, configure, and assign phone numbers to AI assistants.
  </Card>

  <Card title="Campaigns" icon="phone-arrow-up-right" href="/en/api-reference/campaigns">
    Build outbound campaigns and start batch calling.
  </Card>

  <Card title="Contacts" icon="address-book" href="/en/api-reference/contacts">
    Create and list CRM contacts for your campaigns.
  </Card>

  <Card title="Companies" icon="building" href="/en/api-reference/companies">
    Manage company records and associate contacts.
  </Card>

  <Card title="Phone Numbers" icon="phone" href="/en/api-reference/phone-numbers">
    Search, purchase, and list phone numbers.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/en/api-reference/webhooks">
    Receive real-time events for calls and billing.
  </Card>
</CardGroup>

## Base URL

All API endpoints are relative to your Talkturo account domain:

```
https://<your-domain>/api
```

For example, to list campaigns, you send a request to:

```
https://<your-domain>/api/crm/campaigns
```

## Request format

Send all request bodies as JSON and include the `Content-Type: application/json` header on every `POST` and `PATCH` request.

```bash theme={null}
curl -X POST https://<your-domain>/api/assistants \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"accountSlug": "my-team", "name": "Sales Agent"}'
```

## Response format

Every response returns a JSON object with a top-level `success` boolean. On success, the response includes the relevant resource object or array. On failure, it returns an appropriate HTTP status code and a message describing the error.

```json theme={null}
{
  "success": true,
  "assistant": {
    "id": "asst_01j...",
    "name": "Sales Agent",
    ...
  }
}
```

Paginated list endpoints also return `count`, `limit`, and `offset` fields alongside the data array:

```json theme={null}
{
  "success": true,
  "campaigns": [...],
  "count": 120,
  "limit": 50,
  "offset": 0
}
```

## HTTP status codes

| Code  | Meaning                                          |
| ----- | ------------------------------------------------ |
| `200` | Request succeeded                                |
| `400` | Invalid or missing request parameters            |
| `401` | Missing or invalid authentication token          |
| `403` | Authenticated but not authorized for this action |
| `404` | The requested resource does not exist            |
| `409` | Conflict — the resource already exists           |
| `500` | Internal server error                            |

## Authentication

All endpoints require a Bearer token in the `Authorization` header. See the [authentication guide](/en/api-reference/authentication) for details on how to obtain and use your token.
