الميزاتمنظمة العفو الدوليةلوحة القيادةAPIالتسعيرتحميلمساعدة
المظهر (Auto: light)
جرب مجانًا
واجهة برمجة التطبيقات والمطورين

اضغط على Enter.
احصل على بياناتك.

REST API /api/v1 و53 نطاقًا و239 نقطة نهاية و11 حدث webhook وواجهة برمجة تطبيقات JS للأداة. الدردشات وجهات الاتصال والذكاء الاصطناعي وقاعدة المعرفة والتذاكر والفوترة - أيًا كان ما تفعله لوحة التحكم، يمكن للتعليمات البرمجية الخاصة بك أن تفعله أيضًا.

smartbtn.me/api/v1
# اضغط على Enter أو العلامة الموجودة على اليمين
$ curl -H "Authorization: Bearer sb_••••" \
    https://smartbtn.me/api/v1/chats?limit=1 
01

بداية سريعة

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

  1. إصدار رمز مميزلوحة المعلومات → رموز API المميزة: الاسم وانتهاء الصلاحية الاختياري والنطاقات التي تحتاجها. ينتمي الرمز المميز إلى عنصر واجهة مستخدم واحد بالضبط. يتم عرض رمز النص العادي مرة واحدة؛ يقوم Smartbtn بتخزين تجزئة أحادية الاتجاه فقط، لذلك لا يمكن استرداد الرمز المفقود - فقط يتم إبطاله وإعادة إصداره.
  2. قم بتشغيل واجهة برمجة تطبيقات القطعةفي إعدادات عنصر واجهة المستخدم، قم بتشغيل «السماح بواجهة برمجة تطبيقات عنصر واجهة المستخدم (JS وREST)». لا يؤدي إصدار رمز مميز إلى قلب هذا المفتاح نيابةً عنك.
  3. أرسل الطلب الأولينتقل الرمز المميز فقط إلى رأس Authorization - وليس إلى عنوان URL مطلقًا.
# قائمة الدردشات القطعة
curl -H "Authorization: Bearer $SMARTBTN_TOKEN" \
     https://smartbtn.me/api/v1/chats
// 200 OK · ترقيم الصفحات المؤشر
{
  "data": [ { "id": 48211, "status": "open", "last_message_at": "2026-10-17T09:41:12+03:00" }, … ],
  "next_cursor": "eyJpZCI6NDgyMTB9"   // null — في الصفحة الأخيرة
}
عنوان URL الأساسي الذي تم التحقق منه. https://smartbtn.me/api/v1 هو نقطة النهاية الأساسية لواجهة برمجة التطبيقات لجميع بيانات المشروع. قم دائمًا بإرسال الطلبات عبر HTTPS وعدم إعادة توجيه الرمز المميز أبدًا عند عمليات إعادة التوجيه.
رمز مميز مفقود أو غير صالح أو ضمن النطاق؟ هل تحصل على 401 أو 403 باستخدام نص RFC‑7807 application/problem+json - راجع الأخطاء.
02

المصادقة

ثلاثة مسارات، اعتمادا على من يتصل بمن. يتم رفض الوصول افتراضيًا: لا يوجد نطاق — لا يوجد اتصال.

أنت → سمارت بي تي إن
مكالمات الراحة

يحمل كل طلب التفويض: حامل . على الخادم، يتحول الرمز المميز إلى عنصر واجهة مستخدم واحد ونطاقاته.

سمارت بي تي إن → أنت
Webhooks، مشغل الذكاء الاصطناعي الخارجي

يتم توقيع الطلبات الصادرة باستخدام سر لكل مستأجر: X‑Smartbtn‑Signature. يمكن إضافة بيانات اعتماد حامل إضافية إذا كان جانبك يحتاج إلى واحدة.

مشغل الذكاء الاصطناعي الخاص بك → Smartbtn
ردود غير متزامنة

يستخدم POST /v1/ai/replies إطارًا موقعًا خاصًا به، مثبتًا على مشغل الذكاء الاصطناعي وعنصر واجهة المستخدم الخاص بك، ويتم ربطه بواسطة causation_id المتين.

ينسى الناس التبديل

