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

# Hurtig start (API)

> Besvar dit første telefonopkald med en AI-agent i fire REST-kald.

Denne vejledning gennemgår de fire REST-kald, der skal til for at besvare
dit første telefonopkald med en AI-agent.

<Info>
  Du skal bruge en [ThunderPhone-konto](https://app.thunderphone.com).
  Det er gratis at oprette sig og tager under et minut. Foretrækker du at klikke frem for at bruge curl?
  [Dashboard-quickstarten](/da/quickstart-dashboard) når det samme
  første opkald uden at skrive kode.
</Info>

## Trin 1: Hent en API-nøgle

<Steps>
  <Step title="Log ind">
    Åbn [app.thunderphone.com](https://app.thunderphone.com).
  </Step>

  <Step title="Gå til Nøgler">
    Gå til **Organisation → Nøgler** i dashboardet.
  </Step>

  <Step title="Opret en nøgle">
    Klik på **Opret nøgle**, giv den et navn, og kopiér
    værdien `sk_live_...`. Den rå nøgle vises **kun én gang** — gem den
    straks i din hemmelighedshåndtering.
  </Step>
</Steps>

<Tip>
  Sidder du fast? [Opret en server-API-nøgle](/da/guides/api-keys) gennemgår
  dette flow trin for trin, og copilotten i appen kan
  fremhæve hvert element for dig direkte.
</Tip>

I hele denne vejledning skal du erstatte `sk_live_YOUR_API_KEY` med den værdi, du
lige har kopieret. Nøglen identificerer automatisk din organisation, så
du aldrig behøver at angive et organisations-id i URL'er.

## Trin 2: Opret en agent

En agent definerer, hvordan AI'en håndterer samtaler — prompt, stemme,
produktniveau, værktøjer og widgetberettigelse.

<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>
  Produktniveauer: `spark` er optimeret til omkostninger, `bolt` til hastighed, og
  `storm-base` / `storm-extra` til intelligens ved komplekse prompter. Se
  [Agenter](/api-reference/agents#product-tiers-at-a-glance) for den fulde
  sammenligning.
</Tip>

## Trin 3: Klargør et telefonnummer

Dette kald anmoder ThunderPhones demopulje om et nummer og tildeler din
nye agent som håndtering af indgående opkald. (Hvis du vil medbringe dit eget nummer fra en VoIP-
udbyder, kan du i stedet se [VoIP-forbindelser](/api-reference/voip-connections).)

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

Dit nye nummer starter med `status="provisioning"` og skifter til
`active` inden for få sekunder; når du lukker browseren, er nummeret klar til at modtage opkald.

## Trin 4 (valgfrit): Konfigurer en webhook

Til hændelser i realtid (dynamisk opkaldsrouting, behandling efter opkald) skal du tilføje
et webhook-slutpunkt. Abonner kun på de hændelser, du har brug for.

```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 indeholder en engangs-`secret` — kopiér den til din
hemmelighedshåndtering. Brug denne hemmelighed til at verificere
headeren `X-ThunderPhone-Signature` på indgående anmodninger (se
[Oversigt over webhooks](/da/webhooks/overview)).

## Trin 5: Test din agent

Ring til det nummer, du lige har klargjort. Agenten tager telefonen, præsenterer
sig selv og følger din prompt.

Undersøg opkaldet, når det er afsluttet:

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

Gå ned i et specifikt opkald for at hente transskriptionen og optagelses-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æste trin

<CardGroup cols={2}>
  <Card title="Tilføj funktionsværktøjer" icon="screwdriver-wrench" href="/da/tools/overview">
    Lad din agent kalde dine API'er under en samtale.
  </Card>

  <Card title="Foretag udgående opkald" icon="arrow-up-right" href="/api-reference/outbound-calls">
    Udløs opkald fra din egen kode.
  </Card>

  <Card title="Håndter webhooks" icon="bolt" href="/da/webhooks/overview">
    Reagér på opkaldshændelser i realtid.
  </Card>

  <Card title="Komplet API-reference" icon="book" href="/api-reference/introduction">
    Alle offentlige slutpunkter, dokumenteret.
  </Card>
</CardGroup>
