एपीआई
संदर्भ।
312 समापन बिंदु, पूर्ण ओपनएपीआई विशिष्टता, प्रत्येक उत्परिवर्तन पर निष्क्रियता, और एक सार्वजनिक अपटाइम अनुबंध। कोई ब्लैक बॉक्स नहीं.
"color:#22D3EE">curl "color:#22D3EE">-X "रंग:#34डी399;फ़ॉन्ट-वज़न:600">पोस्ट https://api.rozper.com/v2/calls \
"रंग:#22D3EE">-एच "प्राधिकरण: वाहक $ROZPER_API_KEY" \
"रंग:#22D3EE">-एच "सामग्री-प्रकार: एप्लिकेशन/json" \
"रंग:#22D3EE">-डी '{
"को": "+14155551234",
"से": "+12025550100",
"यूआरएल": "https://your.app/voice/answer"
}'{
"id": "call_01HXY7ZQ9V3J3X8K5N",
"status": "queued",
"to": "+14155551234",
"from": "+12025550100",
"created_at": "2026-05-12T14:23:01Z"
}वाहक टोकन.
दायरा. घूमने योग्य.
प्रत्येक अनुरोध में बियरर टोकन के रूप में एक प्रोजेक्ट कुंजी होती है। कुंजियाँ स्कोप्ड (पढ़ें, लिखें, बिलिंग) हैं, बिना डाउनटाइम के घूमने योग्य हैं, और डैशबोर्ड से आईपी-पिन की जा सकती हैं।
- प्रति-पर्यावरण कुंजियाँ (परीक्षण/लाइव)
- OAuth 2.0 क्लाइंट क्रेडेंशियल समर्थित
- एंटरप्राइज़ पर म्युचुअल टीएलएस उपलब्ध है
# .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 }
}प्रत्येक समापन बिंदु का अन्वेषण करें.
एक कॉल बनाएं
एक आउटबाउंड पीएसटीएन कॉल शुरू करें। कतारबद्ध कॉल ऑब्जेक्ट के साथ तुरंत लौटता है - राज्य परिवर्तनों के लिए वेबहुक पर सुनें।
toडोरीआवश्यकE.164 गंतव्य क्रमांक.
fromडोरीआवश्यकसत्यापित या किराए पर लिया गया रोज़पर नंबर।
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, एक मानव-पठनीय संदेश, और एक अनुरोध आईडी जिसे आप समर्थन के लिए चिपका सकते हैं।
{
"error": {
"code": "invalid_param",
"message": "to: must be E.164",
"request_id": "req_01HXY7…",
"param_errors": [
{ "param": "to", "reason": "format" }
]
}
}bad_requestविकृत अनुरोध निकाय या आवश्यक फ़ील्ड अनुपलब्ध।
unauthorizedएपीआई कुंजी गुम, समाप्त या निरस्त हो गई है।
forbiddenकुंजी में इस संसाधन के लिए आवश्यक गुंजाइश का अभाव है।
not_foundइस खाते के लिए संसाधन आईडी मौजूद नहीं है.
conflictइडेम्पोटेंसी कुंजी एक अलग पेलोड से टकराती है।
invalid_paramएक पैरामीटर सत्यापन विफल रहा. पैरामीटर_त्रुटियों[] का निरीक्षण करें।
rate_limitedरिट्री-आफ्टर हेडर का उपयोग करके बैकऑफ़ करें।
server_errorहमें सूचित किया गया. निष्क्रिय कॉल पुनः प्रयास करें.
हस्ताक्षरित, पुनः प्रयास किया गया, पुन: चला कर सुरक्षित किया गया।
प्रत्येक ईवेंट एक HMAC हस्ताक्षर, एक अद्वितीय ईवेंट आईडी और एक 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सुदूर-अंत ने उत्तर दिया (या एएमडी ने मानव का पता लगाया)।
call.completedकॉल समाप्त हो गई. अवधि, बिलिंग, लेग मेटाडेटा शामिल है।
recording.readyरिकॉर्डिंग एसेट अपलोड और हस्ताक्षरित यूआरएल उपलब्ध है।
message.deliveredवाहक डिलीवरी रसीद (जहाँ समर्थित हो)।
agent.handoffएआई एजेंट एक मानव कतार में आगे बढ़ गया।
number.purchasedनंबर अधिग्रहण पूरा हो गया.
प्रत्येक परिवर्तन, स्पष्ट अंग्रेजी में।
- 2026-05-10v2026.05
- करतबवॉयस एजेंट अब स्ट्रीमिंग प्रतिक्रियाओं के साथ टूल कॉलिंग का समर्थन करते हैं।
- करतबप्रोग्रामेटिक एलएनपी सबमिशन के लिए नया /v2/नंबर्स/पोर्ट एंडपॉइंट।
- 2026-04-22v2026.04
- हल करनाIdempotency कैश अब POST/कॉल पर 24 घंटे TTL का सही ढंग से सम्मान करता है।
- घर का कामअप्रचलित v1 समापन बिंदु हटा दिए गए (घोषित 2025-11)।
- 2026-03-31v2026.03
- करतबवेबसॉकेट मीडिया-स्ट्रीम बीटा अब आम तौर पर उपलब्ध है।
- करतबव्हाट्सएप टेम्प्लेट संदेश /v2/संदेश के अंतर्गत जोड़े गए।