Skip to main content
PATCH
/
v3
/
questionnaires
/
{questionnaire_uuid}
cURL
curl -X PATCH 'https://verification.didit.me/v3/questionnaires/11111111-2222-3333-4444-555555555555/' \
  -H 'x-api-key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"title": "Updated Customer Onboarding"}'
{
  "questionnaire_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "title": "<string>",
  "description": "<string>",
  "languages": [
    "<string>"
  ],
  "default_language": "<string>",
  "is_active": true,
  "is_simple_questionnaire": true,
  "graph": {},
  "sections": [
    {}
  ],
  "questionnaire_group_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "version": 123,
  "published_at": "2023-11-07T05:31:56Z",
  "is_editable": true
}
Use PATCH for partial updates. To rename a questionnaire, send only title or description.
{
  "title": "Updated Customer Onboarding"
}
To update questions, send the full desired form_elements array. This replaces the previous question list. Keep any existing questions you still want to show.
{
  "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" },
      "options": [
        { "value": "employment", "label": { "en": "Employment" } },
        { "value": "business", "label": { "en": "Business" } }
      ]
    }
  ]
}
The v3 API only supports simple linear questionnaires. It rejects graph, branches, next, and conditional rules. The response includes questionnaire_id. When you update a published questionnaire, the API may create a new version. Capture the returned questionnaire_id and use it in workflows instead of assuming the id in the URL is still the latest version.

Authorizations

x-api-key
string
header
required

Path Parameters

questionnaire_uuid
string<uuid>
required

Per-version UUID of the questionnaire to update.

Body

application/json

Update questionnaire metadata or replace the full linear form_elements list.

title
string
description
string | null
languages
string[]
default_language
string
is_active
boolean
status
enum<string>
Available options:
draft,
published
form_elements
object[]

If provided, this replaces the full linear question list.

Minimum array length: 1

Response

Questionnaire updated. The body is the latest state of the questionnaire — either the in-place draft, or the newly created draft version when you patched a published row. questionnaire_id in the response is the per-version UUID; use questionnaire_group_id if you need the stable group identifier.

Full questionnaire detail returned from GET, POST (create) and PATCH (update) endpoints.

questionnaire_id
string<uuid>

Unique identifier of the questionnaire. Use this id when referencing the questionnaire from a workflow or in subsequent update/delete requests.

title
string
description
string | null
languages
string[]
default_language
string
is_active
boolean
is_simple_questionnaire
boolean
graph
object

Graph structure with start_node and nodes map.

sections
object[]

Questionnaire content grouped into sections (derived from the graph).

questionnaire_group_id
string<uuid>

Stable identifier that groups all versions of the same questionnaire.

version
integer
status
enum<string>
Available options:
draft,
published
published_at
string<date-time> | null
is_editable
boolean

True when the questionnaire can still be edited in place (draft versions).