يؤدي «السماح بواجهة برمجة تطبيقات القطعة (JS وREST)» في إعدادات القطعة إلى فتح كل من REST API وواجهة برمجة تطبيقات القطعة JS. إصدار رمز مميز لا يمكّن من ذلك. يمكن تحرير نطاقات المفتاح الحالي في لوحة المعلومات (رموز واجهة برمجة التطبيقات → المفتاح → تحرير النطاقات) بدون إعادة إصدار - تستمر عمليات التكامل في العمل.

الإعدادات المسبقة

محددة مسبقاالنطاقاتمتى
إعداد الذكاء الاصطناعي 9widget:read · widget:write · ai:read · ai:write · ai:apply · kb:read · kb:write · files:write · stats:readيقوم تطبيق الذكاء الاصطناعي الخاص بك بتكوين الأداة: المساعد، وقاعدة المعرفة، والنصوص. يستبدل اختيار النطاق بأكمله.
للقراءة فقط (مجموعة الأمثلة)chats:read · messages:read · contacts:read · stats:readلوحات المعلومات، BI، الصادرات.
جسر مكتب المساعدة (مجموعة الأمثلة)chats:read · messages:read · messages:write · webhooks:write · support:readقم بنسخ مربعات الحوار والتذاكر في نظام إدارة علاقات العملاء (CRM) الخاص بك.
مفاتيح الموفر منفصلة. لا تمنح ai:credentials:write إلا عندما يأذن المالك بإعداد مفتاح الموفر. ليست هناك حاجة إلى حقوق الحساب والفوترة والشريك لإعداد الذكاء الاصطناعي. يظهر المفتاح مرة واحدة - قم بإلغائه عند الانتهاء من الإعداد.
03

النطاقات

53 نطاقًا للمسار، بالإضافة إلى نطاق مشروط وآخر محجوز. ينجح الطلب فقط إذا كان الرمز المميز يحمل نطاق المسار (أو بديلاً مدرجًا).

