---
title: "Changes to Create thread and run"
method: POST
path: "/threads/runs"
---

# Changes to Create thread and run

`POST /threads/runs`

> Every recorded change to this endpoint, newest first.

## Timeline

Changed in 14 of 163 revisions.

- **2026-09-03** `9430b00d75b4` — 1 info
- **2026-08-14** `6ac2618eefd7` — 1 info
- **2026-05-13** `74cbcf73838f` — 17 breaking, 2 warning, 19 info
- **2025-04-29** `6a6c681b1820` — 6 info
- **2025-03-11** `6ab43fe7798e` — 2 breaking, 1 warning, 5 info
- **2025-01-31** `fc164a27fdb9` — 11 breaking, 3 warning, 6 info
- **2025-01-31** `15156e46769c` — 8 breaking, 3 warning, 11 info
- **2025-01-22** `bdebcdfcbbde` — 11 breaking, 3 warning, 5 info
- **2024-12-04** `223e7c033ac6` — 1 info
- **2024-09-13** `4c9e3967c707` — 1 breaking, 1 info
- **2024-08-23** `5856f8b0c850` — 2 info
- **2024-08-06** `8eca3b09b705` — 3 breaking, 7 info
- **2024-07-17** `12529f330aab` — 2 breaking
- **2024-07-15** `493a67abde1a` — 2 info

## Changes

- **2026-09-03** `9430b00d75b4` — 1 info
  - added the optional property `error/misalignment` to the response with the `429` status
- **2026-08-14** `6ac2618eefd7` — 1 info
  - added the non-success response with the status `429`
