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

# واجهة تحليلات التحقق للتطبيق

> اقرأ تحليلات التحقق لتطبيقك في Didit لنطاق زمني محدد: إجمالي جلسات KYC، ومعدل التحويل، ومسارات التحقق، وأدوات لوحة KYB ومراقبة المعاملات.



الحصول على مطالبة API لتحليلات التطبيق
        نسخ الموجّه إلى الحافظة



      
      

\<pre>

\`Read the verification analytics of my Didit application for a date range.

Endpoint:
GET https://verification.didit.me/v3/organization/{organization_id}/application/{application_id}/analytics/

Authentication:
Use the x-api-key header with my Didit API key. Only a full-access key works: any scoped key gets 403 "This API key has no access to this endpoint.". application_id must be the application the key belongs to.

Goal:
\- Pull KYC session totals, conversion rate and breakdowns into my own reporting, or fetch the same KYB and transaction widgets the Business Console dashboard shows.

Query parameters:
\- start_date, end_date - YYYY-MM-DD, inclusive, UTC. Send both or neither; without both the range runs from 30 days ago through today. A future end_date counts as today. At most 730 days.
\- scope - "kyc", "kyb", "transactions" or "home". Omit it for the KYC summary.
\- widget_keys - comma-separated widget keys, in order. Unknown keys are dropped; with none left you get the scope's defaults.
\- workflow_ids - comma-separated workflow IDs, limits KYC and KYB numbers. versions and branch_path_ids apply only together with workflow_ids (branch_path_ids to KYC numbers only; only the default branch path has figures, so any other value returns empty figures).
\- tag, transaction_type, action_type - filters for transaction widgets only.

Behavior:
\- Without scope and widget_keys the response is the KYC summary: data_points (one per day), request_breakdown, conversion_rate, previous_data_points and previous_request_breakdown for the period of equal length before start_date, location_stats, demographic_stats, device_details, workflow_funnel_stats, verification_time_stats, resubmission_stats, warning_stats, original_status_stats and time series grouped by grouping_mode ("day" up to 14 days, "week" up to 90, "month" beyond). data_points and the grouping span start at the first day with sessions inside the range, not at start_date.
\- With scope (or widget_keys) the response is {scope, available_widget_keys, requested_widget_keys, widgets}; widgets is keyed by widget key and each widget has kind, title and the fields of its kind.
\- Invalid workflow IDs and versions are ignored rather than rejected.
\- Counts come from daily rollups refreshed in the background, so the newest activity can take a short while to appear.

Example call:
curl -X GET "https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/analytics/?start_date=2026-10-01&end_date=2026-10-15" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- request_breakdown.total_approved, total_declined, total_in_review - status totals for the range.
\- conversion_rate - approved / (approved + declined + in review) x 100; null when nothing finished.
\- workflow_funnel_stats.<workflow_id>.steps.<STEP>.reached - sessions that reached each step.
\- widgets.<widget_key> - with scope, the widget payloads.

Failure modes:
\- 400 - {"start_date": "Invalid date format. Use YYYY-MM-DD (e.g., 2024-01-15)."}, {"start_date": "Start date must be before or equal to end date."}, {"date_range": "Date range cannot exceed 730 days (2 years)."} or {"scope": "Unsupported analytics scope."}.
\- 401 - the API key has expired.
\- 403 - missing key (a wrong, revoked or expired key gets 401) ({"detail": "Authentication credentials were not provided or are invalid."}), a key of another application ({"detail": "You do not have permission to perform this action."}), any scoped key, or a request from outside the key's IP list.
\- 429 - more than 600 GET requests per minute with this key.

Side effects: none. Not billed.

For the full integration shape, see /integration/integration-prompt.`

\</pre>



      
      

الصق في

