ThunderPhone 2.0 kini resmi hadir.Layanan mandiri, mulai dari 2¢/menit.Baca pengumumannya

Getting Started

Mulai Cepat (API)

Jawab panggilan telepon pertama Anda dengan agen AI: dapatkan kunci API, buat agen, sediakan nomor telepon, dan lakukan panggilan uji langsung — semuanya melalui REST API.

Panduan ini memandu Anda melalui empat panggilan REST yang diperlukan untuk menjawab panggilan telepon pertama Anda dengan agen AI.

Langkah 1: Dapatkan kunci API

  1. Masuk
  2. Buka Kunci

    Buka Organisasi → Kunci di dasbor.

  3. Buat kunci

    Klik Buat kunci, beri nama, lalu salin nilai sk_live_.... Kunci mentah hanya ditampilkan sekali — segera simpan di pengelola rahasia Anda.

Sepanjang panduan ini, ganti sk_live_YOUR_API_KEY dengan nilai yang baru saja Anda salin. Kunci tersebut mengidentifikasi organisasi Anda secara otomatis, sehingga Anda tidak perlu memasukkan ID organisasi ke dalam URL.

Langkah 2: Buat agen

Agen menentukan cara AI menangani percakapan — Prompt, suara, tingkatan produk, alat, dan kelayakan widget.

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
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"])
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);

Langkah 3: Sediakan nomor telepon

Panggilan ini meminta nomor dari kumpulan demo ThunderPhone dan menetapkan agen baru Anda sebagai penangan panggilan masuk. (Untuk membawa nomor Anda sendiri dari penyedia VoIP, lihat koneksi VoIP.)

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
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"])

Nomor baru Anda dimulai dalam status="provisioning" dan beralih ke active dalam beberapa detik; saat Anda menutup browser, nomor tersebut siap menerima panggilan.

Langkah 4 (opsional): Siapkan webhook

Untuk peristiwa real-time (perutean panggilan dinamis, pemrosesan setelah panggilan), tambahkan endpoint webhook. Berlangganan hanya pada peristiwa yang Anda perlukan.

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"]
  }'

Respons berisi secret sekali pakai — salin ke pengelola rahasia Anda. Gunakan secret tersebut untuk memverifikasi header X-ThunderPhone-Signature pada permintaan masuk (lihat ringkasan Webhooks).

Langkah 5: Uji agen Anda

Hubungi nomor yang baru saja Anda sediakan. Agen menjawab, memperkenalkan diri, dan mengikuti Prompt Anda.

Periksa panggilan setelah selesai:

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

Telusuri panggilan tertentu untuk mengambil transkrip dan URL rekaman:

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"

Langkah berikutnya