Skip to main content
POST
/
v3
/
questionnaires
Add Questionnaire
curl --request POST \
  --url https://api.{tenant}.getomneo.com/api/v3/questionnaires \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "handle": "<string>",
  "description": "<string>",
  "questionnaireable_type": "<string>",
  "questionnaireable_id": "<string>",
  "profile_id": "<string>",
  "is_active": true,
  "meta": [
    "<string>"
  ],
  "questions": [
    {
      "question_id": 123,
      "question_handle": "<string>",
      "question_version_id": 123,
      "mapping_key": "<string>",
      "sort_order": 1,
      "is_required": true,
      "visibility_condition": [
        "<string>"
      ],
      "is_active": true
    }
  ],
  "pages": [
    {
      "title": "<string>",
      "description": "<string>",
      "image_url": "<string>",
      "section_header": "<string>",
      "sort_order": 1,
      "questions": [
        {
          "question_id": 123,
          "question_handle": "<string>",
          "question_version_id": 123,
          "mapping_key": "<string>",
          "sort_order": 1,
          "is_required": true,
          "visibility_condition": [
            "<string>"
          ],
          "is_active": true
        }
      ]
    }
  ]
}
'
{
  "data": {
    "id": 123,
    "name": "<string>",
    "handle": "<string>",
    "description": "<string>",
    "questionnaireable_type": "<string>",
    "questionnaireable_id": "<string>",
    "profile_id": "<string>",
    "purpose": "<string>",
    "is_active": true,
    "meta": [
      "<unknown>"
    ],
    "created_at": "<string>",
    "updated_at": "<string>",
    "pages": [
      {
        "id": 123,
        "questionnaire_version_id": 123,
        "sort_order": 123,
        "title": "<string>",
        "description": "<string>",
        "image_url": "<string>",
        "section_header": "<string>",
        "created_at": "<string>",
        "updated_at": "<string>",
        "questions": [
          {
            "id": 123,
            "questionnaire_question_id": 123,
            "questionnaire_id": "<string>",
            "questionnaire_page_id": 123,
            "question_id": 123,
            "question_version_id": 123,
            "mapping_key": "<string>",
            "sort_order": 123,
            "is_required": true,
            "visibility_condition": [
              "<unknown>"
            ],
            "visibility_dependencies": [
              "<unknown>"
            ],
            "is_active": true,
            "question": {
              "id": "<string>",
              "handle": "<string>",
              "name": "<string>",
              "link_type": "<string>",
              "link_target": "<string>",
              "link_write_policy": "<string>"
            },
            "version": {
              "id": "<string>",
              "version": "<string>",
              "label": "<string>",
              "description": "<string>",
              "help_text": "<string>",
              "icon": "<string>",
              "image_url": "<string>",
              "type": "<string>",
              "options": "<string>",
              "validation": "<string>",
              "default_value": "<string>"
            },
            "created_at": "<string>",
            "updated_at": "<string>"
          }
        ]
      }
    ]
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.omneo.io/llms.txt

Use this file to discover all available pages before exploring further.

Body

application/json
name
string
required
Maximum string length: 255
handle
string | null
Maximum string length: 255
description
string | null
questionnaireable_type
string | null
Maximum string length: 255
questionnaireable_id
string | null
Maximum string length: 255
profile_id
string | null
purpose
enum<string>
Available options:
booking,
general,
waitlist,
walk_in,
pre_visit,
post_visit,
cancellation,
profile_onboarding,
interaction,
survey
is_active
boolean
meta
string[] | null
questions
object[]

Flat questions[]: every entry lands on the auto-created Page 1. Mutually exclusive with pages[] (validated in withValidator).

pages
object[]

Nested pages[]: structured form with explicit page boundaries. Each page holds its own questions[]. Mutually exclusive with top-level questions[] (validated in withValidator).

Minimum array length: 1

Response

Questionnaire

data
Questionnaire · object
required