> ## 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.

# REST-API – Überblick

> Bearer-Authentifizierung, Basis-URL und Ressourcen auf einen Blick.

Die Talkturo-REST-API gibt Ihnen die volle programmatische Kontrolle über Ihre Voice-KI-Infrastruktur: Assistenten anlegen und konfigurieren, ausgehende Kampagnen starten, CRM-Kontakte und -Unternehmen verwalten, Telefonnummern kaufen und Anrufdaten abrufen — ohne das Dashboard. Fast jede Aktion der Web-App ist über diese API abbildbar.

<CardGroup cols={2}>
  <Card title="Authentifizierung" icon="key" href="/de/api-reference/authentication">
    API-Token holen und Anfragen mit Bearer-Header autorisieren.
  </Card>

  <Card title="Assistenten" icon="robot" href="/de/api-reference/assistants">
    KI-Assistenten erstellen, konfigurieren und Telefonnummern zuweisen.
  </Card>

  <Card title="Kampagnen" icon="phone-arrow-up-right" href="/de/api-reference/campaigns">
    Ausgehende Kampagnen aufbauen und Massenwahl starten.
  </Card>

  <Card title="Kontakte" icon="address-book" href="/de/api-reference/contacts">
    CRM-Kontakte für Kampagnen anlegen und auflisten.
  </Card>

  <Card title="Unternehmen" icon="building" href="/de/api-reference/companies">
    Unternehmensdatensätze pflegen und Kontakte verknüpfen.
  </Card>

  <Card title="Telefonnummern" icon="phone" href="/de/api-reference/phone-numbers">
    Nummern suchen, kaufen und auflisten.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/de/api-reference/webhooks">
    Echtzeit-Ereignisse zu Anrufen und Abrechnung empfangen.
  </Card>
</CardGroup>

## Basis-URL

Alle Endpunkte sind relativ zur Domain Ihres Talkturo-Kontos:

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

Beispiel zum Auflisten von Kampagnen:

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

## Anfrageformat

Senden Sie Request-Bodies als JSON und setzen Sie bei jedem `POST` und `PATCH` den Header `Content-Type: application/json`.

```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"}'
```

## Antwortformat

Jede Antwort ist ein JSON-Objekt mit einem booleschen Feld `success` auf oberster Ebene. Bei Erfolg enthält die Antwort das passende Ressourcenobjekt oder -array. Bei Fehler einen passenden HTTP-Status und eine Fehlermeldung.

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

Paginierte Listen liefern zusätzlich `count`, `limit` und `offset`:

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

## HTTP-Statuscodes

| Code  | Bedeutung                                                 |
| ----- | --------------------------------------------------------- |
| `200` | Anfrage erfolgreich                                       |
| `400` | Ungültige oder fehlende Parameter                         |
| `401` | Token fehlt oder ungültig                                 |
| `403` | Authentifiziert, aber keine Berechtigung für diese Aktion |
| `404` | Ressource existiert nicht                                 |
| `409` | Konflikt — z. B. Ressource existiert bereits              |
| `500` | Interner Serverfehler                                     |

## Authentifizierung

Alle Endpunkte erfordern einen Bearer-Token im Header `Authorization`. Details: [Authentifizierung](/de/api-reference/authentication).
