API
참조.
312 엔드포인트, 완전한 OpenAPI 사양, 모든 변형에 대한 멱등성 및 공개 가동 시간 계약을 제공합니다. 블랙박스가 없습니다.
"color:#22D3EE">curl "color:#22D3EE">-X "색상:#34D399;글꼴 두께:600">포스트 https://api.rozper.com/v2/calls \
"색상:#22D3EE">-H "권한: 무기명 $ROZPER_API_KEY" \
"색상:#22D3EE">-H "콘텐츠 유형: 애플리케이션/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"
}무기명 토큰.
범위가 지정되었습니다. 회전 가능.
모든 요청에는 프로젝트 키가 Bearer 토큰으로 전달됩니다. 키는 범위가 지정되고(읽기, 쓰기, 청구) 다운타임 없이 순환 가능하며 대시보드에서 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 통화를 시작합니다. 대기 중인 호출 객체를 사용하여 즉시 반환합니다. 웹후크에서 상태 변경을 수신합니다.
to끈필수의E.164 대상 번호.
from끈필수의Rozper 번호를 확인하거나 대여했습니다.
url끈통화가 연결되면 음성 안내를 반환하는 HTTPS 엔드포인트입니다.
record부울양쪽 다리를 보관함에 기록하세요. 기본값은 거짓입니다.
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 /calls에서 24시간 TTL을 올바르게 적용합니다.
- 하기 싫은 일지원 중단된 v1 엔드포인트가 제거되었습니다(2025-11년에 발표).
- 2026-03-31v2026.03
- 위업WebSocket 미디어 스트림 베타가 이제 일반 공급됩니다.
- 위업/v2/messages 아래에 WhatsApp 템플릿 메시지가 추가되었습니다.