> ## 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.

# واجهة قائمة الاستبيانات: نماذج KYC

> استرجع جميع استبيانات KYC ونماذج الامتثال في مؤسستك على Didit بطلب واحد. إدارة برمجية لنماذج KYC المخصصة، بالدفع لكل استدعاء.



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



      
      

\<pre>

\`List every Didit questionnaire (custom form) defined for my application through the Management API.

Endpoint:
GET https://verification.didit.me/v3/questionnaires/

Authentication:
Use the x-api-key header with my Didit API key.

Goal:
\- Retrieve every questionnaire so I can render a picker in my back-office, sync ids into my config, or discover the questionnaire_id of a form created in the Console.
\- Use the returned questionnaire_id later as config.questionnaire_uuid on a QUESTIONNAIRE feature in a workflow (see POST /v3/workflows/).

Behavior:
\- Results are returned newest first (-created_at). The endpoint does not paginate today — all rows are returned in one response.
\- Each row is one version of a questionnaire group. questionnaire_group_id is the stable identifier shared by every version; version is the integer version number; status is "draft" or "published".
\- Workflows that reference a questionnaire group_id always resolve to the latest published version automatically.
\- is_editable: true means this row is a draft and can still be patched in place via PATCH /v3/questionnaires/{questionnaire_uuid}/.
\- question_types is an aggregated array of the form-element types present in each questionnaire (excluding section headers and separators) so you can label cards in the UI without a follow-up call.

Example call:
curl -X GET "https://verification.didit.me/v3/questionnaires/" \
-H "x-api-key: YOUR_API_KEY"

What to read from the response:
\- uuid — per-version questionnaire id, used as path id in GET / PATCH / DELETE /v3/questionnaires/{questionnaire_uuid}/.
\- questionnaire_id / questionnaire_group_id — pass as config.questionnaire_uuid when attaching the questionnaire to a workflow.

Failure modes:
\- 401 — missing or malformed x-api-key.
\- 403 — canonical { "detail": "You do not have permission to perform this action." } envelope when the API key cannot list questionnaires for this application.
\- 429 — rate limited; back off and retry.

Side effects: none. This is a pure read.

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

\</pre>



      
      

الصق في



## OpenAPI

````yaml ar/openapi-25.json GET /v3/questionnaires/
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/questionnaires/:
    get:
      tags:
        - Questionnaires
      summary: عرض الاستبيانات
      description: >-
        عرض قائمة بالاستبيانات الخاصة بك، مرتبة من الأحدث أولاً، داخل غلاف تقسيم
        الصفحات limit/offset (`{count, next, previous, results}`، حجم الصفحة
        الافتراضي 50). يمثل كل صف إصدارًا واحدًا؛ و`questionnaire_group_id` هو
        معرّف المجموعة الثابت الذي يُحل إلى أحدث إصدار `published`.
      operationId: list_questionnaires
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
          description: حجم الصفحة (عدد الاستبيانات في كل صفحة).
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
          description: عدد الصفوف المراد تخطيها قبل أول استبيان مُرجع.
      responses:
        '200':
          description: >-
            صفحة واحدة من الاستبيانات مرتبة تنازلياً حسب `created_at`، مغلفة في
            غلاف تقسيم الصفحات. كل عنصر في `results` هو `QuestionnaireListItem`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: العدد الإجمالي لإصدارات الاستبيان الخاصة بالتطبيق.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: رابط URL للصفحة التالية، أو `null` في الصفحة الأخيرة.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: رابط URL للصفحة السابقة، أو `null` في الصفحة الأولى.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/QuestionnaireListItem'
              examples:
                One questionnaire:
                  summary: استبيان ثنائي اللغة بسيط
                  value:
                    count: 1
                    next: null
                    previous: null
                    results:
                      - uuid: 11111111-2222-3333-4444-555555555555
                        title: KYC Questionnaire
                        description: Additional verification questions
                        languages:
                          - en
                          - es
                        default_language: en
                        is_active: true
                        is_simple_questionnaire: true
                        created_at: '2026-04-23T09:55:00Z'
                        updated_at: '2026-04-23T10:00:00Z'
                        question_types:
                          - SHORT_TEXT
                          - MULTIPLE_CHOICE
                          - FILE_UPLOAD
                        workflow_names: []
                        questionnaire_group_id: 11111111-2222-3333-4444-555555555555
                        version: 1
                        status: published
                        published_at: '2026-04-23T10:00:00Z'
                        is_editable: false
        '403':
          description: مفتاح API مفقود أو غير صالح أو منتهي الصلاحية أو مخصص لتطبيق مختلف.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: تم تجاوز حد المعدل. أعد المحاولة مع تراجع أسي.
        '500':
          description: >-
            خطأ غير متوقع في الخادم أثناء إنشاء القائمة. يمكن إعادة المحاولة
            بأمان.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl -X GET 'https://verification.didit.me/v3/questionnaires/' \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            for item in client.questionnaires.list():
                print(item)
        - lang: javascript
          label: Node.js
          source: |-
            import Didit from "@didit-protocol/sdk-node";

            // Reads DIDIT_API_KEY.
            const didit = new Didit();

            for await (const item of didit.questionnaires.list()) {
              console.log(item);
            }
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\niter := client.Questionnaires.ListAutoPaging(ctx, didit.QuestionnairesListParams{})\nfor iter.Next() {\n\tfmt.Printf(\"%+v\\n\", iter.Current())\n}\nif err := iter.Err(); err != nil {\n\tlog.Fatal(err)\n}"
        - lang: java
          label: Java
          source: |-
            import me.didit.Didit;

            // Reads DIDIT_API_KEY.
            Didit client = new Didit();

            for (var item : client.questionnaires().list()) {
                System.out.println(item);
            }
        - lang: php
          label: PHP
          source: |-
            <?php

            require 'vendor/autoload.php';

            use Didit\DiditClient;

            // Reads DIDIT_API_KEY.
            $didit = new DiditClient();

            foreach ($didit->questionnaires->list() as $item) {
                print_r($item->toArray());
            }
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

            # Reads DIDIT_API_KEY.
            didit = Didit::Client.new

            didit.questionnaires.list.auto_paging_each do |item|
              puts item.to_h
            end
        - lang: csharp
          label: .NET
          source: |-
            using System;
            using System.Text.Json;
            using Didit;

            // Reads DIDIT_API_KEY.
            using var client = new DiditClient();

            await foreach (var item in await client.Questionnaires.ListAsync())
            {
                Console.WriteLine(JsonSerializer.Serialize(item));
            }
components:
  schemas:
    QuestionnaireListItem:
      type: object
      description: إصدار استبيان واحد في عرض القائمة.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            معرف UUID لكل إصدار. يُستخدم كـ `{questionnaire_uuid}` لعمليات
            الجلب/التحديث/الحذف وكـ `questionnaire_uuid` في إعدادات ميزة
            QUESTIONNAIRE لسير العمل.
        title:
          type: string
        description:
          type: string
          nullable: true
        languages:
          type: array
          items:
            type: string
        default_language:
          type: string
        is_active:
          type: boolean
        is_simple_questionnaire:
          type: boolean
          description: >-
            تكون القيمة True للاستبيانات الخطية التي تم إنشاؤها عبر واجهة API
            هذه؛ وتكون False للاستبيانات القائمة على المخططات التي تم إنشاؤها في
            لوحة التحكم.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        question_types:
          type: array
          items:
            type: string
          description: >-
            أنواع العناصر بالأحرف الكبيرة للأسئلة القابلة للإجابة، بحسب ترتيب
            الإنشاء (مثل `SHORT_TEXT` و`MULTIPLE_CHOICE` و`FILE_UPLOAD`).
            تُستثنى العناصر الهيكلية `SECTION_HEADER` و`SEPARATOR`. مدخل واحد
            لكل سؤال، لذا يمكن أن تتكرر القيم.
        workflow_names:
          type: array
          items:
            type: string
          description: >-
            أسماء سير العمل التي تستخدم هذا الاستبيان. تكون حالياً دائماً `[]`
            في هذه الـ endpoint (يتم ملؤها فقط في قائمة Console).
        questionnaire_group_id:
          type: string
          format: uuid
          description: معرّف ثابت يجمع جميع إصدارات الاستبيان نفسه.
        version:
          type: integer
          description: رقم الإصدار ضمن المجموعة، بدءاً من 1.
        status:
          type: string
          enum:
            - draft
            - published
        published_at:
          type: string
          format: date-time
          nullable: true
          description: وقت نشر هذا الإصدار. القيمة `null` للمسودات.
        is_editable:
          type: boolean
          description: صحيح عندما يكون هذا الإصدار مسودة `draft`.
  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.