---
title: "Fork session"
method: POST
path: "/live/sessions/{session_id}/fork"
tags: ["Live"]
---

# Fork session

`POST /live/sessions/{session_id}/fork`

Fork a stored Live session onto a new WebRTC connection.

## Path parameters

- `session_id` string, required

## Request body

- LiveForkRequest — Fork a stored Live session onto a new WebRTC connection. Omit session or send an empty object to inherit its configuration.
  - `session` LiveMediaSessionForkParams — 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.
    - `store` boolean — Whether to store the forked session. Omission inherits the stored session's setting.
    - `delegation` LiveResponsesDelegationUpdateParam — Update the Responses backend for an existing Live session without changing delegation ownership.
      - `type` 'responses', required — The delegation owner. Always `responses` for tasks handled by the Responses API.
      - `responses` LiveResponsesDelegationSettingsUpdateInputParam — Updates to the Responses backend of an existing Live session. Omitted settings retain their current values.
        - `model` string — The Responses backend model to use for subsequent delegated requests. Omit to keep the current backend model.
        - `instructions` string, nullable — 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).
        - `max_output_tokens` integer, nullable — Maximum number of output tokens for each delegated response.
        - `service_tier` 'auto' | 'default' | 'fast_tier_temp_pilot' | 'flex' | 'priority' | 'ultrafast'
        - `reasoning` LiveDelegationReasoningInputParam — Reasoning options for Responses requests made on behalf of the Live session.
          - `effort` 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh'
          - `summary` 'concise' | 'detailed' | 'auto'
        - `text` LiveDelegationTextInputParam — Text generation options for the Live session’s Responses backend.
          - `verbosity` 'low' | 'medium' | 'high'
        - `tools` union[] — Tools available to the Responses backend while it handles tasks delegated by the Live model.
          - union
            - LiveFunctionToolInputParam — A function tool available to the Responses backend when the Live model delegates a task.
              - …
            - LiveWebSearchToolInputParam — A web search tool available to the Live session’s Responses backend.
              - …
        - `tool_choice` union — Controls which tool the Responses backend uses when handling a task delegated by the Live model.
          - 'auto' | 'none' | 'required'
          - LiveFunctionToolChoiceParam
            - `type` 'function', required
            - `name` string, required
          - LiveMCPToolChoiceParam
            - `type` 'mcp', required
            - `server_label` string, required
            - `name` string, required
        - `parallel_tool_calls` boolean, nullable — Whether the delegated Responses model may request multiple tool calls in a single response.
    - `client` LiveClientConfigParam — Startup-only capabilities for an untrusted frontend attached to a unified WebRTC session. Trusted sideband connections are unaffected.
      - `data_channel` LiveDataChannelConfigParam, required — 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.
        - `allowed_client_events` union — 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.
          - 'all'
          - string[]
        - `allowed_server_events` union — 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.
          - 'all'
          - LiveAllowedServerEventParam[]
            - `type` string, required — The outer Live server event type. Use 'response.event' for Responses events.
            - `response_event` string — The nested Responses event type. Required when type is 'response.event'; forbidden for other event types.
  - `transport` LiveWebRTCTransport, required — WebRTC transport carrying the offer SDP in a creation request or answer SDP in its response.
    - `type` 'webrtc', required — The transport used for the Live session. Always `webrtc`.
    - `sdp` string, required — Session Description Protocol message for the WebRTC connection.

## Response `201`

Forked Live session created with a WebRTC answer.

- LiveCreateResponse — The created Live session identifier and WebRTC answer. Apply transport.sdp as the peer's remote answer and wait for session.started on the data channel before sending commands.
  - `session` object, required — The newly created Live session. Use its ID for session controls and sideband connections.
    - `id` string, required — Opaque session identifier. Preserve the returned value unchanged, including its prefix.
  - `transport` LiveWebRTCTransport, required — WebRTC transport carrying the offer SDP in a creation request or answer SDP in its response.
    - `type` 'webrtc', required — The transport used for the Live session. Always `webrtc`.
    - `sdp` string, required — Session Description Protocol message for the WebRTC connection.

## Changes

- **2026-09-10** `d3c0cb1ebbed` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/openai/apis/openapi/changes/live/sessions/:session_id/fork/post.md)

---

[API](https://skmtc.dev/openai/apis/openapi.md) · [All operations](https://skmtc.dev/openai/apis/openapi/llms.txt) · [OpenAPI document](https://skmtc.dev/openai/apis/openapi/revisions/26bd6202a0ad?raw)
