---
title: "Save Questionnaire Responses (Public)"
method: POST
path: "/api/public/intake/questionnaire/responses"
tags: ["Public Questionnaire V2", "Responses"]
---

# Save Questionnaire Responses (Public)

`POST /api/public/intake/questionnaire/responses`

## Request

- Base URL: `https://api.signalshq.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.signalshq.io/api/public/intake/questionnaire/responses`
- Auth: none declared. Required headers: `X-Intake-Token`

Save questionnaire responses using intake token. No authentication required - uses X-Intake-Token header.

## Headers

- `X-Intake-Token` string, required: Secure intake token for document upload request

## Request body

- QuestionnaireResponseBatchCreateRequest: Schema for creating multiple questionnaire responses.
  - `responses` QuestionnaireResponseCreate[], required: List of questionnaire responses to create or update
    - `question_code` string, required: Question code to respond to
    - `values` ResponseValueCreate[], required: Response values (one for single-value, multiple for multi_choice, empty array to clear)
      - `value_boolean` boolean, nullable: Boolean value
      - `value_number` union: Number value
        - number
        - string
      - `value_text` string, nullable: Text value
      - `value_date` string, nullable: Date value in YYYY-MM-DD format
      - `choice_value` string, nullable: Choice value
    - `source` string: Source of the response
    - `change_reason` string, nullable: Reason for change if updating existing response
    - `client_comment` string, nullable: Client comment/note for this question (visible to CPA)
    - `instance_number` integer: Instance number for repeating questions (1-1000, defaults to 1)
    - `response_group_id` string, uuid, nullable: Response group ID for grouping related responses
    - `instance_id` string, uuid, nullable: Repeatable-group entry this answer belongs to. Required for any question inside a repeatable group; the tax-engine resolves the answer against this entry and DISCARDS an instance-less row.

## Response `201`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

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