---
title: "Hurtigstart (API)"
description: "Besvar din første telefonsamtale med en AI-stemmeagent: hent en API-nøkkel, opprett en agent, klargjør et telefonnummer og foreta en direkte testsamtale — alt gjennom REST API-et."
---

Denne veiledningen tar deg gjennom de fire REST-kallene som kreves for å svare på
din første telefonsamtale med en stemmeagent.

<Info>
  Du trenger en [ThunderPhone-konto](https://app.thunderphone.com).
  Det er gratis å registrere seg og tar under ett minutt. Foretrekker du å klikke fremfor å bruke curl?
  [Hurtigstart i dashbordet](/nb/quickstart-dashboard) gir deg den samme
  første samtalen uten å skrive kode.
</Info>

## Trinn 1: Skaff en API-nøkkel

<Steps>
  <Step title="Logg inn">
    Åpne [app.thunderphone.com](https://app.thunderphone.com).
  </Step>
  <Step title="Gå til Nøkler">
    Gå til **Organisasjon → Nøkler** i dashbordet.
  </Step>
  <Step title="Opprett en nøkkel">
    Klikk på **Opprett nøkkel**, gi den et navn, og kopier
    verdien `sk_live_...`. Den rå nøkkelen vises **bare én gang** — lagre den
    umiddelbart i hemmelighetshåndteringen din.
  </Step>
</Steps>

<Tip>
  Står du fast? [Opprett en API-nøkkel for server](/nb/guides/api-keys) forklarer
  denne prosessen trinn for trinn, og kopiloten i appen kan
  fremheve hver kontroll for deg direkte.
</Tip>

I resten av denne veiledningen bytter du ut `sk_live_YOUR_API_KEY` med verdien du
nettopp kopierte. Nøkkelen identifiserer automatisk organisasjonen din, så
du trenger aldri å legge inn en organisasjons-ID i URL-er.

## Trinn 2: Opprett en agent

En agent definerer hvordan KI-en håndterer samtaler — ledetekst, stemme,
produktnivå, verktøy og widgettilgjengelighet.

<CodeGroup>
```bash cURL
curl -X POST https://api.thunderphone.com/v1/agents \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name":   "Customer Support",
    "prompt": "You are a friendly support agent for Acme Corp. Help with orders, returns, and product info. Be concise and helpful.",
    "voice":  "john",
    "product": "spark"
  }'
```

```python Python
import os, requests

agent = requests.post(
    "https://api.thunderphone.com/v1/agents",
    headers={"Authorization": f"Bearer {os.environ['THUNDERPHONE_API_KEY']}"},
    json={
        "name":   "Customer Support",
        "prompt": "You are a friendly support agent for Acme Corp. Help with orders, returns, and product info. Be concise and helpful.",
        "voice":  "john",
        "product": "spark",
    },
).json()
print("Agent id:", agent["id"])
```

```javascript Node.js
const agent = await fetch("https://api.thunderphone.com/v1/agents", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.THUNDERPHONE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    name:    "Customer Support",
    prompt:  "You are a friendly support agent for Acme Corp. Help with orders, returns, and product info. Be concise and helpful.",
    voice:   "john",
    product: "spark",
  }),
}).then((r) => r.json());
console.log("Agent id:", agent.id);
```
</CodeGroup>

<Tip>
  Produktnivåer: `spark` er optimalisert for kostnad, `bolt` for hastighet, og
  `storm-base` / `storm-extra` for intelligens ved komplekse ledetekster. Se
  [Agenter](/api-reference/agents#product-tiers-at-a-glance) for den fullstendige
  sammenligningen.
</Tip>

## Trinn 3: Klargjør et telefonnummer

Dette kallet ber ThunderPhone om et nummer og tilordner den nye
agenten din som behandler for innkommende anrop. (Hvis du vil ta med ditt eget nummer fra en VoIP-
leverandør, kan du se [VoIP-tilkoblinger](/api-reference/voip-connections)
i stedet.)

<CodeGroup>
```bash cURL
# First provision
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"}'

# Then assign the agent you created in Step 2
curl -X PATCH https://api.thunderphone.com/v1/phone-numbers/<id-from-previous> \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"inbound_agent_id": 12}'
```

```python Python
number = requests.post(
    "https://api.thunderphone.com/v1/phone-numbers",
    headers={"Authorization": f"Bearer {os.environ['THUNDERPHONE_API_KEY']}"},
    json={"area_code": "415"},
).json()
requests.patch(
    f"https://api.thunderphone.com/v1/phone-numbers/{number['id']}",
    headers={"Authorization": f"Bearer {os.environ['THUNDERPHONE_API_KEY']}"},
    json={"inbound_agent_id": agent["id"]},
)
print("Your ThunderPhone number:", number["number"])
```
</CodeGroup>

Det nye nummeret ditt starter med `status="provisioning"` og går over til
`active` i løpet av noen sekunder. Når du lukker nettleseren, er
nummeret klart til å ta imot anrop.

## Trinn 4 (valgfritt): Sett opp en webhook

For sanntidshendelser (dynamisk anropsruting, behandling etter anrop) legger du til
et webhook-endepunkt. Abonner bare på hendelsene du trenger.

```bash
curl -X POST https://api.thunderphone.com/v1/developer/webhook-endpoints \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "label":  "Prod webhook",
    "url":    "https://your-server.com/thunderphone-webhook",
    "events": ["telephony.incoming", "telephony.complete"]
  }'
```

Svaret inneholder en engangs-`secret` — kopier den til hemmelighetshåndtereren din. Bruk denne hemmeligheten til å verifisere `X-ThunderPhone-Signature-V2`-headeren på innkommende forespørsler (se
[Oversikt over webhooks](/nb/webhooks/overview)).

## Trinn 5: Test agenten din

Ring nummeret du nettopp klargjorde. Agenten svarer, presenterer
seg og følger instruksen din.

Undersøk anropet etter at det er avsluttet:

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

Gå inn på et bestemt anrop for å hente transkripsjonen og URL-en til opptaket:

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

---

## Neste steg

<CardGroup cols={2}>
  <Card title="Legg til funksjonsverktøy" icon="screwdriver-wrench" href="/nb/tools/overview">
    La agenten din kalle API-ene dine under en samtale.
  </Card>
  <Card title="Foreta utgående anrop" icon="arrow-up-right" href="/api-reference/outbound-calls">
    Utløs anrop fra din egen kode.
  </Card>
  <Card title="Håndter webhooks" icon="bolt" href="/nb/webhooks/overview">
    Reager på anropshendelser i sanntid.
  </Card>
  <Card title="Fullstendig API-referanse" icon="book" href="/api-reference/introduction">
    Alle offentlige endepunkter, dokumentert.
  </Card>
</CardGroup>
