> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pubrio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# التحقق من صحة Webhook الخاص بـ Monitor

> أرسل حمولة اختبار موقَّعة إلى رابط webhook وأبلِغ عمّا إذا قُبِلت.

**يُنفّذ هذا تسليم HTTP حقيقيًا**، لا فحص صياغة رابط. يجب أن يقبل المستقبِل `POST` ويستجيب بنجاح — الرابط الذي يقدّم صفحة فقط على `GET` لا يزال يفشل. عند الإخفاق تحصل على `40023` (رابط غير صالح أو غير قابل للوصول) أو `40022` (فشل تسليم الاختبار)، وتحمل `details` نص الاستجابة الخام من المصدر الأعلى، والذي قد يكون عدة كيلوبايتات من HTML. مرّر `monitor_id` لتوقيع الاختبار بالتوقيع الحقيقي لذلك الـ Monitor؛ احذفه ليُستخدَم توقيع نائب.



## OpenAPI

````yaml ar-openapi POST /monitors/webhook/validate
openapi: 3.0.0
info:
  description: >-
    تقدّم واجهة Pubrio API معلومات استخباراتية عن توسع السوق — إشارات في الوقت
    الفعلي تُعلِم عندما تدخل شركة سوقًا جديدة — إلى جانب بيانات الشركات والأشخاص
    التي تستند إليها. ابحث، وتحقق، وأثرِ الحسابات وجهات التواصل، واشترك في
    إشارات تحرك مصنَّفة ومؤرَّخة عبر أكثر من 200 سوق.
  version: 1.0.0
  title: Pubrio OpenAPI
  termsOfService: https://pubrio.com/ar/terms-of-service
  contact:
    email: king.lai@pubrio.com
    name: King Lai
    url: https://pubrio.com/ar/get-in-touch
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.pubrio.com
security:
  - pubrio_api_key: []
tags:
  - name: Profile
    description: معلومات ملف مساحة العمل وإحصاءات الاستخدام
  - name: Enrichment
    description: إثراء سجلات الأشخاص والشركات ببيانات B2B مفصّلة
  - name: Lookalike
    description: إيجاد شركات مشابهة لشركة معينة
  - name: Search
    description: البحث عن أشخاص وشركات ووظائف وأخبار وإعلانات بمرشحات
  - name: Lookup
    description: البحث عن معلومات مفصّلة لأشخاص وشركات ووظائف وأخبار وإعلانات وتقنيات محددة
  - name: LinkedIn
    description: البحث عن بيانات أشخاص وشركات عبر روابط ملفات LinkedIn
  - name: Redeem
    description: استبدال أرصدة لفتح بيانات تواصل الأشخاص (فردي ودفعي)
  - name: Channels
    description: إدارة قوالب قنوات التواصل (إنشاء، تحديث، حذف، سرد)
  - name: Monitor
    description: إنشاء وإدارة Monitors للبيانات بواجهات webhook، وإحصاءات، ومعالجة
  - name: Filters
    description: >-
      استرجاع قيم المرشحات المتاحة لمعاملات البحث (التقنيات، المواقع، القطاعات،
      إلخ)
  - name: API Keys
    description: سرد وفحص سجلات طلبات API وتحليلات الاستخدام لمفاتيح API
  - name: Insights
    description: رؤى إشارات مجمَّعة للشركات (الوظائف، الأخبار، الإعلانات).
  - name: Export
    description: تصدير بيانات دفعي (مقيَّد بالأرصدة).
  - name: Expansion
    description: >-
      معلومات استخباراتية عن توسع الشركات في السوق: الإشارات، المراحل، الأسواق،
      والتصدير.
externalDocs:
  description: >-
    The Pubrio API is used to search, preview and enrich Contacts and Accounts.
    Pubrio database provides extensive B2B contacts and sales intelligence data.
  url: https://docs.pubrio.com
