المحادثات وجهات الاتصال والمجموعات
حيثما وجدت {phone} في مسار، استخدم رقم الشخص بالصيغة الدولية، أو chat_id ينتهي بـ @lid من ويب هوك.
قراءات من الهاتف. جهات اتصال الرقم ومجموعاته وقنواته ورابط دعوة المجموعة والملف الشخصي تُقرأ من الهاتف المربوط وأنت تنتظر. تُحفظ القوائم ورابط الدعوة لمدة 30 ثانية، فالتغيير الذي يتم على الهاتف قد يحتاج هذه المدة ليظهر؛ أما التغيير عبر الـ API فيظهر فورًا. يجيب الرقم عن قراءتين من هذا النوع في الوقت نفسه: الثالثة في اللحظة نفسها تحصل على 429 مع الرمز busy وRetry-After مدته بضع ثوانٍ. اقرأ هذه واحدة تلو الأخرى، لا كلها دفعة واحدة.
المحادثات
- محادثاتك:
GET /v1/chatsيسرد كل شخص تتحدث معه أرقامك، الأحدث أولًا. ومع كل محادثة آخر رسالة (من آخر 30 يومًا، وهي مدة حفظ الرسائل) وwaiting_for_reply(هو من كتب آخر رسالة، ولم يحدد أحد المحادثة كمنتهية في لوحة التحكم).waiting=1يسرد هؤلاء فقط؛ وinstance_idمحادثات رقم واحد. - السجل من الهاتف:
GET /v1/instances/{id}/chats/{phone}/historyيقرأ الرسائل التي يحتفظ بها واتساب لمحادثة فردية على الهاتف المربوط. وهي ما زامنه الهاتف عند ربطه (نحو يوم قبل الربط) وكل ما بعده، ومنه ما كُتب على الهاتف. الأحدث أولًا، وlimitحجم الصفحة (حتى 100، و50 افتراضيًا؛ وقد تحتوي الصفحة على أقل) وoffsetللأقدم. لكل رسالةidالخاص بواتساب، وmessage_idالخاص بنا إن كانت موجودة أيضًا فيGET /v1/messages، وfrom_meوbodyوhas_media(الملفات غير مضمّنة) وsent_at. فقط لمحادثة لدى الرقم (أي شخص آخر 404)، وليس لمجموعة أبدًا؛ ورموز OTP تُحجب. لا يرسل شيئًا إلى واتساب؛ بحد أقصى 30 صفحة في الدقيقة لكل رقم. - الأرشفة وغير المقروءة:
POST /v1/instances/{id}/chats/{phone}/archiveأو/unarchiveأو/unread، كما في التطبيق.
جهات الاتصال
GET /v1/instances/{id}/contactsيسرد جهات اتصال واتساب على الهاتف المربوط:nameكما حُفظ هناك، وpush_nameكما يُظهره صاحبه. 100 في الصفحة؛ وقد تحتوي الصفحة على أقل، والصفحة الفارغة هي النهاية.GET /v1/instances/{id}/contacts/{phone}يعطي شخصًا واحدًا يعرفه الرقم (جهة اتصال على الهاتف، أو شخص له محادثة معه). ومعهpicture_url، وهي صورة ملفه الشخصي كما يقدّمها واتساب (تنتهي صلاحيتها؛ وتكون null إن لم تكن له صورة أو أخفاها). أي شخص آخر 404، لأن البحث عن الغرباء هو ما يعدّه واتساب جمعًا للبيانات. يحتاج مفتاحًا يمكنه الإرسال.
البحث عن جهات الاتصال والأرشفة وغير المقروءة تشترك في حد 20 في الدقيقة لكل رقم.
حقول جهات الاتصال
حقول جهات الاتصال هي ما يحتفظ به فريقك عن الأشخاص الذين يكتبون إليك، مثل رقم العميل أو المدينة. ينشئ المسؤول الحقول في صفحة المحادثات بلوحة التحكم، ويملؤها فريقك من داخل المحادثة.
GET /v1/contact-fieldsيسرد حقولك: لكل منهاkeyوnameوkind(textأوnumberأوdateأوlist) وoptionsللقائمة.GET /v1/chats/{phone}/contact-fieldsيعطي ما تقوله عن شخص واحد: كل مفتاح تحتfields، مع null حيث لا شيء محفوظ.PUT /v1/chats/{phone}/contact-fieldsيضبطها. أرسلfieldsكأزواج مفتاح وقيمة. المفتاح الذي تتركه يبقى كما هو، وnull تمسحه. يحتاج مفتاحًا بوصول كامل.
curl -X PUT https://threadwire.net/api/v1/chats/201012345678/contact-fields \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"fields": {"city": "Giza", "renewal": "2026-12-01"}}'
يُكتب التاريخ YYYY-MM-DD، والقائمة تأخذ أحد خياراتها، وتعود القيم كنص. القيمة التي لا يقبلها حقلها تُرد بـ 422 يسمّي المفتاح.
الشخص نفسه له الحقول نفسها على كل أرقامك، سواء سمّيته برقم هاتفه أو بـ chat_id الذي أعطاه ويب هوك. التغييرات التي تتم بمفتاح تظهر في سجل النشاط لديك سطرًا واحدًا في الساعة لذلك المفتاح، مهما كان عدد من غيّرهم. وهي فقط لمن كتب إليك: أي شخص آخر 404، ولا يوجد استيراد. ويصلح مفتاح الحقل أيضًا حقلًا في نص رسالة جماعية.
التصنيفات (تطبيق WhatsApp Business فقط)
GETوPOST /v1/instances/{id}/labels(name، وcolorمن 0 إلى 19).PUTأوDELETE /v1/instances/{id}/labels/{label}؛ والتصنيف المحذوف يُزال من كل محادثة.GET /v1/instances/{id}/labels/{label}/chats: المحادثات التي عليها تصنيف.GETأوPUT /v1/instances/{id}/chats/{phone}/labels: تصنيفات محادثة.PUTيأخذ القائمة الكاملة لقيمidالخاصة بالتصنيفات؛ وما تُرك منها يُزال.
يعرضها الهاتف أيضًا.
الحالات
POST /v1/instances/{id}/statuses ينشر حالة واتساب (قصة تراها جهات اتصالك لمدة 24 ساعة). وهي إما text على background_color (وfont من 0 إلى 5)، أو image أو video أو voice عبر url أو base64 في data، مع text كتعليق. (وبصيغة data تُحتسب للحساب ضمن الملفات بصيغة base64 في اليوم.) audience (أرقام هواتف) يحدد من يراها. يرد بـ queued، وتصبح posted عندما تصل إلى واتساب.
- كل من في
audienceيجب أن يعرف الرقم (راسله، أو محفوظ كجهة اتصال على الهاتف) وألا يكون قد كتب "STOP". فالحالة التي تأتي من رقم لا يعرفه الشخص هي ما يبلّغ عنه الناس، لذا الطلب الذي يسمّي أي شخص آخر يرد بـ422مع ذكرهم. التحقق من كون شخص جهة اتصال محفوظة يسأل واتساب، فيمكن التحقق من 20 شخصًا على الأكثر في الدقيقة ممن لم يكتبوا قط (429بعد ذلك). - بحد أقصى 30 في اليوم لكل رقم.
GETيسردها معviewsوأرقام هواتفviewers؛ وDELETE /v1/instances/{id}/statuses/{status}يحذف واحدة؛ ولا تُحذف إلا حالة منشورة (409في غير ذلك).
الطلبات والمنتجات
الطلب الذي يرسله شخص من كتالوج WhatsApp Business لديك يصل بـ type قيمته order (ومعه order: order_id وtitle وitems وtotal وcurrency)، والمنتج المشارَك بـ type قيمته product. إدارة الكتالوج نفسه غير متاحة بعد.
المجموعات
GET /v1/instances/{id}/groupsيسرد المجموعات التي فيها الرقم، معchat_idلكل منها.POSTينشئ مجموعة بـsubjectوparticipants.GET، أوPATCH(subject،description،messages_admin_only: المشرفون فقط يكتبون،info_admin_only: المشرفون فقط يغيّرون اسمها ووصفها)،/v1/instances/{id}/groups/{group}.POST …/participantsمعactionقيمتهaddأوremoveأوpromoteأوdemote.GET …/inviteيعطي رابط الدعوة؛ وPOST …/invite/revokeينشئ رابطًا جديدًا، فيتوقف القديم عن العمل.POST …/leaveيغادرها؛ وPOST /v1/instances/{id}/groups/joinمعinviteينضم إلى مجموعة.
من يمكن إضافته: فقط من يعرفون الرقم (راسلوه، أو محفوظون كجهات اتصال على الهاتف)، وليس أبدًا من كتب "STOP". أن يضيفك غريب إلى مجموعة هو أكثر ما يبلّغ عنه الناس، فشارك رابط الدعوة مع كل من عداهم. كل شخص تضيفه ولم يراسل الرقم يُبحث عنه على واتساب، ويُحتسب ضمن 20 عملية بحث عن جهات الاتصال في الدقيقة للرقم. لذلك الحد 20 شخصًا من هؤلاء في الطلب الواحد. إنشاء مجموعة أو الانضمام إليها أو مغادرتها، وإضافة أشخاص أو إزالتهم، يحتاج مفتاحًا بوصول كامل.
الحدود لكل رقم: بحد أقصى 5 مجموعات تُنشأ، و5 يُنضم إليها، و50 شخصًا يُضافون في اليوم.
القنوات
GET /v1/instances/{id}/channels (role قيمته owner أو admin أو subscriber)؛ وPOST ينشئ قناة بـ name (بحد أقصى 2 في اليوم)؛ وGET أو DELETE /v1/instances/{id}/channels/{channel}.
الإرسال إلى مجموعة أو قناة
POST /v1/messages مع chat_id (وهو …@g.us لمجموعة أو …@newsletter لقناة) بدلًا من to. تُرسل بتمهّل مثل أي رسالة؛ بحد أقصى 200 رسالة للمجموعات و30 منشورًا في القنوات يوميًا لكل رقم، و20 في الساعة للمجموعة الواحدة.
رسائل المجموعات التي يكتبها الناس تصل كويب هوك group.message (المجموعة هي chat_id، والكاتب participant؛ والملفات المنشورة في المجموعات تُذكر لكنها لا تُحفظ)، والتغييرات على مجموعة تصل كـ group.update. حدّد الاثنين من للمطورين ← الويب هوك ← الأحداث لتستقبلهما. من كتب في مجموعة لم يكتب إلى رقمك: فالرسالة إليه وحده تبقى رسالة أولى.