---
title: "Eingehende Anrufe verarbeiten (API)"
description: "End-to-End: Einen Agenten konfigurieren, ihm eine Telefonnummer zuweisen, einen Anruf entgegennehmen und das Transkript prüfen."
---

<Note>
  Sie erstellen Ihren ersten Agenten manuell? Das Dashboard führt Sie durch genau
  diesen Ablauf — Agenten erstellen, Nummer hinzufügen, simulieren, überprüfen — mit
  einem geführten Assistenten. Starten Sie mit dem
  [Dashboard-Schnellstart](/de/quickstart-dashboard).
</Note>

Der klassische Ablauf für „ein Telefon mit einer KI beantworten“, direkt in Ihrem Terminal.
Sie werden:

1. Einen Agenten mit einem Prompt und einer Stimme erstellen.
2. Eine Telefonnummer bereitstellen (oder mitbringen) und den Agenten als Handler
   für eingehende Anrufe zuweisen.
3. Die Nummer anrufen. Anrufprotokoll, Transkript und Aufzeichnung prüfen.

API-Aufrufe insgesamt: vier. Gesamtzeit: unter fünf Minuten.

## 1. Einen Agenten erstellen

Ein Agent bündelt den Prompt, die Stimme und die Produktstufe, die den
Anruf steuern. Sie können für den Agenten auch Anruflimits wie
`max_call_duration_seconds` und `ring_duration_seconds` festlegen. Agenten unterstützen außerdem `intro_clip`
und `intro_ring_count`, um eine vorab aufgezeichnete Begrüßung und bis zu zwei Klingeltöne abzuspielen, bevor
der Agent spricht. Neue Agenten benötigen außerdem eine Zeitzone. Wenn Ihr Agent
mehrsprachig ist, können Sie mit `language_switching` festlegen, ob er vor dem Sprachwechsel fragt
oder der Sprache des Anrufers folgt.
Alle Konfigurationsfelder finden Sie unter [Agents](/api-reference/agents); das
Minimum ist:

```bash
curl -X POST https://api.thunderphone.com/v1/agents \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":    "Acme Support",
    "prompt":  "You are a friendly support agent for Acme. Help callers with orders and returns. Keep answers short.",
    "voice":   "john",
    "product": "spark"
  }'
```

Speichern Sie die zurückgegebene `id` — Sie benötigen sie in Schritt 2.

