API
referensi.
312 endpoint, spesifikasi OpenAPI lengkap, idempotensi pada setiap mutasi, dan kontrak uptime publik. Tidak ada kotak hitam.
"color:#22D3EE">curl "color:#22D3EE">-X "warna:#34D399;berat font:600">POSTING https://api.rozper.com/v2/calls \
"warna:#22D3EE">-H "Otorisasi: Pembawa $ROZPER_API_KEY" \
"warna:#22D3EE">-H "Jenis Konten: aplikasi/json" \
"warna:#22D3EE">-d '{
"ke": "+14155551234",
"dari": "+12025550100",
"url": "https://your.app/voice/answer"
}'{
"id": "call_01HXY7ZQ9V3J3X8K5N",
"status": "queued",
"to": "+14155551234",
"from": "+12025550100",
"created_at": "2026-05-12T14:23:01Z"
}Token pembawa.
Cakupan. Dapat diputar.
Setiap permintaan membawa kunci proyek sebagai token Pembawa. Kunci memiliki cakupan (baca, tulis, penagihan), dapat diputar tanpa waktu henti, dan dapat diberi pin IP dari dasbor.
- Kunci per lingkungan (uji/langsung)
- Kredensial klien OAuth 2.0 didukung
- Saling TLS tersedia di Perusahaan
# .env → never commit me
ROZPER_API_KEY=sk_live_8FzqQ...XW7p
# request
curl https://api.rozper.com/v2/account \
-H "Authorization: Bearer $ROZPER_API_KEY"
# 200 OK
{
"id": "acct_01HXY7ZQ9V3J3X8K5N",
"scopes": ["calls.write", "messages.write", "numbers.read"],
"rate_limit": { "limit": 1000, "remaining": 998, "reset": 1715520000 }
}Jelajahi setiap titik akhir.
Buat panggilan
Memulai panggilan PSTN keluar. Segera kembali dengan objek panggilan yang antri — dengarkan di webhook untuk mengetahui perubahan status.
torangkaiandiperlukanE.164 nomor tujuan.
fromrangkaiandiperlukanNomor Rozper yang terverifikasi atau disewa.
urlrangkaianTitik akhir HTTPS yang mengembalikan instruksi suara saat panggilan tersambung.
recordbooleanRekam kedua kaki ke penyimpanan Anda. Bawaan salah.
timeoutbilangan bulatBatas waktu dering habis dalam hitungan detik. Bawaan 60.
const call = await rozper.calls.create({
to: "+14155551234",
from: "+12025550100",
url: "https://your.app/voice/answer",
}){
"id": "call_01HXY7ZQ9V3J3X8K5N",
"object": "call",
"created_at": "2026-05-12T14:23:01Z"
}Kesalahan yang dapat diprediksi dan dapat dibaca mesin.
Setiap 4xx dan 5xx mengembalikan bentuk yang sama: stabil code, pesan yang dapat dibaca manusia, dan id permintaan yang dapat Anda tempelkan ke dukungan.
{
"error": {
"code": "invalid_param",
"message": "to: must be E.164",
"request_id": "req_01HXY7…",
"param_errors": [
{ "param": "to", "reason": "format" }
]
}
}bad_requestBentuk isi permintaan salah atau kolom wajib diisi tidak ada.
unauthorizedKunci API tidak ada, kedaluwarsa, atau dicabut.
forbiddenKey tidak memiliki cakupan yang diperlukan untuk sumber daya ini.
not_foundId sumber daya tidak ada untuk akun ini.
conflictKunci idempotensi bertabrakan dengan payload yang berbeda.
invalid_paramValidasi parameter gagal. Periksa param_errors[].
rate_limitedMundur menggunakan header Retry-After.
server_errorKami diberitahu. Coba lagi panggilan idempoten.
Ditandatangani, dicoba ulang, dilindungi pemutaran ulang.
Setiap acara dikirimkan dengan tanda tangan HMAC, id acara unik, dan stempel waktu UTC. Kami mencoba lagi dengan backoff eksponensial hingga 24 jam.
import { verify } from "@rozper/sdk/webhooks"
app.post("/webhooks/rozper", (req, res) => {
const ok = verify({
payload: req.rawBody,
signature: req.header("Rozper-Signature"),
secret: process.env.ROZPER_WEBHOOK_SECRET,
})
if (!ok) return res.status(401).end()
const event = JSON.parse(req.rawBody)
switch (event.type) {
case "call.completed": /* … */
case "recording.ready": /* … */
}
res.json({ received: true })
})call.initiatedPanggilan keluar diterima oleh operator.
call.ringingUjung jauh berdering.
call.answeredTerjawab jauh (atau AMD mendeteksi manusia).
call.completedPanggilan berakhir. Termasuk durasi, penagihan, metadata bagian.
recording.readyRekaman aset yang diunggah dan URL yang ditandatangani tersedia.
message.deliveredTanda terima pengiriman operator (jika didukung).
agent.handoffAgen AI meningkat menjadi antrian manusia.
number.purchasedAkuisisi nomor selesai.
Setiap perubahan, dalam bahasa Inggris yang sederhana.
- 2026-05-10v2026.05
- prestasiAgen suara kini mendukung panggilan alat dengan respons streaming.
- prestasiTitik akhir /v2/numbers/port baru untuk pengiriman LNP terprogram.
- 2026-04-22v2026.04
- memperbaikiCache idempotensi sekarang dengan benar menghormati TTL 24 jam pada POST/panggilan.
- pekerjaan rumahEndpoint v1 yang tidak digunakan lagi dihapus (diumumkan pada 2025-11).
- 2026-03-31v2026.03
- prestasiAliran media WebSocket beta kini tersedia secara umum.
- prestasiPesan templat WhatsApp ditambahkan di bawah /v2/messages.