---
title: "Changes to Submit tool outputs to run"
method: POST
path: "/threads/{thread_id}/runs/{run_id}/submit_tool_outputs"
---

# Changes to Submit tool outputs to run

`POST /threads/{thread_id}/runs/{run_id}/submit_tool_outputs`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 26 of 397 revisions.

- **2026-10-06** `e2f8d8cbc41f`: 2 info
- **2026-10-02** `f9e148659438`: 1 breaking, 1 info
- **2026-09-30** `90e34bea7c80`: 1 breaking, 1 info
- **2026-09-28** `32d4d225cfbd`: 1 breaking, 7 info
- **2026-09-28** `4e1468776abf`: 2 breaking, 2 info
- **2026-09-28** `b2454a2815f2`: 1 info
- **2026-09-08** `bb9b3b410112`: 1 info
- **2026-09-03** `9430b00d75b4`: 1 info
- **2026-08-14** `6ac2618eefd7`: 1 info
- **2026-05-13** `74cbcf73838f`: 9 breaking, 4 info
- **2026-04-10** `7c540cce6eb3`: 7 breaking, 9 info
- **2025-03-11** `6ab43fe7798e`: 2 breaking, 1 info
- **2025-01-31** `fc164a27fdb9`: 2 breaking, 1 warning, 5 info
- **2025-01-31** `15156e46769c`: 6 breaking, 5 info
- **2025-01-22** `bdebcdfcbbde`: 2 breaking, 1 warning, 5 info
- **2024-10-23** `b60d5559d515`: 2 breaking, 2 info
- **2024-09-13** `4c9e3967c707`: 1 info
- **2024-09-12** `501122aa32ad`: 1 info
- **2024-08-29** `1dbac0e95bdb`: 1 info
- **2024-08-23** `5856f8b0c850`: 1 info
- **2024-08-06** `8eca3b09b705`: 1 breaking, 3 info
- **2024-08-06** `4097c2f86beb`: 1 breaking, 1 info
- **2024-08-06** `c36d30a94622`: 1 warning, 2 info
- **2024-06-06** `ff436357b123`: 1 info
- **2024-06-03** `0577fd0d08da`: 1 info
- **2024-05-14** `363dd904e5d6`: 1 warning

## Changes

- **2026-10-06** `e2f8d8cbc41f`: 2 info
  - added the optional property `error/misalignment/review_target` to the response with the `429` status
  - added the optional property `oneOf[#/components/schemas/ErrorEvent]/data/misalignment/review_target` to the response with the `200` status
- **2026-10-02** `f9e148659438`: 1 breaking, 1 info
  - added `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10` to the `oneOf[#/components/schemas/RunStreamEvent]/` response property `oneOf` list for the response status `200` (media type: text/event-stream)
  - removed `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10` from the `oneOf[#/components/schemas/RunStreamEvent]/` response property `oneOf` list for the response status `200` (media type: text/event-stream)
- **2026-09-30** `90e34bea7c80`: 1 breaking, 1 info
  - added `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10` to the `oneOf[#/components/schemas/RunStreamEvent]/` response property `oneOf` list for the response status `200` (media type: text/event-stream)
  - removed `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10` from the `oneOf[#/components/schemas/RunStreamEvent]/` response property `oneOf` list for the response status `200` (media type: text/event-stream)
