> ## 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 per creare questionari: modulo KYC personalizzato

> Crea questionari KYC e di compliance personalizzati via API, con domande ordinate, opzioni e 54 traduzioni. Pagamento a chiamata con Didit.



Prompt API per creare un questionario
        Copia il prompt negli appunti



      
      

\<pre>

\`Create a simple Didit questionnaire through the Management API.

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

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

Requirements:
\- Use the simple v3 API shape with form_elements.
\- Do not send graph, branches, next, required_if, or conditional logic.
\- Include languages with en and default_language set to en.
\- Use customer-friendly element_type values such as short_text, multiple_choice, email, file_upload, or date_picker.
\- For choice questions, send options with value and label.
\- Store the questionnaire_id from the response because I will use it later as questionnaire_uuid in workflows.

Example request body:
\{
"title": "Customer Onboarding",
"languages": ["en"],
"default_language": "en",
"form_elements": [
\{
  "id": "occupation",
  "element_type": "short_text",
  "label": { "en": "What is your occupation?" },
  "is_required": true
},
\{
  "id": "source_of_funds",
  "element_type": "multiple_choice",
  "label": { "en": "Source of funds" },
  "is_required": true,
  "options": [
    \{ "value": "employment", "label": { "en": "Employment" } },
    \{ "value": "business", "label": { "en": "Business" } },
    \{ "value": "investments", "label": { "en": "Investments" } }
  ]
}
]
}

Build the API call, handle validation errors, and return the questionnaire_id from the response.`

\</pre>



      
      

Incolla in

