API
thẩm quyền giải quyết.
312 điểm cuối, thông số OpenAPI hoàn chỉnh, tính tạm thời trên mọi đột biến và hợp đồng thời gian hoạt động công khai. Không có hộp đen.
"color:#22D3EE">curl "color:#22D3EE">-X "color:#34D399;font-weight:600">BÀI ĐĂNG https://api.rozper.com/v2/calls \
"màu:#22D3EE">-H "Ủy quyền: Người mang $ROZPER_API_KEY" \
"màu:#22D3EE">-H "Loại nội dung: ứng dụng/json" \
"màu:#22D3EE">-d '{
"ĐẾN": "+14155551234",
"từ": "+12025550100",
"url": "https://your.app/voice/answer"
}'{
"id": "call_01HXY7ZQ9V3J3X8K5N",
"status": "queued",
"to": "+14155551234",
"from": "+12025550100",
"created_at": "2026-05-12T14:23:01Z"
}Mã thông báo mang.
Có phạm vi. Có thể xoay được.
Mọi yêu cầu đều mang khóa dự án dưới dạng mã thông báo Bearer. Các khóa có phạm vi (đọc, ghi, thanh toán), có thể xoay mà không có thời gian ngừng hoạt động và có thể được ghim IP từ trang tổng quan.
- Khóa cho mỗi môi trường (thử nghiệm/trực tiếp)
- Hỗ trợ thông tin xác thực ứng dụng khách OAuth 2.0
- TLS tương hỗ có sẵn trên Enterprise
# .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 }
}Khám phá mọi điểm cuối.
Tạo cuộc gọi
Bắt đầu cuộc gọi PSTN đi. Trả về ngay lập tức với một đối tượng cuộc gọi được xếp hàng đợi — lắng nghe trên webhooks để biết các thay đổi trạng thái.
tosợi dâyyêu cầuSố đích E.164.
fromsợi dâyyêu cầuSố Rozper đã được xác minh hoặc thuê.
urlsợi dâyĐiểm cuối HTTPS trả về hướng dẫn bằng giọng nói khi cuộc gọi kết nối.
recordbooleanGhi cả hai chân vào kho lưu trữ của bạn. Mặc định là sai.
timeoutsố nguyênThời gian chờ đổ chuông tính bằng giây. Mặc định 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"
}Lỗi có thể đoán trước, máy có thể đọc được.
Mọi 4xx và 5xx đều trả về cùng một hình dạng: ổn định code, một thông báo mà con người có thể đọc được và id yêu cầu mà bạn có thể dán vào bộ phận hỗ trợ.
{
"error": {
"code": "invalid_param",
"message": "to: must be E.164",
"request_id": "req_01HXY7…",
"param_errors": [
{ "param": "to", "reason": "format" }
]
}
}bad_requestNội dung yêu cầu không đúng định dạng hoặc thiếu trường bắt buộc.
unauthorizedKhóa API bị thiếu, hết hạn hoặc bị thu hồi.
forbiddenKey thiếu phạm vi cần thiết cho tài nguyên này.
not_foundId tài nguyên không tồn tại cho tài khoản này.
conflictKhóa bình thường va chạm với một tải trọng khác.
invalid_paramXác thực tham số không thành công. Kiểm tra param_errors[].
rate_limitedRút lui bằng cách sử dụng tiêu đề Thử lại sau.
server_errorChúng tôi đã được thông báo. Thử lại các cuộc gọi bình thường.
Đã ký, thử lại, bảo vệ chống phát lại.
Mỗi sự kiện được phân phối kèm theo chữ ký HMAC, id sự kiện duy nhất và dấu thời gian UTC. Chúng tôi thử lại với thời gian chờ theo cấp số nhân trong tối đa 24 giờ.
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.initiatedCuộc gọi đi được nhà mạng chấp nhận.
call.ringingĐầu xa đang đổ chuông.
call.answeredĐã trả lời từ xa (hoặc AMD đã phát hiện ra con người).
call.completedCuộc gọi đã kết thúc. Bao gồm thời lượng, thanh toán, siêu dữ liệu chặng.
recording.readyGhi lại nội dung đã tải lên và URL đã ký có sẵn.
message.deliveredBiên lai giao hàng của nhà cung cấp dịch vụ (nếu được hỗ trợ).
agent.handoffĐặc vụ AI leo thang đến hàng đợi của con người.
number.purchasedViệc thu thập số đã hoàn tất.
Mọi thay đổi đều bằng tiếng Anh đơn giản.
- 2026-05-10v2026.05
- kỳ tíchTác nhân thoại hiện hỗ trợ gọi công cụ với phản hồi trực tuyến.
- kỳ tíchĐiểm cuối /v2/numbers/port mới để gửi LNP có lập trình.
- 2026-04-22v2026.04
- sửa chữaBộ nhớ đệm tạm thời hiện vinh danh chính xác 24 giờ TTL trên POST/cuộc gọi.
- việc vặtĐã xóa các điểm cuối v1 không được dùng nữa (được công bố vào ngày 2025-11).
- 2026-03-31v2026.03
- kỳ tíchPhiên bản beta của luồng phương tiện WebSocket hiện đã có sẵn rộng rãi.
- kỳ tíchTin nhắn mẫu WhatsApp được thêm vào dưới /v2/messages.