OpenAI · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for OpenAI Realtime API
10 actions
10 updates
phrasing
extends
openapi/openai-realtime-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for OpenAI's API. It is a proposal applied on top of the contract, not a document OpenAI publishes.
What the actions change
x-apievangelist-phrasing
Targets 10
$.info
$.paths['/realtime/calls'].post
$.paths['/realtime/calls/{call_id}/accept'].post
$.paths['/realtime/calls/{call_id}/hangup'].post
$.paths['/realtime/calls/{call_id}/refer'].post
$.paths['/realtime/calls/{call_id}/reject'].post
$.paths['/realtime/client_secrets'].post
$.paths['/realtime/sessions'].post
$.paths['/realtime/transcription_sessions'].post
$.paths['/realtime/translations/client_secrets'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for OpenAI Realtime API
version: 1.0.0
extends: openapi/openai-realtime-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 9
- target: $.paths['/realtime/calls'].post
update:
x-apievangelist-phrasing:
intent: Start a realtime voice call over WebRTC
effect: write
questions:
- How do I connect a browser to a realtime voice session over WebRTC?
- Where do I send my SDP offer to get an answer back for a realtime call?
instructions:
- text: Start a WebRTC realtime call with SDP offer {sdp}.
slots:
sdp: requestBody.sdp
- text: Open a realtime call using offer {sdp} and session config {session}.
slots:
sdp: requestBody.sdp
session: requestBody.session
method: generated
generated: '2026-09-26'
- target: $.paths['/realtime/calls/{call_id}/accept'].post
update:
x-apievangelist-phrasing:
intent: Accept an incoming SIP call
effect: write
questions:
- When a phone call comes in over SIP, how do I answer it with a realtime model?
- Can I set instructions and the model at the moment I pick up an incoming call?
instructions:
- text: Accept incoming call {call_id} as a {type} session.
slots:
call_id: path.call_id
type: requestBody.type
- text: Answer SIP call {call_id} as a {type} session on model {model} with instructions {instructions}.
slots:
call_id: path.call_id
type: requestBody.type
model: requestBody.model
instructions: requestBody.instructions
method: generated
generated: '2026-09-26'
- target: $.paths['/realtime/calls/{call_id}/hangup'].post
update:
x-apievangelist-phrasing:
intent: Hang up an active realtime call
effect: destructive
questions:
- How do I end a live realtime call from my server?
- Can I hang up a call whether it came in over SIP or WebRTC?
instructions:
- text: Hang up call {call_id}.
slots:
call_id: path.call_id
- text: End the active realtime call {call_id} now.
slots:
call_id: path.call_id
method: generated
generated: '2026-09-26'
- target: $.paths['/realtime/calls/{call_id}/refer'].post
update:
x-apievangelist-phrasing:
intent: Transfer a SIP call to another destination
effect: write
questions:
- Can I transfer a caller from the voice agent to a human's phone line?
- How do I forward an active SIP call somewhere else?
instructions:
- text: Transfer call {call_id} to {target_uri}.
slots:
call_id: path.call_id
target_uri: requestBody.target_uri
- text: Forward the SIP call {call_id} to destination {target_uri}.
slots:
call_id: path.call_id
target_uri: requestBody.target_uri
method: generated
generated: '2026-09-26'
- target: $.paths['/realtime/calls/{call_id}/reject'].post
update:
x-apievangelist-phrasing:
intent: Decline an incoming SIP call
effect: destructive
questions:
- Can I refuse an incoming phone call instead of answering it?
- What SIP status code is sent when I decline a call without choosing one?
instructions:
- text: Reject incoming call {call_id}.
slots:
call_id: path.call_id
- text: Decline call {call_id} with SIP status code {status_code}.
slots:
call_id: path.call_id
status_code: requestBody.status_code
method: generated
generated: '2026-09-26'
- target: $.paths['/realtime/client_secrets'].post
update:
x-apievangelist-phrasing:
intent: Create a short-lived realtime client secret
effect: write
questions:
- How can my web or mobile app talk to the realtime model without exposing my API key?
- Can I control how long a realtime client secret stays valid?
instructions:
- text: Create a realtime client secret for session config {session}.
slots:
session: requestBody.session
- text: Mint a realtime client secret that expires after {expires_after}.
slots:
expires_after: requestBody.expires_after
method: generated
generated: '2026-09-26'
- target: $.paths['/realtime/sessions'].post
update:
x-apievangelist-phrasing:
intent: Create an ephemeral realtime session token
effect: write
questions:
- Can I preconfigure voice, instructions and tools when creating a realtime session token?
- What's the session endpoint that returns an ephemeral key for client-side realtime use?
instructions:
- text: Create a realtime session with client secret settings {client_secret}.
slots:
client_secret: requestBody.client_secret
- text: Create a realtime session using voice {voice} and instructions {instructions}, with client secret settings {client_secret}.
slots:
voice: requestBody.voice
instructions: requestBody.instructions
client_secret: requestBody.client_secret
method: generated
generated: '2026-09-26'
- target: $.paths['/realtime/transcription_sessions'].post
update:
x-apievangelist-phrasing:
intent: Create a realtime transcription session
effect: write
questions:
- How do I set up live speech-to-text streaming from a client app?
- Can I turn on noise reduction for a realtime transcription session?
instructions:
- text: Create a realtime transcription session.
- text: Start a live transcription session with transcription settings {input_audio_transcription}.
slots:
input_audio_transcription: requestBody.input_audio_transcription
- text: Create a transcription session with noise reduction {input_audio_noise_reduction}.
slots:
input_audio_noise_reduction: requestBody.input_audio_noise_reduction
method: generated
generated: '2026-09-26'
- target: $.paths['/realtime/translations/client_secrets'].post
update:
x-apievangelist-phrasing:
intent: Create a realtime translation client secret
effect: write
questions:
- How do I let a client app do live speech translation securely?
- Can I set how long a realtime translation client secret lasts?
instructions:
- text: Create a realtime translation client secret for translation session {session}.
slots:
session: requestBody.session
- text: Mint a translation client secret for {session} that expires after {expires_after}.
slots:
session: requestBody.session
expires_after: requestBody.expires_after
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay 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 openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay 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 overlay
curl "https://apis.io/api/v1/overlays/openai-realtime-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?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.