API'si
referans.
312 uç nokta, eksiksiz OpenAPI spesifikasyonu, her mutasyonda bağımsız çalışma ve genel çalışma süresi sözleşmesi. Kara kutu yok.
"color:#22D3EE">curl "color:#22D3EE">-X "renk:#34D399;yazı tipi ağırlığı:600">YAYINLA https://api.rozper.com/v2/calls\
"renk:#22D3EE">-H "Yetki: Taşıyıcı $ROZPER_API_KEY" \
"renk:#22D3EE">-H "İçerik Türü: uygulama/json" \
"renk:#22D3EE">-d '{
"ile": "+14155551234",
"itibaren": "+12025550100",
"url": "https://your.app/voice/answer"
}'{
"id": "call_01HXY7ZQ9V3J3X8K5N",
"status": "queued",
"to": "+14155551234",
"from": "+12025550100",
"created_at": "2026-05-12T14:23:01Z"
}Taşıyıcı jetonları.
Kapsamlı. Döndürülebilir.
Her istek, Taşıyıcı belirteci olarak bir proje anahtarı taşır. Anahtarlar kapsamlıdır (okuma, yazma, faturalandırma), kesinti olmadan döndürülebilir ve kontrol panelinden IP'ye sabitlenebilir.
- Ortam başına anahtarlar (test / canlı)
- OAuth 2.0 istemci kimlik bilgileri desteklenir
- Enterprise'da karşılıklı TLS mevcut
# .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 }
}Her uç noktayı keşfedin.
Arama oluştur
Giden bir PSTN araması başlatın. Sıraya alınmış bir çağrı nesnesiyle anında geri döner; durum değişikliklerini web kancalarında dinleyin.
tosicimgerekliE.164 hedef numarası.
fromsicimgerekliDoğrulanmış veya kiralanmış Rozper numarası.
urlsicimÇağrı bağlandığında sesli talimatları döndüren HTTPS uç noktası.
recordbooleanHer iki bacağı da deponuza kaydedin. Varsayılan yanlış.
timeouttamsayıSaniye cinsinden çalma zaman aşımı. Varsayılan 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"
}Tahmin edilebilir, makine tarafından okunabilir hatalar.
Her 4xx ve 5xx aynı şekli döndürür: kararlı code, insanlar tarafından okunabilen bir mesaj ve desteğe yapıştırabileceğiniz bir istek kimliği.
{
"error": {
"code": "invalid_param",
"message": "to: must be E.164",
"request_id": "req_01HXY7…",
"param_errors": [
{ "param": "to", "reason": "format" }
]
}
}bad_requestHatalı biçimlendirilmiş istek gövdesi veya gerekli alan eksik.
unauthorizedEksik, süresi dolmuş veya iptal edilmiş API anahtarı.
forbiddenAnahtar bu kaynak için gereken kapsamdan yoksun.
not_foundBu hesap için kaynak kimliği mevcut değil.
conflictIdempotency anahtarı farklı bir yük ile çarpışıyor.
invalid_paramBir parametre doğrulamada başarısız oldu. param_errors[]'ı inceleyin.
rate_limitedRetry-After başlığını kullanarak geri çekilme.
server_errorBize haber verildi. İdempotent çağrıları yeniden deneyin.
İmzalandı, yeniden denendi, tekrar korumalı.
Her etkinlik bir HMAC imzası, benzersiz bir etkinlik kimliği ve bir UTC zaman damgasıyla sunulur. 24 saate kadar üstel geri çekilmeyle yeniden deniyoruz.
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.initiatedGiden çağrı operatör tarafından kabul edildi.
call.ringingUzak uç çalıyor.
call.answeredUzak uç yanıt verdi (veya AMD insanı algıladı).
call.completedArama sona erdi. Süre, faturalandırma ve bacak meta verilerini içerir.
recording.readyKayıt varlığı yüklendi ve imzalanmış URL mevcut.
message.deliveredTaşıyıcı teslimat makbuzu (desteklendiği yerlerde).
agent.handoffYapay zeka ajanı insan kuyruğuna geçti.
number.purchasedNumara alımı tamamlandı.
Her değişiklik sade İngilizce olarak.
- 2026-05-10v2026.05
- ustalıkSes aracıları artık akışlı yanıtlarla araç çağrısını destekliyor.
- ustalıkProgramlı LNP gönderimleri için yeni /v2/numbers/port uç noktası.
- 2026-04-22v2026.04
- düzeltmekIdempotency önbelleği artık POST/çağrılarda 24 saatlik TTL'yi doğru şekilde onurlandırıyor.
- zevksiz işKullanımdan kaldırılan v1 uç noktaları kaldırıldı (2025-11'de duyuruldu).
- 2026-03-31v2026.03
- ustalıkWebSocket medya akışları beta artık genel kullanıma sunuldu.
- ustalık/v2/messages altına eklenen WhatsApp şablon mesajları.