paths:
  /monitors/webhook/validate:
    post:
      tags:
        - Monitor
      summary: التحقق من صحة Webhook الخاص بـ Monitor
      description: >-
        أرسل حمولة اختبار موقَّعة إلى رابط webhook وأبلِغ عمّا إذا قُبِلت.


        **يُنفّذ هذا تسليم HTTP حقيقيًا**، لا فحص صياغة رابط. يجب أن يقبل
        المستقبِل `POST` ويستجيب بنجاح — الرابط الذي يقدّم صفحة فقط على `GET` لا
        يزال يفشل. عند الإخفاق تحصل على `40023` (رابط غير صالح أو غير قابل
        للوصول) أو `40022` (فشل تسليم الاختبار)، وتحمل `details` نص الاستجابة
        الخام من المصدر الأعلى، والذي قد يكون عدة كيلوبايتات من HTML. مرّر
        `monitor_id` لتوقيع الاختبار بالتوقيع الحقيقي لذلك الـ Monitor؛ احذفه
        ليُستخدَم توقيع نائب.
      operationId: monitors_validate_webhook
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                monitor_id:
                  type: string
                  format: uuid
                  description: >-
                    المعرّف الفريد لـ Monitor موجود لاختباره. اختياري لاختبار
                    ضبطات جديدة.
                name:
                  type: string
                  description: اسم الـ Monitor.
                description:
                  type: string
                  description: وصف الـ Monitor.
                detection_mode:
                  type: string
                  description: >-
                    كيفية اكتشاف الإشارات. يفحص `signal_first` السوق بشكل واسع؛
                    ويتتبع `company_first` قائمة حسابات مسمّاة ويتطلب شركة واحدة
                    على الأقل، أو نطاقًا، أو رابط LinkedIn. **غير قابل للتغيير
                    بعد الإنشاء** — تغييره في Monitor موجود يُعيد `40021`. أنشئ
                    Monitor جديدًا بدلًا من ذلك.
                  enum:
                    - company_first
                    - signal_first
                signal_types:
                  type: array
                  items:
                    type: string
                    enum:
                      - jobs
                      - news
                      - advertisements
                      - expansions
                  description: أنواع الإشارات المراد مراقبتها.
                signal_filters:
                  type: array
                  items:
                    type: object
                    required:
                      - signal_type
                    properties:
                      signal_type:
                        type: string
                        enum:
                          - jobs
                          - news
                          - advertisements
                          - expansions
                        description: أي دفق (stream) يصفّي هذا الإدخال.
                      filters:
                        type: object
                        description: >-
                          مرشحات لهذا الدفق. تأخذ `jobs` و`news`
                          و`advertisements` معاملات [Job
                          Search](/ar/api-reference/endpoint/companies/job_search)
                          و[News
                          Search](/ar/api-reference/endpoint/companies/news_search)
                          و[Advertisement
                          Search](/ar/api-reference/endpoint/companies/advertisements_search).
                          تأخذ `expansions` مفردات [Expansion
                          Search](/ar/api-reference/endpoint/expansions/market_lookup):
                          `froms` / `tos`، `window_days`، `stages`، `scopes`،
                          `momentum`، `freshness`، `signal_types`،
                          `signal_subtypes`، `signal_strengths`، `source_types`.
                          احصل على الأسماء القياسية من [مرجع
                          التوسع](/ar/api-reference/endpoint/expansions/types).
                  description: إدخال واحد لكل دفق إشارة يراقبه الـ Monitor.
                  example:
                    - signal_type: jobs
                      filters:
                        locations:
                          - US
                    - signal_type: news
                      filters:
                        locations:
                          - US
                    - signal_type: advertisements
                      filters:
                        target_locations:
                          - US
                    - signal_type: expansions
                      filters:
                        tos:
                          - US
                        stages:
                          - expanding
                          - scaling
                        signal_types:
                          - HIRE
                          - EXEC
                        signal_strengths:
                          - high
                          - very_high
                company_filters:
                  type: object
                  description: >-
                    مرشحات شركة عامة. تقبل نفس معاملات نقطة [Company
                    Search](/ar/api-reference/endpoint/companies/search).
                  example:
                    locations:
                      - US
                    employees:
                      - - 501
                        - 1000
                      - - 1001
                        - 5000
                companies:
                  type: array
                  items:
                    type: string
                    format: uuid
                  description: >-
                    قائمة معرّفات domain_search_id (UUID) للشركات. البديل:
                    استخدم `domains` أو `linkedin_urls`.
                domains:
                  type: array
                  items:
                    type: string
                  description: قائمة نطاقات الشركات. بديل لـ `companies`.
                linkedin_urls:
                  type: array
                  items:
                    type: string
                    format: uri
                  description: قائمة روابط شركات على LinkedIn. بديل لـ `companies`.
                is_company_enrichment:
                  type: boolean
                  description: ما إذا كان سيتم إثراء بيانات الشركة.
                is_people_enrichment:
                  type: boolean
                  description: ما إذا كان سيتم إثراء بيانات الأشخاص.
                people_enrichment_configs:
                  type: array
                  items:
                    type: object
                  description: >-
                    مصفوفة من طبقات إثراء الأشخاص. تحتوي `max_people_to_return`
                    (1-25)، و`people_contact_types` (انظر
                    [Redeem](/ar/api-reference/endpoint/redeem/people))،
                    و`filters` (انظر [People
                    Search](/ar/api-reference/endpoint/people/search)).
                  example:
                    - filters:
                        people_locations:
                          - US
                      max_people_to_return: 3
                      people_contact_types:
                        - email-work
                destination_type:
                  type: string
                  description: نوع وجهة التسليم.
                  enum:
                    - webhook
                    - email
                    - sequences
                destination_config:
                  type: object
                  description: >-
                    ضبط الوجهة. لـ webhook: يتطلب `webhook_url` (نص)، و`headers`
                    (كائن) و`body` (كائن) اختياريان. للبريد الإلكتروني: يقبل
                    `email` (نص) أو `emails` (مصفوفة نصوص). للتسلسلات: يتطلب
                    `sequence_identifier` (نص) بالإضافة إلى واحد على الأقل من
                    `is_people_search_enrolled` / `is_company_contact_enrolled`
                    مضبوطًا على true.
                  example:
                    webhook_url: https://your-webhook.com/endpoint
                    headers:
                      Authorization: Bearer token
                    body:
                      pipeline: my-webhook
                frequency_minute:
                  type: integer
                  description: 'وتيرة التفعيل بالدقائق. الأدنى: 0، الأقصى: 10080.'
                  minimum: 0
                  maximum: 10080
                max_failure_trigger:
                  type: integer
                  description: >-
                    الحد الأقصى للإخفاقات المتتالية قبل الإيقاف المؤقت. الأدنى:
                    1، الأقصى: 10.
                  minimum: 1
                  maximum: 10
                max_daily_trigger:
                  type: integer
                  description: 'الحد الأقصى للتفعيلات يوميًا. الأدنى: 0، الأقصى: 86400.'
                  minimum: 0
                  maximum: 86400
                max_records_per_trigger:
                  type: integer
                  description: >-
                    يتحكم في الحد الأقصى لعدد السجلات المُسلَّمة لكل تفعيل.
                    القيم الأقل تقلل حجم الحمولة لكل تسليم، وهو موصى به لمجموعات
                    النتائج الكبيرة أو التكاملات المحدودة المعدل. الأدنى: 1،
                    الأقصى: 100، الافتراضي: 25. راجع [إعداد
                    Webhooks](/ar/developer-guides/setting-up-webhooks) للإرشاد.
                  minimum: 1
                  maximum: 100
                notification_email:
                  type: string
                  format: email
                  description: البريد الإلكتروني لإشعارات الإخفاق.
                max_retry_per_trigger:
                  type: integer
                  description: >-
                    الحد الأقصى لإعادة المحاولات لكل تفعيل. الأدنى: 0، الأقصى:
                    3.
                  minimum: 0
                  maximum: 3
                retry_delay_second:
                  type: integer
                  description: 'التأخير بين إعادة المحاولات بالثواني. الأدنى: 1، الأقصى: 5.'
                  minimum: 1
                  maximum: 5
              required:
                - destination_config
      responses:
        '200':
          description: >-
            استجابة ناجحة تحتوي على نتائج التحقق من webhook — ضبط الوجهة وحمولتي
            طلب/استجابة الاختبار. عند إخفاق webhook تستجيب النقطة الطرفية بـ400
            (MONITOR_WEBHOOK_URL_INVALID) مع استجابة webhook في تفاصيل الخطأ.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      destination_config:
                        type: object
                        description: ضبط الوجهة الذي جرى اختباره.
                      request_payload:
                        type: object
                        description: حمولة الطلب المُرسَلة إلى webhook أثناء التحقق.
                      response_payload:
                        type: object
                        description: حمولة الاستجابة المُستلَمة من webhook.
              example:
                data:
                  destination_config:
                    webhook_url: https://usewebhook.com/example
                    headers:
                      X-Custom-Auth: your-token
                    body:
                      source: pubrio
                  request_payload:
                    monitor:
                      monitor_id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                      name: My Monitor
                      detection_mode: signal_first
                      signal_types:
                        - jobs
                        - news
                        - advertisements
                      signal_filters:
                        - ...
                      company_filters:
                        ...: ...
                      is_company_enrichment: true
                      is_people_enrichment: true
                      people_enrichment_configs:
                        - ...
                    metadata:
                      total_signals: 3
                      total_companies: 1
                      total_people: 0
                    triggered_at: '2026-04-05T22:43:06.973Z'
                    signals:
                      - signal_type: jobs
                        signal:
                          signal_type: jobs
                          job_search_id: ...
                          companies:
                            - ...
                        companies:
                          - ...
                      - ...
                    source: pubrio
                  response_payload: OK
        '400':
          $ref: '#/components/responses/general_error'
        '429':
          $ref: '#/components/responses/rate_limit_error'
        '500':
          $ref: '#/components/responses/server_error'
