---
title: "Save Public"
method: PATCH
path: "/api/questionnaires/{shortcode}"
tags: ["Questionnaire Requests"]
---

# Save Public

`PATCH /api/questionnaires/{shortcode}`

## Request

- Base URL: `https://api.openintake.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openintake.ai/api/questionnaires/{shortcode}`
- Auth: none declared

## Path parameters

- `shortcode` string, required

## Request body

- SaveQuestionnaireRequest
  - `revision` integer, required
  - `case_type_id` integer, required
  - `answers` QuestionnaireAnswerInput[]
    - `field_id` integer, required
    - `value` union
      - string
      - string[]
    - `skipped` boolean

## Response `200`

Successful Response

- QuestionnairePage
  - `status` 'active' | 'completed' | 'expired' | 'revoked', required
  - `revision` integer, required
  - `customer_name` string, required
  - `recipient_name` string, nullable
  - `accent_color` string, required
  - `logo_url` string, nullable
  - `page_title` string
  - `subtitle` string
  - `completion_title` string
  - `completion_message` string
  - `review_before_completion` boolean
  - `expires_at` string, date-time, required
  - `is_test` boolean, required
  - `case_type_id` integer, nullable
  - `intro_summary` string, nullable
  - `matters` QuestionnaireMatter[]
    - `case_type_id` integer, required
    - `name` string, required
  - `questions` QuestionnaireQuestion[]
    - `field_id` integer, required
    - `label` string, required
    - `input_type` 'text' | 'textarea' | 'email' | 'tel' | 'date' | 'select' | 'multi_select', required
    - `options` QuestionnaireOption[]
      - `value` string, required
      - `label` string, required
    - `suggested_answers` QuestionnaireOption[]
      - `value` string, required
      - `label` string, required
    - `allow_uncertain` boolean
    - `value` union
      - string
      - string[]
    - `skipped` boolean
    - `prefilled` boolean
  - `adaptive_enabled` boolean
  - `adaptive_ready` boolean
  - `adaptive_processing` boolean
  - `adaptive_language` 'en' | 'es', nullable
  - `adaptive_question` QuestionnaireQuestion
    - `field_id` integer, required
    - `label` string, required
    - `input_type` 'text' | 'textarea' | 'email' | 'tel' | 'date' | 'select' | 'multi_select', required
    - `options` QuestionnaireOption[]
      - `value` string, required
      - `label` string, required
    - `suggested_answers` QuestionnaireOption[]
      - `value` string, required
      - `label` string, required
    - `allow_uncertain` boolean
    - `value` union
      - string
      - string[]
    - `skipped` boolean
    - `prefilled` boolean
  - `previous_question` QuestionnaireQuestion
    - `field_id` integer, required
    - `label` string, required
    - `input_type` 'text' | 'textarea' | 'email' | 'tel' | 'date' | 'select' | 'multi_select', required
    - `options` QuestionnaireOption[]
      - `value` string, required
      - `label` string, required
    - `suggested_answers` QuestionnaireOption[]
      - `value` string, required
      - `label` string, required
    - `allow_uncertain` boolean
    - `value` union
      - string
      - string[]
    - `skipped` boolean
    - `prefilled` boolean
  - `adaptive_remaining_count` integer
  - `inferred_field_ids` integer[]

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-22** `abd382facaad`: 1 breaking, 1 warning, 13 info
  - response property `questions/items/value` list-of-types was widened by adding types `array` to media type `application/json` of response `200`
  - added the new `multi_select` enum value to the `questions/items/input_type` response property for the response status `200`
  - request property `answers/items/value` list-of-types was widened by adding types `array` to media type `application/json`
  - added the optional property `adaptive_enabled` to the response with the `200` status
  - …11 more
- **2026-09-21** `7255c82c55a0`: 1 info
  - added the optional property `intro_summary` to the response with the `200` status
- **2026-09-20** `28867c1dbb52`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openintake/apis/openintake-api/changes/api/questionnaires/:shortcode/patch.md)

---

[API](https://skmtc.dev/openintake/apis/openintake-api.md) - [All operations](https://skmtc.dev/openintake/apis/openintake-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openintake/apis/openintake-api/revisions/de90a8dcbc07?raw)
