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

# Snabbstart (API)

> Besvara ditt första telefonsamtal med en AI-agent i fyra REST-anrop.

Den här guiden leder dig genom de fyra REST-anrop som krävs för att besvara
ditt första telefonsamtal med en AI-agent.

<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?
  [Snabbstarten i instrumentpanelen](/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 instrumentpanelen.
  </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
    direkt i din hemlighetshanterare.
  </Step>
</Steps>

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

I resten av den här guiden byter du ut `sk_live_YOUR_API_KEY` mot värdet du
just kopierade. Nyckeln identifierar din organisation automatiskt, så
du behöver aldrig lägga in ett organisations-id i URL:er.

## Steg 2: Skapa en agent

En röstagent definierar hur AI:n hanterar samtal — prompt, röst,
produktnivå, verktyg och widgetbehörighet.

<CodeGroup>
  ```bash cURL 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":   "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 theme={null}
  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 theme={null}
  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 i komplexa promptar. Se
  [Agenter](/api-reference/agents#product-tiers-at-a-glance) för den fullständiga
  jämförelsen.
</Tip>

## Steg 3: Tilldela ett telefonnummer

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

<CodeGroup>
  ```bash cURL theme={null}
  # 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 theme={null}
  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 startar med `status="provisioning"` och övergår till
`active` inom några sekunder; när du har stängt 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 bara på de händelser du behöver.

```bash theme={null}
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 `secret` som bara visas en gång — kopiera den till din hemlighetshanterare.
Använd hemligheten för att verifiera rubriken `X-ThunderPhone-Signature`
i inkommande begäranden (se
[Översikt över webhooks](/sv/webhooks/overview)).

## Steg 5: Testa din agent

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

Granska samtalet när det har avslutats:

```bash theme={null}
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 theme={null}
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">
    Starta 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">
    Varje offentlig slutpunkt, dokumenterad.
  </Card>
</CardGroup>
