curl -X GET 'https://verification.didit.me/v3/questionnaires/11111111-2222-3333-4444-555555555555/' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.questionnaires.retrieve(
"11111111-2222-3333-4444-555555555555",
)
print(result)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);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Questionnaires.Retrieve(ctx, "11111111-2222-3333-4444-555555555555")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)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);<?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());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.questionnaires.retrieve("11111111-2222-3333-4444-555555555555")
puts result.to_husing 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));{
"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
}{
"detail": "You do not have permission to perform this action."
}{
"detail": "Not found."
}Obtener un cuestionario con la API: formulario KYC
Obtén los detalles de un cuestionario KYC de Didit: preguntas ordenadas, opciones y etiquetas multilingües. Pago por llamada.
curl -X GET 'https://verification.didit.me/v3/questionnaires/11111111-2222-3333-4444-555555555555/' \
-H 'x-api-key: YOUR_API_KEY'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.questionnaires.retrieve(
"11111111-2222-3333-4444-555555555555",
)
print(result)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);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.Questionnaires.Retrieve(ctx, "11111111-2222-3333-4444-555555555555")
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)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);<?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());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.questionnaires.retrieve("11111111-2222-3333-4444-555555555555")
puts result.to_husing 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));{
"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
}{
"detail": "You do not have permission to perform this action."
}{
"detail": "Not found."
}Autorizaciones
La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.
Parámetros de ruta
UUID por versión del cuestionario (el valor uuid que devuelve el endpoint de listado y que también se devuelve como questionnaire_id en los endpoints de detalle).
Respuesta
Detalle completo del cuestionario, que incluye el graph canónico, la vista derivada sections, los metadatos de versión e is_editable.
Detalle completo del cuestionario que devuelven los endpoints GET, POST (crear) y PATCH (actualizar).
Identificador único del cuestionario. Usa este id para hacer referencia al cuestionario desde un flujo o en solicitudes posteriores de actualización o eliminación.
Estructura de grafo con start_node y un mapa de nodos.
Contenido del cuestionario agrupado en secciones (derivado del grafo).
Identificador estable que agrupa todas las versiones del mismo cuestionario.
draft, published True cuando el cuestionario aún puede editarse directamente (versiones en borrador).