/v1/schemas/azure/chat/responses?kind=output
| field | recorded source |
|---|---|
| schema | Source linked above. upstream-spec Source trace9fade08c5d30751828e67fecca63b3800567c802d1d6c4c91bba3d193843f7a8{
"fetchedAt": 1791349936,
"extractorVersion": "1",
"verifiedAt": null
} |
Response body
33 properties · 8 required · 42 $defs| property | type | description | constraints |
|---|---|---|---|
| id* | string | Unique identifier for this Response. | |
| object* | enum | The object type of this resource - always set to `response`. | response |
| created_at* | integer | Unix timestamp (in seconds) of when this Response was created. | format: unixtime |
| error* | OpenAI.ResponseError | An error object returned when the model fails to generate a Response. | nullable |
| incomplete_details* | OpenAI.ResponseIncompleteDetails | nullable | |
| output* | OpenAI.OutputItem[] | An array of content items generated by the model. - The length and order of items in the `output` array is dependent on the model's response. - Rather than accessing the first item in the `output` array and assuming it's an `assistant` message with the content… | |
| instructions* | string | OpenAI.InputItem[] | nullable | |
| parallel_tool_calls* | boolean | Whether to allow the model to run tool calls in parallel. | default: true |
| metadata | OpenAI.Metadata | Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characte… | nullable |
| top_logprobs | integer | nullable | |
| temperature | number | nullable | |
| top_p | number | nullable | |
| user | string | This field is being replaced by `safety_identifier` and `prompt_cache_key`. Use `prompt_cache_key` instead to maintain caching optimizations. A stable identifier for your end-users. Used to boost cache hit rates by better bucketing similar requests and to help… | deprecated |
| safety_identifier | string | A stable identifier used to help detect users of your application that may be violating OpenAI's usage policies. The IDs should be a string that uniquely identifies each user, with a maximum length of 64 characters. We recommend hashing their username or email… | length ≤ 64 |
| prompt_cache_key | string | Used by OpenAI to cache responses for similar requests to optimize your cache hit rates. Replaces the `user` field. [Learn more](/docs/guides/prompt-caching). | |
| prompt_cache_retention | enum | in_memory | 24h · nullable | |
| previous_response_id | string | nullable | |
| model | string | Model ID used to generate the response, like `gpt-4o` or `o3`. OpenAI offers a wide range of models with different capabilities, performance characteristics, and price points. Refer to the [model guide](/docs/models) to browse and compare available models. | |
| reasoning | OpenAI.Reasoning | **gpt-5 and o-series models only** Configuration options for [reasoning models](https://platform.openai.com/docs/guides/reasoning). | nullable |
| background | boolean | nullable | |
| max_tool_calls | integer | nullable | |
| text | OpenAI.ResponseTextParam | Configuration options for a text response from the model. Can be plain text or structured JSON data. Learn more: - [Text inputs and outputs](/docs/guides/text) - [Structured Outputs](/docs/guides/structured-outputs) | |
| tools | OpenAI.Tool[] | An array of tools the model may call while generating a response. You can specify which tool to use by setting the `tool_choice` parameter. We support the following categories of tools: - **Built-in tools**: Tools that are provided by OpenAI that extend the mo… | |
| tool_choice | enum | object | ||
| prompt | OpenAI.Prompt | Reference to a prompt template and its variables. [Learn more](/docs/guides/text?api-mode=responses#reusable-prompts). | |
| truncation | enum | auto | disabled · nullable | |
| status | enum | The status of the response generation. One of `completed`, `failed`, `in_progress`, `cancelled`, `queued`, or `incomplete`. | completed | failed | in_progress | cancelled | queued | incomplete |
| completed_at | string | format: date-time · nullable | |
| output_text | string | nullable | |
| usage | OpenAI.ResponseUsage | Represents token usage details including input tokens, output tokens, a breakdown of output tokens, and the total tokens used. | |
| conversation | OpenAI.ConversationReference | The conversation that this response belonged to. Input items and output items from this response were automatically added to this conversation. | nullable |
| max_output_tokens | integer | nullable | |
| content_filters | AzureContentFilterForResponsesAPI[] | The content filter results from RAI. |
Types
42 $defsAzureContentFilterBlocklistResultobject
A collection of true/false filtering results for configured custom blocklists.
| filtered* | boolean | A value indicating whether any of the detailed blocklists resulted in a filtering action. | |
| details | object[] | The pairs of individual blocklist IDs and whether they resulted in a filtering action. |
AzureContentFilterCompletionTextSpanobject
A representation of a span of completion text as used by Azure OpenAI content filter results.
| completion_start_offset* | integer | Offset of the UTF32 code point which begins the span. | format: int32 |
| completion_end_offset* | integer | Offset of the first UTF32 code point which is excluded from the span. This field is always equal to completion_start_offset for empty spans. This field is always larger than completion_start_offset for non-empty spans. | format: int32 |
AzureContentFilterCompletionTextSpanDetectionResultobject
| filtered* | boolean | Whether the content detection resulted in a content filtering action. | |
| detected* | boolean | Whether the labeled content category was detected in the content. | |
| details* | AzureContentFilterCompletionTextSpan[] | Detailed information about the detected completion text spans. |
AzureContentFilterCustomTopicResultobject
A collection of true/false filtering results for configured custom topics.
| filtered* | boolean | A value indicating whether any of the detailed topics resulted in a filtering action. | |
| details | object[] | The pairs of individual topic IDs and whether they are detected. |
AzureContentFilterDetectionResultobject
A labeled content filter result item that indicates whether the content was detected and whether the content was filtered.
| filtered* | boolean | Whether the content detection resulted in a content filtering action. | |
| detected* | boolean | Whether the labeled content category was detected in the content. |
AzureContentFilterForResponsesAPIobject
| blocked* | boolean | Indicate if the response is blocked. | |
| source_type* | string | The name of the source type of the message. | |
| content_filter_results* | AzureContentFilterResultsForResponsesAPI | A content filter result for a single response item produced by a generative AI system. | |
| content_filter_offsets* | AzureContentFilterResultOffsets | ||
| tool_call_id | string | The ID of the tool call associated with this content filter result, if applicable. |
AzureContentFilterPersonallyIdentifiableInformationResultAzureContentFilterDetectionResult
A labeled content filter result item that indicates whether the content was detected and whether the content was filtered.
| filtered* | boolean | Whether the content detection resulted in a content filtering action. | |
| detected* | boolean | Whether the labeled content category was detected in the content. |
AzureContentFilterResultOffsetsobject
| start_offset* | integer | format: int32 | |
| end_offset* | integer | format: int32 | |
| check_offset* | integer | format: int32 |
AzureContentFilterResultsForResponsesAPIobject
| sexual | AzureContentFilterSeverityResult | A labeled content filter result item that indicates whether the content was filtered and what the qualitative severity level of the content was, as evaluated against content filter configuration for the category. | |
| hate | AzureContentFilterSeverityResult | A labeled content filter result item that indicates whether the content was filtered and what the qualitative severity level of the content was, as evaluated against content filter configuration for the category. | |
| violence | AzureContentFilterSeverityResult | A labeled content filter result item that indicates whether the content was filtered and what the qualitative severity level of the content was, as evaluated against content filter configuration for the category. | |
| self_harm | AzureContentFilterSeverityResult | A labeled content filter result item that indicates whether the content was filtered and what the qualitative severity level of the content was, as evaluated against content filter configuration for the category. | |
| profanity | AzureContentFilterDetectionResult | A labeled content filter result item that indicates whether the content was detected and whether the content was filtered. | |
| custom_blocklists | AzureContentFilterBlocklistResult | A collection of true/false filtering results for configured custom blocklists. | |
| custom_topics | AzureContentFilterCustomTopicResult | A collection of true/false filtering results for configured custom topics. | |
| error | object | If present, details about an error that prevented content filtering from completing its evaluation. | |
| jailbreak* | AzureContentFilterDetectionResult | A labeled content filter result item that indicates whether the content was detected and whether the content was filtered. | |
| task_adherence* | AzureContentFilterDetectionResult | A labeled content filter result item that indicates whether the content was detected and whether the content was filtered. | |
| protected_material_text | AzureContentFilterDetectionResult | A labeled content filter result item that indicates whether the content was detected and whether the content was filtered. | |
| protected_material_code | object | A detection result that describes a match against licensed code or other protected source material. | |
| ungrounded_material | AzureContentFilterCompletionTextSpanDetectionResult | ||
| personally_identifiable_information | AzureContentFilterDetectionResult | A labeled content filter result item that indicates whether the content was detected and whether the content was filtered. | |
| indirect_attack | AzureContentFilterDetectionResult | A labeled content filter result item that indicates whether the content was detected and whether the content was filtered. |
AzureContentFilterSeverityResultobject
A labeled content filter result item that indicates whether the content was filtered and what the qualitative severity level of the content was, as evaluated against content filter configuration for the category.
| filtered* | boolean | Whether the content severity resulted in a content filtering action. | |
| severity* | enum | The labeled severity of the content. | safe | low | medium | high |
AzurePiiSubCategoryResultobject
Result details for individual PIIHarmSubCategory(s).
| sub_category* | string | The PIIHarmSubCategory that was evaluated. | |
| filtered* | boolean | Whether the content detection resulted in a content filtering action for this subcategory. | |
| detected* | boolean | Whether the labeled content subcategory was detected in the content. | |
| redacted* | boolean | Whether the content was redacted for this subcategory. |
OpenAI.ConversationReferenceobject
The conversation that this response belonged to. Input items and output items from this response were automatically added to this conversation.
| id* | string | The unique ID of the conversation that this response was associated with. |
OpenAI.FileInputDetailenum
low | high
OpenAI.ImageDetailenum
low | high | auto | original
OpenAI.InputFileContentobject
A file input to the model.
| type* | enum | The type of the input item. Always `input_file`. | input_file · default: "input_file" |
| file_id | string | nullable | |
| filename | string | The name of the file to be sent to the model. | |
| file_data | string | The content of the file to be sent to the model. | |
| file_url | string | The URL of the file to be sent to the model. | format: uri |
| detail | enum | The detail level of the file to be sent to the model. Use `low` for the default rendering behavior, or `high` to render the file at higher quality. Defaults to `low`. | low | high |
OpenAI.InputImageContentobject
An image input to the model. Learn about [image inputs](/docs/guides/vision).
| type* | enum | The type of the input item. Always `input_image`. | input_image · default: "input_image" |
| image_url | string | format: uri · nullable | |
| file_id | string | nullable | |
| detail* | enum | The detail level of the image to be sent to the model. One of `high`, `low`, `auto`, or `original`. Defaults to `auto`. | low | high | auto | original |
OpenAI.InputItemobject
An item representing part of the context for the response to be generated by the model. Can contain text, images, and audio inputs, as well as previous assistant responses and tool call outputs.
| type* | string | enum |
OpenAI.InputItemTypestring | enum
OpenAI.InputTextContentobject
A text input to the model.
| type* | enum | The type of the input item. Always `input_text`. | input_text · default: "input_text" |
| text* | string | The text input to the model. |
OpenAI.Metadataobject
Set of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard. Keys are strings with a maximum length of 64 characte…
OpenAI.OutputItemobject
| type* | string | enum |
OpenAI.OutputItemTypestring | enum
OpenAI.Promptobject
Reference to a prompt template and its variables. [Learn more](/docs/guides/text?api-mode=responses#reusable-prompts).
| id* | string | The unique identifier of the prompt template to use. | |
| version | string | nullable | |
| variables | OpenAI.ResponsePromptVariables | Optional map of values to substitute in for variables in your prompt. The substitution values can either be strings, or other Response input types like images or files. | nullable |
OpenAI.Reasoningobject
**gpt-5 and o-series models only** Configuration options for [reasoning models](https://platform.openai.com/docs/guides/reasoning).
| effort | enum | Constrains effort on reasoning for [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response. - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1. - All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`. - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort. - `xhigh` is supported for all models after `gpt-5.1-codex-max`. | none | minimal | low | medium | high | xhigh · nullable |
| summary | enum | auto | concise | detailed · nullable | |
| generate_summary | enum | auto | concise | detailed · nullable |
OpenAI.ReasoningEffortenum
Constrains effort on reasoning for [reasoning models](https://platform.openai.com/docs/guides/reasoning). Currently supported values are `none`, `minimal`, `low`, `medium`, `high`, and `xhigh`. Reducing reasoning effort can result in faster responses and fewer tokens used on reasoning in a response. - `gpt-5.1` defaults to `none`, which does not perform reasoning. The supported reasoning values for `gpt-5.1` are `none`, `low`, `medium`, and `high`. Tool calls are supported for all reasoning values in gpt-5.1. - All models before `gpt-5.1` default to `medium` reasoning effort, and do not support `none`. - The `gpt-5-pro` model defaults to (and only supports) `high` reasoning effort. - `xhigh` is supported for all models after `gpt-5.1-codex-max`.
none | minimal | low | medium | high | xhigh · nullable
OpenAI.ResponseErrorobject
An error object returned when the model fails to generate a Response.
| code* | enum | The error code for the response. | server_error | rate_limit_exceeded | invalid_prompt | vector_store_timeout | invalid_image | invalid_image_format · +12 more |
| message* | string | A human-readable description of the error. |
OpenAI.ResponseErrorCodeenum
The error code for the response.
server_error | rate_limit_exceeded | invalid_prompt | vector_store_timeout | invalid_image | invalid_image_format · +12 more
OpenAI.ResponseIncompleteDetailsobject
| reason | enum | max_output_tokens | content_filter |
OpenAI.ResponsePromptVariablesobject
Optional map of values to substitute in for variables in your prompt. The substitution values can either be strings, or other Response input types like images or files.
OpenAI.ResponseTextParamobject
Configuration options for a text response from the model. Can be plain text or structured JSON data. Learn more: - [Text inputs and outputs](/docs/guides/text) - [Structured Outputs](/docs/guides/structured-outputs)
| format | OpenAI.TextResponseFormatConfiguration | An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, which ensures the model will match your supplied JSON schema. Learn more in the [Structured Outputs guide](/docs/guides/structured-o… | |
| verbosity | enum | Constrains the verbosity of the model's response. Lower values will result in more concise responses, while higher values will result in more verbose responses. Currently supported values are `low`, `medium`, and `high`. | low | medium | high · nullable |
OpenAI.ResponseUsageobject
Represents token usage details including input tokens, output tokens, a breakdown of output tokens, and the total tokens used.
| input_tokens* | integer | The number of input tokens. | |
| input_tokens_details* | OpenAI.ResponseUsageInputTokensDetails | A detailed breakdown of the input tokens. | |
| output_tokens* | integer | The number of output tokens. | |
| output_tokens_details* | OpenAI.ResponseUsageOutputTokensDetails | A detailed breakdown of the output tokens. | |
| total_tokens* | integer | The total number of tokens used. |
OpenAI.ResponseUsageInputTokensDetailsobject
| cached_tokens* | integer |
OpenAI.ResponseUsageOutputTokensDetailsobject
| reasoning_tokens* | integer |
OpenAI.TextResponseFormatConfigurationobject
An object specifying the format that the model must output. Configuring `{ "type": "json_schema" }` enables Structured Outputs, which ensures the model will match your supplied JSON schema. Learn more in the [Structured Outputs guide](/docs/guides/structured-o…
| type* | string | enum |
OpenAI.TextResponseFormatConfigurationTypestring | enum
OpenAI.Toolobject
A tool that can be used to generate a response.
| type* | string | enum |
OpenAI.ToolChoiceOptionsenum
Controls which (if any) tool is called by the model. `none` means the model will not call any tool and instead generates a message. `auto` means the model can pick between generating a message or calling one or more tools. `required` means the model must call …
none | auto | required
OpenAI.ToolChoiceParamobject
How the model should select which tool (or tools) to use when generating a response. See the `tools` parameter to see how to specify which tools the model can call.
| type* | string | enum |
OpenAI.ToolChoiceParamTypestring | enum
OpenAI.ToolsArrayOpenAI.Tool[]
An array of tools the model may call while generating a response. You can specify which tool to use by setting the `tool_choice` parameter. We support the following categories of tools: - **Built-in tools**: Tools that are provided by OpenAI that extend the mo…
| type* | string | enum |
OpenAI.ToolTypestring | enum
OpenAI.Verbosityenum
Constrains the verbosity of the model's response. Lower values will result in more concise responses, while higher values will result in more verbose responses. Currently supported values are `low`, `medium`, and `high`.
low | medium | high · nullable
Validate a payload
before you spend tokens$ curl -X POST https://modelschemas.com/v1/validate \
-d '{"provider":"azure","endpointId":"responses","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}