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

# API Daftar Kuesioner KYC: Formulir Kepatuhan

> Ambil semua kuesioner KYC dan formulir kepatuhan organisasi Didit dalam satu panggilan. Kelola formulir KYC kustom via API, bayar per panggilan.



Prompt API Daftar Kuesioner
        Salin prompt ke papan klip



      
      

\<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>



      
      

Tempel ke



## OpenAPI

````yaml id/openapi-25.json GET /v3/questionnaires/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API Verifikasi Identitas. Lakukan autentikasi dengan header x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/questionnaires/:
    get:
      tags:
        - Questionnaires
      summary: Mencantumkan kuesioner
      description: >-
        Daftar kuesioner Anda, terbaru terlebih dahulu, dalam amplop paginasi
        limit/offset (`{count, next, previous, results}`, ukuran halaman default
        50). Setiap baris adalah satu versi; `questionnaire_group_id` adalah ID
        grup stabil yang merujuk ke versi `published` terbaru.
      operationId: list_questionnaires
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 50
          description: Ukuran halaman (jumlah kuesioner per halaman).
        - name: offset
          in: query
          required: false
          schema:
            type: integer
            default: 0
          description: >-
            Jumlah baris yang dilewati sebelum kuesioner pertama yang
            dikembalikan.
      responses:
        '200':
          description: >-
            Satu halaman kuesioner yang diurutkan berdasarkan `created_at`
            menurun, dibungkus dalam amplop paginasi. Setiap item dalam
            `results` adalah `QuestionnaireListItem`.
          content:
            application/json:
              schema:
                type: object
                properties:
                  count:
                    type: integer
                    description: Jumlah total versi kuesioner untuk aplikasi.
                  next:
                    type: string
                    format: uri
                    nullable: true
                    description: URL halaman berikutnya, atau `null` pada halaman terakhir.
                  previous:
                    type: string
                    format: uri
                    nullable: true
                    description: URL halaman sebelumnya, atau `null` pada halaman pertama.
                  results:
                    type: array
                    items:
                      $ref: '#/components/schemas/QuestionnaireListItem'
              examples:
                One questionnaire:
                  summary: Kuesioner dwibahasa sederhana
                  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: >-
            Kunci API tidak ada, format salah, kedaluwarsa, atau memiliki
            cakupan untuk aplikasi yang berbeda.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '429':
          description: Batas laju terlampaui. Coba lagi dengan backoff eksponensial.
        '500':
          description: >-
            Terjadi kesalahan server tak terduga saat menyusun daftar. Aman
            untuk dicoba lagi.
      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: Satu versi kuesioner dalam tampilan daftar.
      properties:
        uuid:
          type: string
          format: uuid
          description: >-
            UUID per versi. Gunakan sebagai `{questionnaire_uuid}` untuk
            get/update/delete dan sebagai `questionnaire_uuid` dalam konfigurasi
            fitur QUESTIONNAIRE pada alur kerja.
        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 untuk kuesioner linear yang dibuat melalui API ini; false untuk
            kuesioner berbasis graf yang dibangun di Console.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        question_types:
          type: array
          items:
            type: string
          description: >-
            Tipe elemen huruf besar dari pertanyaan yang dapat dijawab, sesuai
            urutan pembuatan (misalnya `SHORT_TEXT`, `MULTIPLE_CHOICE`,
            `FILE_UPLOAD`). Elemen struktural `SECTION_HEADER` dan `SEPARATOR`
            tidak disertakan. Satu entri per pertanyaan, sehingga nilai dapat
            berulang.
        workflow_names:
          type: array
          items:
            type: string
          description: >-
            Nama alur kerja yang menggunakan kuesioner ini. Saat ini selalu `[]`
            pada endpoint ini (hanya diisi dalam daftar Console).
        questionnaire_group_id:
          type: string
          format: uuid
          description: >-
            Pengidentifikasi stabil yang mengelompokkan semua versi dari
            kuesioner yang sama.
        version:
          type: integer
          description: Nomor versi dalam grup, dimulai dari 1.
        status:
          type: string
          enum:
            - draft
            - published
        published_at:
          type: string
          format: date-time
          nullable: true
          description: Kapan versi ini dipublikasikan. `null` untuk draf.
        is_editable:
          type: boolean
          description: True jika versi ini adalah `draft`.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        Kunci API aplikasi Anda, dari Developers -> API keys di Business
        Console. Kunci utama memiliki akses penuh. Kunci bernama dapat diberi
        cakupan: none, read, atau write per sumber daya, dibatasi pada beberapa
        alur kerja atau pada sesi yang disetujui, pada daftar alamat IP, dan
        pada tanggal kedaluwarsa. 401 berarti kuncinya salah, dicabut, atau
        kedaluwarsa; 403 berarti tidak ada kunci yang dikirimkan, kunci tidak
        memiliki akses ke sumber daya atau tindakan ini, atau permintaan datang
        dari alamat di luar daftar IP-nya; 404 pada rute sesi berarti sesi
        berada di luar alur kerja atau status kunci tersebut. Kunci tanpa akses
        media menerima URL gambar, video, dan PDF sebagai null, dan kunci tanpa
        izin tulis sesi menerima tautan sesi dan token sebagai null. Lihat
        https://docs.didit.me/console/api-keys.

````

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