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

# Get Questionnaire API: Ambil Formulir KYC

> Ambil detail lengkap kuesioner KYC Didit: pertanyaan terurut, opsi, dan label multi-bahasa. Kelola formulir kepatuhan secara terprogram, bayar per panggilan.



Prompt API Mengambil Kuesioner
        Salin prompt ke papan klip



      
      

\<pre>

\`Fetch the full configuration of a single Didit questionnaire through the Management API.

Endpoint:
GET https://verification.didit.me/v3/questionnaires/{questionnaire_uuid}/

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

Goal:
\- Retrieve the questionnaire definition (form_elements, languages, translations, internal graph) so I can render a preview, debug a session, or audit changes.

Path parameter:
\- questionnaire_uuid — the per-version questionnaire UUID returned by GET /v3/questionnaires/ or POST /v3/questionnaires/. Each version has its own primary key; questionnaire_group_id is the stable id shared by every version.

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

What to read from the response:
\- title — internal questionnaire name.
\- languages and default_language — supported locales for translations.
\- form_elements — ordered question definitions including element_type, label, options, is_required.
\- graph — internal graph built from form_elements (do not edit manually; use the simple form_elements shape on PATCH).
\- status — "draft" or "published"; only drafts are editable.

Failure modes:
\- 401 — missing or malformed x-api-key.
\- 403 — canonical { "detail": "You do not have permission to perform this action." } envelope when the questionnaire belongs to a different application than the API key.
\- 404 — questionnaire not found in this application.

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/{questionnaire_uuid}/
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/{questionnaire_uuid}/:
    get:
      tags:
        - Questionnaires
      summary: Dapatkan kuesioner
      description: >-
        Ambil detail kuesioner lengkap untuk satu versi berdasarkan
        `questionnaire_uuid`: judul, `languages`, `graph` kanonis, `sections`
        turunan, dan metadata versi.
      operationId: get_questionnaire
      parameters:
        - name: questionnaire_uuid
          in: path
          required: true
          schema:
            type: string
            format: uuid
          description: >-
            UUID per versi dari kuesioner (nilai `uuid` yang dikembalikan oleh
            endpoint daftar, juga dikembalikan sebagai `questionnaire_id` pada
            endpoint detail).
      responses:
        '200':
          description: >-
            Detail kuesioner lengkap termasuk `graph` kanonis, tampilan turunan
            `sections`, metadata versi, dan `is_editable`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionnaireDetail'
              examples:
                Published questionnaire:
                  value:
                    questionnaire_id: 11111111-2222-3333-4444-555555555555
                    title: Customer Onboarding
                    description: Additional information needed for verification
                    languages:
                      - en
                    default_language: en
                    is_active: true
                    is_simple_questionnaire: true
                    graph:
                      start_node: occupation
                      nodes:
                        occupation:
                          element_type: SHORT_TEXT
                          is_required: true
                          title:
                            en: What is your occupation?
                          next: source_of_funds
                        source_of_funds:
                          element_type: MULTIPLE_CHOICE
                          is_required: true
                          title:
                            en: Source of funds
                          choices:
                            - value: employment
                              label:
                                en: Employment
                            - value: business
                              label:
                                en: Business
                          next: null
                    sections:
                      - title: {}
                        description: {}
                        items:
                          - uuid: 11111111-2222-3333-4444-666666666666
                            value: occupation
                            element_type: SHORT_TEXT
                            is_required: true
                            title:
                              en: What is your occupation?
                    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.
        '404':
          description: >-
            Tidak ada kuesioner dengan `questionnaire_uuid` ini untuk aplikasi
            yang diautentikasi. Entah UUID salah atau milik aplikasi lain — API
            sengaja tidak membedakan kedua kasus tersebut.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    detail: Not found.
        '429':
          description: Batas laju terlampaui. Coba lagi dengan backoff eksponensial.
        '500':
          description: Terjadi kesalahan server tak terduga. Aman untuk dicoba lagi.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: >-
            curl -X GET
            'https://verification.didit.me/v3/questionnaires/11111111-2222-3333-4444-555555555555/'
            \
              -H 'x-api-key: YOUR_API_KEY'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.questionnaires.retrieve(
                "11111111-2222-3333-4444-555555555555",
            )
            print(result)
        - lang: javascript
          label: Node.js
          source: >-
            import Didit from "@didit-protocol/sdk-node";


            // Reads DIDIT_API_KEY.

            const didit = new Didit();


            const result = await
            didit.questionnaires.retrieve("11111111-2222-3333-4444-555555555555");

            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Questionnaires.Retrieve(ctx, \"11111111-2222-3333-4444-555555555555\")\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 client = new Didit();


            var result =
            client.questionnaires().retrieve("11111111-2222-3333-4444-555555555555");

            System.out.println(result);
        - lang: php
          label: PHP
          source: >-
            <?php


            require 'vendor/autoload.php';


            use Didit\DiditClient;


            // Reads DIDIT_API_KEY.

            $didit = new DiditClient();


            $result =
            $didit->questionnaires->retrieve('11111111-2222-3333-4444-555555555555');

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


            # Reads DIDIT_API_KEY.

            didit = Didit::Client.new


            result =
            didit.questionnaires.retrieve("11111111-2222-3333-4444-555555555555")

            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await
            client.Questionnaires.RetrieveAsync("11111111-2222-3333-4444-555555555555");

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    QuestionnaireDetail:
      type: object
      description: >-
        Detail kuesioner lengkap yang dikembalikan dari endpoint GET, POST
        (buat), dan PATCH (perbarui).
      properties:
        questionnaire_id:
          type: string
          format: uuid
          description: >-
            Pengenal unik kuesioner. Gunakan id ini saat mereferensikan
            kuesioner dari alur kerja atau dalam permintaan
            pembaruan/penghapusan berikutnya.
        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
        graph:
          type: object
          description: Struktur graf dengan start_node dan peta node.
        sections:
          type: array
          description: >-
            Konten kuesioner yang dikelompokkan ke dalam bagian-bagian (berasal
            dari graf).
          items:
            type: object
        questionnaire_group_id:
          type: string
          format: uuid
          description: >-
            Pengidentifikasi stabil yang mengelompokkan semua versi dari
            kuesioner yang sama.
        version:
          type: integer
        status:
          type: string
          enum:
            - draft
            - published
        published_at:
          type: string
          format: date-time
          nullable: true
        is_editable:
          type: boolean
          description: >-
            True saat kuesioner masih dapat diedit langsung di tempat (versi
            draf).
  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.