تُرجع نقطة النهاية الأرقام التي تقف وراء [لوحة التحليلات](https://docs.didit.me/ar/console/analytics.md) في Business Console. وتعيد شكلين من الاستجابة:| ما ترسله | ما تحصل عليه |
| - | - |
| عدم إرسال `scope` ولا `widget_keys` | ملخص التحقق من المستخدمين (KYC) للفترة المحددة |
| `scope` أو `widget_keys` أو كليهما | أدوات لوحة المعلومات لتبويب واحد: `kyc` أو `kyb` أو `transactions` أو `home` (أي مزيج من الثلاثة) |يحمل كل أداة من أدوات لوحة المعلومات الحقلين `kind` و`title`، أما بقية حقولها فتعتمد على نوعها. أرسل `scope` دون `widget_keys` مرة واحدة لقراءة `available_widget_keys`، ثم اطلب الأدوات التي تحتاجها فقط.> [!NOTE]
>
> لا يمكن استدعاء نقطة النهاية هذه إلا بمفتاح API يملك صلاحية كاملة. يتلقى المفتاح المقيّد النطاق الاستجابة `403` مهما كانت صلاحياته، وكذلك مفتاح يعود إلى تطبيق آخر. راجع [مفاتيح API](https://docs.didit.me/ar/console/api-keys.md).## ذات صلة- [الحصول على عمليات التحقق لليوم حسب الساعة](https://docs.didit.me/ar/management-api/analytics/today-by-hour.md)
- [لوحة التحليلات](https://docs.didit.me/ar/console/analytics.md)
- [مفاتيح API والوصول المقيّد النطاق](https://docs.didit.me/ar/console/api-keys.md)


## OpenAPI

````yaml ar/openapi-25.json GET /v3/organization/{organization_id}/application/{application_id}/analytics/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API التحقق من الهوية. قم بالمصادقة باستخدام الرأس x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/organization/{organization_id}/application/{application_id}/analytics/:
    get:
      tags:
        - Analytics
      summary: الحصول على تحليلات التطبيق
      description: >-
        قراءة الأرقام الكامنة وراء [لوحة التحكم
        التحليلية](https://docs.didit.me/ar/console/analytics) في Business
        Console لنطاق زمني محدد. من دون `scope` و `widget_keys` تكون الاستجابة
        هي ملخص التحقق من المستخدمين (KYC) (`ApplicationAnalyticsSummary`):
        أعداد الجلسات اليومية، إجماليات الحالات، معدل التحويل، نفس الأرقام
        للفترة السابقة ذات الطول المماثل، المواقع الجغرافية، التركيبة السكانية،
        الأجهزة، مسارات سير العمل، وقت التحقق النشط، عمليات إعادة الإرسال،
        التحذيرات والسلاسل الزمنية. مع `scope` أو `widget_keys` تكون الاستجابة
        هي عناصر واجهة مستخدم لعلامة تبويب واحدة في لوحة التحكم
        (`ApplicationAnalyticsWidgetResponse`): `kyc`، أو `kyb`، أو
        `transactions` أو `home`.


        تعتمد أعداد الجلسات على تاريخ إنشاء الجلسة (UTC) وتعكس الحالة الحالية
        لكل جلسة. تأتي من تجميعات يومية يتم تحديثها في الخلفية، لذا قد يستغرق
        ظهور أحدث نشاط وقتاً قصيراً. يتم تجاهل معرّفات وإصدارات سير العمل غير
        الصالحة بدلاً من رفضها. لا تتم فوترة أي شيء.


        يمكن فقط لمفتاح API ذي الوصول الكامل استدعاء هذا الـ endpoint: يحصل كل
        مفتاح ذي نطاق محدود على `403` بغض النظر عن الصلاحيات التي يحملها، وكذلك
        المفتاح التابع لتطبيق آخر. راجع [مفاتيح
        API](https://docs.didit.me/ar/console/api-keys).
      operationId: get_application_analytics
      parameters:
        - name: organization_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: UUID الخاص بالمؤسسة.
          example: 11111111-2222-3333-4444-555555555555
        - name: application_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            معرّف UUID للتطبيق. يجب أن يكون التطبيق الذي ينتمي إليه مفتاح API:
            أي مفتاح يُستخدم مع تطبيق آخر يتلقى الرمز `403`.
          example: aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
        - name: start_date
          in: query
          required: false
          schema:
            type: string
            format: date
            example: '2026-10-01'
          description: >-
            اليوم الأول من النطاق، `YYYY-MM-DD`، شاملاً ذلك اليوم (UTC). أرسله
            مع `end_date`: إذا كان أحدهما مفقوداً، فسيتم تجاهل كليهما ويمتد
            النطاق من 30 يوماً قبل اليوم وحتى اليوم.
        - name: end_date
          in: query
          required: false
          schema:
            type: string
            format: date
            example: '2026-10-15'
          description: >-
            آخر يوم في النطاق، بصيغة `YYYY-MM-DD`، شامل (بتوقيت UTC). يُحتسب أي
            تاريخ مستقبلي على أنه اليوم. لا يجوز أن يتجاوز النطاق 730 يوماً.
        - name: scope
          in: query
          required: false
          schema:
            type: string
            enum:
              - home
              - kyc
              - kyb
              - transactions
          description: >-
            علامة تبويب لوحة التحكم المراد إرجاع التطبيقات المصغرة (widgets) لها
            (غير حساسة لحالة الأحرف). اتركها، مع `widget_keys`، للحصول على ملخص
            KYC. إرسال `widget_keys` فقط يعني ضمناً `kyc`. تقبل `home` أي تطبيق
            مصغر لـ KYC أو KYB أو المعاملات، وتعتمد افتراضياً تخطيط الصفحة
            الرئيسية المحفوظ للتطبيق.
        - name: widget_keys
          in: query
          required: false
          schema:
            type: string
            example: tx_count_total,tx_count_daily
          description: >-
            مفاتيح عناصر واجهة المستخدم (widgets) مفصولة بفواصل، وتتم الإجابة
            عليها بهذا الترتيب. يتم استبعاد المفاتيح التي لا يقبلها النطاق؛ وعند
            عدم تبقي أي منها، ستحصل على القيم الافتراضية للنطاق. KYC:
            `kyc_sessions_volume`، `kyc_warning_insights`، `kyc_id_locations`،
            `kyc_ip_locations`، `kyc_workflow_funnel`،
            `kyc_average_verification_time`، `kyc_conversion_rate`،
            `kyc_conversion_by_country`، `kyc_resubmission_insights`،
            `kyc_original_status_distribution`،
            `kyc_database_validation_coverage`،
            `kyc_database_validation_latency`، `kyc_demographics`،
            `kyc_device_details`. KYB: `kyb_sessions_volume`،
            `kyb_workflow_funnel`، `kyb_average_verification_time`،
            `kyb_ip_locations`، `kyb_business_country_distribution`،
            `kyb_warning_insights`، `kyb_conversion_rate`،
            `kyb_conversion_by_country`، `kyb_industry_breakdown`،
            `kyb_resubmission_insights`، `kyb_original_status_distribution`،
            `kyb_registry_coverage`، `kyb_registry_data_completeness`،
            `kyb_device_details`. المعاملات: `tx_count_total`، `tx_count_daily`،
            `tx_volume_total_preferred_currency`،
            `tx_volume_daily_preferred_currency`، `tx_average_amount`،
            `tx_average_amount_daily`، `tx_transaction_category_breakdown`،
            `tx_action_type_breakdown`، `tx_status_volume_trend`،
            `tx_user_ip_or_country_distribution`، `tx_tag_breakdown`،
            `tx_top_rules_triggered`، `tx_team_member_performance`،
            `tx_score_histogram`.
        - name: workflow_ids
          in: query
          required: false
          schema:
            type: string
            example: 33333333-4444-5555-6666-777777777777
          description: >-
            معرّفات سير العمل مفصولة بفواصل. تقيّد ملخص KYC وعناصر واجهة مستخدم
            KYC وKYB بسير العمل المحدد فقط. يتم تجاهل القيم التي ليست بصيغة
            UUID؛ وعندما لا تكون أي قيمة صالحة، يتم إلغاء التصفية. يقبل الملخص
            أيضاً `workflow_id`.
        - name: versions
          in: query
          required: false
          schema:
            type: string
            example: 3,4
          description: >-
            أرقام إصدارات سير العمل مفصولة بفواصل. لا تنطبق إلا بالاقتران مع
            `workflow_ids`؛ ويتم تجاهل القيم التي ليست أرقاماً صحيحة. يُقبل
            `version` كاسم بديل.
        - name: branch_path_ids
          in: query
          required: false
          schema:
            type: string
            example: default
          description: >-
            معرّفات مسارات الفروع مفصولة بفواصل. تنطبق فقط مع `workflow_ids`،
            وفقط على مقاييس KYC. تُسجَّل المقاييس حالياً فقط لـ `default` (جميع
            المسارات مجتمعة)، لذا فإن أي قيمة أخرى تُرجع مقاييس فارغة. يُقبل
            `branch_path_id` كاسم بديل.
        - name: tag
          in: query
          required: false
          schema:
            type: string
          description: >-
            عناصر واجهة المعاملات فقط: معرّفات UUID للوسوم أو أسماء الوسوم
            مفصولة بفواصل.
        - name: transaction_type
          in: query
          required: false
          schema:
            type: string
            example: finance
          description: 'عناصر واجهة المعاملات فقط: فئات المعاملات مفصولة بفواصل.'
        - name: action_type
          in: query
          required: false
          schema:
            type: string
            example: withdrawal
          description: >-
            عناصر واجهة المعاملات فقط: أنواع الإجراءات مفصولة بفواصل (غير حساسة
            لحالة الأحرف).
      responses:
        '200':
          description: >-
            ملخص KYC، أو التطبيقات المصغّرة المطلوبة عند إرسال `scope` أو
            `widget_keys`.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ApplicationAnalyticsSummary'
                  - $ref: '#/components/schemas/ApplicationAnalyticsWidgetResponse'
              examples:
                KYC summary:
                  value:
                    grouping_mode: day
                    data_points:
                      - rounded_date: '2026-10-14'
                        total: 12
                        approved: 8
                        declined: 1
                        canceled: 1
                        pending: 2
                        in_review: 1
                        expired: 1
                        abandoned: 0
                        in_progress: 1
                        not_started: 0
                        manually_approved: 1
                        manually_declined: 0
                      - rounded_date: '2026-10-15'
                        total: 10
                        approved: 6
                        declined: 2
                        canceled: 0
                        pending: 2
                        in_review: 2
                        expired: 0
                        abandoned: 0
                        in_progress: 0
                        not_started: 0
                        manually_approved: 0
                        manually_declined: 1
                    request_breakdown:
                      total_approved: 14
                      total_in_review: 3
                      total_declined: 3
                      total_canceled: 1
                      total_pending: 4
                      total_expired: 1
                      total_abandoned: 0
                      total_in_progress: 1
                      total_not_started: 0
                      total_manually_approved: 1
                      total_manually_declined: 1
                    conversion_rate: 70
                    location_stats:
                      countries:
                        - session_count: 15
                          country: Spain
                          country_code: ES
                        - session_count: 7
                          country: Portugal
                          country_code: PT
                      ip_countries:
                        - session_count: 15
                          country: Spain
                          country_code: ES
                        - session_count: 7
                          country: Portugal
                          country_code: PT
                      id_countries:
                        - country: Spain
                          country_code: ES
                          session_count: 14
                        - country: Portugal
                          country_code: PT
                          session_count: 6
                      conversion_by_country:
                        - country: Spain
                          country_code: ES
                          finished: 13
                          approved: 10
                        - country: Portugal
                          country_code: PT
                          finished: 6
                          approved: 4
                      cities:
                        - session_count: 9
                          location: Madrid, Spain
                          latitude: 40.4168
                          longitude: -3.7038
                    demographic_stats:
                      age_distribution:
                        under_18: 0
                        18_24: 5
                        25_34: 8
                        35_44: 4
                        45_64: 2
                        65_plus: 1
                      gender_distribution:
                        M: 11
                        F: 9
                    device_details:
                      device_models:
                        - device: Apple
                          count: 12
                        - device: Android
                          count: 10
                      browsers:
                        - browser: Safari
                          count: 12
                        - browser: Chrome
                          count: 10
                      operating_systems:
                        - os: iOS
                          count: 12
                        - os: Android
                          count: 10
                    workflow_funnel_stats:
                      33333333-4444-5555-6666-777777777777:
                        total: 22
                        steps:
                          OCR:
                            reached: 21
                          LIVENESS:
                            reached: 19
                          FACE_MATCH:
                            reached: 19
                          AML:
                            reached: 18
                    verification_time_stats:
                      overall_avg_seconds: 64
                      overall_count: 18
                      per_feature:
                        OCR:
                          avg_seconds: 41.2
                          total_seconds: 741.6
                          count: 18
                        LIVENESS:
                          avg_seconds: 22.8
                          total_seconds: 410.4
                          count: 18
                      per_sub_step:
                        OCR:
                          front_id_photo:
                            avg_seconds: 18.3
                            total_seconds: 329.4
                            count: 18
                    resubmission_stats:
                      first_pass: 17
                      second: 2
                      third_plus: 1
                      abandoned: 0
                    warning_stats:
                      ID_VERIFICATION:
                        total: 21
                        risks:
                          DOCUMENT_EXPIRED:
                            error: 1
                            warning: 0
                            information: 0
                      LIVENESS:
                        total: 19
                        risks:
                          LOW_LIVENESS_SCORE:
                            error: 0
                            warning: 2
                            information: 0
                    original_status_stats:
                      approved: 13
                      in_review: 5
                      declined: 2
                    demographic_time_series:
                      - date: '2026-10-14'
                        age_distribution:
                          under_18: 0
                          18_24: 3
                          25_34: 4
                          35_44: 2
                          45_64: 1
                          65_plus: 0
                        gender_distribution:
                          M: 6
                          F: 4
                      - date: '2026-10-15'
                        age_distribution:
                          under_18: 0
                          18_24: 2
                          25_34: 4
                          35_44: 2
                          45_64: 1
                          65_plus: 1
                        gender_distribution:
                          M: 5
                          F: 5
                    device_time_series:
                      - date: '2026-10-14'
                        devices:
                          Apple: 7
                          Android: 5
                        browsers:
                          Safari: 7
                          Chrome: 5
                        operating_systems:
                          iOS: 7
                          Android: 5
                      - date: '2026-10-15'
                        devices:
                          Apple: 5
                          Android: 5
                        browsers:
                          Safari: 5
                          Chrome: 5
                        operating_systems:
                          iOS: 5
                          Android: 5
                    verification_time_time_series:
                      - date: '2026-10-14'
                        overall_avg: 66.1
                        per_feature:
                          OCR: 42
                          LIVENESS: 24.1
                      - date: '2026-10-15'
                        overall_avg: 61.5
                        per_feature:
                          OCR: 40.2
                          LIVENESS: 21.3
                    resubmission_time_series:
                      - date: '2026-10-14'
                        first_pass: 9
                        second: 1
                        third_plus: 0
                        abandoned: 0
                      - date: '2026-10-15'
                        first_pass: 8
                        second: 1
                        third_plus: 1
                        abandoned: 0
                    original_status_time_series:
                      - date: '2026-10-14'
                        approved: 7
                        in_review: 3
                        declined: 1
                      - date: '2026-10-15'
                        approved: 6
                        in_review: 2
                        declined: 1
                    previous_data_points:
                      - rounded_date: '2026-10-12'
                        total: 9
                        approved: 6
                        declined: 1
                        canceled: 1
                        pending: 1
                      - rounded_date: '2026-10-13'
                        total: 11
                        approved: 7
                        declined: 2
                        canceled: 0
                        pending: 2
                    previous_request_breakdown:
                      total_approved: 13
                      total_in_review: 2
                      total_declined: 3
                      total_canceled: 1
                      total_pending: 3
                Transaction widgets:
                  value:
                    scope: transactions
                    available_widget_keys:
                      - tx_count_total
                      - tx_count_daily
                      - tx_volume_total_preferred_currency
                      - tx_volume_daily_preferred_currency
                      - tx_average_amount
                      - tx_average_amount_daily
                      - tx_transaction_category_breakdown
                      - tx_action_type_breakdown
                      - tx_status_volume_trend
                      - tx_user_ip_or_country_distribution
                      - tx_tag_breakdown
                      - tx_top_rules_triggered
                      - tx_team_member_performance
                      - tx_score_histogram
                    requested_widget_keys:
                      - tx_count_total
                      - tx_count_daily
                    widgets:
                      tx_count_total:
                        kind: metric
                        title: Transaction count
                        value: 42
                      tx_count_daily:
                        kind: time_series
                        title: Transaction count
                        items:
                          - date: '2026-10-14'
                            value: 20
                          - date: '2026-10-15'
                            value: 22
                        previous_items:
                          - date: '2026-10-12'
                            value: 18
                          - date: '2026-10-13'
                            value: 15
        '400':
          description: >-
            نطاق تاريخ أو نطاق غير صالح. جسم الاستجابة هو كائن مفهرس بالمعامل
            المخالف، مع رسالة نصية.
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  type: string
              examples:
                Bad date format:
                  value:
                    start_date: Invalid date format. Use YYYY-MM-DD (e.g., 2024-01-15).
                Start after end:
                  value:
                    start_date: Start date must be before or equal to end date.
                Range too long:
                  value:
                    date_range: Date range cannot exceed 730 days (2 years).
                Unknown scope:
                  value:
                    scope: Unsupported analytics scope.
        '401':
          description: >-
            انتهت صلاحية مفتاح API. المفتاح الذي تم إنشاؤه مع تاريخ انتهاء هو
            فقط الذي يمكن أن تنتهي صلاحيته؛ بعد هذا التاريخ، تجيب جميع الطلبات
            باستخدامه بـ `401`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Expired key:
                  value:
                    detail: This API key has expired.
        '403':
          description: >-
            الطلب غير مسموح به. اقرأ `detail`: مفتاح API مفقود (المفتاح الخاطئ
            أو الملغى أو منتهي الصلاحية يتلقى `401`)، أو مفتاح لتطبيق آخر، أو أي
            مفتاح ذو نطاق محدد، أو طلب من خارج قائمة العناوين الخاصة بالمفتاح.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Missing or invalid key:
                  value:
                    detail: >-
                      Authentication credentials were not provided or are
                      invalid.
                Another application:
                  value:
                    detail: You do not have permission to perform this action.
                Scoped key:
                  value:
                    detail: This API key has no access to this endpoint.
                Outside the key's IP list:
                  value:
                    detail: This API key can't be used from this IP address.
        '429':
          description: >-
            أكثر من 600 طلب GET في الدقيقة باستخدام مفتاح API هذا. انتظر لعدد
            الثواني المحدد في `Retry-After`، ثم أعد المحاولة.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
              examples:
                Throttled:
                  value:
                    detail: >-
                      GET request rate limit exceeded. You can make up to 600
                      requests per minute.
          headers:
            Retry-After:
              description: عدد الثواني حتى إعادة تعيين النافذة الحالية البالغة دقيقة واحدة.
              schema:
                type: integer
                example: 23
            X-RateLimit-Limit:
              description: الطلبات المسموح بها في الدقيقة ضمن هذه الميزانية.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: الطلبات المتبقية في النافذة الحالية.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: توقيت Unix عند إعادة تعيين النافذة.
              schema:
                type: integer
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: curl
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/organization/11111111-2222-3333-4444-555555555555/application/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/analytics/?start_date=2026-10-01&end_date=2026-10-15'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            client = Didit()

            result = client.analytics.retrieve()
            print(result)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            const didit = new Didit();

            const result = await didit.analytics.retrieve();
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID\n// and DIDIT_APPLICATION_ID.\nclient := didit.NewClient()\n\nresult, err := client.Analytics.Retrieve(ctx, didit.AnalyticsRetrieveParams{})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            Didit client = new Didit();

            var result = client.analytics().retrieve();
            System.out.println(result);
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            $didit = new DiditClient();

            $result = $didit->analytics->retrieve();
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            # and DIDIT_APPLICATION_ID.
            didit = Didit::Client.new

            result = didit.analytics.retrieve
            puts result.to_h
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY, DIDIT_ORGANIZATION_ID
            // and DIDIT_APPLICATION_ID.
            using var client = new DiditClient();

            var result = await client.Analytics.RetrieveAsync();
            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    ApplicationAnalyticsSummary:
      type: object
      description: >-
        ملخص التحقق من المستخدمين (KYC)، يتم إرجاعه عندما لا يتم إرسال `scope`
        ولا `widget_keys`.
      required:
        - data_points
        - request_breakdown
        - previous_data_points
        - previous_request_breakdown
        - conversion_rate
        - location_stats
        - demographic_stats
        - device_details
        - workflow_funnel_stats
        - verification_time_stats
        - resubmission_stats
        - warning_stats
        - original_status_stats
        - grouping_mode
        - demographic_time_series
        - device_time_series
        - verification_time_time_series
        - resubmission_time_series
        - original_status_time_series
      properties:
        data_points:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDataPoint'
          description: >-
            نقطة واحدة لكل يوم، من اليوم الأول الذي يتضمن جلسات ضمن النطاق حتى
            `end_date`. تكون يومية دائماً، بصرف النظر عن قيمة `grouping_mode`.
        request_breakdown:
          $ref: '#/components/schemas/ApplicationAnalyticsRequestBreakdown'
        previous_data_points:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDataPoint'
          description: النقاط اليومية للفترة ذات الطول نفسه السابقة مباشرة لـ `start_date`.
        previous_request_breakdown:
          $ref: '#/components/schemas/ApplicationAnalyticsRequestBreakdown'
        conversion_rate:
          type: number
          nullable: true
          description: >-
            `total_approved / (total_approved + total_declined +
            total_in_review) x 100`، بمنزلة عشرية واحدة. `null` عند عدم اكتمال
            أي شيء.
        location_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsLocationStats'
        demographic_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsDemographicStats'
        device_details:
          $ref: '#/components/schemas/ApplicationAnalyticsDeviceDetails'
        workflow_funnel_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsWorkflowFunnel'
        verification_time_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsVerificationTimeStats'
        resubmission_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsResubmissionStats'
        warning_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsWarningStats'
        original_status_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsOriginalStatusStats'
        grouping_mode:
          type: string
          enum:
            - day
            - week
            - month
          description: >-
            كيفية تجميع قوائم `*_time_series`: `day` لما يصل إلى 14 يوماً،
            و`week` لما يصل إلى 90 يوماً، و`month` لما يزيد عن ذلك. تُقاس بدءاً
            من اليوم الأول الذي يحتوي على جلسات ضمن النطاق.
        demographic_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDemographicPoint'
        device_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDevicePoint'
        verification_time_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsVerificationTimePoint'
        resubmission_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsResubmissionPoint'
        original_status_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsOriginalStatusPoint'
    ApplicationAnalyticsWidgetResponse:
      type: object
      description: تطبيقات مصغرة للوحة التحكم، تُرجع عند إرسال `scope` أو `widget_keys`.
      required:
        - scope
        - available_widget_keys
        - requested_widget_keys
        - widgets
      properties:
        scope:
          type: string
          enum:
            - home
            - kyc
            - kyb
            - transactions
          description: علامة تبويب لوحة التحكم.
        available_widget_keys:
          type: array
          items:
            type: string
          description: كل مفتاح أداة يقبله هذا النطاق.
        requested_widget_keys:
          type: array
          items:
            type: string
          description: >-
            مفاتيح الأداة التي تمت الإجابة عليها، بالترتيب: قيم `widget_keys`
            الصالحة الخاصة بك، أو القيم الافتراضية للنطاق.
        widgets:
          type: object
          description: مفهرس حسب مفتاح أداة واجهة المستخدم، بترتيب `requested_widget_keys`.
          additionalProperties:
            $ref: '#/components/schemas/ApplicationAnalyticsWidget'
    ApplicationAnalyticsDataPoint:
      type: object
      description: >-
        أعداد الجلسات ليوم واحد، حسب تاريخ الإنشاء (UTC). يعكس كل عدد الحالة
        الحالية للجلسة. تحمل نقاط الفترة السابقة الحقول المطلوبة على الأقل.
      required:
        - rounded_date
        - total
        - approved
        - declined
        - canceled
        - pending
      properties:
        rounded_date:
          type: string
          format: date
          description: اليوم، `YYYY-MM-DD`.
        total:
          type: integer
          description: الجلسات التي تم إنشاؤها في ذلك اليوم.
        approved:
          type: integer
          description: من بين تلك، الجلسات `Approved` أو `Kyc Expired`.
        declined:
          type: integer
          description: الجلسات بحالة `Declined`.
        canceled:
          type: integer
          description: الجلسات بحالة `Expired` أو `Abandoned`.
        pending:
          type: integer
          description: الجلسات بحالة `Not Started` أو `In Progress` أو `In Review`.
        in_review:
          type: integer
          description: الجلسات بحالة `In Review`.
        expired:
          type: integer
          description: الجلسات بحالة `Expired`.
        abandoned:
          type: integer
          description: الجلسات بحالة `Abandoned`.
        in_progress:
          type: integer
          description: الجلسات بحالة `In Progress`.
        not_started:
          type: integer
          description: الجلسات بحالة `Not Started`.
        manually_approved:
          type: integer
          description: الجلسات التي وافق عليها مراجِع بعد أن أصدر سير العمل حكماً آخر.
        manually_declined:
          type: integer
          description: الجلسات التي رفضها مراجِع بعد أن أصدر سير العمل حكماً آخر.
    ApplicationAnalyticsRequestBreakdown:
      type: object
      description: >-
        إجماليات الحالة للنطاق المحدد. يحتوي تفصيل الفترة السابقة على الحقول
        المطلوبة على الأقل.
      required:
        - total_approved
        - total_in_review
        - total_declined
        - total_canceled
        - total_pending
      properties:
        total_approved:
          type: integer
          description: الجلسات بحالة `Approved` أو `Kyc Expired`.
        total_in_review:
          type: integer
          description: الجلسات بحالة `In Review`.
        total_declined:
          type: integer
          description: الجلسات بحالة `Declined`.
        total_canceled:
          type: integer
          description: الجلسات بحالة `Expired` أو `Abandoned`.
        total_pending:
          type: integer
          description: >-
            الجلسات بحالة `Not Started` أو `In Progress` أو `In Review` (يشمل
            `total_in_review`).
        total_expired:
          type: integer
          description: الجلسات بحالة `Expired`.
        total_abandoned:
          type: integer
          description: الجلسات بحالة `Abandoned`.
        total_in_progress:
          type: integer
          description: الجلسات بحالة `In Progress`.
        total_not_started:
          type: integer
          description: الجلسات بحالة `Not Started`.
        total_manually_approved:
          type: integer
          description: مقبولة من قِبل مراجِع.
        total_manually_declined:
          type: integer
          description: مرفوضة من قبل مراجِع.
    ApplicationAnalyticsLocationStats:
      type: object
      properties:
        ip_countries:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsCountryCount'
          description: دول عناوين IP للمستخدمين، مرتبة تنازلياً حسب عدد الجلسات.
        countries:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsCountryCount'
          description: القائمة نفسها مثل `ip_countries`.
        id_countries:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsCountryCount'
          description: >-
            دول الإصدار لمستندات الهوية التي تم التحقق منها، مع عرض الدول التي
            تضم أكبر عدد من الجلسات أولاً.
        conversion_by_country:
          type: array
          description: >-
            حسب دولة إصدار المستند: الجلسات المنتهية (مقبولة، مرفوضة أو قيد
            المراجعة) وعدد الجلسات المقبولة. تُعرض الدول ذات أكبر عدد من الجلسات
            المنتهية أولاً.
          items:
            type: object
            properties:
              country:
                type: string
              country_code:
                type: string
              finished:
                type: integer
              approved:
                type: integer
        cities:
          type: array
          description: ما يصل إلى 100 مدينة لعناوين IP، مرتبة بحسب الجلسات الأكثر أولاً.
          items:
            type: object
            properties:
              location:
                type: string
                description: '`City, Country`.'
              session_count:
                type: integer
              latitude:
                type: number
                nullable: true
              longitude:
                type: number
                nullable: true
    ApplicationAnalyticsDemographicStats:
      type: object
      properties:
        age_distribution:
          type: object
          description: الجلسات حسب الفئة العمرية من مستند الهوية. فارغ عند عدم وجود بيانات.
          properties:
            under_18:
              type: integer
            18_24:
              type: integer
            25_34:
              type: integer
            35_44:
              type: integer
            45_64:
              type: integer
            65_plus:
              type: integer
          additionalProperties:
            type: integer
        gender_distribution:
          type: object
          description: 'الجلسات حسب رمز الجنس في المستند: `M` أو `F` أو `U` (غير معروف).'
          additionalProperties:
            type: integer
    ApplicationAnalyticsDeviceDetails:
      type: object
      description: أعلى خمسة من كل منها، مع بدء الجلسات الأكثر أولاً.
      properties:
        device_models:
          type: array
          description: >-
            العلامات التجارية للأجهزة: `Apple`، أو `Android`، أو `LG`، مع تجميع
            كل ما عدا ذلك كـ `Other`.
          items:
            type: object
            properties:
              device:
                type: string
              count:
                type: integer
        browsers:
          type: array
          description: >-
            المتصفحات: `Chrome`، و`Safari`، و`Didit App`، و`Firefox`، مع تجميع
            كل ما عدا ذلك تحت `Other`.
          items:
            type: object
            properties:
              browser:
                type: string
              count:
                type: integer
        operating_systems:
          type: array
          description: أنظمة التشغيل.
          items:
            type: object
            properties:
              os:
                type: string
              count:
                type: integer
    ApplicationAnalyticsWorkflowFunnel:
      type: object
      description: >-
        مفهرس حسب معرّف سير العمل. يمثل `total` الجلسات التي بدأت في سير العمل
        هذا؛ بينما يحسب `steps` الجلسات التي وصلت إلى كل خطوة (`OCR` و`LIVENESS`
        و`FACE_MATCH` و`AML` و`POA` و`PHONE` و`EMAIL` و`NFC`
        و`DATABASE_VALIDATION` و`QUESTIONNAIRE` و`IP_ANALYSIS` و`AGE_ESTIMATION`
        و`KYB_REGISTRY` و`KYB_DOCUMENTS` و`KYB_KEY_PEOPLE`). الوصول إلى الخطوة
        لا يعني اجتيازها.
      additionalProperties:
        type: object
        properties:
          total:
            type: integer
          steps:
            type: object
            additionalProperties:
              type: object
              properties:
                reached:
                  type: integer
    ApplicationAnalyticsVerificationTimeStats:
      type: object
      description: >-
        الوقت الفعلي الذي قضاه المستخدمون في التحقق، مع تجاهل فترات الخمول. كائن
        فارغ في حال عدم وجود بيانات.
      properties:
        overall_avg_seconds:
          type: number
          description: المتوسط لكل جلسة، بمنزلة عشرية واحدة.
        overall_count:
          type: integer
          description: الجلسات المقاسة.
        per_feature:
          type: object
          description: مفهرس حسب الميزة، على سبيل المثال `OCR` أو `LIVENESS`.
          additionalProperties:
            type: object
            properties:
              avg_seconds:
                type: number
              total_seconds:
                type: number
              count:
                type: integer
        per_sub_step:
          type: object
          description: >-
            مفهرس حسب الميزة، ثم حسب الخطوة الفرعية، على سبيل المثال
            `front_id_photo`.
          additionalProperties:
            type: object
            additionalProperties:
              type: object
              properties:
                avg_seconds:
                  type: number
                total_seconds:
                  type: number
                count:
                  type: integer
    ApplicationAnalyticsResubmissionStats:
      type: object
      properties:
        first_pass:
          type: integer
          description: الجلسات المنتهية دون أي إعادة إرسال.
        second:
          type: integer
          description: الجلسات المنتهية التي تمت إعادة إرسالها مرة واحدة.
        third_plus:
          type: integer
          description: الجلسات المنتهية التي تمت إعادة إرسالها مرتين أو أكثر.
        abandoned:
          type: integer
          description: الجلسات المتروكة.
    ApplicationAnalyticsWarningStats:
      type: object
      description: >-
        مفهرس حسب الميزة (`ID_VERIFICATION` و`LIVENESS` و`FACEMATCH` و`AML`
        و`PROOF_OF_ADDRESS` و`PHONE` و`EMAIL` و`NFC` و`LOCATION`
        و`DATABASE_VALIDATION` و`QUESTIONNAIRE` وميزات KYB). يمثل `total`
        الجلسات التي وصلت إلى الميزة؛ بينما يحسب `risks` الجلسات لكل رمز تحذير
        ومستوى.
      additionalProperties:
        type: object
        properties:
          total:
            type: integer
          risks:
            type: object
            additionalProperties:
              type: object
              properties:
                error:
                  type: integer
                warning:
                  type: integer
                information:
                  type: integer
    ApplicationAnalyticsOriginalStatusStats:
      type: object
      description: القرار التلقائي لسير العمل، قبل أن يغيّره أي مراجِع.
      properties:
        approved:
          type: integer
        in_review:
          type: integer
        declined:
          type: integer
    ApplicationAnalyticsDemographicPoint:
      type: object
      properties:
        date:
          type: string
          description: >-
            مفتاح الفترة الزمنية: `YYYY-MM-DD` لليوم، أو يوم الإثنين من الأسبوع،
            أو `YYYY-MM` للشهر، وذلك وفقاً لـ `grouping_mode`.
        age_distribution:
          type: object
          additionalProperties:
            type: integer
        gender_distribution:
          type: object
          additionalProperties:
            type: integer
    ApplicationAnalyticsDevicePoint:
      type: object
      properties:
        date:
          type: string
          description: >-
            مفتاح الفترة الزمنية: `YYYY-MM-DD` لليوم، أو يوم الإثنين من الأسبوع،
            أو `YYYY-MM` للشهر، وذلك وفقاً لـ `grouping_mode`.
        devices:
          type: object
          additionalProperties:
            type: integer
        browsers:
          type: object
          additionalProperties:
            type: integer
        operating_systems:
          type: object
          additionalProperties:
            type: integer
    ApplicationAnalyticsVerificationTimePoint:
      type: object
      properties:
        date:
          type: string
          description: >-
            مفتاح الفترة الزمنية: `YYYY-MM-DD` لليوم، أو يوم الإثنين من الأسبوع،
            أو `YYYY-MM` للشهر، وذلك وفقاً لـ `grouping_mode`.
        overall_avg:
          type: number
          description: متوسط الثواني النشطة لكل جلسة.
        per_feature:
          type: object
          description: متوسط الثواني النشطة لكل ميزة.
          additionalProperties:
            type: number
    ApplicationAnalyticsResubmissionPoint:
      type: object
      properties:
        date:
          type: string
          description: >-
            مفتاح الفترة الزمنية: `YYYY-MM-DD` لليوم، أو يوم الإثنين من الأسبوع،
            أو `YYYY-MM` للشهر، وذلك وفقاً لـ `grouping_mode`.
        first_pass:
          type: integer
        second:
          type: integer
        third_plus:
          type: integer
        abandoned:
          type: integer
    ApplicationAnalyticsOriginalStatusPoint:
      type: object
      properties:
        date:
          type: string
          description: >-
            مفتاح الفترة الزمنية: `YYYY-MM-DD` لليوم، أو يوم الإثنين من الأسبوع،
            أو `YYYY-MM` للشهر، وذلك وفقاً لـ `grouping_mode`.
        approved:
          type: integer
        in_review:
          type: integer
        declined:
          type: integer
    ApplicationAnalyticsWidget:
      type: object
      description: >-
        عنصر واجهة مستخدم (ودجت) واحد للوحة التحكم. يحتوي كل عنصر واجهة مستخدم
        على `kind` و`title`؛ بينما تعتمد الحقول الأخرى على `kind`. تعيد عناصر
        واجهة مستخدم الجلسات استخدام كائنات الملخص (`data_points`
        و`request_breakdown` و`workflow_funnel_stats` وما إلى ذلك)؛ وتضع عناصر
        واجهة مستخدم القوائم مدخلاتها في `items`؛ وتستخدم مقاييس المعاملات
        `value`.
      required:
        - kind
        - title
      properties:
        kind:
          type: string
          enum:
            - sessions_volume
            - workflow_funnel
            - average_verification_time
            - country_distribution
            - warning_insights
            - conversion_rate
            - conversion_by_country
            - resubmission_insights
            - original_status_distribution
            - database_validation_coverage
            - database_validation_latency
            - demographics
            - device_details
            - horizontal_bar
            - kyb_registry_coverage
            - kyb_registry_data_completeness
            - metric
            - time_series
            - breakdown
            - status_time_series
            - leaderboard
            - histogram
          description: نوع عنصر الواجهة (Widget).
        title:
          type: string
          description: عنوان العرض، على سبيل المثال `Verification volume`.
        grouping_mode:
          type: string
          enum:
            - day
            - week
            - month
          description: >-
            كيفية تجميع قوائم `*_time_series`: `day` لما يصل إلى 14 يوماً،
            و`week` لما يصل إلى 90 يوماً، و`month` لما يزيد عن ذلك. تُقاس بدءاً
            من اليوم الأول الذي يحتوي على جلسات ضمن النطاق.
        data_points:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDataPoint'
        request_breakdown:
          $ref: '#/components/schemas/ApplicationAnalyticsRequestBreakdown'
        previous_data_points:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDataPoint'
        previous_request_breakdown:
          $ref: '#/components/schemas/ApplicationAnalyticsRequestBreakdown'
        conversion_rate:
          type: number
          nullable: true
        workflow_funnel_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsWorkflowFunnel'
        verification_time_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsVerificationTimeStats'
        verification_time_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsVerificationTimePoint'
        warning_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsWarningStats'
        resubmission_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsResubmissionStats'
        resubmission_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsResubmissionPoint'
        original_status_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsOriginalStatusStats'
        original_status_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsOriginalStatusPoint'
        demographic_stats:
          $ref: '#/components/schemas/ApplicationAnalyticsDemographicStats'
        demographic_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDemographicPoint'
        device_details:
          $ref: '#/components/schemas/ApplicationAnalyticsDeviceDetails'
        device_time_series:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationAnalyticsDevicePoint'
        items:
          type: array
          description: >-
            مُدخلات أداة القائمة. `country_distribution` (KYC): `country`،
            و`country_code`، و`session_count`. و`conversion_by_country`:
            `country`، و`country_code`، و`finished`، و`approved`.
            و`time_series`: `date`، و`value`. و`status_time_series`: `date`،
            و`approved`، و`declined`، و`flagged`. و`breakdown`:
            `transaction_type` أو `action_type` مع `count` و`volume`، أو
            `tag_id`، و`tag_name`، و`count`. و`leaderboard`: `rule_title`،
            و`trigger_count` أو `assignee`، و`handled_count`،
            و`average_processing_seconds`، وكل منها يتضمن `approved_percentage`،
            و`declined_percentage`، و`flagged_percentage`. و`histogram`:
            `score`، و`count`.
          items:
            type: object
            additionalProperties: {}
        previous_items:
          type: array
          description: >-
            السلسلة الزمنية للمعاملات للفترة ذات المدة نفسها التي تسبق
            `start_date` مباشرة.
          items:
            type: object
            additionalProperties: {}
        value:
          type: number
          description: 'أدوات `metric`: الرقم الخاص بالنطاق.'
        currency:
          type: string
          nullable: true
          description: >-
            عناصر واجهة حجم المعاملات والمبلغ: عملة المعاملات الافتراضية
            للتطبيق.
        thresholds:
          type: object
          description: 'أداة `histogram`: حدود درجات المراجعة والرفض الخاصة بالتطبيق.'
          properties:
            review:
              type: integer
            decline:
              type: integer
        search:
          type: object
          description: 'أداة `kyb_registry_coverage`: إجماليات البحث في السجل.'
          properties:
            searches_total:
              type: integer
            searches_with_no_candidates:
              type: integer
    ApplicationAnalyticsCountryCount:
      type: object
      properties:
        country:
          type: string
          description: اسم الدولة.
        country_code:
          type: string
          description: رمز الدولة المكون من حرفين.
        session_count:
          type: integer
          description: الجلسات من تلك الدولة.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        مفتاح API الخاص بتطبيقك، من Developers -> API keys في Business Console.
        يمتلك المفتاح الأساسي وصولاً كاملاً. يمكن تحديد نطاق المفتاح المسمى: لا
        شيء، أو قراءة، أو كتابة لكل مورد، ومحدوداً ببعض مسارات العمل أو بالجلسات
        المقبولة، وبقائمة من عناوين IP، وبتاريخ انتهاء الصلاحية. يشير 401 إلى أن
        المفتاح غير صحيح أو ملغى أو منتهي الصلاحية؛ ويشير 403 إلى أنه لم يتم
        إرسال أي مفتاح، أو أن المفتاح ليس لديه حق الوصول إلى هذا المورد أو
        الإجراء، أو أن الطلب جاء من عنوان خارج قائمة عناوين IP الخاصة به؛ ويشير
        404 في مسار جلسة إلى أن الجلسة خارج مسارات العمل أو الحالات الخاصة
        بالمفتاح. يتلقى المفتاح الذي لا يمتلك حق الوصول إلى الوسائط عناوين URL
        للصور ومقاطع الفيديو وملفات PDF كـ null، ويتلقى المفتاح الذي لا يمتلك
        إذن كتابة للجلسات روابط الجلسة وtoken كـ null. راجع
        https://docs.didit.me/console/api-keys.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.