53 + 1 شرطي + 1 محجوز
حساسمشروطمحفوظة
النطاقالمنح
chats · 2
chats:readقراءة الدردشات والبيانات الوصفية الخاصة بها
chats:writeقم بإغلاق محادثة أو طلب تقييم أو نقل أو مطالبة أو إرفاق أو فصل وكيل
messages · 2
messages:readقراءة سجل رسائل الدردشة
messages:writeإرسال الرسائل وكتابة المؤشرات وقراءة الإيصالات كوكيل
contacts · 2
contacts:readقراءة جهات الاتصال
contacts:writeتحديث حقول الاتصال والسمات
agents · 3
agents:readقراءة الوكلاء ووجودهم
agents:writeحساسدعوة الوكلاء أو تحديثهم أو تعليقهم أو استعادتهم أو إزالتهم؛ يرى المدعو كل محادثة في الأداة
agents:events:readاقرأ سجل أحداث الوكيل والمقاييس الخاصة بكل وكيل
tags · 2
tags:readقراءة العلامات
tags:writeإرفاق العلامات بجهة اتصال
files · 2
files:readقم بتنزيل ملف تم تحميله
files:writeتحميل ملف جديد
stats · 1
stats:readقراءة إجمالي الدردشة والرسائل وإحصائيات التقييم
channels · 3
channels:readاقرأ حالة القناة المخصصة عبر الإنترنت
channels:writeتسليم رسالة واردة على قناة مخصصة
channels:registerتسجيل قناة مخصصة جديدة (التطبيقات المثبتة فقط)
webhooks · 2
webhooks:readقائمة اشتراكات webhook
webhooks:writeإنشاء أو حذف أو إعادة تسليم الاشتراك
quick_phrases · 2
quick_phrases:readاقرأ العبارات السريعة للوكيل
quick_phrases:writeإنشاء أو تعديل أو حذف العبارات السريعة
ratings · 1
ratings:readاقرأ تقييمات الزوار والوكيل الذي يسجله كل واحد
responder · 2
responder:injectحساسأدخل ردًا في الدردشة المباشرة كمشغل أو روبوت خارجي يعمل بالذكاء الاصطناعي
responder:escalateمشروطبالنسبة إلى POST /v1/ai/replies: التسليم الموجه للمتصل عبر التصعيد = صحيح
widget · 2
widget:readقراءة مظهر القطعة والسلوك وإعدادات التضمين
widget:writeقم بتحديث إعدادات عنصر واجهة المستخدم ومسح ذاكرة التخزين المؤقت لعنصر واجهة المستخدم
departments · 2
departments:readقراءة الإدارات ووكلائها والجداول الزمنية
departments:writeإنشاء وتحديث أو حذف الأقسام والجداول الزمنية
messengers · 2
messengers:readاقرأ أي برامج المراسلة متصلة (بدون بيانات الاعتماد)
messengers:writeحساسربط أو قطع اتصال رسول. يكتب بيانات اعتماد المزود
ai · 4
ai:readاقرأ مساعدي الذكاء الاصطناعي وتكويناتهم وتنبيهاتهم
ai:writeإنشاء وتحديث المساعدين، وإعدادات الذكاء الاصطناعي ومشغلي الذكاء الاصطناعي، بما في ذلك الشخصية والموجه
ai:credentials:writeحساستخزين بيانات اعتماد موفر LLM التابع لجهة خارجية (BYOK)
ai:applyالموافقة على التحسين الذي يعيد كتابة شخصية المساعد المباشر
kb · 2
kb:readاقرأ قواعد قاعدة المعرفة والمصادر المستوعبة
kb:writeإنشاء أو تحديث أو حذف قواعد ومصادر قاعدة المعارف
transcripts · 1
transcripts:readتصدير نص الدردشة
account · 2
account:readاقرأ الملف التعريفي للحساب وكافة كياناته القانونية
account:writeقم بتحديث اسم الحساب واللقب والهاتف فقط
billing · 2
billing:readاقرأ سجلات فواتير الأداة والكيانات القانونية
billing:writeإنشاء وتحديث وحذف الكيانات القانونية؛ لا يصدر أي فواتير، ولا ينقل أي أموال
partners · 2
partners:readقراءة بيانات الشريك والإحالة
partners:withdrawمحفوظةمحجوز: لا توجد عملية دفع تستخدمه اليوم
support · 4
support:readاقرأ التذاكر والمحادثات النشطة ورسائلهم والإجراءات المدققة الخاصة بهم
support:replyحساسأجب على العميل كمشغل الدعم
support:writeقم بالمطالبة بالدردشة أو إطلاقها، أغلقها دون رد، أعد فتحها
support:tickets:closeأغلق التذكرة فقط - لا شيء آخر
marketing · 2
marketing:readقراءة الحملات التسويقية: اللافتات، والنوافذ المنبثقة، والبريد الإلكتروني
marketing:writeإنشاء وتحرير الحملات، وتغيير الحالة، وبدء إرسال بريد إلكتروني
broadcasts · 2
broadcasts:readقراءة عمليات بث المراسلة (WhatsApp وTelegram وMessenger وViber وVK وMAX)
broadcasts:writeإنشاء وتحرير وبدء البث
problems · 2
problems:readاقرأ مجموعات وإعدادات مشكلات العملاء
problems:writeتغيير الإعدادات وحالة المجموعة: جديد، قيد التقدم، تم حله، متكرر
invitations · 2
invitations:readاقرأ قواعد الدعوة ومتغيرات A/B والقوالب ومسار التحويل
invitations:writeإنشاء القواعد والقوالب أو تحريرها أو تمكينها أو حذفها
04

نقاط النهاية

السطح العام كله في قائمة واحدة. قم بالتصفية حسب المورد، والبحث حسب المسار، وانقر فوق صف لنسخ تجعيد جاهز.

عرض 245 من 245
GETPOSTPUTPATCHDELETE

ai المساعدون، المشغلون، المفاتيح، التعلم، السوق54

chats الحوارات والرسائل والنقل والتقييمات18

kb قاعدة المعرفة: القواعد، الزاحف، الملفات، البحث16

agents الوكلاء، الدعوات، المقاييس14

messengers برامج المراسلة والشبكات الاجتماعية وقنوات السوق13

billing الرصيد، الاشتراكات، الفواتير، الجهات12

support وكيل الدعم: التذاكر والمحادثات12

widget الإعدادات، اللغة، الترجمات، الأسطح، ذاكرة التخزين المؤقت12

channels القنوات المخصصة8

external‑operators الروبوت الخاص بك كمشغل8

webhook‑subscriptions اشتراكات الويب هوك8

broadcasts بث ماسنجر7

departments الأقسام والجدول الزمني7

invitations دعوات ذكية7

marketing الحملات التسويقية7

partner برنامج الشريك7

wishes التمنيات لمنظمة العفو الدولية7

contacts جهات الاتصال والعلامات5

problems تحليلات مشكلة العملاء4

