## Accept call

`live.sessions.accept(strsession_id, SessionAcceptParams**kwargs)`

**post** `/live/sessions/{session_id}/accept`

Accept an incoming SIP call. Supply session with type live, the model, and startup configuration. Before accepting calls, follow the [Live prompting guide](/api/docs/guides/live-prompting) to write frontend conversation instructions and a separate backend prompt. SIP media format is negotiated; omit audio.format.

### Parameters

- `session_id: str`

- `session: Session`

  Model and startup configuration for the Live session that answers the incoming SIP call.

  - `model: Union[str, Literal["gpt-live-1"]]`

    The Live model to use for the accepted call.

    - `str`

    - `Literal["gpt-live-1"]`

      The Live model. Required in the session configuration for every transport; do not pass it as a URL query parameter.

      - `"gpt-live-1"`

  - `type: Literal["live"]`

    The session type. Always `live`.

    - `"live"`

  - `audio: Optional[SessionAudio]`

    Startup audio output configuration. SIP negotiates the media format; audio.format is only accepted for primary WebSockets. Voice cannot change after startup.

    - `output: Optional[SessionAudioOutput]`

      Settings for speech generated by the Live model. Choose the voice before starting the session.

      - `voice: Optional[SessionAudioOutputVoice]`

        The voice used for Live speech, as a built-in voice name or a custom voice object containing its ID. Defaults to `marin` and cannot change after startup.

        - `str`

        - `Literal["alloy", "ash", "ballad", 19 more]`

          - `"alloy"`

          - `"ash"`

          - `"ballad"`

          - `"beacon"`

          - `"bossa"`

          - `"cedar"`

          - `"cinder"`

          - `"coral"`

          - `"delta"`

          - `"echo"`

          - `"gleam"`

          - `"marin"`

          - `"meridian"`

          - `"quartz"`

          - `"ripple"`

          - `"sage"`

          - `"shimmer"`

          - `"stone"`

          - `"tempo"`

          - `"verse"`

          - `"vesper"`

          - `"willow"`

        - `class CustomVoice: …`

          - `id: str`

  - `delegation: Optional[SessionDelegation]`

    Who handles tasks delegated by the Live model. Omitted or null selects your application; use `responses` to let the API manage a Responses backend.

    - `class ClientDelegation: …`

      Delegate tasks to your application. The Live session emits delegation events that your backend handles.

      - `type: Literal["client"]`

        The delegation owner. Always `client` for tasks handled by your application.

        - `"client"`

    - `class SessionDelegationResponses: …`

      Delegate tasks to a Responses model managed by the Live session.

      - `responses: ResponsesDelegationConfigParam`

        Backend model, prompt, and tools used when the Live session delegates a task to Responses.

        - `model: str`

          The model used for server-owned Responses delegations.

        - `instructions: Optional[str]`

          Instructions for the delegated Responses model, separate from Live instructions. See [backend prompting](/api/docs/guides/live-delegation#start-with-your-existing-backend-prompt).

        - `max_output_tokens: Optional[int]`

          Maximum number of output tokens for each delegated response.

        - `parallel_tool_calls: Optional[bool]`

          Whether the delegated Responses model may request multiple tool calls in a single response.

        - `reasoning: Optional[Reasoning]`

          Reasoning settings passed to each delegated Responses request.

          - `effort: Optional[Literal["none", "minimal", "low", 3 more]]`

            How much reasoning effort the delegated Responses model should use. Supported values depend on the backend model.

            - `"none"`

            - `"minimal"`

            - `"low"`

            - `"medium"`

            - `"high"`

            - `"xhigh"`

          - `summary: Optional[Literal["concise", "detailed", "auto"]]`

            The reasoning summary to request from the delegated Responses model, when supported.

            - `"concise"`

            - `"detailed"`

            - `"auto"`

        - `service_tier: Optional[Literal["auto", "default", "fast_tier_temp_pilot", 3 more]]`

          Service tier for delegated Responses requests.

          - `"auto"`

          - `"default"`

          - `"fast_tier_temp_pilot"`

          - `"flex"`

          - `"priority"`

          - `"ultrafast"`

        - `text: Optional[Text]`

          Text generation settings passed to each delegated Responses request.

          - `verbosity: Optional[Literal["low", "medium", "high"]]`

            The amount of detail in text generated by the Responses backend. This does not configure the Live model’s spoken delivery.

            - `"low"`

            - `"medium"`

            - `"high"`

        - `tool_choice: Optional[ToolChoice]`

          Controls which tool the Responses backend uses when handling a task delegated by the Live model.

          - `Literal["auto", "none", "required"]`

            - `"auto"`

            - `"none"`

            - `"required"`

          - `class ToolChoiceLiveFunctionToolChoiceParam: …`

            - `name: str`

            - `type: Literal["function"]`

              - `"function"`

          - `class ToolChoiceLiveMCPToolChoiceParam: …`

            - `name: str`

            - `server_label: str`

            - `type: Literal["mcp"]`

              - `"mcp"`

        - `tools: Optional[List[Tool]]`

          Tools available to the Responses backend while it handles tasks delegated by the Live model.

          - `class FunctionTool: …`

            A function tool available to the Responses backend when the Live model delegates a task.

            - `name: str`

              The name the delegated Responses model uses when calling this function.

            - `type: Literal["function"]`

              The tool type. Always `function`.

              - `"function"`

            - `description: Optional[str]`

              What the function does and when the delegated Responses model should call it.

            - `parameters: Optional[Dict[str, object]]`

              A JSON Schema object describing the arguments accepted by the function.

            - `strict: Optional[bool]`

              Whether the delegated Responses model must follow the function’s parameter schema exactly.

          - `class ToolWebSearch: …`

            A web search tool available to the Live session’s Responses backend.

            - `type: Literal["web_search"]`

              The tool type. Always `web_search`.

              - `"web_search"`

      - `type: Literal["responses"]`

        The delegation owner. Always `responses` for tasks handled by the Responses API.

        - `"responses"`

  - `input: Optional[Iterable[InitialItemParam]]`

    Ordered text-only history supplied before startup. Supports developer, user, and assistant messages with one text part each; at most 128 messages and 8,192 rendered tokens in total.

    - `class Developer: …`

      A developer message included in the initial text history of a Live session.

      - `content: List[DeveloperContent]`

        The message content. Supply exactly one text part for the initial Live conversation history.

        - `text: str`

          The message text to include in the Live session’s initial conversation history.

        - `type: Optional[Literal["input_text"]]`

          The text content type. Always `input_text`.

          - `"input_text"`

      - `role: Literal["developer"]`

        The author of this history message. Always `developer`.

        - `"developer"`

      - `id: Optional[str]`

        An optional identifier for the supplied history message. Live uses the message’s role and text to initialize the conversation.

      - `status: Optional[Literal["incomplete", "completed"]]`

        The supplied message’s status. Live uses its text as history and does not resume an incomplete message.

        - `"incomplete"`

        - `"completed"`

      - `type: Optional[Literal["message"]]`

        The history item type. Always `message`.

        - `"message"`

    - `class User: …`

      A user message included in the initial text history of a Live session.

      - `content: List[UserContent]`

        The message content. Supply exactly one text part for the initial Live conversation history.

        - `text: str`

          The message text to include in the Live session’s initial conversation history.

        - `type: Optional[Literal["input_text"]]`

          The text content type. Always `input_text`.

          - `"input_text"`

      - `role: Literal["user"]`

        The author of this history message. Always `user`.

        - `"user"`

      - `id: Optional[str]`

        An optional identifier for the supplied history message. Live uses the message’s role and text to initialize the conversation.

      - `status: Optional[Literal["incomplete", "completed"]]`

        The supplied message’s status. Live uses its text as history and does not resume an incomplete message.

        - `"incomplete"`

        - `"completed"`

      - `type: Optional[Literal["message"]]`

        The history item type. Always `message`.

        - `"message"`

    - `class Assistant: …`

      An assistant message included in the initial text history of a Live session.

      - `content: List[AssistantContent]`

        The message content. Supply exactly one text part for the initial Live conversation history.

        - `class AssistantContentText: …`

          Assistant text supplied as conversation history when starting a Live session.

          - `text: str`

            The message text to include in the Live session’s initial conversation history.

          - `type: Optional[Literal["text"]]`

            The text content type. Always `text`.

            - `"text"`

        - `class AssistantContentOutputText: …`

          Assistant output text supplied as conversation history when starting a Live session.

          - `text: str`

            The message text to include in the Live session’s initial conversation history.

          - `type: Literal["output_text"]`

            The text content type. Always `output_text`.

            - `"output_text"`

      - `role: Literal["assistant"]`

        The author of this history message. Always `assistant`.

        - `"assistant"`

      - `id: Optional[str]`

        An optional identifier for the supplied history message. Live uses the message’s role and text to initialize the conversation.

      - `status: Optional[Literal["incomplete", "completed"]]`

        The supplied message’s status. Live uses its text as history and does not resume an incomplete message.

        - `"incomplete"`

        - `"completed"`

      - `type: Optional[Literal["message"]]`

        The history item type. Always `message`.

        - `"message"`

  - `instructions: Optional[str]`

    Frontend instructions for voice, conversation, interruptions, and when to delegate. Start with the [Live prompting guide](/api/docs/guides/live-prompting); put business rules and tool workflows in a separate [backend prompt](/api/docs/guides/live-delegation#start-with-your-existing-backend-prompt). Limited to 16,384 client-supplied tokens. Omitted or blank instructions use server defaults. Immutable after startup.

  - `store: Optional[bool]`

    Whether to store the session for later forking and recording download. Defaults to false for new sessions.

### Example

```python
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get("OPENAI_API_KEY"),  # This is the default and can be omitted
)
client.live.sessions.accept(
    session_id="session_id",
    session={
        "model": "gpt-live-1",
        "type": "live",
    },
)
```
