---
title: "Update Question"
method: PATCH
path: "/questions/{question_id}"
tags: ["questions"]
---

# Update Question

`PATCH /questions/{question_id}`

## Path parameters

- `question_id` string, uuid, required

## Request body

- QuestionUpdate
  - `title` string, nullable — The title of the question
  - `description` string, nullable — The description of the question
  - `settings` union
    - TextQuestionSettingsUpdate
      - `type` 'text', required
      - `use_markdown` boolean, nullable
      - `use_table` boolean, nullable
      - `columns` string[], nullable
    - RatingQuestionSettingsUpdate
      - `type` 'rating', required
    - LabelSelectionSettingsUpdate
      - `type` 'label_selection', required
      - `visible_options` integer, nullable
      - `strict` boolean, nullable
      - `options` OptionSettings[], nullable
        - `value` string, required
        - `text` string, required
        - `description` string, nullable
    - MultiLabelSelectionQuestionSettingsUpdate
      - `type` 'multi_label_selection', required
      - `visible_options` integer, nullable
      - `strict` boolean, nullable
      - `options` OptionSettings[], nullable
        - `value` string, required
        - `text` string, required
        - `description` string, nullable
      - `options_order` 'natural' | 'suggestion'
    - RankingQuestionSettingsUpdate
      - `type` 'ranking', required
    - SpanQuestionSettingsUpdate
      - `type` 'span', required
      - `options` OptionSettings[], nullable
        - `value` string, required
        - `text` string, required
        - `description` string, nullable
      - `visible_options` integer, nullable
      - `allow_overlapping` boolean, nullable
    - TableQuestionSettingsUpdate
      - `type` 'table', required
      - `columns` string[], nullable

## Response `200`

Successful Response

- Question
  - `id` string, uuid, required
  - `name` string, required
  - `title` string, required
  - `description` string, nullable
  - `required` boolean, required
  - `settings` union, required
    - TextQuestionSettings
      - `type` 'text', required
      - `use_markdown` boolean
      - `use_table` boolean
      - `columns` string[], nullable
    - RatingQuestionSettings
      - `type` 'rating', required
      - `options` RatingQuestionSettingsOption[], required
        - `value` integer, required
    - LabelSelectionQuestionSettings
      - `type` 'label_selection', required
      - `options` OptionSettings[], required
        - `value` string, required
        - `text` string, required
        - `description` string, nullable
      - `visible_options` integer, nullable
      - `strict` boolean
    - MultiLabelSelectionQuestionSettings
      - `type` 'multi_label_selection', required
      - `options` OptionSettings[], required
        - `value` string, required
        - `text` string, required
        - `description` string, nullable
      - `visible_options` integer, nullable
      - `strict` boolean
      - `options_order` 'natural' | 'suggestion'
    - RankingQuestionSettings
      - `type` 'ranking', required
      - `options` OptionSettings[], required
        - `value` string, required
        - `text` string, required
        - `description` string, nullable
    - SpanQuestionSettings
      - `type` 'span', required
      - `field` string, required
      - `options` OptionSettings[], required
        - `value` string, required
        - `text` string, required
        - `description` string, nullable
      - `visible_options` integer, nullable
      - `allow_overlapping` boolean — Allow spans overlapping
      - `allow_character_annotation` boolean — Allow character-level annotation
    - TableQuestionSettings
      - `type` 'table', required
      - `columns` string[], nullable
  - `dataset_id` string, uuid, required
  - `inserted_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Unprocessable Content
- `500` — Internal Server Error

## Changes

- **2026-08-24** `ca32894f988c` — 7 breaking, 7 info
  - removed the enum value `label_selection` of the request property `settings/anyOf[subschema #1]/oneOf[subschema #3: LabelSelectionSettingsUpdate]/type`
  - removed the enum value `multi_label_selection` of the request property `settings/anyOf[subschema #1]/oneOf[subschema #4: MultiLabelSelectionQuestionSettingsUpdate]/type`
  - removed the enum value `ranking` of the request property `settings/anyOf[subschema #1]/oneOf[subschema #5: RankingQuestionSettingsUpdate]/type`
  - removed the enum value `rating` of the request property `settings/anyOf[subschema #1]/oneOf[subschema #2: RatingQuestionSettingsUpdate]/type`
  - …10 more
- **2026-08-08** `e9da3a893a88` — 4 info
  - added the new optional request property `settings/anyOf[subschema #1]/oneOf[subschema #1: TextQuestionSettingsUpdate]/columns`
  - added the new optional request property `settings/anyOf[subschema #1]/oneOf[subschema #7: TableQuestionSettingsUpdate]/columns`
  - added the optional property `settings/oneOf[subschema #1: TextQuestionSettings]/columns` to the response with the `200` status
  - added the optional property `settings/oneOf[subschema #7: TableQuestionSettings]/columns` to the response with the `200` status

[Change history](https://skmtc.dev/hf/apis/extralit-v1/changes/questions/:question_id/patch.md)

---

[API](https://skmtc.dev/hf/apis/extralit-v1.md) · [All operations](https://skmtc.dev/hf/apis/extralit-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hf/extralit-v1/revisions/ca32894f988c/schema)