quick‑phrases عبارات سريعة4

compat توافق الهجرة3

stats الإحصائيات3

account الحساب2

files ملفات2

ratings التقييمات1

tags العلامات1

v1 1

webhook‑events كتالوج الأحداث1

ترتبط المسارات بـ https://smartbtn.me/api. تحتاج عمليات الكتابة إلى Content‑Type: application/json وX‑Smartbtn‑Idempotency‑Key. مجموعة compat هي طبقة توافق للفرق التي تنتقل من منصة دردشة أخرى.

05

خطافات الويب

JSON POST مُوقع إلى عنوان URL الخاص بك عند حدوث حدث مشترك. إدارة الاشتراكات عبر /v1/webhook‑subscriptions أو في لوحة التحكم.

POST عنوان URL الخاص بك · X‑Smartbtn‑Event: ticket.created
{
  "id": "evt_01JAB3K9Q7",
  "type": "ticket.created",
  "data": {
    "button_guid": "b_3f9c2e",
    "ticket_number": 10482,
    "chat_id": 48211,
    "client_id": 9134,
    "reason": "human_request",
    "priority": "high",
    "sla_hours": 4,
    "source": "chat",
    "created_at": "2026-10-17T10:15:00+03:00"
  }
}

السبب: human_request | الفواتير | ai_unresolved | action_request | …; الأولوية: عالية | طبيعي؛ المصدر: دردشة | التطبيق | موقع. اقرأ التذكرة ومربع الحوار الخاص بها باستخدام GET /v1/support/tickets/{number}.

رؤوس التسليم

X‑Smartbtn‑Eventنوع الحدث، على سبيل المثال. message.created.
X‑Smartbtn‑Signaturesha256=v1: للجسم الخام.
X‑Smartbtn‑Idempotency‑Keyقيمة واحدة لكل حدث، ثابتة عبر المحاولات. تخلص منه.
X‑Smartbtn‑Deliveryقيمة واحدة لكل محاولة تسليم — لسجلاتك.
X‑Smartbtn‑Timestampيونكس وقت الإرسال. معلوماتية، غير موقعة.

التحقق من التوقيع

HMAC‑SHA256 للنص الخام (البايتات كما تم استلامها، قبل تحليل JSON) مع سر نقطة النهاية الخاصة بك؛ مقارنة في وقت ثابت. يظهر السر مرة واحدة، عند إنشاء الاشتراك؛ قم بتدويرها باستخدام POST /v1/webhook‑subscriptions/{id}/rotate‑secret.

// Node.js · على سبيل المثال، السر هو عنصر نائب
import crypto from 'node:crypto';

function verify(rawBody, header, secret) {
  const expected = 'sha256=v1:' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  const a = Buffer.from(expected), b = Buffer.from(header || '');
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}
// PHP
$expected = 'sha256=v1:' . hash_hmac('sha256', file_get_contents('php://input'), $secret);
if (!hash_equals($expected, $_SERVER['HTTP_X_SMARTBTN_SIGNATURE'] ?? '')) { http_response_code(401); exit; }

إعادة المحاولة والنظام

  • ما يصل إلى 4 محاولات (الإرسال الأول بالإضافة إلى 3 محاولات إعادة)، والتراجع min(60, 2^attempt × 5) ثانية — حوالي 10، 20، 40 ثانية.
  • يتم احتساب غير 2xx أو المهلة كمحاولة فاشلة. يمكن إعادة إرسال عمليات التسليم الفاشلة باستخدام POST /v1/webhook‑subscriptions/{id}/redeliver — نفس مفتاح الكفاءة، ومعرف التسليم الجديد.
  • يتم التسليم مرة واحدة على الأقل ولم يتم طلبه. الحمولات ضئيلة - المعرفات، وليست السجلات الكاملة؛ جلب التفاصيل عبر REST API.
06

JS API

قم بتمرير ما تعرفه بالفعل عن الزائر مباشرة إلى الوكيل. يتم قبول المكالمات فقط من النطاق المحدد في إعدادات القطعة.

smartbtn_widget_api.setContactInfo(info)

يضبط بيانات الاتصال الخاصة بالزائر. يرى الوكيل الأمر كما لو أن الزائر قد ملأ نموذج المقدمة. يلعب الاسم والهاتف والبريد الإلكتروني دورًا خاصًا في Smartbtn، ومن ثم فهي طريقة منفصلة.

