All monitored APIs

OpenAI API breaking changes & specification history.

Responses, models, embeddings, and media APIs.

18 recorded releases · Last captured 18 Oct 2026.

Which OpenAI API endpoints have captured breaking changes?

18 recorded releases; last specification capture . This dated snapshot contains 67 sampled findings from 10 recent releases, including 14 breaking findings. Up to ten findings are retained per release; these counts are not totals for the complete API history.

Snapshot retrieved . A capture date is not a provider deployment date. Missing or unmatched repository usage is not proof of safety.

Classifications in this bounded snapshot
ClassificationSampled findings
Breaking14
Non-breaking39
Needs review12
Deprecation2
Pending classification0
Breaking endpoint and field evidence
OperationField and ruleCapture
GET /agents/sessions/{session_id}spend_control
response.removed
POST /agents/sessions/responses/201/content/text~1event-stream/schema/oneOf/14/properties/session/properties/spend_control
level.error
GET /agents/sessions/{session_id}/events/responses/200/content/text~1event-stream/schema/oneOf/15/properties/session/properties/spend_control
level.error
GET /agents/sessions/{session_id}/responses/200/content/application~1json/schema/properties/spend_control
level.error
POST /agents/sessionsspend_control
response.removed
POST /agents/sessions/{session_id}spend_control
response.removed
GET /agents/sessionsdata/items/spend_control
response.removed
POST /agents/sessions/responses/201/content/text~1event-stream/schema/oneOf/12/properties/session/properties/spend_control
level.error
POST /responsesOperation-level change
request.content_removed
POST /responses/compactoutput/items/oneOf[subschema #10: Web search tool call]/action/oneOf[subschema #3: Find action]/url
response.now_optional_or_nullable
POST /live/sessions/{session_id}/accept/requestBody/content/application~1json/schema/properties/session/properties/triggers/items
level.error
POST /live/sessions/{session_id}/accept/requestBody/content/application~1json/schema/properties/session/properties/triggers
level.error
POST /live/sessions/requestBody/content/application~1json/schema/properties/session/properties/triggers/items
level.error
POST /live/sessions/requestBody/content/application~1json/schema/properties/session/properties/triggers
level.error

Where does this evidence come from?

Publisher specification
Official specification source
Configured SDK matching
openai
API authentication
bearer
Publisher version
2.3.0

How to check affected code in GitHub · Read a captured OpenAI change report

Snapshot captured 3 Nov 2026. Breaking describes contract evidence; repository impact is a separate analysis.

OpenAI captured release evidence

Dated snapshot: . Latest 10 captured releases, with up to ten findings per release. Contract findings describe specification changes; repository impact is a separate analysis.

OpenAI API specification changes · Revision 1ce9368d

0 recorded findings · no changes · Previous revision 39a28223

No classified endpoint findings recorded for this release.

Inspect the release and evidence · Public source data

OpenAI API specification changes · Revision 39a28223 · POST /agents/sessions

11 recorded findings · classified · Previous revision a62a4100

Needs review: POST /agents/sessions

removed `#/components/schemas/ParityDiffShared_362e316e9bcd17062ef21b97f7d89d7b2c01b45bed7a211d40169c2d9e068ae0` from the `agent/service_tier` request property `anyOf` list

Field: anyOf

Rule: request.removed_unknown_strictness

Non-breaking: POST /agents

added `#/components/schemas/ParityDiffShared_9957c8b5c471bdaf846af7c5e746ef45e0de19b0bbf6e7eb0ab9572fd4ac7fcf` to the `service_tier` request property `anyOf` list

Field: anyOf

Rule: request.added

Non-breaking: POST /moderations

added `#/components/schemas/ParityDiffShared_b89de492c42eaee257613aabed8692757d9999dff0f2f06c7d2314935ccde241, subschema #1, subschema #2` to the `input` request property `oneOf` list

Field: oneOf

Rule: request.added

Non-breaking: POST /agents/sessions

added `#/components/schemas/ParityDiffShared_9957c8b5c471bdaf846af7c5e746ef45e0de19b0bbf6e7eb0ab9572fd4ac7fcf` to the `agent/service_tier` request property `anyOf` list

Field: anyOf

Rule: request.added

Needs review: POST /agents/sessions/{session_id}

removed `#/components/schemas/ParityDiffShared_362e316e9bcd17062ef21b97f7d89d7b2c01b45bed7a211d40169c2d9e068ae0` from the `agent/service_tier` request property `anyOf` list

Field: anyOf

Rule: request.removed_unknown_strictness

Non-breaking:

a breaking change was detected but the version is still `2.3.0`

Rule: level.info

Needs review: POST /moderations

removed `#/components/schemas/ParityDiffShared_6307edc4244621d2e57d65f38e8fc98e651f44033b5faa3d7c79dd20362ded0b, subschema #1, subschema #2` from the `input` request property `oneOf` list

Field: oneOf

Rule: request.removed_unknown_strictness

Needs review: POST /agents/{agent_id}

removed `#/components/schemas/ParityDiffShared_362e316e9bcd17062ef21b97f7d89d7b2c01b45bed7a211d40169c2d9e068ae0` from the `service_tier` request property `anyOf` list

Field: anyOf

Rule: request.removed_unknown_strictness

Non-breaking: POST /agents/sessions/{session_id}

added `#/components/schemas/ParityDiffShared_9957c8b5c471bdaf846af7c5e746ef45e0de19b0bbf6e7eb0ab9572fd4ac7fcf` to the `agent/service_tier` request property `anyOf` list

Field: anyOf

Rule: request.added

Needs review: POST /agents

removed `#/components/schemas/ParityDiffShared_362e316e9bcd17062ef21b97f7d89d7b2c01b45bed7a211d40169c2d9e068ae0` from the `service_tier` request property `anyOf` list

Field: anyOf

Rule: request.removed_unknown_strictness

Showing the first ten findings. Open the release for the remaining changes.

Inspect the release and evidence · Public source data

OpenAI API specification changes · Revision a62a4100 · GET /agents/sessions/{session_id}

26 recorded findings · partial · Previous revision 3b10dfe7

Breaking: GET /agents/sessions/{session_id}

Permanent link to this change

removed the optional property `spend_control` from the response with the `200` status

Field: spend_control

Rule: response.removed

Breaking: POST /agents/sessions

Permanent link to this change

/responses/201/content/text~1event-stream/schema/oneOf/14/properties/session/properties/spend_control: false -> undefined

Field: /responses/201/content/text~1event-stream/schema/oneOf/14/properties/session/properties/spend_control

Rule: level.error

Breaking: GET /agents/sessions/{session_id}/events

Permanent link to this change

/responses/200/content/text~1event-stream/schema/oneOf/15/properties/session/properties/spend_control: false -> undefined

Field: /responses/200/content/text~1event-stream/schema/oneOf/15/properties/session/properties/spend_control

Rule: level.error

Non-breaking:

a breaking change was detected but the version is still `2.3.0`

Rule: level.info

Breaking: GET /agents/sessions/{session_id}

Permanent link to this change

/responses/200/content/application~1json/schema/properties/spend_control: false -> undefined

Field: /responses/200/content/application~1json/schema/properties/spend_control

Rule: level.error

Breaking: POST /agents/sessions

Permanent link to this change

removed the optional property `spend_control` from the response with the `201` status (media type: application/json)

Field: spend_control

Rule: response.removed

Breaking: POST /agents/sessions/{session_id}

Permanent link to this change

removed the optional property `spend_control` from the response with the `200` status

Field: spend_control

Rule: response.removed

Breaking: GET /agents/sessions

Permanent link to this change

removed the optional property `data/items/spend_control` from the response with the `200` status

Field: data/items/spend_control

Rule: response.removed

Breaking: POST /agents/sessions

Permanent link to this change

/responses/201/content/text~1event-stream/schema/oneOf/12/properties/session/properties/spend_control: false -> undefined

Field: /responses/201/content/text~1event-stream/schema/oneOf/12/properties/session/properties/spend_control

Rule: level.error

Non-breaking: GET /agents/sessions/{session_id}/events

removed `subschema #7, subschema #14, subschema #15, subschema #16, subschema #17` from the response body `oneOf` list for the response status `200`

Rule: level.info

Showing the first ten findings. Open the release for the remaining changes.

Inspect the release and evidence · Public source data

OpenAI API specification changes · Revision 3b10dfe7 · POST /audio/voices

6 recorded findings · classified · Previous revision d6625e47

Non-breaking: POST /audio/voices

added `subschema #2: Prompt` to the request body `oneOf` list

Rule: level.info

Non-breaking: POST /audio/voices

added `prompt` mapping keys to the request discriminator

Rule: level.info

Non-breaking: POST /audio/voices

added the new `prompt` enum value to the `type` response property for the response status `200`

Rule: response.added

Needs review: POST /audio/speech

Schema acceptance comparison is unavailable; compatibility requires review.

Rule: coverage.incomplete

Non-breaking: POST /audio/voices

added the optional property `prompt` to the response with the `200` status

Field: prompt

Rule: response.added

Non-breaking: POST /audio/voices

added the media type `application/json` to the request body

Rule: level.info

Inspect the release and evidence · Public source data

OpenAI API specification changes · Revision d6625e47 · GET /responses/{response_id}?beta=true

3 recorded findings · classified · Previous revision 6a85f714

Non-breaking: GET /responses/{response_id}?beta=true

added the media type `text/event-stream` for the response with the status `200`

Rule: level.info

Non-breaking: GET /responses/{response_id}

added the media type `text/event-stream` for the response with the status `200`

Rule: level.info

Non-breaking: POST /completions

added the media type `text/event-stream` for the response with the status `200`

Rule: level.info

Inspect the release and evidence · Public source data

OpenAI API specification changes · Revision 6a85f714 · POST /organization/external_storage

4 recorded findings · classified · Previous revision 61c03019

Non-breaking: POST /organization/external_storage

added the new `degraded` enum value to the `status` response property for the response status `200`

Rule: response.added

Non-breaking: GET /organization/external_storage

added the new `degraded` enum value to the `data/items/status` response property for the response status `200`

Rule: response.added

Non-breaking: POST /organization/external_storage/{external_storage_id}/validate

added the new `degraded` enum value to the `status` response property for the response status `200`

Rule: response.added

Non-breaking: GET /organization/external_storage/{external_storage_id}

added the new `degraded` enum value to the `status` response property for the response status `200`

Rule: response.added

Inspect the release and evidence · Public source data

OpenAI API specification changes · Revision 61c03019 · POST /responses/input_tokens?beta=true

51 recorded findings · classified · Previous revision 6192daf3

Needs review: POST /responses/input_tokens?beta=true

removed `#/components/schemas/ParityDiffShared_de6a105c35ee0f1ee8aeb2cb0198952309c9eb47875171d6ab663ee688eb74ca` from the `input` request property `anyOf` list

Field: anyOf

Rule: request.removed_unknown_strictness

Breaking: POST /responses

Permanent link to this change

removed `#/components/schemas/ParityDiffShared_0e8810ae43823807eccab990e34df237ac1873b84c80352dc52a45f7034c281c` from the request body `allOf` list

Rule: request.content_removed

Non-breaking: GET /responses/{response_id}?beta=true

added `#/components/schemas/ParityDiffShared_f3c9b32d07c7c87b0f4105d25003790d2e9a47ad9d88cbe9e8217a79c5e88ba2` to the response body `allOf` list for the response status `200`

Rule: level.info

Non-breaking: POST /responses/input_tokens?beta=true

added `#/components/schemas/ParityDiffShared_e2462d64ba127fba70021d861fd3fea0dfba35fc73f442fb8cee6f114b130d66` to the `input` request property `anyOf` list

Field: anyOf

Rule: request.added

Non-breaking: POST /responses/input_tokens

added `#/components/schemas/ParityDiffShared_6c8ca79733a77c8b2c7185db3692d1802be842d9bd587ca63ee116a8968f3174` to the `input` request property `anyOf` list

Field: anyOf

Rule: request.added

Needs review: POST /conversations

removed `#/components/schemas/ParityDiffShared_5e571c6ba85288e7a7ac4de3b15ee6c1bbfaf948c0a5a1a616355ee24fb85474` from the `items` request property `anyOf` list

Field: anyOf

Rule: request.removed_unknown_strictness

Non-breaking: POST /conversations/{conversation_id}/items

request property `items/items/oneOf[subschema #2]/oneOf[subschema #6: Web search tool call]/action/oneOf[subschema #3: Find action]/url` list-of-types was widened by adding types `null` to media type `application/json`

Field: items/items/oneOf[subschema #2]/oneOf[subschema #6: Web search tool call]/action/oneOf[subschema #3: Find action]/url

Rule: level.info

Non-breaking: POST /responses/compact?beta=true

added `#/components/schemas/ParityDiffShared_e2462d64ba127fba70021d861fd3fea0dfba35fc73f442fb8cee6f114b130d66` to the `input` request property `anyOf` list

Field: anyOf

Rule: request.added

Needs review: POST /responses/{response_id}/cancel

removed `#/components/schemas/ParityDiffShared_2d624ae74d34d1922d57369d6dcb4dfde3bed2c1d4755716e4ea669dc6cd557e` from the response body `allOf` list for the response status `200`

Rule: level.warning

Breaking: POST /responses/compact

Permanent link to this change

the response property `output/items/oneOf[subschema #10: Web search tool call]/action/oneOf[subschema #3: Find action]/url` became optional for the status `200`

Field: output/items/oneOf[subschema #10: Web search tool call]/action/oneOf[subschema #3: Find action]/url

Rule: response.now_optional_or_nullable

Showing the first ten findings. Open the release for the remaining changes.

Inspect the release and evidence · Public source data

OpenAI API specification changes · Revision 6192daf3 · POST /live/sessions/{session_id}/accept

8 recorded findings · classified · Previous revision ca9d5267

Breaking: POST /live/sessions/{session_id}/accept

Permanent link to this change

/requestBody/content/application~1json/schema/properties/session/properties/triggers/items: undefined -> false

Field: /requestBody/content/application~1json/schema/properties/session/properties/triggers/items

Rule: level.error

Non-breaking: POST /live/sessions/{session_id}/accept

added `subschema #3` to the `session/delegation/anyOf[subschema #1]/` request property `oneOf` list

Field: oneOf

Rule: request.added

Breaking: POST /live/sessions/{session_id}/accept

Permanent link to this change

/requestBody/content/application~1json/schema/properties/session/properties/triggers: undefined -> 2

Field: /requestBody/content/application~1json/schema/properties/session/properties/triggers

Rule: level.error

Breaking: POST /live/sessions

Permanent link to this change

/requestBody/content/application~1json/schema/properties/session/properties/triggers/items: undefined -> false

Field: /requestBody/content/application~1json/schema/properties/session/properties/triggers/items

Rule: level.error

Non-breaking: POST /live/sessions

added the new optional request property `session/triggers`

Field: session/triggers

Rule: level.info

Breaking: POST /live/sessions

Permanent link to this change

/requestBody/content/application~1json/schema/properties/session/properties/triggers: undefined -> 2

Field: /requestBody/content/application~1json/schema/properties/session/properties/triggers

Rule: level.error

Non-breaking: POST /live/sessions

added `subschema #3` to the `session/delegation/anyOf[subschema #1]/` request property `oneOf` list

Field: oneOf

Rule: request.added

Non-breaking: POST /live/sessions/{session_id}/accept

added the new optional request property `session/triggers`

Field: session/triggers

Rule: level.info

Inspect the release and evidence · Public source data

OpenAI API specification changes · Revision ca9d5267 · POST /threads/{thread_id}/runs

7 recorded findings · classified · Previous revision c6cc35e4

Non-breaking: POST /threads/{thread_id}/runs

added `#/components/schemas/ParityDiffShared_8944f63c3647d972aba8ac91271e117f9b4772c35c6c9a5e55c87d806febe8e5` to the `model` request property `anyOf` list

Field: anyOf

Rule: request.added

Non-breaking: POST /assistants

added `#/components/schemas/ParityDiffShared_8944f63c3647d972aba8ac91271e117f9b4772c35c6c9a5e55c87d806febe8e5` to the `model` request property `anyOf` list

Field: anyOf

Rule: request.added

Needs review: POST /assistants/{assistant_id}

removed `#/components/schemas/ParityDiffShared_0ea95e4379f0601cde1a4b9fc78806b23ef5ef072f8a472807341caa2ecbe941` from the `model` request property `anyOf` list

Field: anyOf

Rule: request.removed_unknown_strictness

Non-breaking:

a breaking change was detected but the version is still `2.3.0`

Rule: level.info

Needs review: POST /assistants

removed `#/components/schemas/ParityDiffShared_0ea95e4379f0601cde1a4b9fc78806b23ef5ef072f8a472807341caa2ecbe941` from the `model` request property `anyOf` list

Field: anyOf

Rule: request.removed_unknown_strictness

Needs review: POST /threads/{thread_id}/runs

removed `#/components/schemas/ParityDiffShared_0ea95e4379f0601cde1a4b9fc78806b23ef5ef072f8a472807341caa2ecbe941` from the `model` request property `anyOf` list

Field: anyOf

Rule: request.removed_unknown_strictness

Non-breaking: POST /assistants/{assistant_id}

added `#/components/schemas/ParityDiffShared_8944f63c3647d972aba8ac91271e117f9b4772c35c6c9a5e55c87d806febe8e5` to the `model` request property `anyOf` list

Field: anyOf

Rule: request.added

Inspect the release and evidence · Public source data

OpenAI API specification changes · Revision c6cc35e4 · POST /images/variations

9 recorded findings · partial · Previous revision dc0fb621

Non-breaking: POST /images/variations

added the optional property `safety_identifier` to the response with the `200` status

Field: safety_identifier

Rule: response.added

Non-breaking: POST /images/generations

added the optional property `anyOf[subschema #2]/safety_identifier` to the response with the `200` status (media type: text/event-stream)

Field: anyOf[subschema #2]/safety_identifier

Rule: response.added

Non-breaking: POST /images/edits

added the new optional request property `safety_identifier` (media type: application/json)

Field: safety_identifier

Rule: level.info

Non-breaking: POST /images/edits

added the optional property `safety_identifier` to the response with the `200` status (media type: application/json)

Field: safety_identifier

Rule: response.added

Non-breaking: POST /images/edits

added the optional property `anyOf[subschema #2]/safety_identifier` to the response with the `200` status (media type: text/event-stream)

Field: anyOf[subschema #2]/safety_identifier

Rule: response.added

Deprecation: POST /images/generations

request property `user` deprecated

Field: user

Rule: deprecation

Non-breaking: POST /images/generations

added the new optional request property `safety_identifier`

Field: safety_identifier

Rule: level.info

Deprecation: POST /images/edits

request property `user` deprecated (media type: multipart/form-data)

Field: user

Rule: deprecation

Non-breaking: POST /images/generations

added the optional property `safety_identifier` to the response with the `200` status (media type: application/json)

Field: safety_identifier

Rule: response.added

Inspect the release and evidence · Public source data