StepFun · AsyncAPI Specification
StepFun Realtime Voice & Streaming TTS WebSocket API
Version 1.0
StepFun's realtime event surface: a bidirectional realtime voice channel at wss://api.stepfun.com/v1/realtime (OpenAI Realtime-style session / conversation / response events, models stepaudio-2.5-realtime, step-1o-audio, step-audio-2, step-audio-2-mini, step-audio-r1.5) and a streaming text-to-speech channel at wss://api.stepfun.com/v1/realtime/audio (tts.* events). Authenticated with the platform API key as a Bearer token.
View Spec
View on GitHub
AIArtificial IntelligenceLLMMultimodalChat CompletionAudioSpeechText to SpeechSpeech RecognitionImagesRealtimeVector StoresChinaAsyncAPIWebhooksEvents
Channels
realtime
Bidirectional realtime voice conversation channel.
realtimeAudio
Streaming text-to-speech channel (model selected via ?model=, e.g. step-tts-mini).
Servers
wss
production
StepFun realtime WebSocket endpoint (Step Plan traffic uses the /step_plan prefix).
AsyncAPI Specification
# generated: '2026-07-21'
# method: generated
# source: https://platform.stepfun.com/docs/zh/api-reference/realtime/chat and
# https://platform.stepfun.com/docs/zh/api-reference/audio/ws-audio — StepFun
# publishes no AsyncAPI document; this spec was generated by API Evangelist
# from the documented WebSocket event surface. Every event name below appears
# verbatim in the referenced documentation pages.
asyncapi: 3.0.0
info:
title: StepFun Realtime Voice & Streaming TTS WebSocket API
version: '1.0'
description: >-
StepFun's realtime event surface: a bidirectional realtime voice channel at
wss://api.stepfun.com/v1/realtime (OpenAI Realtime-style session /
conversation / response events, models stepaudio-2.5-realtime,
step-1o-audio, step-audio-2, step-audio-2-mini, step-audio-r1.5) and a
streaming text-to-speech channel at wss://api.stepfun.com/v1/realtime/audio
(tts.* events). Authenticated with the platform API key as a Bearer token.
externalDocs:
url: https://platform.stepfun.com/docs/zh/api-reference/realtime/chat
defaultContentType: application/json
servers:
production:
host: api.stepfun.com
protocol: wss
description: StepFun realtime WebSocket endpoint (Step Plan traffic uses the /step_plan prefix).
channels:
realtime:
address: /v1/realtime
description: Bidirectional realtime voice conversation channel.
messages:
sessionUpdate:
name: session.update
summary: Client updates session configuration (model, voice, modalities).
sessionCreated:
name: session.created
summary: Server confirms session creation (object realtime.session).
sessionUpdated:
name: session.updated
summary: Server confirms session update.
inputAudioBufferAppend:
name: input_audio_buffer.append
summary: Client appends audio to the input buffer.
inputAudioBufferCommit:
name: input_audio_buffer.commit
summary: Client commits the input audio buffer.
inputAudioBufferClear:
name: input_audio_buffer.clear
summary: Client clears the input audio buffer.
inputAudioBufferCommitted:
name: input_audio_buffer.committed
summary: Server acknowledges the committed buffer.
inputAudioBufferCleared:
name: input_audio_buffer.cleared
summary: Server acknowledges the cleared buffer.
inputAudioBufferSpeechStarted:
name: input_audio_buffer.speech_started
summary: Server VAD detected start of speech.
inputAudioBufferSpeechStopped:
name: input_audio_buffer.speech_stopped
summary: Server VAD detected end of speech.
conversationItemCreate:
name: conversation.item.create
summary: Client adds an item to the conversation.
conversationItemCreated:
name: conversation.item.created
summary: Server confirms the conversation item.
conversationItemDelete:
name: conversation.item.delete
summary: Client deletes a conversation item.
conversationItemDeleted:
name: conversation.item.deleted
summary: Server confirms the deletion.
conversationItemTranscriptionCompleted:
name: conversation.item.input_audio_transcription.completed
summary: Server delivers the transcription of user input audio.
responseCreate:
name: response.create
summary: Client requests a model response.
responseCancel:
name: response.cancel
summary: Client cancels an in-flight response.
responseCreated:
name: response.created
summary: Server starts a response.
responseOutputItemAdded:
name: response.output_item.added
summary: Server adds an output item to the response.
responseContentPartAdded:
name: response.content_part.added
summary: Server adds a content part.
responseTextDelta:
name: response.text.delta
summary: Incremental text output.
responseTextDone:
name: response.text.done
summary: Text output complete.
responseThinkingDelta:
name: response.thinking.delta
summary: Incremental reasoning output (reasoning models).
responseThinkingDone:
name: response.thinking.done
summary: Reasoning output complete.
responseAudioTranscriptDelta:
name: response.audio_transcript.delta
summary: Incremental transcript of generated audio.
responseAudioTranscriptDone:
name: response.audio_transcript.done
summary: Audio transcript complete.
responseAudioDelta:
name: response.audio.delta
summary: Incremental generated audio.
responseAudioDone:
name: response.audio.done
summary: Audio generation complete.
responseContentPartDone:
name: response.content_part.done
summary: Content part complete.
responseOutputItemDone:
name: response.output_item.done
summary: Output item complete.
responseDone:
name: response.done
summary: Response complete.
realtimeAudio:
address: /v1/realtime/audio
description: 'Streaming text-to-speech channel (model selected via ?model=, e.g. step-tts-mini).'
messages:
ttsCreate:
name: tts.create
summary: Client creates a TTS synthesis session.
ttsConnectionDone:
name: tts.connection.done
summary: Server confirms the TTS connection.
ttsTextDelta:
name: tts.text.delta
summary: Client streams text to synthesize.
ttsTextDone:
name: tts.text.done
summary: Client signals end of text input.
ttsTextFlush:
name: tts.text.flush
summary: Client forces synthesis of buffered text.
ttsTextFlushed:
name: tts.text.flushed
summary: Server acknowledges the flush.
ttsResponseCreated:
name: tts.response.created
summary: Server starts a synthesis response.
ttsResponseAudioDelta:
name: tts.response.audio.delta
summary: Incremental synthesized audio.
ttsResponseAudioDone:
name: tts.response.audio.done
summary: Synthesized audio complete.
ttsResponseSentenceStart:
name: tts.response.sentence.start
summary: Sentence boundary start marker.
ttsResponseSentenceEnd:
name: tts.response.sentence.end
summary: Sentence boundary end marker.
ttsResponseSubtitle:
name: tts.response.subtitle
summary: Subtitle/timestamp payload for synthesized audio.
ttsResponseError:
name: tts.response.error
summary: Synthesis error event.
operations:
realtimeConversation:
action: send
channel:
$ref: '#/channels/realtime'
summary: Bidirectional realtime voice conversation.
streamingTts:
action: send
channel:
$ref: '#/channels/realtimeAudio'
summary: Streaming text-to-speech synthesis.