<Tip>
  Wählen Sie `spark` für einfache Fragen und Antworten zu den niedrigsten Kosten,
  `bolt`, wenn Geschwindigkeit am wichtigsten ist. Wechseln Sie zu
  `storm-base-with-ack`, wenn Ihr Prompt tiefergehendes Schlussfolgern benötigt
  und eine halbe Sekunde Füllzeit tolerieren kann, während das Modell nachdenkt.
  Siehe [Produktstufen](/api-reference/agents#product-tiers-at-a-glance).
</Tip>

## 2. Eine Telefonnummer erhalten

Wenn Sie lediglich eine Nummer zum Anrufen benötigen, beziehen Sie eine
ThunderPhone-Nummer aus dem Pool von ThunderPhone:

```bash
curl -X POST https://api.thunderphone.com/v1/phone-numbers \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_code": "415"}'
```

Die Antwort enthält eine `id` und eine `number` im E.164-Format. ThunderPhone-
Nummern starten mit `status="provisioning"` und werden innerhalb weniger
Sekunden `active` — fragen Sie
[`GET /v1/phone-numbers/{id}`](/api-reference/phone-numbers#retrieve-a-phone-number)
ab, um den Übergang zu verfolgen, falls Sie ihn beobachten möchten.

<Note>
  ThunderPhone-Nummern sind anfangs nur für eingehende Anrufe verfügbar. Ein
  Organisationsadministrator kann auf der Seite Phone Numbers ausgehende Anrufe
  anfordern. ThunderPhone prüft jede Anfrage manuell; nach der Genehmigung können
  die Nummern Anrufe tätigen und Kampagnen ausführen. VoIP-Nummern von Kunden
  bleiben unverändert.
</Note>

## 3. Den Agenten zuweisen

Verknüpfen Sie den Agenten aus Schritt 1 mit der Richtung für eingehende Anrufe
der Nummer:

```bash
curl -X PATCH https://api.thunderphone.com/v1/phone-numbers/{phone_id} \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inbound_agent_id": 12}'
```

Das war’s — die Nummer ist aktiv. Nachdem ausgehende Anrufe für Ihre
Organisation genehmigt wurden, können Sie im selben PATCH auch
`outbound_agent_id` festlegen. Bis dahin lehnt die API diese Zuweisung mit
`400` ab.

Wenn Sie eingehende Anrufe über einen Konfigurations-Webhook statt über eine feste
`inbound_agent_id` weiterleiten, kann dieser Webhook nun pro Anruf eine `timezone`
zusammen mit `agent_id` und `variables` zurückgeben.

## 4. Einen Anruf annehmen

Rufen Sie die Nummer über Ihr Telefon an. Der Agent nimmt ab, stellt sich
gemäß Ihrem Prompt vor, und das Gespräch beginnt.

Während der Anruf läuft, wird er in
[`GET /v1/calls`](/api-reference/calls#list-calls) mit
`status="in_progress"` angezeigt. Wenn er endet, wird der Datensatz mit
`end_reason`, `duration_seconds`, `billable_minutes` und (später)
einer Aufzeichnungs-URL und KI-Bewertung aktualisiert.

Eingehende Anrufe werden auf das
[Limit für gleichzeitige Anrufe](/api-reference/introduction#call-limits) Ihrer Organisation angerechnet (standardmäßig 20
Anrufe gleichzeitig, gemeinsam mit ausgehenden, Web- und Testanrufen). Ein Anruf, der eingeht, während das Limit erreicht ist, wird abgelehnt und beendet, bevor der Agent antwortet, nicht abgerechnet und als fehlgeschlagener Anruf mit dem Endgrund `concurrent_call_limit_reached` erfasst. Senden Sie eine E-Mail an support@thunderphone.com, wenn Sie
ein höheres Limit benötigen.

## 5. Ergebnisse prüfen

Rufen Sie die Liste der letzten Anrufe ab:

```bash
curl 'https://api.thunderphone.com/v1/calls?limit=5' \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Rufen Sie das Transkript ab:

```bash
curl https://api.thunderphone.com/v1/calls/{call_id}/transcript \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Und die Aufzeichnungs-URL (kurzlebig, signiert):

```bash
curl https://api.thunderphone.com/v1/calls/{call_id}/audio \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"
```

Wenn Sie den
[`telephony.complete`-Webhook](/de/webhooks/events)
abonniert haben, erhalten Sie dieselben Daten als POST an Ihren Server — siehe
[call.complete](/de/webhooks/call-complete).

Wenn für Ihren Agenten Extraktionsfelder konfiguriert sind, kann die Payload des
abgeschlossenen Anrufs auch strukturierte extrahierte Daten enthalten.

---

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="Dynamische Konfiguration pro Anruf" icon="bolt" href="/de/guides/dynamic-call-config">
    Wählen Sie basierend auf der Telefonnummer oder benutzerdefinierter Logik in einem Webhook einen anderen Agenten pro Anrufer aus.
  </Card>
  <Card title="Tool-Integrationen hinzufügen" icon="screwdriver-wrench" href="/de/guides/build-tool-integration">
    Lassen Sie den Agenten während des Gesprächs Ihre APIs aufrufen.
  </Card>
  <Card title="Anrufe weiterleiten" icon="phone-arrow-right" href="/de/guides/call-transfers">
    Leiten Sie Anrufer direkt weiter oder prüfen Sie das Ziel, bevor Sie sie verbinden.
  </Card>
  <Card title="call.complete-Webhooks empfangen" icon="bolt" href="/de/webhooks/call-complete">
    Streamen Sie jeden abgeschlossenen Anruf in Ihre CRM-/Analyse-Pipeline.
  </Card>
  <Card title="KI-Bewertung und Problemberichte" icon="chart-line" href="/api-reference/calls#ai-call-grading">
    Bewerten Sie jeden Anruf automatisch und leiten Sie markierte Anrufe zur Prüfung weiter.
  </Card>
</CardGroup>
