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

# Inkomende oproepen afhandelen (API)

> Van begin tot eind: configureer een agent, koppel deze aan een telefoonnummer, neem een oproep aan en bekijk het transcript.

<Note>
  Bouw je je eerste agent met de hand? Het dashboard begeleidt precies
  deze flow — bouw de agent, voeg een nummer toe, simuleer, controleer — met een
  begeleide wizard. Begin met de
  [quickstart voor het dashboard](/nl/quickstart-dashboard).
</Note>

De standaardflow voor "een telefoon opnemen met AI", vanuit je terminal.
Je gaat:

1. Een agent maken met een prompt en stem.
2. Een telefoonnummer provisionen (of meenemen) en de agent toewijzen als
   inkomende afhandelaar.
3. Het nummer bellen. Bekijk het oproeplogboek, transcript en de opname.

Totaal aantal API-aanroepen: vier. Totale tijd: minder dan vijf minuten.

## 1. Maak een agent

Een agent bundelt de prompt, stem en het productpakket die het gesprek
aansturen. Zie [Agents](/api-reference/agents) voor elk configuratieveld;
het minimum is:

```bash theme={null}
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"
  }'
```

Sla de geretourneerde `id` op — je hebt die nodig in stap 2.

<Tip>
  Kies `spark` voor eenvoudige vraag-en-antwoordgesprekken tegen de laagste kosten,
  en `bolt` wanneer snelheid het belangrijkst is. Upgrade naar
  `storm-base-with-ack` wanneer je prompt diepere redenering nodig heeft en een
  opvulling van een halve seconde kan verdragen terwijl het model nadenkt. Zie
  [productpakketten](/api-reference/agents#product-tiers-at-a-glance).
</Tip>

## 2. Vraag een telefoonnummer aan

Als je alleen een nummer nodig hebt om naartoe te bellen, provision dan een
demonummer uit de pool van ThunderPhone:

```bash theme={null}
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"}'
```

Het antwoord bevat een `id` en een `number` in E.164. Demonummers
starten met `status="provisioning"` en worden binnen enkele seconden
`active` — poll
[`GET /v1/phone-numbers/{id}`](/api-reference/phone-numbers#retrieve-a-phone-number)
om de overgang te volgen als dat belangrijk voor je is.

<Note>
  Sla voor productie demonummers over en
  [neem je eigen nummers mee via VoIP](/nl/guides/bring-your-own-numbers).
  Demonummers zijn alleen inkomend en beperkt in volume.
</Note>

## 3. Wijs de agent toe

Koppel de agent uit stap 1 aan de inkomende afhandeling van het nummer:

```bash theme={null}
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}'
```

Dat is alles — het nummer is actief. Je kunt ook `outbound_agent_id`
instellen in dezelfde PATCH, zodat het nummer ook klaar is om uitgaande
oproepen te doen.

## 4. Neem een oproep aan

Bel het nummer vanaf je telefoon. De agent neemt op, stelt zich voor
volgens je prompt en het gesprek begint.

Terwijl het gesprek bezig is, verschijnt het in
[`GET /v1/calls`](/api-reference/calls#list-calls) met
`status="in_progress"`. Wanneer het eindigt, wordt het record bijgewerkt met
`end_reason`, `duration_seconds`, `billable_minutes` en (uiteindelijk)
een opname-URL en AI-beoordeling.

## 5. Controleer de resultaten

Haal de lijst met recente oproepen op:

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

Haal het transcript op:

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

En de opname-URL (tijdelijk, ondertekend):

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

Als je geabonneerd bent op de
[`telephony.complete` webhook](/nl/webhooks/events),
ontvang je dezelfde gegevens als een POST naar je server — zie
[call.complete](/nl/webhooks/call-complete).

***

## Volgende stappen

<CardGroup cols={2}>
  <Card title="Dynamische configuratie per oproep" icon="bolt" href="/nl/guides/dynamic-call-config">
    Kies op basis van het telefoonnummer of aangepaste logica in een webhook
    een andere agent per beller.
  </Card>

  <Card title="Toolintegraties toevoegen" icon="screwdriver-wrench" href="/nl/guides/build-tool-integration">
    Laat de agent tijdens het gesprek je API's aanroepen.
  </Card>

  <Card title="call.complete-webhooks ontvangen" icon="bolt" href="/nl/webhooks/call-complete">
    Stream elke afgeronde oproep naar je CRM- / analysepipeline.
  </Card>

  <Card title="AI-beoordeling en probleemrapporten" icon="chart-line" href="/api-reference/calls#ai-call-grading">
    Beoordeel elke oproep automatisch en stuur gemarkeerde oproepen door voor controle.
  </Card>
</CardGroup>