الاسماكتبالوصف
namestringاسم الزائر
emailstringالبريد الإلكتروني للزائر
phonestringهاتف الزائر
descriptionstringأي معلومات إضافية عن العميل
Smartbtn_api.setClientInfo({
  name: "أليكس مورغان",
  email: "email@example.com",
  phone: "+17584987855",
  description: "Description text"
});

smartbtn_widget_api.setCustomData(fields)

أي بيانات إضافية للوحة المعلومات الموجودة على يمين تطبيق الوكيل. يمكنك الاتصال بها بقدر ما تريد — في مربع حوار مفتوح، يتم تحديث اللوحة في الوقت الفعلي. تظهر الحقول بترتيب المصفوفة.

الاسماكتبالوصف
fieldsarrayقائمة حقول البيانات
field.titlestringيتجه فوق الميدان
field.contentstringالمحتوى الميداني يتم الهروب من العلامات
field.linkstringتم فتح عنوان URL عند النقر
Smartbtn_api.setClientCustomData([
  { title: "Order", content: "#10482 · 3 items", link: "https://shop.example/orders/10482" },
  { title: "Actions", content: "Open customer profile", link: "https://crm.example/c/9134" }
]);

smartbtn_widget_api.setSkin(skin, opts) · open() · close()

قم بتبديل سمة الأداة بسرعة دون إعادة تحميل الصفحة (classic, minimal, capsule, liquid) أو التحكم في نافذة الدردشة برمجيًا. للتخصيص الدائم لكل مشروع، قم بتمرير نفس الحقول إلى PATCH /v1/widget/settings.

// JS API · تبديل الجلد على الصفحة في الوقت الحقيقي
smartbtn_widget_api.setSkin("minimal");
smartbtn_widget_api.setSkin("capsule", { capsuleTitle: "Smartbtn AI", capsuleSubtitle: "الردود خلال ~ 1 ثانية" });

// REST API · PATCH /v1/widget/settings (النطاق widget:write)
{
  "skin": "minimal",
  "widget_header_align": "center",
  "widget_show_operator_avatars": false,
  "widget_show_tabs_bar": false,
  "chat_bg": "#FAF8F5",
  "capsule_title": "Smartbtn AI",
  "capsule_subtitle": "أون لاين 24/7"
}
مع تشغيل widget_api_contact_sync، تُطلق هذه الاستدعاءات أيضًا خطاف الويب contact.updated.
07

Support‑agent API

يعمل وكيل الدعم الآلي على قائمة انتظار التذاكر ومحادثات العملاء: يقوم بإجراء محادثة، ويجيب كموظف الدعم البشري الخاص بك، ويغلق التذكرة. متوقف حتى يقوم مالك القطعة بتشغيله.

  1. المالك يتيح ذلكيسرد الرموز المميزة المسموح لها بالعمل كوكلاء دعم وعناوين IP التي يمكنهم الاتصال منها.
  2. قراءة قائمة الانتظارGET /v1/support/tickets · GET /v1/support/chats
  3. استئجار الدردشةPOST …/chats/{id}/claim · …/release
  4. ردنص عادي، يرتبط فقط بالمضيفين المسموح لهم بالأداة. 201 فقط بمجرد تخزين الرسالة.
  5. إغلاق أو إعادة فتحPOST …/tickets/{number}/close · …/reopen
النطاقيسمح
support:readالتذاكر، والمحادثات النشطة، والرسائل التي تحمل علامة العميل / ai / الدعم / النظام، والإجراءات المدققة الخاصة
support:writeالمطالبة / تحرير الدردشة، إغلاق دون رد، إعادة فتح
support:replyأجب على العميل كمشغل الدعم (حساس)
support:tickets:closeأغلق التذكرة فقط - للحصول على زر «تم حل السؤال» في الواجهة الخلفية لديك
curl -X POST https://smartbtn.me/api/v1/support/chats/48211/reply \
  -H "Authorization: Bearer $AGENT_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Smartbtn-Idempotency-Key: $(uuidgen)" \
  -d '{"text":"تم، تمت استعادة الوصول."}'
يمكن للمالك منح الرموز المميزة لوكيل الدعم حدًا خاصًا به لكل دقيقة - أو لا شيء على الإطلاق. كل طريق آخر يحافظ على الحد العام.
08

