/v1/schemas/openai/chat/realtime/client_secrets
| field | recorded source |
|---|---|
| schema | Source linked above. upstream-spec Source tracefb72772dc5ac65c0457451fcab125a37ffa22b6aea98546e7be3f49396be4442{
"fetchedAt": 1793769007,
"extractorVersion": "1",
"verifiedAt": null
} |
Request body
2 properties · 0 required · 27 $defs| property | type | description | constraints |
|---|---|---|---|
| expires_after | object | Configuration for the client secret expiration. Expiration refers to the time after which a client secret will no longer be valid for creating sessions. The session itself may continue after that time once started. A secret can be used to create multiple sessi… | |
| session | Realtime session configuration | Realtime transcription session configuration | Session configuration to use for the client secret. Choose either a realtime session or a transcription session. |
Types
27 $defsAudioTranscriptionobject
| model | string | enum | The model to use for transcription. Current options are `whisper-1`, `gpt-transcribe`, `gpt-live-transcribe`, `gpt-4o-mini-transcribe`, `gpt-4o-mini-transcribe-2025-12-15`, `gpt-4o-transcribe`, `gpt-4o-transcribe-diarize`, and `gpt-realtime-whisper`. Use `gpt-… | |
| language | string | The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) (e.g. `en`) format will improve accuracy and latency. | |
| languages | string[] | Possible languages of the input audio, in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format. Supported by `gpt-transcribe` and `gpt-live-transcribe`. | items ≥ 1 |
| keywords | string[] | Words or phrases to guide transcription of the input audio. Supported by `gpt-transcribe` and `gpt-live-transcribe`. | |
| prompt | string | An optional text to guide the model's style or continue a previous audio segment. For `whisper-1`, the [prompt is a list of keywords](https://developers.openai.com/api/docs/guides/speech-to-text#prompting). For `gpt-4o-transcribe` models (excluding `gpt-4o-tra… | |
| delay | enum | Controls how long the model waits before emitting transcription text. Higher values can improve transcription accuracy at the cost of latency. Only supported with `gpt-realtime-whisper` in GA Realtime sessions. | minimal | low | medium | high | xhigh |
CallableToolAllowedCallerenum
direct | programmatic
FileInputDetailenum
auto | low | high
ImageDetailenum
low | high | auto | original
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 | The ID of the file to be sent to the model. | 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. | |
| prompt_cache_breakpoint | PromptCacheBreakpointConfig | Marks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block. | |
| 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 `auto` to let the system select the detail level; for GPT-5.6 and later models, `auto` uses high-quality rendering, which may increase input token usage. Use `low` for lower-cost rendering, or `high` to… | auto | low | high |
InputImageContentobject
An image input to the model. Learn about [image inputs](https://developers.openai.com/api/docs/guides/images-vision).
| type* | enum | The type of the input item. Always `input_image`. | input_image · default: "input_image" |
| image_url | string | The URL of the image to be sent to the model. A fully qualified URL or base64 encoded image in a data URL. | format: uri · nullable |
| file_id | string | The ID of the file to be sent to the model. | 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 |
| prompt_cache_breakpoint | PromptCacheBreakpointConfig | Marks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block. |
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. | |
| prompt_cache_breakpoint | PromptCacheBreakpointConfig | Marks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block. |
MCPToolobject
Give the model access to additional tools via remote Model Context Protocol (MCP) servers. [Learn more about MCP](https://developers.openai.com/api/docs/guides/tools-connectors-mcp).
| type* | enum | The type of the MCP tool. Always `mcp`. | mcp |
| server_label* | string | A label for this MCP server, used to identify it in tool calls. | |
| server_url | string | The URL for the MCP server. One of `server_url`, `connector_id`, or `tunnel_id` must be provided. | format: uri |
| connector_id | enum | Identifier for service connectors, like those available in ChatGPT. One of `server_url`, `connector_id`, or `tunnel_id` must be provided. Learn more about service connectors [here](https://developers.openai.com/api/docs/guides/tools-connectors-mcp#connectors). | connector_dropbox | connector_gmail | connector_googlecalendar | connector_googledrive | connector_microsoftteams | connector_outlookcalendar · +2 more · deprecated |
| tunnel_id | string | The Secure MCP Tunnel ID to use instead of a direct server URL. One of `server_url`, `connector_id`, or `tunnel_id` must be provided. | |
| authorization | string | An OAuth access token that can be used with a remote MCP server, either with a custom MCP server URL or a service connector. Your application must handle the OAuth authorization flow and provide the token here. | |
| server_description | string | Optional description of the MCP server, used to provide more context. | |
| headers | object | Optional HTTP headers to send to the MCP server. Use for authentication or other purposes. | nullable |
| allowed_tools | string[] | MCP tool filter | List of allowed tool names or a filter object. | nullable |
| allowed_callers | CallableToolAllowedCaller[] | The tool invocation context(s). | items ≥ 1 · nullable |
| require_approval | MCP tool approval filter | enum | Specify which of the MCP server's tools require approval. | default: "always" · nullable |
| defer_loading | boolean | Whether this MCP tool is deferred and discovered via tool search. |
MCPToolFilterobject
A filter object to specify which tools are allowed.
| tool_names | string[] | List of allowed tool names. | |
| read_only | boolean | Indicates whether or not a tool modifies data or is read-only. If an MCP server is [annotated with `readOnlyHint`](https://modelcontextprotocol.io/specification/2025-06-18/schema#toolannotations-readonlyhint), it will match this filter. |
NoiseReductionTypeenum
Type of noise reduction. `near_field` is for close-talking microphones such as headphones, `far_field` is for far-field microphones such as laptop or conference room microphones.
near_field | far_field
Promptobject
Reference to a prompt template and its variables. [Learn more](https://developers.openai.com/api/docs/guides/text?api-mode=responses#version-prompts-in-code).
| id* | string | The unique identifier of the prompt template to use. | |
| version | string | Optional version of the prompt template. | nullable |
| variables | object | 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 |
PromptCacheBreakpointConfigobject
Marks the exact end of a reusable prompt prefix. When `ttl` is omitted, the breakpoint inherits the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block.
| mode* | enum | The breakpoint mode. Always `explicit`. | explicit · default: "explicit" |
| ttl | enum | The minimum lifetime of this cache breakpoint. Defaults to the request TTL. | 30m | 12h |
RealtimeAudioFormatsPCM audio format | PCMU audio format | PCMA audio format
RealtimeFunctionToolobject
| type | enum | The type of the tool, i.e. `function`. | function |
| name | string | The name of the function. | |
| description | string | The description of the function, including guidance on when and how to call it, and guidance about what to tell the user when calling (if anything). | |
| parameters | object | Parameters of the function in JSON Schema. |
RealtimeNoiseReductionStrengthnumber
Input noise suppression strength. Higher values apply more suppression. Defaults to 1 when noise reduction is first enabled. Omitting strength from a session update preserves the current strength.
0 ≤ n ≤ 1 · default: 1
RealtimeReasoningobject
Configuration for reasoning-capable Realtime models such as `gpt-realtime-2`.
| effort | enum | Constrains effort on reasoning for reasoning-capable Realtime models such as `gpt-realtime-2`. | minimal | low | medium | high | xhigh · default: "low" |
RealtimeReasoningEffortenum
Constrains effort on reasoning for reasoning-capable Realtime models such as `gpt-realtime-2`.
minimal | low | medium | high | xhigh · default: "low"
RealtimeSessionCreateRequestGAobject
Realtime session object configuration.
| type* | enum | The type of session to create. Always `realtime` for the Realtime API. | realtime |
| output_modalities | enum[] | The set of modalities the model can respond with. It defaults to `["audio"]`, indicating that the model will respond with audio plus a transcript. `["text"]` can be used to make the model respond with text only. It is not possible to request both `text` and `a… | default: ["audio"] |
| model | string | enum | The Realtime model used for this session. | |
| instructions | string | The default system instructions (i.e. system message) prepended to model calls. This field allows the client to guide the model on desired responses. The model can be instructed on response content and format, (e.g. "be extremely succinct", "act friendly", "he… | |
| audio | object | Configuration for input and output audio. | |
| include | enum[] | Additional fields to include in server outputs. | |
| tracing | enum | Tracing Configuration | Realtime API can write session traces to the [Traces Dashboard](https://platform.openai.com/logs?api=traces). Set to null to disable tracing. Once tracing is enabled for a session, the configuration cannot be modified. | nullable · default: null |
| tools | RealtimeFunctionTool | MCPTool[] | Tools available to the model. | |
| tool_choice | enum | Function tool | MCP tool | How the model chooses tools. Provide one of the string modes or force a specific function/MCP tool. | default: "auto" |
| parallel_tool_calls | boolean | Whether the model may call multiple tools in parallel. Only supported by reasoning Realtime models such as `gpt-realtime-2`. | |
| reasoning | RealtimeReasoning | Configuration for reasoning-capable Realtime models such as `gpt-realtime-2`. | |
| max_output_tokens | integer | enum | Maximum number of output tokens for a single assistant response, inclusive of tool calls. Provide an integer between 1 and 4096 to limit output tokens, or `inf` for the maximum available tokens for a given model. Defaults to `inf`. | |
| truncation | enum | Retention ratio truncation | When the number of tokens in a conversation exceeds the model's input token limit, the conversation be truncated, meaning messages (starting from the oldest) will not be included in the model's context. A 32k context model with 4,096 max output tokens can only… | |
| prompt | object | Reference to a prompt template and its variables. [Learn more](https://developers.openai.com/api/docs/guides/text?api-mode=responses#version-prompts-in-code). | nullable |
RealtimeTranscriptionSessionCreateRequestGAobject
Realtime transcription session object configuration.
| type* | enum | The type of session to create. Always `transcription` for transcription sessions. | transcription |
| audio | object | Configuration for input and output audio. | |
| include | enum[] | Additional fields to include in server outputs. |
RealtimeTruncationenum | Retention ratio truncation
When the number of tokens in a conversation exceeds the model's input token limit, the conversation be truncated, meaning messages (starting from the oldest) will not be included in the model's context. A 32k context model with 4,096 max output tokens can only…
RealtimeTurnDetectionServer VAD | Semantic VAD
Configuration for turn detection, ether Server VAD or Semantic VAD. This can be set to `null` to turn off, in which case the client must manually trigger model response.
nullable
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.
nullable
ToolChoiceFunctionobject
Use this option to force the model to call a specific function.
| type* | enum | For function calling, the type is always `function`. | function |
| name* | string | The name of the function to call. |
ToolChoiceMCPobject
Use this option to force the model to call a specific tool on a remote MCP server.
| type* | enum | For MCP tools, the type is always `mcp`. | mcp |
| server_label* | string | The label of the MCP server to use. | |
| name | string | The name of the tool to call on the server. | nullable |
ToolChoiceOptionsenum
Controls which (if any) tool is called by the model.
none | auto | required
VoiceIdsOrCustomVoicestring | enum | object
A built-in voice name or a custom voice reference.
Validate a payload
before you spend tokens$ curl -X POST https://modelschemas.com/v1/validate \
-d '{"provider":"openai","endpointId":"realtime/client_secrets","payload":{…}}'
→ {"valid": false, "errors": [{"path": "#", "keyword": "required", …}]}