components:
  responses:
    general_error:
      description: >-
        طلب غير صحيح. كان الطلب مُصاغًا بشكل خاطئ أو يحتوي معاملات غير صالحة.
        تحقق من رمز الخطأ والرسالة للتفاصيل.
      content:
        application/json:
          schema:
            required:
              - code
              - message
              - details
            type: object
            properties:
              code:
                example: 40001
                type: integer
              message:
                example: >-
                  Errors and codes will vary depending on the scenario, please
                  see the documentation for information.
                type: string
              details:
                type: object
    rate_limit_error:
      description: >-
        تم تجاوز حد المعدل. نُفِّذت طلبات كثيرة جدًا خلال فترة زمنية معينة. أعِد
        المحاولة بعد إعادة ضبط نافذة حد المعدل.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: Request rate limit exceeded. Please wait and try again later.
                type: string
    server_error:
      description: >-
        خطأ خادم داخلي. حدث خطأ غير متوقع في الخادم. تواصل مع الدعم إن استمر
        الخطأ.
      content:
        application/json:
          schema:
            required:
              - error
            type: object
            properties:
              error:
                example: An unexpected error occurred on the server.
                type: string
  securitySchemes:
    pubrio_api_key:
      type: apiKey
      name: pubrio-api-key
      description: >-
        رمز API فريد يمثّل الإجراءات التي تنفّذها عبر الواجهة والصلاحيات
        والعمليات المقابلة. يمكنك إنشاءه عبر قسم
        [Settings](https://dashboard.pubrio.com/#/settings/).
      in: header

````