واجهة برمجة تطبيقات الذكاء الاصطناعي

كل ما يفعله قسم الذكاء الاصطناعي في لوحة المعلومات: المساعدون، ومفاتيح الموفر الخاصة بك، وقاعدة المعرفة، والتعلم الذاتي مع التراجع، والرغبات، والمشكلات، وإشارات الطلب، ومساعد داخل تطبيقك.

المساعدون ومشغلو الذكاء الاصطناعي

العديد من المساعدين مع دورهم ولغتهم الخاصة، واختبار قبل بدء البث المباشر، ويتم تسمية المشغلين حسب اللغة.

  • GET/v1/ai/assistants
  • POST/v1/ai/assistants/{id}/test
  • PATCH/v1/ai/operators/{id}
  • POST/v1/ai/handoff
النطاقات: ai:read · ai:write
إحضار المفتاح الخاص بك

Claude أو ChatGPT أو DeepSeek أو Gemini أو Mistral أو LLMs الإقليمية أو أي برنامج متوافق مع OpenAI. يتم سرد النماذج لكل مفتاح.

  • GET/v1/ai/credentials
  • POST/v1/ai/credentials
  • GET/v1/ai/credentials/{id}/models
النطاقات: ai:read · ai:credentials:write
قاعدة المعرفة

زاحف لموقعك، وتحميل ملفات PDF وDOCX، والقواعد، وحالة البحث والفهرسة.

  • PUT/v1/kb/crawler
  • POST/v1/kb/uploads
  • POST/v1/kb/rules
  • GET/v1/kb/search
النطاقات: kb:read · kb:write · files:write
التعلم الذاتي

ضبط عمليات التشغيل والدورات والتاريخ وإصدارات الشخصية مع التراجع ومفتاح القتل.

  • POST/v1/ai/learning/tune
  • GET/v1/ai/learning/cycles
  • POST/v1/ai/learning/persona‑versions/{version}/revert
  • GET/v1/ai/learning/kill‑switch
النطاقات: ai:read · ai:write · ai:apply
التمنيات لمنظمة العفو الدولية

أمنية بكلمات واضحة ← معاينة خالية من التأثيرات الجانبية ← الموافقة أو الرفض أو الرجوع.

  • POST/v1/wishes
  • GET/v1/wishes/{id}/preview
  • POST/v1/wishes/{id}/approve
  • POST/v1/wishes/{id}/revert
النطاقات: ai:write · ai:apply
المشاكل وإشارات الطلب

مجموعات المشكلات ذات الحالات والحد الأقصى للإنفاق الشهري؛ ما طلبه العملاء ولم تقدمه.

  • GET/v1/problems
  • PATCH/v1/problems/settings
  • POST/v1/problems/{id}/status
  • GET/v1/ai/demand‑signals
النطاقات: problems:read · problems:write · ai:read
حالة العميل

تقوم الواجهة الخلفية لديك بدفع حالة العميل (مسجل، مدفوع، عميل منذ ذلك الحين، حالة الخدمة) في طلب موقع من HMAC - يقيسه الذكاء الاصطناعي عند الرد والتصعيد.

  • POST/v1/ai/customer‑status
  • POST/v1/ai/tickets
  • GET/v1/ai/alerts
النطاقات: ai:write · ai:read
مساعد في التطبيق الخاص بك

يتحول الحوار، وربط الحساب، وتحويل الكلام إلى نص، وتحويل النص إلى كلام، وتذاكر التطبيقات - عبر تكامل موقع.

  • POST/v1/ai/assistant/turn
  • POST/v1/ai/assistant/account‑link
  • POST/v1/ai/assistant/speech‑to‑text
  • POST/v1/ai/assistant/text‑to‑speech
النطاقات: توقيع التكامل (HMAC)
سوق الحلول

مساعدين جاهزين حسب التخصص: مقهى، عيادة، متجر، خدمة سيارات. التقديم في طلب واحد.

  • GET/v1/ai/marketplace/templates
  • POST/v1/ai/marketplace/templates/{slug}/apply
النطاقات: ai:read · ai:write
مشغل الذكاء الاصطناعي الخارجي

يجيب الروبوت الخاص بك على الدردشات: ردود غير متزامنة، وعمليات التسليم، والاختبارات، ودورة الحياة.

  • POST/v1/ai/replies
  • POST/v1/external‑operators/{public_id}/tests
  • POST/v1/external‑operators/{public_id}/lifecycle
