---
title: "Snabbstart (API)"
description: "Besvara ditt första telefonsamtal med en AI-agent: hämta en API-nyckel, skapa en agent, tilldela ett telefonnummer och ring ett live-testsamtal — allt via REST API."
---

Den här guiden visar de fyra REST-anrop som krävs för att besvara
ditt första telefonsamtal med en röstagent.

<Info>
  Du behöver ett [ThunderPhone-konto](https://app.thunderphone.com).
  Det är gratis att registrera sig och det tar mindre än en minut. Föredrar du att klicka framför att använda curl?
  [Snabbstart i dashboarden](/sv/quickstart-dashboard) leder till samma
  första samtal utan att du behöver skriva kod.
</Info>

## Steg 1: Skaffa en API-nyckel

<Steps>
  <Step title="Logga in">
    Öppna [app.thunderphone.com](https://app.thunderphone.com).
  </Step>
  <Step title="Gå till Nycklar">
    Gå till **Organisation → Nycklar** i dashboarden.
  </Step>
  <Step title="Skapa en nyckel">
    Klicka på **Skapa nyckel**, ge den ett namn och kopiera
    värdet `sk_live_...`. Den råa nyckeln visas **endast en gång** — spara den
    omedelbart i din hemlighetshanterare.
  </Step>
</Steps>

<Tip>
  Fastnat? [Skapa en API-nyckel för servern](/sv/guides/api-keys) beskriver
  det här flödet steg för steg, och copiloten i appen kan
  markera varje kontroll åt dig i realtid.
</Tip>

I hela den här guiden ersätter du `sk_live_YOUR_API_KEY` med värdet du
nyss kopierade. Nyckeln identifierar automatiskt din organisation, så
du behöver aldrig ange ett organisations-id i URL:er.

## Steg 2: Skapa en agent

En röstagent definierar hur AI:n hanterar konversationer — prompt,
röst, produktnivå, verktyg och behörighet för widgetar.

<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` är optimerad för kostnad, `bolt` för hastighet och
  `storm-base` / `storm-extra` för intelligens vid komplexa promptar. Se
  [Agenter](/api-reference/agents#product-tiers-at-a-glance) för hela
  jämförelsen.
</Tip>

## Steg 3: Tilldela ett telefonnummer

Det här anropet ber ThunderPhone om ett nummer och tilldelar din
nya agent som hanterare för inkommande samtal. (Om du vill ta med ditt eget nummer från en VoIP-leverantör,
se i stället [VoIP-anslutningar](/api-reference/voip-connections).)

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

Ditt nya nummer börjar med `status="provisioning"` och övergår till
`active` inom några sekunder; när du har hängt upp i webbläsaren är
numret redo att ta emot samtal.

## Steg 4 (valfritt): Konfigurera en webhook

Lägg till en webhook-slutpunkt för händelser i realtid (dynamisk samtalsdirigering, bearbetning efter samtal).
Prenumerera endast på de händelser du behöver.

```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 innehåller en engångs-`secret` — kopiera den till din hemlighetshanterare. Använd hemligheten för att verifiera rubriken `X-ThunderPhone-Signature-V2` i inkommande begäranden (se [Översikt över webhooks](/sv/webhooks/overview)).

## Steg 5: Testa din agent

Ring numret som du just tilldelade. Agenten svarar, presenterar
sig och följer din prompt.

Granska samtalet när det har avslutats:

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

Gå in på ett specifikt samtal för att hämta transkriptionen och inspelnings-URL:en:

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

---

## Nästa steg

<CardGroup cols={2}>
  <Card title="Lägg till funktionsverktyg" icon="screwdriver-wrench" href="/sv/tools/overview">
    Låt din agent anropa dina API:er under ett samtal.
  </Card>
  <Card title="Ring utgående samtal" icon="arrow-up-right" href="/api-reference/outbound-calls">
    Initiera samtal från din egen kod.
  </Card>
  <Card title="Hantera webhooks" icon="bolt" href="/sv/webhooks/overview">
    Reagera på samtalshändelser i realtid.
  </Card>
  <Card title="Fullständig API-referens" icon="book" href="/api-reference/introduction">
    Alla offentliga slutpunkter, dokumenterade.
  </Card>
</CardGroup>
