OpenAI · Schema
LiveForkRequest
Fork a stored Live session onto a new WebRTC connection. Omit session or send an empty object to inherit its configuration.
LLMOpenAIArtificial IntelligenceGenerative AIChatbotsFoundation ModelsT1
Properties
| Name | Type | Description |
|---|---|---|
| session | object | Optional configuration overrides for the new Live session. Omit this object or send an empty object to inherit the stored session's settings. |
| transport | object | WebRTC transport with an SDP offer for the new connection to the forked session. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/openai/main/json-schema/openai-live-fork-request-schema.json",
"title": "LiveForkRequest",
"description": "Fork a stored Live session onto a new WebRTC connection. Omit session or send an empty object to inherit its configuration.",
"x-generated": "2026-09-23",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/openai-live-api-openapi.yml#/components/schemas/LiveForkRequest",
"type": "object",
"properties": {
"session": {
"$ref": "#/$defs/LiveMediaSessionForkParams",
"description": "Optional configuration overrides for the new Live session. Omit this object or send an empty object to inherit the stored session's settings."
},
"transport": {
"$ref": "#/$defs/LiveWebRTCTransport",
"description": "WebRTC transport with an SDP offer for the new connection to the forked session."
}
},
"required": [
"transport"
],
"additionalProperties": false,
"$defs": {
"LiveAllowedServerEventParam": {
"description": "A Live server event selector for the WebRTC frontend data channel.",
"type": "object",
"properties": {
"type": {
"description": "The outer Live server event type. Use 'response.event' for Responses events.",
"type": "string",
"minLength": 1,
"maxLength": 256
},
"response_event": {
"description": "The nested Responses event type. Required when type is 'response.event'; forbidden for other event types.",
"type": "string",
"minLength": 1,
"maxLength": 256
}
},
"required": [
"type"
],
"additionalProperties": false,
"x-oaiMeta": {}
},
"LiveClientConfigParam": {
"description": "Startup-only capabilities for an untrusted frontend attached to a unified WebRTC session. Trusted sideband connections are unaffected.",
"type": "object",
"properties": {
"data_channel": {
"description": "Client and server event permissions for the WebRTC frontend data channel.",
"$ref": "#/$defs/LiveDataChannelConfigParam"
}
},
"required": [
"data_channel"
]
},
"LiveDataChannelConfigParam": {
"description": "Control which Live events an untrusted WebRTC frontend can send and receive over its data channel. These restrictions do not apply to trusted sideband connections.",
"type": "object",
"properties": {
"allowed_client_events": {
"description": "Client event types that the frontend data channel may send. Use 'all' to allow every client event; an empty array allows none. Omission preserves the existing allow-all behavior.",
"oneOf": [
{
"default": "all",
"x-stainless-const": true,
"type": "string",
"enum": [
"all"
]
},
{
"type": "array",
"items": {
"description": "A Live client event type allowed on the frontend data channel, such as `session.input_audio.mute`.",
"type": "string",
"minLength": 1,
"maxLength": 256,
"pattern": "^(?:error|info|[a-z][a-z0-9_-]*(?:\\.[a-z0-9_-]+)+)$"
},
"maxItems": 256
}
]
},
"allowed_server_events": {
"description": "Server events that may be sent to the frontend data channel. Use 'all' to allow every server event; an empty array allows none. Omission preserves the existing allow-all behavior. Responses events use an object with type 'response.event' and a response_event selector.",
"oneOf": [
{
"default": "all",
"x-stainless-const": true,
"type": "string",
"enum": [
"all"
]
},
{
"type": "array",
"items": {
"$ref": "#/$defs/LiveAllowedServerEventParam"
},
"maxItems": 256
}
]
}
},
"required": []
},
"LiveDelegationReasoningInputParam": {
"description": "Reasoning options for Responses requests made on behalf of the Live session.",
"type": "object",
"properties": {
"effort": {
"anyOf": [
{
"description": "How much reasoning effort the delegated Responses model should use. Supported values depend on the backend model.",
"$ref": "#/$defs/LiveReasoningEffort"
},
{
"type": "null"
}
]
},
"summary": {
"anyOf": [
{
"description": "The reasoning summary to request from the delegated Responses model, when supported.",
"$ref": "#/$defs/LiveReasoningSummary"
},
{
"type": "null"
}
]
}
},
"required": []
},
"LiveDelegationTextInputParam": {
"description": "Text generation options for the Live session’s Responses backend.",
"type": "object",
"properties": {
"verbosity": {
"anyOf": [
{
"description": "The amount of detail in text generated by the Responses backend. This does not configure the Live model’s spoken delivery.",
"$ref": "#/$defs/LiveTextVerbosity"
},
{
"type": "null"
}
]
}
},
"required": []
},
"LiveFunctionToolChoiceParam": {
"type": "object",
"properties": {
"type": {
"default": "function",
"x-stainless-const": true,
"type": "string",
"enum": [
"function"
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[a-zA-Z0-9_-]+$"
}
},
"required": [
"type",
"name"
]
},
"LiveFunctionToolInputParam": {
"description": "A function tool available to the Responses backend when the Live model delegates a task.",
"type": "object",
"properties": {
"type": {
"description": "The tool type. Always `function`.",
"default": "function",
"x-stainless-const": true,
"type": "string",
"enum": [
"function"
]
},
"name": {
"description": "The name the delegated Responses model uses when calling this function.",
"type": "string"
},
"description": {
"anyOf": [
{
"description": "What the function does and when the delegated Responses model should call it.",
"type": "string"
},
{
"type": "null"
}
]
},
"parameters": {
"anyOf": [
{
"description": "A JSON Schema object describing the arguments accepted by the function.",
"type": "object",
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"strict": {
"anyOf": [
{
"description": "Whether the delegated Responses model must follow the function’s parameter schema exactly.",
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"required": [
"type",
"name"
]
},
"LiveMCPToolChoiceParam": {
"type": "object",
"properties": {
"type": {
"default": "mcp",
"x-stainless-const": true,
"type": "string",
"enum": [
"mcp"
]
},
"server_label": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[a-zA-Z0-9_-]+$"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"pattern": "^[a-zA-Z0-9_-]+$"
}
},
"required": [
"type",
"server_label",
"name"
]
},
"LiveMediaSessionForkParams": {
"type": "object",
"description": "Optional overrides for a stored Live session. Omitted settings are inherited. The model, voice, frontend instructions, and prior conversation come from the stored session. WebRTC negotiates its audio format; audio.format is only supported on WebSocket forks.",
"properties": {
"store": {
"$ref": "#/$defs/properties-store"
},
"delegation": {
"$ref": "#/$defs/LiveResponsesDelegationUpdateParam"
},
"client": {
"$ref": "#/$defs/LiveClientConfigParam"
}
},
"additionalProperties": false
},
"LiveReasoningEffort": {
"type": "string",
"enum": [
"none",
"minimal",
"low",
"medium",
"high",
"xhigh"
]
},
"LiveReasoningSummary": {
"type": "string",
"enum": [
"concise",
"detailed",
"auto"
]
},
"LiveResponsesDelegationSettingsUpdateInputParam": {
"description": "Updates to the Responses backend of an existing Live session. Omitted settings retain their current values.",
"type": "object",
"properties": {
"model": {
"description": "The Responses backend model to use for subsequent delegated requests. Omit to keep the current backend model.",
"type": "string"
},
"instructions": {
"anyOf": [
{
"description": "Instructions for the delegated Responses model, separate from Live instructions. See [backend prompting](https://developers.openai.com/api/docs/guides/live-delegation#start-with-your-existing-backend-prompt).",
"type": "string"
},
{
"type": "null"
}
]
},
"max_output_tokens": {
"anyOf": [
{
"description": "Maximum number of output tokens for each delegated response.",
"type": "integer",
"minimum": 16
},
{
"type": "null"
}
]
},
"service_tier": {
"anyOf": [
{
"description": "Service tier for delegated Responses requests.",
"$ref": "#/$defs/LiveResponsesServiceTier"
},
{
"type": "null"
}
]
},
"reasoning": {
"anyOf": [
{
"description": "Reasoning settings passed to each delegated Responses request.",
"$ref": "#/$defs/LiveDelegationReasoningInputParam"
},
{
"type": "null"
}
]
},
"text": {
"anyOf": [
{
"description": "Text generation settings passed to each delegated Responses request.",
"$ref": "#/$defs/LiveDelegationTextInputParam"
},
{
"type": "null"
}
]
},
"tools": {
"description": "Tools available to the Responses backend while it handles tasks delegated by the Live model.",
"type": "array",
"items": {
"oneOf": [
{
"$ref": "#/$defs/LiveFunctionToolInputParam"
},
{
"$ref": "#/$defs/LiveWebSearchToolInputParam"
}
]
}
},
"tool_choice": {
"description": "Controls which tool the Responses backend uses when handling a task delegated by the Live model.",
"oneOf": [
{
"$ref": "#/$defs/LiveToolChoiceEnum"
},
{
"$ref": "#/$defs/LiveFunctionToolChoiceParam"
},
{
"$ref": "#/$defs/LiveMCPToolChoiceParam"
}
]
},
"parallel_tool_calls": {
"anyOf": [
{
"description": "Whether the delegated Responses model may request multiple tool calls in a single response.",
"type": "boolean"
},
{
"type": "null"
}
]
}
},
"required": []
},
"LiveResponsesDelegationUpdateParam": {
"description": "Update the Responses backend for an existing Live session without changing delegation ownership.",
"type": "object",
"properties": {
"type": {
"description": "The delegation owner. Always `responses` for tasks handled by the Responses API.",
"default": "responses",
"x-stainless-const": true,
"type": "string",
"enum": [
"responses"
]
},
"responses": {
"description": "Responses backend settings to update. Omitted settings keep their existing values.",
"$ref": "#/$defs/LiveResponsesDelegationSettingsUpdateInputParam"
}
},
"required": [
"type"
]
},
"LiveResponsesServiceTier": {
"type": "string",
"enum": [
"auto",
"default",
"fast_tier_temp_pilot",
"flex",
"priority",
"ultrafast"
]
},
"LiveTextVerbosity": {
"type": "string",
"enum": [
"low",
"medium",
"high"
]
},
"LiveToolChoiceEnum": {
"type": "string",
"enum": [
"auto",
"none",
"required"
]
},
"LiveWebRTCTransport": {
"type": "object",
"description": "WebRTC transport carrying the offer SDP in a creation request or answer SDP in its response.",
"properties": {
"type": {
"type": "string",
"description": "The transport used for the Live session. Always `webrtc`.",
"enum": [
"webrtc"
],
"x-stainless-const": true
},
"sdp": {
"type": "string",
"minLength": 1,
"description": "Session Description Protocol message for the WebRTC connection."
}
},
"required": [
"type",
"sdp"
],
"additionalProperties": false
},
"LiveWebSearchToolInputParam": {
"description": "A web search tool available to the Live session’s Responses backend.",
"type": "object",
"properties": {
"type": {
"description": "The tool type. Always `web_search`.",
"default": "web_search",
"x-stainless-const": true,
"type": "string",
"enum": [
"web_search"
]
}
},
"required": [
"type"
]
},
"properties-store": {
"description": "Whether to store the forked session. Omission inherits the stored session's setting.",
"type": "boolean"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/openai-live-fork-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.