المرجع

ما تحتاجه أثناء البناء: شكل الأخطاء ورموزها، ونطاقات المفاتيح، والحدود، وصيغ الصوت، وروابط العقد الكامل.

الأخطاء

كل خطأ بالشكل نفسه. الرسالة في مسارات الجلسات عربية قابلة للعرض للمستخدم مباشرة، وrequest_id يربط الطلب بسجلاتنا (ويعود أيضاً في ترويسة X-Request-ID).

JSON
{
  "error": {
    "code": "ORIGIN_DENIED",
    "message": "هذا الموقع غير مصرّح له باستخدام المساعد.",
    "request_id": "7ef58a6c4817476f88141957853400a7"
  }
}
الرمزHTTPيُعاد؟المعنى وما تفعله
AUTH_FAILED401لاالرمز مفقود أو غير صالح، أو معرّف التضمين غير صحيح.
TOKEN_EXPIRED401لاانتهت مدة رمز الجلسة. اطلب رمزاً جديداً وافتح جلسة بنفس conversation_id.
ORIGIN_DENIED403لاالنطاق غير مسجل، أو لا يطابق النطاق الذي صدر له الرمز.
TENANT_MISMATCH403لاالجلسة لا تتبع هذه المساحة.
TOKEN_REPLAYED409لاالرمز فتح جلسة من قبل. كل رمز يفتح جلسة واحدة.
IDEMPOTENCY_CONFLICT409لاالمفتاح نفسه وصل بمحتوى مختلف.
STALE_GENERATION409لارد قديم تُجوهل بعد مقاطعة أو إيقاف.
CONVERSATION_NOT_FOUND404لاالمحادثة غير موجودة أو انتهت. افتح جلسة جديدة.
NO_PUBLISHED_AGENT404لاالوكيل غير منشور، أو التضمين غير مفعّل في المراجعة المنشورة.
VALIDATION_FAILED422لاالطلب ناقص أو غير صالح.
AUDIO_EMPTY400لاملف الصوت فارغ أو غير صالح.
RATE_LIMITED429نعمتجاوزت حد الاستخدام. أعد المحاولة بعد لحظات.
BUDGET_EXHAUSTED429لاانتهت الحصة المخصصة.
AUDIO_PRODUCTION_FAILURE502نعمتعذّر إنتاج الصوت (ومنه تعذّر تحميل صوت الوكيل). أعد مرة، ثم اكتفِ بالنص.
INTERNAL500لاخطأ غير متوقع. أرسل request_id إلى الدعم.

نطاقات مفاتيح API

تختار النطاقات عند إنشاء المفتاح. امنح المفتاح أقل ما يحتاجه.

الحقلالنوعالوصف
sessions.createscopeإصدار رموز الجلسات (الاستخدام الأساسي لخادم موقعك).
sessions.streamscopeقنوات البث للجلسات.
speech.transcribescopeتحويل الكلام إلى نص.
speech.synthesizescopeنطق النصوص.
agents.readscopeقراءة الوكلاء وسجل المحادثات.
agents.managescopeإدارة الوكلاء وتشغيلهم.
tools.ackscopeتأكيد نتائج الأدوات.
usage.readscopeقراءة الاستخدام.

الحدود

الحقلالنوعالوصف
رمز الجلسة60–3600 sالافتراضي 900 ثانية. رمز التضمين العام 600 ثانية.
جلسات التضمين العامrate20 لكل زائر كل 10 دقائق، و600 لكل وكيل في الساعة.
مفتاح APIrpmالافتراضي 120 طلباً في الدقيقة، ويُضبط لكل مفتاح.
رفع الصوت4 MBحد ملف الرسالة الصوتية.
تسجيل الويدجت30 sأقصى مدة للرسالة الصوتية من الويدجت.
سجل المحادثات≤ 100محادثات في الصفحة الواحدة.

صيغ الصوت

الحقلالنوعالوصف
إلى صُرَدWAVالأنسب: أحادي، 16kHz، PCM16.
من صُرَد (كامل)WAVفي audio.content_base64.
من صُرَد (بث)PCM16أجزاء خام في audio.chunk: LINEAR16، 24kHz، أحادي، بترتيب seq.

هوية التنفيذ

كل دور منطوق يعيد ما نُفّذ فعلاً، لتتحقق من ثبات صوت وكيلك: identity.voice_profile_id أو identity.executed_profile_id، وaudio.voice، وidentity.transport. وإن طلبت صوتاً لا يمكن تحميله يعود خطأ صريح، ولا يُنطق الرد بصوت آخر.

منع التكرار

أرسل idempotency_key فريداً لكل دور. إن أعدت الطلب بعد انقطاع الشبكة بالمفتاح نفسه يعود الرد نفسه دون تنفيذ ثانٍ أو دفع صوت مرتين. وبعد إيقاف الرد لا يُعاد صوته القديم.

العقد الكامل والأدوات

  • OpenAPI (حي، يطابق الإنتاج دائماً): https://app.surad-ai.com/api/v1/developer-kit/v1/openapi.json
  • حزمة المطور (أمثلة curl وNode وPython وLaravel وWordPress، ومجموعة Postman، وحزم SDK): https://app.surad-ai.com/api/v1/developer-kit/v1
  • لوكلاء البرمجة بالذكاء الاصطناعي: /llms.txt و/llms-full.txt
المسار /openapi.json في جذر النطاق محجوب عمداً. استخدم رابط حزمة المطور أعلاه.