Usa questo endpoint per creare questionari semplici tramite API. Invia un array `form_elements` nell'ordine in cui gli utenti devono rispondere alle domande. Didit costruisce per te il grafo interno del questionario.L'API supporta solo questionari lineari semplici. Non inviare `graph`, `branches`, `next` né regole condizionali.## Campi obbligatori- `title` è il nome interno del questionario.
- `languages` deve includere `en`.
- `form_elements` deve contenere almeno una domanda.
- Ogni elemento del modulo richiede un `element_type` e una `label` tradotta.Puoi anche aggiungere a un elemento del modulo una `description` tradotta facoltativa, come testo di aiuto. È accettata per tutti i tipi di elemento tranne `separator` e viene restituita come `description` dell'elemento nel [report del questionario](https://docs.didit.me/it/core-technology/questionnaires/report-questionnaire.md).## Tipi di elementoUsa valori in minuscolo come `short_text`, `multiple_choice`, `email`, `file_upload` o `date_picker`. Sono accettati anche i valori enum in maiuscolo, come `SHORT_TEXT`.Per `dropdown`, `single_choice` e `multiple_choice`, aggiungi `options`. Se ometti il `value` di un'opzione, Didit lo genera a partire dall'etichetta.```json theme={null}
{
  "title": "Customer Onboarding",
  "languages": ["en"],
  "default_language": "en",
  "form_elements": [
    {
      "id": "occupation",
      "element_type": "short_text",
      "label": { "en": "What is your occupation?" },
      "is_required": true
    },
    {
      "id": "source_of_funds",
      "element_type": "multiple_choice",
      "label": { "en": "Source of funds" },
      "is_required": true,
      "options": [
        { "value": "employment", "label": { "en": "Employment" } },
        { "value": "business", "label": { "en": "Business" } },
        { "value": "investments", "label": { "en": "Investments" } }
      ]
    }
  ]
}
```## Validazione dei campiAggiungi un oggetto `validation` facoltativo a un elemento `short_text`, `long_text` o `number` per imporre un formato alla risposta dell'utente. È utile per identificativi con formati rigidi, come codici fiscali, documenti d'identità nazionali o numeri di carta. La validazione viene eseguita mentre l'utente compila il campo (l'utente non può proseguire finché il valore non è valido) e viene applicata di nuovo dall'API all'invio.| Campo | Si applica a | Descrizione |
| - | - | - |
| `pattern` | `short_text`, `long_text` | Espressione regolare che il valore deve corrispondere per intero. Usa il sottoinsieme portabile di ECMA-262; non aggiungere ancore `^`/`$` (viene confrontato l'intero valore). |
| `min_length` | `short_text`, `long_text` | Numero minimo di caratteri. |
| `max_length` | `short_text`, `long_text` | Numero massimo di caratteri. |
| `min` | `number` | Valore numerico minimo. |
| `max` | `number` | Valore numerico massimo. |
| `error_message` | tutti i precedenti | Messaggio tradotto mostrato quando il valore non supera la verifica. Se omesso, viene usato un messaggio generico. |```json theme={null}
{
  "title": "Customer Onboarding",
  "languages": ["en"],
  "default_language": "en",
  "form_elements": [
    {
      "id": "tax_id",
      "element_type": "short_text",
      "label": { "en": "Tax ID" },
      "is_required": true,
      "validation": {
        "pattern": "[A-Z]{2}[0-9]{9}",
        "min_length": 11,
        "max_length": 11,
        "error_message": { "en": "Enter a valid Tax ID (2 letters followed by 9 digits)." }
      }
    }
  ]
}
```La risposta include `questionnaire_id`. Conservalo, perché lo userai come `questionnaire_uuid` quando aggiungi il questionario a un workflow.


## OpenAPI

````yaml it/openapi-25.json POST /v3/questionnaires/
openapi: 3.0.0
info:
  version: 3.0.0
  title: Didit Verification API
  description: API di verifica dell'identità. Autenticati con l'intestazione x-api-key.
servers:
  - url: https://verification.didit.me
security: []
tags: []
paths:
  /v3/questionnaires/:
    post:
      tags:
        - Questionnaires
      summary: Crea questionario
      description: >-
        Crea un questionario lineare semplice. Invia `form_elements` nell'ordine
        di visualizzazione; le diramazioni e i gruppi ripetibili richiedono la
        Console. Il valore predefinito è `published` v1.
      operationId: create_questionnaire
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimpleQuestionnaireRequest'
            examples:
              Simple:
                summary: Questionario di base
                value:
                  title: Customer Onboarding
                  description: Additional information needed for verification
                  default_language: en
                  languages:
                    - en
                  is_active: true
                  form_elements:
                    - id: occupation
                      element_type: short_text
                      label:
                        en: What is your occupation?
                      is_required: true
                      placeholder:
                        en: Software engineer
                    - id: source_of_funds
                      element_type: multiple_choice
                      label:
                        en: Source of funds
                      is_required: true
                      options:
                        - value: employment
                          label:
                            en: Employment
                        - value: business
                          label:
                            en: Business
                        - value: investments
                          label:
                            en: Investments
                        - value: other
                          label:
                            en: Other
      responses:
        '201':
          description: >-
            Questionario creato. La risposta include il `questionnaire_id` —
            memorizzalo per fare riferimento a questo questionario dai workflow
            o dalle future chiamate di aggiornamento/eliminazione.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/QuestionnaireDetail'
              examples:
                Created:
                  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: []
                    questionnaire_group_id: 11111111-2222-3333-4444-555555555555
                    version: 1
                    status: published
                    published_at: '2026-04-23T10:00:00Z'
                    is_editable: false
        '400':
          description: >-
            Errore di validazione. Cause comuni: un `element_type` sconosciuto,
            un campo traducibile privo di traduzione per una delle lingue in
            `languages`, `languages` privo di `en`, `default_language` non
            presente in `languages`, un'opzione priva di `label`, una domanda
            che contiene `branches`/`required_if`/`repeatable_config` (non
            supportati da questo endpoint), o l'invio di un `graph` grezzo
            invece di `form_elements`. Il corpo è un errore di validazione DRF
            indicizzato per nome di campo.
          content:
            application/json:
              examples:
                Graph not accepted:
                  value:
                    graph: >-
                      The v3 questionnaire API only accepts simple
                      `form_elements`, not `graph`.
                Missing label:
                  value:
                    form_elements:
                      - label:
                          - This field is required.
        '403':
          description: >-
            Chiave API mancante, malformata, scaduta o associata a
            un'applicazione diversa.
          content:
            application/json:
              examples:
                Invalid token:
                  value:
                    detail: You do not have permission to perform this action.
        '415':
          description: >-
            Tipo di media non supportato. Imposta `Content-Type:
            application/json` e invia un corpo JSON.
        '429':
          description: Limite di frequenza superato. Riprova con backoff esponenziale.
        '500':
          description: >-
            Errore imprevisto del server durante la creazione del questionario.
            È sicuro effettuare un nuovo tentativo.
      security:
        - ApiKeyAuth: []
      x-codeSamples:
        - lang: curl
          label: cURL
          source: |-
            curl -X POST 'https://verification.didit.me/v3/questionnaires/' \
              -H 'x-api-key: YOUR_API_KEY' \
              -H 'Content-Type: application/json' \
              -d '{
                "title": "Customer Onboarding",
                "default_language": "en",
                "languages": ["en"],
                "form_elements": [
                  {
                    "id": "occupation",
                    "element_type": "short_text",
                    "label": {"en": "What is your occupation?"},
                    "is_required": true
                  }
                ]
              }'
        - lang: python
          label: Python
          source: |-
            from didit import Didit

            # Reads DIDIT_API_KEY.
            client = Didit()

            result = client.questionnaires.create(
                title="Customer Onboarding",
                description="Additional information needed for verification",
                languages=["en"],
                default_language="en",
                is_active=True,
                form_elements=[{
                    "id": "occupation",
                    "element_type": "short_text",
                    "label": {"en": "What is your occupation?"},
                    "placeholder": {"en": "Software engineer"},
                    "is_required": True,
                }, {
                    "id": "source_of_funds",
                    "element_type": "multiple_choice",
                    "label": {"en": "Source of funds"},
                    "is_required": True,
                    "options": [{
                        "value": "employment",
                        "label": {"en": "Employment"},
                    }, {
                        "value": "business",
                        "label": {"en": "Business"},
                    }, {
                        "value": "investments",
                        "label": {"en": "Investments"},
                    }, {
                        "value": "other",
                        "label": {"en": "Other"},
                    }],
                }],
            )
            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.create({
              title: "Customer Onboarding",
              description: "Additional information needed for verification",
              languages: ["en"],
              default_language: "en",
              is_active: true,
              form_elements: [{
                id: "occupation",
                element_type: "short_text",
                label: { en: "What is your occupation?" },
                placeholder: { en: "Software engineer" },
                is_required: true,
              }, {
                id: "source_of_funds",
                element_type: "multiple_choice",
                label: { en: "Source of funds" },
                is_required: true,
                options: [{
                  value: "employment",
                  label: { en: "Employment" },
                }, {
                  value: "business",
                  label: { en: "Business" },
                }, {
                  value: "investments",
                  label: { en: "Investments" },
                }, {
                  value: "other",
                  label: { en: "Other" },
                }],
              }],
            });
            console.log(result);
        - lang: go
          label: Go
          source: "ctx := context.Background()\n// Reads DIDIT_API_KEY.\nclient := didit.NewClient()\n\nresult, err := client.Questionnaires.Create(ctx, didit.SimpleQuestionnaireRequest{\n\tTitle:           \"Customer Onboarding\",\n\tDescription:     didit.String(\"Additional information needed for verification\"),\n\tLanguages:       []string{\"en\"},\n\tDefaultLanguage: didit.String(\"en\"),\n\tIsActive:        didit.Bool(true),\n\tFormElements: []didit.SimpleQuestionnaireElement{{\n\t\tID:          didit.String(\"occupation\"),\n\t\tElementType: \"short_text\",\n\t\tLabel:       map[string]string{\"en\": \"What is your occupation?\"},\n\t\tPlaceholder: didit.Some(map[string]string{\"en\": \"Software engineer\"}),\n\t\tIsRequired:  didit.Bool(true),\n\t}, {\n\t\tID:          didit.String(\"source_of_funds\"),\n\t\tElementType: \"multiple_choice\",\n\t\tLabel:       map[string]string{\"en\": \"Source of funds\"},\n\t\tIsRequired:  didit.Bool(true),\n\t\tOptions: didit.Some([]didit.SimpleQuestionnaireElementOptions{{\n\t\t\tValue: didit.String(\"employment\"),\n\t\t\tLabel: map[string]string{\"en\": \"Employment\"},\n\t\t}, {\n\t\t\tValue: didit.String(\"business\"),\n\t\t\tLabel: map[string]string{\"en\": \"Business\"},\n\t\t}, {\n\t\t\tValue: didit.String(\"investments\"),\n\t\t\tLabel: map[string]string{\"en\": \"Investments\"},\n\t\t}, {\n\t\t\tValue: didit.String(\"other\"),\n\t\t\tLabel: map[string]string{\"en\": \"Other\"},\n\t\t}}),\n\t}},\n})\nif err != nil {\n\tlog.Fatal(err)\n}\nfmt.Printf(\"%+v\\n\", result)"
        - lang: java
          label: Java
          source: >-
            import java.util.List;

            import java.util.Map;

            import me.didit.Didit;

            import me.didit.types.SimpleQuestionnaireElement;

            import me.didit.types.SimpleQuestionnaireRequest;


            // Reads DIDIT_API_KEY.

            Didit client = new Didit();


            var result =
            client.questionnaires().create(SimpleQuestionnaireRequest.builder()
                    .title("Customer Onboarding")
                    .description("Additional information needed for verification")
                    .languages(List.of("en"))
                    .defaultLanguage("en")
                    .isActive(true)
                    .formElements(List.of(
                            SimpleQuestionnaireElement.builder()
                                    .id("occupation")
                                    .elementType(SimpleQuestionnaireElement.ElementType.of("short_text"))
                                    .label(Map.of("en", "What is your occupation?"))
                                    .placeholder(Map.of("en", "Software engineer"))
                                    .isRequired(true)
                                    .build(),
                            SimpleQuestionnaireElement.builder()
                                    .id("source_of_funds")
                                    .elementType(SimpleQuestionnaireElement.ElementType.of("multiple_choice"))
                                    .label(Map.of("en", "Source of funds"))
                                    .isRequired(true)
                                    .options(List.of(
                                            SimpleQuestionnaireElement.Options.builder()
                                                    .value("employment")
                                                    .label(Map.of("en", "Employment"))
                                                    .build(),
                                            SimpleQuestionnaireElement.Options.builder()
                                                    .value("business")
                                                    .label(Map.of("en", "Business"))
                                                    .build(),
                                            SimpleQuestionnaireElement.Options.builder()
                                                    .value("investments")
                                                    .label(Map.of("en", "Investments"))
                                                    .build(),
                                            SimpleQuestionnaireElement.Options.builder()
                                                    .value("other")
                                                    .label(Map.of("en", "Other"))
                                                    .build()))
                                    .build()))
                    .build());
            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->create([
                'title' => 'Customer Onboarding',
                'description' => 'Additional information needed for verification',
                'languages' => ['en'],
                'default_language' => 'en',
                'is_active' => true,
                'form_elements' => [[
                    'id' => 'occupation',
                    'element_type' => 'short_text',
                    'label' => ['en' => 'What is your occupation?'],
                    'placeholder' => ['en' => 'Software engineer'],
                    'is_required' => true,
                ], [
                    'id' => 'source_of_funds',
                    'element_type' => 'multiple_choice',
                    'label' => ['en' => 'Source of funds'],
                    'is_required' => true,
                    'options' => [[
                        'value' => 'employment',
                        'label' => ['en' => 'Employment'],
                    ], [
                        'value' => 'business',
                        'label' => ['en' => 'Business'],
                    ], [
                        'value' => 'investments',
                        'label' => ['en' => 'Investments'],
                    ], [
                        'value' => 'other',
                        'label' => ['en' => 'Other'],
                    ]],
                ]],
            ]);
            print_r($result->toArray());
        - lang: ruby
          label: Ruby
          source: |-
            require "didit"

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

            result = didit.questionnaires.create(
              title: "Customer Onboarding",
              description: "Additional information needed for verification",
              languages: ["en"],
              default_language: "en",
              is_active: true,
              form_elements: [{
                id: "occupation",
                element_type: "short_text",
                label: { en: "What is your occupation?" },
                placeholder: { en: "Software engineer" },
                is_required: true,
              }, {
                id: "source_of_funds",
                element_type: "multiple_choice",
                label: { en: "Source of funds" },
                is_required: true,
                options: [{
                  value: "employment",
                  label: { en: "Employment" },
                }, {
                  value: "business",
                  label: { en: "Business" },
                }, {
                  value: "investments",
                  label: { en: "Investments" },
                }, {
                  value: "other",
                  label: { en: "Other" },
                }],
              }]
            )
            puts result.to_h
        - lang: csharp
          label: .NET
          source: >-
            using System;

            using System.Collections.Generic;

            using System.Text.Json;

            using Didit;


            // Reads DIDIT_API_KEY.

            using var client = new DiditClient();


            var result = await client.Questionnaires.CreateAsync(new
            SimpleQuestionnaireRequest

            {
                Title = "Customer Onboarding",
                Description = "Additional information needed for verification",
                Languages = new string[] { "en" },
                DefaultLanguage = "en",
                IsActive = true,
                FormElements = new SimpleQuestionnaireElement[]
                {
                    new()
                    {
                        Id = "occupation",
                        ElementType = "short_text",
                        Label = new Dictionary<string, string> { ["en"] = "What is your occupation?" },
                        Placeholder = new Dictionary<string, string> { ["en"] = "Software engineer" },
                        IsRequired = true,
                    },
                    new()
                    {
                        Id = "source_of_funds",
                        ElementType = "multiple_choice",
                        Label = new Dictionary<string, string> { ["en"] = "Source of funds" },
                        IsRequired = true,
                        Options = new SimpleQuestionnaireElementOptions[]
                        {
                            new()
                            {
                                Value = "employment",
                                Label = new Dictionary<string, string> { ["en"] = "Employment" },
                            },
                            new()
                            {
                                Value = "business",
                                Label = new Dictionary<string, string> { ["en"] = "Business" },
                            },
                            new()
                            {
                                Value = "investments",
                                Label = new Dictionary<string, string> { ["en"] = "Investments" },
                            },
                            new()
                            {
                                Value = "other",
                                Label = new Dictionary<string, string> { ["en"] = "Other" },
                            },
                        },
                    },
                },
            });

            Console.WriteLine(JsonSerializer.Serialize(result));
components:
  schemas:
    SimpleQuestionnaireRequest:
      type: object
      description: >-
        Crea un questionario lineare semplice. L'API converte `form_elements`
        nel grafo interno del questionario.
      required:
        - title
        - languages
        - form_elements
      properties:
        title:
          type: string
          description: Nome interno del questionario.
        description:
          type: string
          nullable: true
        languages:
          type: array
          description: Lingue incluse in ogni etichetta. Deve includere `en`.
          items:
            type: string
          example:
            - en
        default_language:
          type: string
          description: Lingua predefinita. Deve essere inclusa in `languages`.
          example: en
        is_active:
          type: boolean
          default: true
        status:
          type: string
          enum:
            - draft
            - published
          description: >-
            Ometti questo campo per creare un questionario pubblicato pronto per
            i workflow.
        form_elements:
          type: array
          minItems: 1
          description: >-
            Domande nell'ordine esatto in cui gli utenti dovrebbero vederle. La
            ramificazione e i campi condizionali non sono supportati.
          items:
            $ref: '#/components/schemas/SimpleQuestionnaireElement'
    QuestionnaireDetail:
      type: object
      description: >-
        Dettaglio completo del questionario restituito dagli endpoint GET, POST
        (creazione) e PATCH (aggiornamento).
      properties:
        questionnaire_id:
          type: string
          format: uuid
          description: >-
            Identificativo univoco del questionario. Usa questo id quando fai
            riferimento al questionario da un workflow o nelle successive
            richieste di aggiornamento/eliminazione.
        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: Struttura a grafo con start_node e mappa dei nodi.
        sections:
          type: array
          description: >-
            Contenuto del questionario raggruppato in sezioni (derivato dal
            grafo).
          items:
            type: object
        questionnaire_group_id:
          type: string
          format: uuid
          description: >-
            Identificatore stabile che raggruppa tutte le versioni dello stesso
            questionario.
        version:
          type: integer
        status:
          type: string
          enum:
            - draft
            - published
        published_at:
          type: string
          format: date-time
          nullable: true
        is_editable:
          type: boolean
          description: >-
            True quando il questionario può ancora essere modificato
            direttamente (versioni in bozza).
    SimpleQuestionnaireElement:
      type: object
      required:
        - element_type
        - label
      properties:
        id:
          type: string
          description: >-
            ID domanda stabile opzionale. Se omesso, l'API genera `q1`, `q2`,
            ecc. Usa lettere minuscole, numeri e trattini bassi per migliorare
            la leggibilità.
          example: source_of_funds
        element_type:
          type: string
          description: >-
            Tipo di domanda. L'API accetta questi valori in lettere minuscole e
            i loro equivalenti in lettere maiuscole.
          enum:
            - short_text
            - long_text
            - dropdown
            - single_choice
            - multiple_choice
            - number
            - image
            - file_upload
            - time
            - email
            - address
            - phone
            - country
            - date_picker
            - consent
            - section_header
            - separator
            - heading
            - paragraph
        label:
          type: object
          description: >-
            Etichetta della domanda per codice lingua, ad esempio `{ "en":
            "Source of funds" }`.
          additionalProperties:
            type: string
        description:
          type: object
          nullable: true
          additionalProperties:
            type: string
        placeholder:
          type: object
          nullable: true
          additionalProperties:
            type: string
        is_required:
          type: boolean
          default: false
        options:
          type: array
          description: >-
            Usa per `dropdown`, `single_choice` e `multiple_choice`. Se `value`
            viene omesso, l'API ne genera uno a partire dall'etichetta
            dell'opzione.
          items:
            type: object
            required:
              - label
            properties:
              value:
                type: string
              label:
                type: object
                additionalProperties:
                  type: string
        max_files:
          type: integer
          minimum: 1
          maximum: 5
          description: Usa con `file_upload` o `image`.
        validation:
          type: object
          nullable: true
          description: >-
            Validazione del formato opzionale per `short_text`, `long_text` o
            `number`. Applicata mentre l'utente compila il campo (non può
            procedere finché non è superata) e riverificata dall'API al momento
            dell'invio.
          properties:
            pattern:
              type: string
              description: >-
                Espressione regolare (sottoinsieme ECMA-262) a cui il valore
                deve corrispondere completamente. Per `short_text` e
                `long_text`. Non aggiungere gli ancoraggi ^/$; il confronto
                viene eseguito sull'intero valore.
            min_length:
              type: integer
              minimum: 0
              description: Numero minimo di caratteri. Per `short_text` e `long_text`.
            max_length:
              type: integer
              minimum: 0
              description: Numero massimo di caratteri. Per `short_text` e `long_text`.
            min:
              type: number
              description: Valore numerico minimo. Per `number`.
            max:
              type: number
              description: Valore numerico massimo. Per `number`.
            error_message:
              type: object
              description: >-
                Messaggio tradotto mostrato quando la validazione non riesce,
                indicizzato per codice lingua.
              additionalProperties:
                type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        La chiave API della tua applicazione, da Developers -> API keys nella
        Business Console. La chiave primaria ha accesso completo. Una chiave con
        nome può avere un ambito definito: nessuno, lettura o scrittura per
        risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco
        di indirizzi IP e a una data di scadenza. 401 indica che la chiave è
        errata, revocata o scaduta; 403 indica che non è stata inviata alcuna
        chiave, che la chiave non ha accesso a questa risorsa o azione, oppure
        che la richiesta proviene da un indirizzo non incluso nel suo elenco IP;
        404 su una route di sessione indica che la sessione non rientra nei
        workflow o negli stati previsti dalla chiave. Una chiave senza accesso
        ai media riceve gli URL di immagini, video e PDF come null, e una chiave
        senza permessi di scrittura sulle sessioni riceve link e token di
        sessione come null. Consulta https://docs.didit.me/console/api-keys.

````

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