API
参照。
312 のエンドポイント、完全な OpenAPI 仕様、すべての変更に対する冪等性、およびパブリック アップタイム契約。ブラックボックスはありません。
"color:#22D3EE">curl "color:#22D3EE">-X "カラー:#34D399;フォントの太さ:600">投稿 https://api.rozper.com/v2/calls \
「カラー:#22D3EE」>-H 「権限:所持者」 $ROZPER_API_KEY" \
「カラー:#22D3EE」>-H 「コンテンツタイプ: application/json」 \
「カラー:#22D3EE」>-d '{
"に": "+14155551234",
"から": "+12025550100",
「URL」: 「https://your.app/voice/answer」
}'{
"id": "call_01HXY7ZQ9V3J3X8K5N",
"status": "queued",
"to": "+14155551234",
"from": "+12025550100",
"created_at": "2026-05-12T14:23:01Z"
}無記名トークン。
スコープ付き。回転可能。
すべてのリクエストには、ベアラー トークンとしてプロジェクト キーが含まれます。キーはスコープ (読み取り、書き込み、請求) で、ダウンタイムなしでローテーション可能で、ダッシュボードから IP ピンで固定できます。
- 環境ごとのキー (テスト/ライブ)
- OAuth 2.0 クライアント認証情報のサポート
- Enterprise で相互 TLS が利用可能
# .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 }
}すべてのエンドポイントを探索します。
通話を作成する
発信 PSTN 通話を発信します。キューに入れられた呼び出しオブジェクトを使用してすぐに戻ります。Webhook で状態の変化をリッスンします。
to弦必須E.164 宛先番号。
from弦必須Rozper 番号を確認またはレンタルしました。
url弦通話が接続されたときに音声指示を返す HTTPS エンドポイント。
recordブール値両足をストレージに記録します。デフォルトは false。
timeout整数呼び出しタイムアウト (秒単位)。デフォルトは 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"
}予測可能で機械可読なエラー。
すべての 4xx と 5xx は同じ形状を返します。つまり、安定しています。 code、人間が読めるメッセージ、およびサポートに貼り付けることができるリクエスト ID。
{
"error": {
"code": "invalid_param",
"message": "to: must be E.164",
"request_id": "req_01HXY7…",
"param_errors": [
{ "param": "to", "reason": "format" }
]
}
}bad_requestリクエスト本文の形式が不正であるか、必須フィールドが欠落しています。
unauthorizedAPI キーが欠落しているか、期限切れであるか、取り消されています。
forbiddenキーには、このリソースに必要なスコープがありません。
not_foundこのアカウントにはリソース ID が存在しません。
conflict冪等キーが別のペイロードと衝突します。
invalid_paramパラメータの検証に失敗しました。 param_errors[] を調べます。
rate_limitedRetry-After ヘッダーを使用したバックオフ。
server_error通知を受けました。冪等な呼び出しを再試行します。
署名済み、再試行済み、リプレイ保護済み。
すべてのイベントは、HMAC 署名、一意のイベント ID、および UTC タイムスタンプとともに配信されます。最大 24 時間、指数バックオフを使用して再試行します。
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.initiated通信事業者によって発信通話が受け入れられました。
call.ringing遠端が鳴っています。
call.answered遠端が応答しました (または AMD が人間を検出しました)。
call.completed通話が終了しました。期間、請求、レッグのメタデータが含まれます。
recording.ready録画アセットがアップロードされ、署名された URL が利用可能です。
message.delivered配送業者の配送受領書 (サポートされている場合)。
agent.handoffAI エージェントは人間のキューにエスカレーションされました。
number.purchased番号の取得が完了しました。
あらゆる変化をわかりやすい英語で。
- 2026-05-10v2026.05
- 偉業音声エージェントは、ストリーミング応答によるツール呼び出しをサポートするようになりました。
- 偉業プログラムによる LNP 送信用の新しい /v2/numbers/port エンドポイント。
- 2026-04-22v2026.04
- 修理冪等性キャッシュは、POST /call で 24 時間の TTL を正しく尊重するようになりました。
- 雑用非推奨の v1 エンドポイントが削除されました (2025 年 11 月に発表)。
- 2026-03-31v2026.03
- 偉業WebSocket メディア ストリームのベータ版が一般公開されました。
- 偉業WhatsApp テンプレート メッセージが /v2/messages に追加されました。