النطاقات: responder:inject · responder:escalate
09

حدود المعدل

لكل رمز مميز، هناك عدادان: يتم حساب عمليات القراءة والكتابة بشكل منفصل، وبالتالي فإن الاقتراع لا يلتهم ميزانية الكتابة أبدًا.

600 / دقيقةيقرأ: احصل على الرأس
120 / دقيقةيكتب: نشر، تصحيح، وضع، حذف
429فوق الحد — انتظر إعادة المحاولة بعد
X‑RateLimit‑Limitحجم العداد تم احتساب هذا الطلب فيه (600 أو 120)
X‑RateLimit‑Remainingالطلبات المتبقية في النافذة الحالية
X‑RateLimit‑Resetعندما يتم إعادة تعيين النافذة
Retry‑Afterعلى 429: ثواني للانتظار
HTTP/1.1 429 Too Many Requests
Content-Type: application/problem+json
Retry-After: 12
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0

{ "status": 429, "title": "Too Many Requests", "reason": "rate_limited" }

/v1/ai/assistant/tickets/status و/v1/ai/assistant/account‑link لديهم عدادات خاصة بهم؛ يمكن أن تحتوي واجهة برمجة تطبيقات وكيل الدعم على تجاوز لكل عنصر واجهة مستخدم.

10

أخطاء

كل خطأ هو RFC‑7807 application/problem+json: حالة وسبب يمكن قراءته بواسطة الآلة، وتفاصيل يمكن قراءتها بواسطة الإنسان.

HTTP/1.1 403 · Content-Type: application/problem+json
{
  "type": "https://smartbtn.me/problems/forbidden",
  "title": "Forbidden",
  "status": 403,
  "detail": "Token lacks scope chats:write.",
  "required_scopes": [
    "chats:write"
  ],
  "hint": "Dashboard → API tokens → key → Edit scopes"
}

تسمي الهيئة المطلوبة_النطاقات ومكان منحها. لا حاجة لإعادة إصدار المفتاح.

الحالةمعنى
400طلب تالف أو مفتاح العجز المطلوب مفقود
401لا يوجد رمز مميز أو رمز غير صالح أو تم إبطاله
403الرمز يفتقر إلى النطاق؛ يضيف الجسم required_scopes ومكان منحه
404لم يتم العثور على هذه القطعة
405الطريقة غير مسموح بها - التوقف والإبلاغ؛ لا تبحث عن يكتب بديل
409إعادة استخدام مفتاح العجز خلال 24 ساعة، أو تعارض الدولة
422فشل التحقق من الصحة (على سبيل المثال، تم إرسال حقل للقراءة فقط)
429الحد الأقصى للسعر؛ احترام إعادة المحاولة بعد
11

العجز

الشبكات تفشل. المفتاح يجعل إعادة محاولة الكتابة آمنة: لا يتم تطبيق نفس العملية مرتين أبدًا.

  • أرسل X‑Smartbtn‑Idempotency‑Key في كل POST / PATCH / PUT / DELETE: معرف UUID جديد لعملية جديدة، نفس المفتاح لإعادة محاولة نفس العملية.
  • العمليات التي تحمل علامة x‑idempotency: Required في OpenAPI: لا يوجد مفتاح → 400، تتم إعادة استخدام المفتاح خلال 24 ساعة → 409 (ليس نجاحاً مخبأً).
  • لست متأكدا من أنها مرت؟ اقرأ الدولة أولا. لا تقم أبدًا بتغيير المفتاح تلقائيًا؛ احترام إعادة المحاولة بعد.
  • يقوم 502 من موفر الخدمة الأولية بتحرير المفتاح - أعد المحاولة باستخدام نفس المفتاح.
KEY=$(uuidgen)
curl -X PATCH https://smartbtn.me/api/v1/widget/settings \
  -H "Authorization: Bearer $SMARTBTN_TOKEN" \
  -H "Content-Type: application/json" \
  -H "X-Smartbtn-Idempotency-Key: $KEY" \
  -d '{"language":"ru"}'
# خطأ في الشبكة؟ كرر بنفس $KEY
12

Changelog

التغييرات على واجهة برمجة التطبيقات العامة وخطافات الويب في عام 2026. كل شيء أدناه إضافي ويظل في v1.