- **2026-09-28** `32d4d225cfbd`: 1 breaking, 7 info
  - added `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10` to the `oneOf[#/components/schemas/RunStreamEvent]/` response property `oneOf` list for the response status `200` (media type: text/event-stream)
  - removed `#/components/schemas/AssistantsApiToolChoiceOption, subschema #2` from the `tool_choice` response property `allOf` list for the response status `200` (media type: application/json)
  - removed `#/components/schemas/TruncationObject, subschema #2` from the `truncation_strategy` response property `allOf` list for the response status `200` (media type: application/json)
  - added `#/components/schemas/AssistantsApiResponseFormatOption, subschema #2` to the `response_format` response property `anyOf` list for the response status `200` (media type: application/json)
  - added `#/components/schemas/AssistantsApiToolChoiceOption, subschema #2` to the `tool_choice` response property `anyOf` list for the response status `200` (media type: application/json)
  - added `#/components/schemas/TruncationObject, subschema #2` to the `truncation_strategy` response property `anyOf` list for the response status `200` (media type: application/json)
  - 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` (media type: application/json)
  - removed `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10` from the `oneOf[#/components/schemas/RunStreamEvent]/` response property `oneOf` list for the response status `200` (media type: text/event-stream)
- **2026-09-28** `4e1468776abf`: 2 breaking, 2 info
  - added `subschema #1, subschema #2, subschema #4, subschema #5` to the `oneOf[#/components/schemas/MessageStreamEvent]/` response property `oneOf` list for the response status `200`
  - added `subschema #1, subschema #2, subschema #4, subschema #5, subschema #6, subschema #7` to the `oneOf[#/components/schemas/RunStepStreamEvent]/` response property `oneOf` list for the response status `200`
  - removed `subschema #1, subschema #2, subschema #4, subschema #5` from the `oneOf[#/components/schemas/MessageStreamEvent]/` response property `oneOf` list for the response status `200`
  - removed `subschema #1, subschema #2, subschema #4, subschema #5, subschema #6, subschema #7` from the `oneOf[#/components/schemas/RunStepStreamEvent]/` response property `oneOf` list for the response status `200`
- **2026-09-28** `b2454a2815f2`: 1 info
  - added the media type `text/event-stream` for the response with the status `200`
- **2026-09-08** `bb9b3b410112`: 1 info
  - added the non-success response with the status `429`
- **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`: 9 breaking, 4 info
  - the request property `stream` became not nullable
  - 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
  - request property `stream` 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`
- **2026-04-10** `7c540cce6eb3`: 7 breaking, 9 info
  - the request property `stream` became not nullable
  - response property `metadata` 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
  - request property `stream` list-of-types was widened by adding types `null` to media type `application/json`
  - added `#/components/schemas/AssistantToolsCode, #/components/schemas/AssistantToolsFileSearch, #/components/schemas/AssistantToolsFunction` to the `tools/items/` response property `anyOf` list for the response status `200`
  - added `#/components/schemas/AssistantsNamedToolChoice, subschema #1: Auto` to the `tool_choice/allOf[#/components/schemas/AssistantsApiToolChoiceOption]/` response property `anyOf` list for the response status `200`
  - added `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema, subschema #1` to the `response_format` response property `anyOf` list for the response status `200`
  - added `subschema #1, subschema #2` to the `usage` response property `anyOf` list for the response status `200`
  - added discriminator to `tools/items/` response property for the response status `200`
  - removed `#/components/schemas/AssistantToolsCode, #/components/schemas/AssistantToolsFileSearch, #/components/schemas/AssistantToolsFunction` from the `tools/items/` response property `oneOf` list for the response status `200`
  - removed `#/components/schemas/AssistantsNamedToolChoice, subschema #1` from the `tool_choice/allOf[#/components/schemas/AssistantsApiToolChoiceOption]/` 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-03-11** `6ab43fe7798e`: 2 breaking, 1 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` response property `allOf` list for the response status `200`
- **2025-01-31** `fc164a27fdb9`: 2 breaking, 1 warning, 5 info
  - 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 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`
- **2025-01-31** `15156e46769c`: 6 breaking, 5 info
  - 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`
  - 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`: 2 breaking, 1 warning, 5 info
  - 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 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-10-23** `b60d5559d515`: 2 breaking, 2 info
  - added `subschema #1: Behavior` to the `response_format` response property `oneOf` list for the response status `200`
  - added `subschema #1: Behavior` to the `tool_choice` response property `oneOf` list for the response status `200`
  - removed `subschema #1` from the `response_format` response property `oneOf` list for the response status `200`
  - removed `subschema #1` from the `tool_choice` response property `oneOf` list for the response status `200`
- **2024-09-13** `4c9e3967c707`: 1 info
  - the response property `tools/items/oneOf[subschema #2: FileSearch tool]/file_search/ranking_options/score_threshold` became required for the status `200`
- **2024-09-12** `501122aa32ad`: 1 info
  - the response property `tools/items/oneOf[subschema #2: FileSearch tool]/file_search/ranking_options/score_threshold` became required for the status `200`
- **2024-08-29** `1dbac0e95bdb`: 1 info
  - added the optional property `tools/items/oneOf[subschema #2: FileSearch tool]/file_search/ranking_options` to the response with the `200` status
- **2024-08-23** `5856f8b0c850`: 1 info
  - 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`: 1 breaking, 3 info
  - 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 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-08-06** `4097c2f86beb`: 1 breaking, 1 info
  - added `#/components/schemas/ResponseFormatText, #/components/schemas/ResponseFormatJsonObject, #/components/schemas/ResponseFormatJsonSchema` to the `response_format` response property `oneOf` list for the response status `200`
  - removed `#/components/schemas/AssistantsApiResponseFormat` from the `response_format` response property `oneOf` list for the response status `200`
- **2024-08-06** `c36d30a94622`: 1 warning, 2 info
  - added the new `json_schema` enum value to the `response_format/oneOf[#/components/schemas/AssistantsApiResponseFormat]/type` response property for the response status `200`
  - 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`
- **2024-06-06** `ff436357b123`: 1 info
  - added the required property `parallel_tool_calls` to the response with the `200` status
- **2024-06-03** `0577fd0d08da`: 1 info
  - added the optional property `tools/items/oneOf[subschema #2: FileSearch tool]/file_search` to the response with the `200` status
- **2024-05-14** `363dd904e5d6`: 1 warning
  - added the new `incomplete` enum value to the `status` response property for the response status `200`

---

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