REST · WebSocket · gRPC

واجهة برمجة التطبيقات
مرجع.

312 نقطة نهاية، ومواصفات OpenAPI كاملة، وعدم القدرة على كل طفرة، وعقد تشغيل عام. لا صناديق سوداء.

عنوان URL الأساسي
api.rozper.com
إصدار
v2026.05
حد المعدل
1000 روبية
بريد/v2/calls
"color:#22D3EE">curl "color:#22D3EE">-X "اللون:#34D399;وزن الخط:600"> مشاركة https://api.rozper.com/v2/calls \
  "اللون:#22D3EE">-ح «التفويض: حامل $ROZPER_API_KEY" \
  "اللون:#22D3EE">-ح "نوع المحتوى: تطبيق/json" \
  "اللون:#22D3EE">-د '{
    "ل":   "+14155551234",
    "من": "+12025550100",
    "عنوان URL":  "https://your.app/voice/answer"
  }'
201الاستجابة · 84 مللي ثانية
{
  "id": "call_01HXY7ZQ9V3J3X8K5N",
  "status": "queued",
  "to":     "+14155551234",
  "from":   "+12025550100",
  "created_at": "2026-05-12T14:23:01Z"
}
§01 · المصادقة

الرموز الحاملة.
نطاق. للتدوير.

يحمل كل طلب مفتاح مشروع كرمز مميز لحامله. يتم تحديد نطاق المفاتيح (القراءة، والكتابة، والفوترة)، وقابلة للتدوير دون توقف، ويمكن تثبيتها عبر IP من لوحة المعلومات.

  • مفاتيح لكل بيئة (اختبار/مباشر)
  • دعم بيانات اعتماد عميل OAuth 2.0
  • 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 }
}
§02 · مرجع

استكشف كل نقطة نهاية.

المكالماتقم بإنشاء مكالمة

قم بإنشاء مكالمة

إنشاء مكالمة PSTN الصادرة. يعود فورًا مع كائن استدعاء في قائمة الانتظار - استمع إلى خطافات الويب لتغييرات الحالة.

بريد/v2/calls
حدود
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",
})
الرد · تم إنشاء 20184 مللي ثانية
{
  "id": "call_01HXY7ZQ9V3J3X8K5N",
  "object": "call",
  "created_at": "2026-05-12T14:23:01Z"
}
§03 · الأخطاء

أخطاء يمكن التنبؤ بها ويمكن قراءتها آليًا.

كل 4xx و5xx يُرجعان نفس الشكل: إسطبل codeورسالة يمكن قراءتها بواسطة الإنسان ومعرف طلب يمكنك لصقه للدعم.

مغلف خطأ
{
  "error": {
    "code": "invalid_param",
    "message": "to: must be E.164",
    "request_id": "req_01HXY7…",
    "param_errors": [
      { "param": "to", "reason": "format" }
    ]
  }
}
400
bad_request

نص الطلب غير صحيح أو الحقل المطلوب مفقود.

401
unauthorized

مفتاح API مفقود أو منتهي الصلاحية أو تم إبطاله.

403
forbidden

يفتقر المفتاح إلى النطاق المطلوب لهذا المورد.

404
not_found

معرف المورد غير موجود لهذا الحساب.

409
conflict

يصطدم مفتاح العجز بحمولة مختلفة.

422
invalid_param

فشلت المعلمة في التحقق من الصحة. فحص param_errors[].

429
rate_limited

التراجع باستخدام رأس إعادة المحاولة بعد.

500
server_error

لقد تم إخطارنا. أعد محاولة المكالمات العاجزة.

§04 · الخطافات الإلكترونية

تم التوقيع وإعادة المحاولة ومحمية من إعادة التشغيل.

يتم تسليم كل حدث بتوقيع HMAC، ومعرف حدث فريد، وطابع زمني UTC. نعيد المحاولة مع التراجع الأسي لمدة تصل إلى 24 ساعة.

توقيع HMAC-SHA256 في توقيع Rozper
ما يصل إلى 8 محاولات إعادة المحاولة · نافذة لمدة 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 })
})
كتالوج الأحداث · 32 المجموع
call.initiated

المكالمة الصادرة مقبولة من قبل الناقل.

call.ringing

النهاية البعيدة ترن.

call.answered

أجاب الطرف البعيد (أو اكتشفت AMD الإنسان).

call.completed

انتهت المكالمة. يشمل المدة، والفواتير، والبيانات الوصفية للساق.

recording.ready

تسجيل الأصول التي تم تحميلها وعنوان URL الموقع متاح.

message.delivered

إيصال تسليم شركة النقل (حيثما يكون مدعومًا).

agent.handoff

تصاعد وكيل الذكاء الاصطناعي إلى قائمة انتظار بشرية.

number.purchased

تم الانتهاء من الحصول على الرقم.

§05 · سجل التغيير

كل تغيير، باللغة الإنجليزية البسيطة.

  1. 2026-05-10
    v2026.05
    • الفذيدعم وكلاء الصوت الآن أداة الاتصال مع الاستجابات المتدفقة.
    • الفذنقطة نهاية /v2/numbers/port جديدة لعمليات إرسال LNP الآلية.
  2. 2026-04-22
    v2026.04
    • يصلحتعمل ذاكرة التخزين المؤقت Idempotency الآن على تكريم TTL لمدة 24 ساعة على POST/calls بشكل صحيح.
    • عمل روتينيتمت إزالة نقاط النهاية v1 المهملة (تم الإعلان عنها في 2025-2011).
  3. 2026-03-31
    v2026.03
    • الفذأصبح الإصدار التجريبي من تدفقات الوسائط WebSocket متاحًا الآن بشكل عام.
    • الفذتمت إضافة رسائل قالب WhatsApp ضمن /v2/messages.
مرجع واجهة برمجة التطبيقات · Rozper REST & WebSocket Docs | روزبر اليوم