جديدالتذاكر: تذكرة. خطاف ويب تم إنشاؤه، قراءة قائمة الانتظار مع الدعم: قراءة، 403 تلميح

تم إنشاء تذكرة حدث مباشر جديدة. الحصول على /v1/support/tickets يجيب على أي مفتاح مع الدعم: اقرأ حتى يتم تكوين وكيل الدعم. النطاقات الرئيسية قابلة للتحرير دون إعادة إصدارها. 403 المكاسب المطلوبة_النطاقات.

جديداسم مشغل الذكاء الاصطناعي لكل لغة

يقبل POST/PATCH /v1/ai/operators name_i18n؛ تتم ترجمة الأسماء الافتراضية إلى لغة القطعة؛ اختيار تحية يمكن التنبؤ به.

التغييرحد المعدل: يتم حساب القراءة والكتابة بشكل منفصل

القراءة - 600 في الدقيقة، والكتابة - 120. ولم يعد الاقتراع يأكل ميزانية الكتابة. X‑RateLimit-* يصف العداد الذي تم استخدامه.

جديداحصل على /v1/chats: مرشح التحديث_منذ

محادثات مع النشاط منذ لحظة، مهما كان عمرها. تحمل كل محادثة الآن last_message_at.

جديددعم API: طلب الدردشة لصندوق البريد

chat.account.email_requested — الدردشة تنتظر العنوان؛ يجب ألا يبدأ الوكلاء تدفق تعليمات برمجية آخر.

جديددعم النطاق: التذاكر: إغلاق

أغلق تذكرة ولا شيء آخر - للحصول على زر «تم حل السؤال» في الواجهة الخلفية لديك.

جديدالحصول على /v1/chats: البحث عن النص ورسائل العميل

عوامل التصفية has_client_messages=1 وq (2–100 حرف).

جديدرابط الحساب من الواجهة الخلفية الخاصة بك

POST /v1/ai/assistant/account‑link و/revoc. متوقف حتى يمكّنه المالك.

إصلاحقاعدة المعرفة: يكتب باستخدام مفتاح مساعد

يتم تضمين القواعد مع مفتاح القطعة أو مفتاح مساعد ممكّن؛ 502 يطلق مفتاح العجز.

التغييرواجهة برمجة تطبيقات وكيل الدعم: عمر حساب تذكرة التطبيق

يكون الحساب مرئيًا أثناء فتح التذكرة ولمدة 7 أيام بعد ذلك.

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

مجموعة /v1/support الجديدة: قائمة الانتظار، والمحادثات، والإيجارات، والردود، وإغلاق التذاكر وإعادة فتحها. متوقف حتى يمكّنه المالك.

جديدواجهة برمجة تطبيقات وكيل الدعم: نافذة رمز البريد الإلكتروني

الحقول code_pending وcode_expires_at وlast_code_result وlast_code_at.

13

البرنامج المساعد ووردبريس

القطعة على موقع WordPress دون لمس رمز الموضوع.

  1. تحميلأرشيف البرنامج المساعد إلى جهاز الكمبيوتر الخاص بك.
  2. تثبيتضع المجلد الذي تم فك حزمته في wp‑content/plugins/ - أو قم بتحميله في مسؤول WordPress.
  3. تفعيليظهر عنصر Smartbtn في القائمة.
  4. الصق الرمز المميزانسخ رمز الأمان من إعدادات الأداة في لوحة التحكم الخاصة بك.
من الجيد أن نعرف

عندما تقوم بتغيير كلمة المرور الخاصة بك، يتغير رمز الأمان أيضًا ويتوقف الرمز القديم عن العمل - الصق الرمز الجديد في المكون الإضافي.

14

عينات التعليمات البرمجية

قم بإدراج كل محادثة مع النشاط منذ آخر استطلاع لك — مع اتباع المؤشر حتى النهاية.

# الصفحة الأولى
curl -G https://smartbtn.me/api/v1/chats \
  -H "Authorization: Bearer $SMARTBTN_TOKEN" \
  --data-urlencode "updated_since=2026-10-17T09:00:00+03:00"

# التالي - مع المؤشر التالي من الاستجابة
curl -G https://smartbtn.me/api/v1/chats \
  -H "Authorization: Bearer $SMARTBTN_TOKEN" \
  --data-urlencode "cursor=eyJpZCI6NDgyMDd9"
جاهز

قم بإصدار رمز مميز - ثم اضغط على Enter.