Use Qwen-Omni over HTTP to understand text, images, audio, and video. Choose Qwen3.8-Omni-Flash for text analysis and Qwen3.5-Omni for speech output.
Getting started
Choose an example by output type: Qwen3.8-Omni-Flash for text analysis, or Qwen3.5-Omni for speech generation.
- Text output (Qwen3.8-Omni-Flash)
- Audio output (Qwen3.5-Omni)
- Obtain an API key and set the API key as an environment variable.
- The examples below use OpenAI-compatible invocation. You must install the latest SDK. The minimum required versions are 1.52.0 for the OpenAI Python SDK and 4.68.0 for the Node.js SDK.
pip install openai (Python) or npm install openai (Node.js).DASHSCOPE_BASE_URL environment variable to the base_url for your workspace from the Chat Completions endpoints. Set AUDIO_URL to an accessible WAV audio URL. Use an API key from the selected region.In your terminal, install the dependency and set the following environment variables. Replace the endpoint and audio URL with your values; configure DASHSCOPE_API_KEY using the instructions linked above.Return result
Return result
Python or Node.js code, the console prints the thinking process, then the model reply, and finally the usage. Qwen3.8-Omni-Flash has thinking enabled by default; the response contains a reasoning_content field, and the thinking part is billed as part of usage.completion_tokens_details.reasoning_tokens.HTTP code, the thinking process and reply are returned as streamed chunks, followed by a final usage chunk (the usage field contains reasoning_tokens).Model selection
For audio/video understanding, meeting minutes, subtitle generation, and text Q&A, prefer Qwen3.8-Omni-Flash, which supports deep thinking, tool calling, and web search: see Getting started for call examples, Enable/disable thinking mode for thinking, Web search for search, and Function calling for tools. When you need spoken replies, you can use Qwen3.5-Omni below.
Qwen3.8-Omni-Flash
Supported regions: China (Beijing), Singapore, China (Hong Kong), Japan (Tokyo), Germany (Frankfurt), and US (Virginia). Use an API key from the selected region.
qwen3.8-omni-flash is designed for audio and video understanding, meeting summaries, and content analysis.
| Model | Input | Output | APIs |
|---|---|---|---|
qwen3.8-omni-flash | Text, images, audio, video | Text | Chat Completions, Responses |
- The context length is 1M tokens.
- Audio input supports 113 languages and dialects, the same as Qwen3.5-Omni. See the Qwen3.5-Omni input audio languages in Model selection for the full list.
- Supports Function Calling and web search. The only supported built-in Responses tool is currently
web_search.
Qwen3.5-Omni: audio output and multimodal interaction
Supported regions: China (Beijing) and Singapore. Use an API key from the selected region.
-
Qwen3.5-Omni series: Supports audio/video understanding, speech responses, and audio control.
- Input limits: Up to 3 hours of audio or 1 hour of video
- Audio control: Supports adjusting volume, speaking rate, and emotion through instructions
- Visual capability: Matches the level of Qwen3.5. Understands images, speech, sound effects, and other multimodal input
- Combined multimodal input: Supports any combination of text with images, audio, and video in a single request
- Voice cloning: Supports custom voices (only qwen3.5-omni-plus and qwen3.5-omni-flash; snapshot versions are not supported). For details, see Voice cloning
Other models and specifications
-
Qwen3-Omni-Flash series:
- Supported regions: China (Beijing) and Singapore. Use the API Key for the corresponding region.
- Input limits: 20 minutes of audio or 150 seconds of video
- Thinking mode: Use
enable_thinkingto enable or disable thinking - Input modality: Supports only a combination of text with a single other modality (image, audio, or video).
| Series | Audio-video description | Deep thinking | Web search | Input audio languages | Output audio languages | Supported voices |
|---|---|---|---|---|---|---|
| Qwen3.5-OmniOmni-modal model with audio output | Strong | Not supported | Supported | 113
74 languages and 39 dialects Languages: Chinese, English, German, French, Italian, Czech, Indonesian, Thai, Korean, Polish, Japanese, Vietnamese, Finnish, Portuguese, Spanish, Dutch, Russian, Malay, Catalan, Swedish, Turkish, Ukrainian, Romanian, Slovak, Danish, Icelandic, Norwegian (Bokmål), Macedonian, Greek, Hungarian, Galician, Filipino, Croatian, Bosnian, Slovenian, Bulgarian, Kazakh, Belarusian, Latvian, Estonian, Azerbaijani, Uyghur, Swahili, Hindi, Esperanto, Kyrgyz, Tajik, Cebuano, Afrikaans, Arabic, Lithuanian, Javanese, Bengali, Persian, Hebrew, Punjabi, Gujarati, Mongolian, Asturian, Kannada, Marathi, Interlingua, Malayalam, Maltese, Norwegian Nynorsk, Telugu, Urdu, Georgian, Basque, Tamil, Odia, Serbian, MaoriDialects: Northeastern Mandarin, Guizhou dialect, Cantonese, Henan dialect, Hong Kong Cantonese, Shanghainese, Shaanxi dialect, Tianjin dialect, Taiwanese Hokkien, Yunnan dialect, Anhui dialect, Fujian dialect, Gansu dialect, Guangdong dialect, Hubei dialect, Hunan dialect, Jiangxi dialect, Shandong dialect, Shanxi dialect, Sichuan dialect, Guangxi dialect, Hainan dialect, Chongqing dialect, Changsha dialect, Hangzhou dialect, Hefei dialect, Yinchuan dialect, Zhengzhou dialect, Shenyang dialect, Wenzhou dialect, Wuhan dialect, Kunming dialect, Taiyuan dialect, Nanchang dialect, Jinan dialect, Lanzhou dialect, Nanjing dialect, Hakka, Southern Min | 36
29 languages and 7 dialects Languages: Chinese, English, German, Italian, Portuguese, Spanish, Japanese, Korean, French, Russian, Thai, Indonesian, Arabic, Vietnamese, Turkish, Finnish, Polish, Hindi, Dutch, Czech, Urdu, Tagalog, Swedish, Danish, Hebrew, Icelandic, Malay, Norwegian, Persian Dialects: Sichuan dialect, Beijing dialect, Tianjin dialect, Nanjing dialect, Shaanxi dialect, Cantonese, Southern Min | 55 |
| Qwen3-Omni-FlashHybrid thinking model | Weaker | Supported | Not supported | 19
11 languages and 8 dialects Language:Chinese, English, German, French, Italian, Thai, Korean, Japanese, Russian, Spanish, PortugueseDialects:Sichuan dialect, Shanghainese, Cantonese, Southern Min, Shaanxi dialect, Nanjing dialect, Tianjin dialect, Beijing dialect | 19
11 languages and 8 dialects Language:Chinese, English, German, French, Italian, Thai, Korean, Japanese, Russian, Spanish, PortugueseDialects:Sichuan dialect, Shanghainese, Cantonese, Southern Min, Shaanxi dialect, Nanjing dialect, Tianjin dialect, Beijing dialect | 17 to 49Varies by version |
For model names, context windows, pricing, and snapshot versions, check in the Model Studio console. For rate limits, see Rate limiting.
Model performance
Audio and video content analysis
Generate a comprehensive timestamped description of this video. | 00:00.000 – 00:02.500A rain-soaked city street fills the widescreen frame. Long-exposure photography creates streaks of red and blue car lights on wet pavement. A solitary man in a dark knee-length trench coat and light shirt with a tie walks toward the camera along the right sidewalk. Raindrops cling to his shoulders and hair. Each step makes a muffled plop on damp concrete. A low, ominous electronic hum underscores ambient sounds, while steady rain crackles all around. Colorful graffiti covers the brick wall beside him, and neon signs glow in the distance—one clearly displays orange-red cursive script reading "Nice," while another vertical sign shows the letters "AT" at its bottom.......00:12.300 – 00:14.533The camera tilts down. Inside a flashlight beam, a yellowed, aged single sheet lies in a shallow puddle, its edges charred and corners curled. Inked paragraphs cover most of its surface, but moisture and scorch marks make the text unreadable. The man kneels, extending gloved fingers toward the document. Ripples spread outward as his hand nears. Sirens peak then begin to fade slightly, while the ambient hum remains steady. The scene freezes just before the trembling paper is touched, ending the clip.Only partial timestamps are shown. |
Multidialect understanding
Describe the vocal characteristics, emotional state, and full lyrics for singers in different Chinese dialects. | This audio features rap performances by singers from various regions of China, showcasing rich dialect diversity. The following are detailed descriptions of each singer's vocal traits, emotional state, and corresponding lyrics:Hangzhou dialect (Wu)Vocal traits:The male singer's voice is soft and gentle, with the distinctive smoothness and warmth of the Wu dialect. His intonation rises and falls gently, and his rhythm is light and quick, creating a relaxed storytelling effect.Emotional state:Relaxed, comfortable, and full of everyday life. He describes Hangzhou's slow-paced lifestyle and urban changes, expressing affection for his hometown and reflections on modern development. Overall, he feels cozy and familiar.Lyrics:> Hangzhou dialect, listen up! Our culture includes local erhua pronunciation.> Like flowers blooming by West Lake, no cultural survey needed—we understand it best.> None of you understand. 'San bu da men', 'ge'r', 'lao'r', 'fen'r', 'ya'r'... how is an outsider supposed to tell any of these apart?> Let's go! Transport is fast—subways everywhere. We'll check it out.> Welcoming Southeast Asia and Thailand, watching "Thirteen Ta" shows. Proud of our city, direct in personality.> So you only came for the "bridge-crossing" experience, and because the flavor is different, you're not returning?Only partial results are shown. |
Lyric caption generation
Transcribe the song lyrics and provide timestamps for each line in this format:[00:00:15,020 --> 00:00:28,085] : When you walk through a storm, hold your head up high.[00:00:28,085 --> 00:00:40,200] And don't be afraid of the dark. ...... | [00:00:12,680 --> 00:00:16,960] Cat thread sways past moonlight on trees.[00:00:18,400 --> 00:00:22,800] Radiators hum 1998 chart hits.[00:00:24.160 → 00:00:28.080] Time parts the mist-like heat waves.[00:00:28,920 --> 00:00:33,000] Neon from the screen shines on my nose bridge.......[00:03:16,720 --> 00:03:21,680] We nestle in the softest ring of the tree trunk.[00:03:22,400 --> 00:03:27,000] Breathing turns residual warmth into honey-sugar.[00:03:28,160 --> 00:03:33,200] The sofa sinks into cloud-fluff shape.[00:03:34,000 --> 00:03:38,800] Every pore soaks in sunshine.[00:04:09,000 --> 00:04:10,020] (End)Only partial results are shown. |
Audio-video programming
Usage
Responses: audio and video input
The following examples use Qwen3.8-Omni-Flash with the Responses API to process audio and video input and generate text responses.
Reuse the API key, DASHSCOPE_BASE_URL, and AUDIO_URL from the quick-start example. Responses uses input, with the audio URL in audio_url, rather than the Chat Completions input_audio.data structure. Audio and video input is allowed only in user messages.
VIDEO_URL to an accessible video URL and replace input[0].content in the quick-start example with:
"use_multichannel": True (Python) to the audio content object above, alongside audio_url and format. The default is False, which processes audio as single-channel audio.
For Base64 audio input, field definitions, and tool scope, see Create a response.
Model configuration
The following configuration recommendations apply to Qwen3.5-Omni. Adjust parameters, prompts, and media lengths for your use case. For Qwen3.8-Omni-Flash, see Recommended prompts.
- Audio-video understanding
- Audio understanding
| Use case | Recommended video length | Recommended prompt | Recommended max_pixels |
| Fast review, low cost | ≤60 minutes | Simple prompt within 50 words | 230,400 |
| Content extraction (long video segmentation) | ≤60 minutes | 921,600~2,073,600 | |
| Standard analysis (short video tagging) | ≤4 minutes | Use the structured prompt below
Recommended prompt | 921,600~2,073,600 |
| Fine-grained analysis (multiple speakers/complex scenes) | ≤2 minutes | 2,073,600 |
Recommended prompts
These prompts apply to qwen3.8-omni-flash. Choose a prompt for your task and place it in the text field of a type="text" item in the user message's content array. Include the audio or video to analyze in the same message. Output format instructions in the prompts guide the generated content.
Detailed audiovisual description: chronological narrative
Detailed audiovisual description: chronological narrative
Detailed audiovisual description: separate transcripts and on-screen text
Detailed audiovisual description: separate transcripts and on-screen text
Structured audiovisual description
Structured audiovisual description
Highly dynamic audiovisual content
Highly dynamic audiovisual content
Audiovisual analysis with multiple speakers
Audiovisual analysis with multiple speakers
Audio event localization
Audio event localization
[audio event label] in the prompt with the target event, such as dog_barking. The result contains the event type and start and end times in seconds.Combined multimodal input
Qwen3.8-Omni-Flash and Qwen3.5-Omni support combining text, images, audio, and video in the same request. The examples below use Qwen3.8-Omni-Flash to analyze an image and audio and generate a text response. To generate speech, use Qwen3.5-Omni. See the audio output example.
Single modality input
Each request contains text and one other modality (video, audio, or image). The examples use Qwen3.8-Omni-Flash to return text through Chat Completions.
- Video and text input
- Audio and text input
- Image and text input
- Video file (supports audio in the video)
- Image list format
Input limits
Input limits
-
Number of files:
- Qwen3.8-Omni-Flash: Up to 64 files.
- Qwen3.5-Omni series: Up to 512 files using public URLs and up to 250 files using Base64 encoding.
- Qwen3-Omni-Flash series: Only one file is allowed.
-
File size:
-
Using public URLs:
- Qwen3.8-Omni-Flash and Qwen3.5-Omni series: Up to 2 GB
- Qwen3-Omni-Flash: Up to 256 MB
- Using Base64 encoding: The encoded Base64 string must be smaller than 10 MB
-
Using public URLs:
-
Duration limits:
- Qwen3.8-Omni-Flash: 2 hours
- Qwen3.5-Omni series: 1 hour
- Qwen3-Omni-Flash: 150 seconds
- File formats: MP4, AVI, MKV, MOV, FLV, WMV, and others.
- Visual and audio information in the video file are billed separately.
Multichannel audio
qwen3.8-omni-flash supports two-channel stereo and four-channel FOA spatial audio (WYZX channel order). These inputs retain spatial information for audio understanding.
use_multichannel defaults to false, which parses all audio as mono. When it is true and the input has two channels (left and right) or four channels (FOA, in WYZX order), the model parses spatial audio information.
In the Chat Completions quick-start example, set AUDIO_URL to the corresponding multichannel WAV audio and add the following argument to client.chat.completions.create(). In an HTTP request, use_multichannel is a top-level request body field. For where to pass it in a Responses call, see Responses: audio and video input.
qwen3.8-omni-flash for spatial audio understanding. For four-channel FOA audio, the call is identical—just set AUDIO_URL to a four-channel WAV in WYZX channel order.
soundfile:Web search
Qwen3.8-Omni-Flash supports web search to retrieve current information and generate text answers.
Qwen3.8-Omni-Flash uses the web_search tool through Responses. Qwen3.8-Omni-Flash and Qwen3.5-Omni use the agent search strategy through Chat Completions. For fees, see Web search billing.
The following Chat Completions examples use Qwen3.8-Omni-Flash with enable_search=True and search_options={"search_strategy": "agent"} to enable web search and reasoning_effort="none" to disable thinking, then read streamed text responses.
Enable/disable thinking mode
Qwen3.8-Omni-Flash
Thinking is enabled by default for qwen3.8-omni-flash, with reasoning_effort defaulting to xhigh. The top-level Chat Completions request field reasoning_effort accepts none, minimal, low, medium, high, xhigh, and max. Do not set reasoning_effort and thinking_budget together: the request returns an error.
Choose low, medium, or xhigh for the thinking effort. For compatibility, minimal maps to low, high and max map to xhigh, and none disables thinking.
Add the following argument to client.chat.completions.create() in the Chat Completions quick-start example. Pass reasoning_effort directly as an SDK argument.
Qwen3-Omni-Flash
This section describes hybrid thinking for Qwen3-Omni-Flash. You can use the enable_thinking parameter to enable or disable the thinking mode:
true: enables thinking modefalse(default): disables thinking mode
In thinking mode, audio output is not supported.
stream=True; otherwise the request fails.Response
Response
Multi-turn conversation
For Qwen3.8-Omni-Flash multi-turn conversations, preserve_thinking is enabled by default. Put the previous answer and reasoning in the historical assistant message's content and reasoning_content fields, respectively, and include that message in messages for the next request. When supplied and enabled, historical reasoning counts toward input tokens and billing. For how to pass this parameter and a complete multi-turn example, see Pass the thinking process.
The following multi-turn example uses Qwen3.8-Omni-Flash with reasoning_effort="none" to disable thinking. It passes text responses in historical assistant messages and text plus one modality in each user message. For combined input, see Combined multimodal input:
-
Assistant Message
The
contentof an assistant message in themessagesarray can contain only text data; reasoning is passed in thereasoning_contentfield. - User Message In this example, each user message contains text and one other modality. In multi-turn conversations, you can input different modalities in different user messages.
Parsing output Base64-encoded audio data
qwen3.5-omni-plus, qwen3.5-omni-flash, and qwen3-omni-flash (non-thinking mode) output audio as streaming Base64-encoded data. During generation, maintain a string variable and append the Base64-encoded data from each returned chunk. After generation completes, Base64-decode the complete string to get the audio file. Alternatively, decode and play each chunk in real time.
stream=True; otherwise the request fails.Input Base64-encoded local file
The following examples use Qwen3.8-Omni-Flash to analyze Base64-encoded local files and return text. For audio and video, the encoded Base64 string must be smaller than 10 MB. This limit also applies to image input for Qwen3.5-Omni and Qwen3-Omni-Flash.
- Images
- Audio
- Video
API reference
- Chat Completions: Input and output parameters for the models on this page.
- Responses: Input and output parameters for Qwen3.8-Omni-Flash.
Billing and rate limits
Qwen3.8-Omni-Flash supports automatic implicit caching and Responses Session caching. For configuration, see Session cache.
Billing rules
The models on this page are billed by the number of tokens for each modality (audio, image, video). For per-region pricing, see Model pricing.
Token conversion rules for audio, images, and videos
Token conversion rules for audio, images, and videos
- Audio
- Images
- Video
-
Qwen3.8-Omni-Flash: Input audio formula:Total tokens = Audio duration (seconds) * 7. -
Qwen3.5-Omni series:- Input audio formula:
Total tokens = Audio duration (seconds) * 7 - Output audio formula:
Total tokens = Audio duration (seconds) * 12.5
- Input audio formula:
-
Qwen3-Omni-Flash: For both input and output audio,Total tokens = Audio duration (seconds) * 12.5
FAQ
Q: How do I include conversation history?
Add user and assistant messages to the messages array in conversation order. The following examples use qwen3.5-omni-plus.
stream=True; otherwise the request fails.Sample code with conversation history
Sample code with conversation history
Error codes
If the model call fails and returns an error message, see Error codes for resolution.
Voice list
qwen3.5-omni-plus, qwen3.5-omni-flash, and qwen3-omni-flash support audio output. For their available voices, see Voice list.