- **2026-05-13** `74cbcf73838f` — 17 breaking, 2 warning, 19 info
  - the request property `metadata` became not nullable
  - the request property `response_format/oneOf[subschema #4: JSON schema]/json_schema/strict` became not nullable
  - the request property `thread/messages/items/attachments` became not nullable
  - the request property `thread/messages/items/metadata` became not nullable
  - the request property `thread/metadata` became not nullable
  - the request property `thread/tool_resources` became not nullable
  - the request property `tools/items/oneOf[subschema #3: Function tool]/function/strict` became not nullable
  - the request property `truncation_strategy/allOf[subschema #1: Thread Truncation Controls]/last_messages` became not nullable
  - the `thread/tool_resources` request property type changed from `object` to no type
  - response property `metadata` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `response_format/oneOf[subschema #4: JSON schema]/json_schema/strict` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `tools/items/oneOf[subschema #3: Function tool]/function/strict` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `truncation_strategy/allOf[subschema #1: Thread Truncation Controls]/last_messages` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - the `usage` response's property type changed from `object` to no type for status `200`
  - removed the required property `usage/completion_tokens` from the response with the `200` status
  - removed the required property `usage/prompt_tokens` from the response with the `200` status
  - removed the required property `usage/total_tokens` from the response with the `200` status
  - removed the request property `thread/tool_resources/code_interpreter`
  - removed the request property `thread/tool_resources/file_search`
  - added `subschema #1, subschema #2` to the `thread/tool_resources` request property `anyOf` list
  - the `strict` request property default value `false` was removed
  - the `strict` request property default value `false` was removed
  - added the new `gpt-5` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-5-2025-08-07` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-5-mini` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-5-mini-2025-08-07` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-5-nano` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-5-nano-2025-08-07` enum value to the request property `model/anyOf[subschema #2]/`
  - request property `metadata` list-of-types was widened by adding types `null` to media type `application/json`
  - request property `response_format/oneOf[subschema #4: JSON schema]/json_schema/strict` list-of-types was widened by adding types `null` to media type `application/json`
  - request property `thread/messages/items/attachments` list-of-types was widened by adding types `null` to media type `application/json`
  - request property `thread/messages/items/metadata` list-of-types was widened by adding types `null` to media type `application/json`
  - request property `thread/metadata` list-of-types was widened by adding types `null` to media type `application/json`
  - request property `tools/items/oneOf[subschema #3: Function tool]/function/strict` list-of-types was widened by adding types `null` to media type `application/json`
  - request property `truncation_strategy/allOf[subschema #1: Thread Truncation Controls]/last_messages` list-of-types was widened by adding types `null` to media type `application/json`
  - added `subschema #1, subschema #2` to the `usage` response property `anyOf` list for the response status `200`
  - the `strict` response's property default value `false` was removed for the status `200`
  - the `strict` response's property default value `false` was removed for the status `200`
- **2025-04-29** `6a6c681b1820` — 6 info
  - added the new `gpt-4.1` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-4.1-2025-04-14` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-4.1-mini` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-4.1-mini-2025-04-14` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-4.1-nano` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-4.1-nano-2025-04-14` enum value to the request property `model/anyOf[subschema #2]/`
- **2025-03-11** `6ab43fe7798e` — 2 breaking, 1 warning, 5 info
  - the response property `response_format` became nullable for the status `200`
  - added `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema, subschema #1` to the `response_format` response property `oneOf` list for the response status `200`
  - removed `#/components/schemas/AssistantsApiResponseFormatOption, subschema #2` from the `response_format` request property `allOf` list
  - the request property `response_format` became nullable
  - added the new `gpt-4.5-preview` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-4.5-preview-2025-02-27` enum value to the request property `model/anyOf[subschema #2]/`
  - added `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema, subschema #1` to the `response_format` request property `oneOf` list
  - removed `#/components/schemas/AssistantsApiResponseFormatOption, subschema #2` from the `response_format` response property `allOf` list for the response status `200`
- **2025-01-31** `fc164a27fdb9` — 11 breaking, 3 warning, 6 info
  - added `#/components/schemas/AssistantsApiResponseFormatOption, subschema #2` to the `response_format` request property `allOf` list
  - added `#/components/schemas/AssistantsApiToolChoiceOption, subschema #2` to the `tool_choice` request property `allOf` list
  - added `#/components/schemas/TruncationObject, subschema #2` to the `truncation_strategy` request property `allOf` list
  - the request property `response_format` became not nullable
  - the request property `tool_choice` became not nullable
  - the request property `truncation_strategy` became not nullable
  - removed `#/components/schemas/AssistantsNamedToolChoice, subschema #1` from the `tool_choice` request property `oneOf` list
  - removed `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema, subschema #1` from the `response_format` request property `oneOf` list
  - the `truncation_strategy` request property type changed from `object` to no type
  - the `truncation_strategy` response's property type changed from `object` to no type for status `200`
  - removed the required property `truncation_strategy/type` from the response with the `200` status
  - removed the request property `truncation_strategy/last_messages`
  - removed the request property `truncation_strategy/type`
  - removed the optional property `truncation_strategy/last_messages` from the response with the `200` status
  - the request property `thread/tool_resources/file_search/vector_stores/items/metadata` became nullable
  - added `#/components/schemas/AssistantsApiResponseFormatOption, subschema #2` to the `response_format` response property `allOf` list for the response status `200`
  - added `#/components/schemas/AssistantsApiToolChoiceOption, subschema #2` to the `tool_choice` response property `allOf` list for the response status `200`
  - added `#/components/schemas/TruncationObject, subschema #2` to the `truncation_strategy` response property `allOf` list for the response status `200`
  - removed `#/components/schemas/AssistantsNamedToolChoice, subschema #1` from the `tool_choice` response property `oneOf` list for the response status `200`
  - removed `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema, subschema #1` from the `response_format` response property `oneOf` list for the response status `200`
- **2025-01-31** `15156e46769c` — 8 breaking, 3 warning, 11 info
  - added the new required request property `truncation_strategy/type`
  - the `truncation_strategy` request property type changed from no type to `object`
  - the response property `response_format` became nullable for the status `200`
  - the response property `tool_choice` became nullable for the status `200`
  - the response property `truncation_strategy` became nullable for the status `200`
  - added `#/components/schemas/AssistantsNamedToolChoice, subschema #1` to the `tool_choice` response property `oneOf` list for the response status `200`
  - added `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema, subschema #1` to the `response_format` response property `oneOf` list for the response status `200`
  - the `truncation_strategy` response's property type changed from no type to `object` for status `200`
  - removed `#/components/schemas/AssistantsApiResponseFormatOption, subschema #2` from the `response_format` request property `allOf` list
  - removed `#/components/schemas/AssistantsApiToolChoiceOption, subschema #2` from the `tool_choice` request property `allOf` list
  - removed `#/components/schemas/TruncationObject, subschema #2` from the `truncation_strategy` request property `allOf` list
  - added the new optional request property `truncation_strategy/last_messages`
  - the request property `response_format` became nullable
  - the request property `tool_choice` became nullable
  - the request property `truncation_strategy` became nullable
  - added `#/components/schemas/AssistantsNamedToolChoice, subschema #1` to the `tool_choice` request property `oneOf` list
  - added `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema, subschema #1` to the `response_format` request property `oneOf` list
  - added the optional property `truncation_strategy/last_messages` to the response with the `200` status
  - removed `#/components/schemas/AssistantsApiResponseFormatOption, subschema #2` from the `response_format` response property `allOf` list for the response status `200`
  - removed `#/components/schemas/AssistantsApiToolChoiceOption, subschema #2` from the `tool_choice` response property `allOf` list for the response status `200`
  - removed `#/components/schemas/TruncationObject, subschema #2` from the `truncation_strategy` response property `allOf` list for the response status `200`
  - added the required property `truncation_strategy/type` to the response with the `200` status
- **2025-01-22** `bdebcdfcbbde` — 11 breaking, 3 warning, 5 info
  - added `#/components/schemas/AssistantsApiResponseFormatOption, subschema #2` to the `response_format` request property `allOf` list
  - added `#/components/schemas/AssistantsApiToolChoiceOption, subschema #2` to the `tool_choice` request property `allOf` list
  - added `#/components/schemas/TruncationObject, subschema #2` to the `truncation_strategy` request property `allOf` list
  - the request property `response_format` became not nullable
  - the request property `tool_choice` became not nullable
  - the request property `truncation_strategy` became not nullable
  - removed `#/components/schemas/AssistantsNamedToolChoice, subschema #1` from the `tool_choice` request property `oneOf` list
  - removed `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema, subschema #1` from the `response_format` request property `oneOf` list
  - the `truncation_strategy` request property type changed from `object` to no type
  - the `truncation_strategy` response's property type changed from `object` to no type for status `200`
  - removed the required property `truncation_strategy/type` from the response with the `200` status
  - removed the request property `truncation_strategy/last_messages`
  - removed the request property `truncation_strategy/type`
  - removed the optional property `truncation_strategy/last_messages` from the response with the `200` status
  - added `#/components/schemas/AssistantsApiResponseFormatOption, subschema #2` to the `response_format` response property `allOf` list for the response status `200`
  - added `#/components/schemas/AssistantsApiToolChoiceOption, subschema #2` to the `tool_choice` response property `allOf` list for the response status `200`
  - added `#/components/schemas/TruncationObject, subschema #2` to the `truncation_strategy` response property `allOf` list for the response status `200`
  - removed `#/components/schemas/AssistantsNamedToolChoice, subschema #1` from the `tool_choice` response property `oneOf` list for the response status `200`
  - removed `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema, subschema #1` from the `response_format` response property `oneOf` list for the response status `200`
- **2024-12-04** `223e7c033ac6` — 1 info
  - added the new `gpt-4o-2024-11-20` enum value to the request property `model/anyOf[subschema #2]/`
- **2024-09-13** `4c9e3967c707` — 1 breaking, 1 info
  - the request property `tools/items/oneOf[subschema #2: FileSearch tool]/file_search/ranking_options/score_threshold` became required
  - the response property `tools/items/oneOf[subschema #2: FileSearch tool]/file_search/ranking_options/score_threshold` became required for the status `200`
- **2024-08-23** `5856f8b0c850` — 2 info
  - added the new optional request property `tools/items/oneOf[subschema #2: FileSearch tool]/file_search/ranking_options`
  - added the optional property `tools/items/oneOf[subschema #2: FileSearch tool]/file_search/ranking_options` to the response with the `200` status
- **2024-08-06** `8eca3b09b705` — 3 breaking, 7 info
  - removed the enum value `none` of the request property `response_format/oneOf[subschema #1]/`
  - removed `#/components/schemas/AssistantsApiResponseFormat` from the `response_format` request property `oneOf` list
  - added `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema` to the `response_format` response property `oneOf` list for the response status `200`
  - added the new optional request property `tools/items/oneOf[subschema #3: Function tool]/function/strict`
  - added the new `gpt-4o-2024-08-06` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-4o-2024-08-06` enum value to the request property `model/anyOf[subschema #2]/`
  - added `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema` to the `response_format` request property `oneOf` list
  - added the optional property `tools/items/oneOf[subschema #3: Function tool]/function/strict` to the response with the `200` status
  - removed the `none` enum value from the `response_format/oneOf[subschema #1]/` response property for the response status `200`
  - removed `#/components/schemas/AssistantsApiResponseFormat` from the `response_format` response property `oneOf` list for the response status `200`
- **2024-07-17** `12529f330aab` — 2 breaking
  - removed the enum value `gpt-4o-mini` of the request property `model/anyOf[subschema #2]/`
  - removed the enum value `gpt-4o-mini-2024-07-18` of the request property `model/anyOf[subschema #2]/`
- **2024-07-15** `493a67abde1a` — 2 info
  - added the new `gpt-4o-mini` enum value to the request property `model/anyOf[subschema #2]/`
  - added the new `gpt-4o-mini-2024-07-18` enum value to the request property `model/anyOf[subschema #2]/`

---

[Operation](https://skmtc.dev/openai/apis/openapi/docs/threads/runs/post.md) · [API](https://skmtc.dev/openai/apis/openapi.md) · [Page](https://skmtc.dev/openai/apis/openapi/changes/threads/runs/post)
