deepseek-v4-flash-vision-exp is DeepSeek’s experimental vision model, built on the V4 Flash
base with image input added: describe pictures, read text out of screenshots, read chart values,
compare multiple images. Everything on the text side (1M context, thinking mode, function calling,
context caching) is retained, and pricing is identical to the text-only V4 Flash ——
vision costs no premium; images are converted to input tokens by their dimensions.
APIYI has completed 124 test cases across roughly 1,100 calls, covering three image-input
channels, four image formats, two protocols and two groups.
Highlights
No vision premium
Same price as text-only V4 Flash: $0.44 input, $1.32 output per 1M tokens. Images become input tokens, capped at 384 per image.
Solid recognition in testing
Screenshot OCR values all correct, 5-bar chart read 5/5, counting a specific shape among 36 shapes 24/24. No hallucination on negative questions.
No need to pre-compress
2000×2000 and 4000×4000 convert to exactly the same token count (346). Upstream rescales for you —— compressing only saves bandwidth, not money.
Both protocols work
OpenAI format (chat/completions + responses) and Anthropic format (/v1/messages) are both verified, each through its own group.
Model information
Since 2026-08-17 the vendor bills this model in two tiers by time of day (peak hours are
01:00-04:00 and 06:00-10:00 (UTC)). APIYI charges the peak rate at all times, so your cost
never varies by the hour.
Choosing a group
The two groups on APIYI route to different upstream endpoints, so their capabilities are not equivalent. The table below is measured on 2026-08-21, three repetitions per cell:OpenAI format → use the default group
Create a token with group default, then:
Anthropic format → use the ClaudeCode group
Create a token with group ClaudeCode, then:
Three ways to send an image
1. Inline base64 (most common)
2. Public image URL
Failed to download image.
3. A file content block (equivalent to inline base64)
image_url channel (303 for the same image either way).
How images are billed
An image is converted to input tokens based on its post-resize dimensions, and billed together with your text tokens at $0.44 / 1M. The numbers below are measured on APIYI using a fixed prompt and subtracting the text-only baseline:
Three rules, matching the vendor’s description exactly:
- 384 tokens per image is a hard ceiling. The largest value measured was 354; no image exceeds it
- Large images are scaled down to roughly an 800×800 equivalent. That is why 2000² and 4000² cost the same, and why pre-compressing before upload saves bandwidth but not money
- Images below 384×384 are scaled up. So 64×64 costs the same as 384×384 —— no need to shrink small images further
The token saver: detail: "low"
When fine detail does not matter (identifying an image type, recognising the subject, rough
classification), add detail: "low" to downscale the image to 512×512 before inference:
Controlling thinking mode
Thinking mode is on by default, and the thinking text counts against yourmax_tokens budget.
For pure image-reading tasks, turn it off: with thinking disabled our tests scored 24/24, ran
faster, saved the entire thinking output, and cut 80 input tokens as well (the thinking system
prompt costs exactly that much).
Every syntax, three runs each:
Context caching
Caching needs no parameters: a repeated long prefix hits automatically, and the hit portion is billed at $0.014 / 1M. But requests containing images differ from text-only ones in two ways:
Measured with a 2304-token text prefix plus one 800×800 image:
The hit is exactly the text that sits before the image; the image and everything after it is
charged at full price every time. So put your fixed long instructions ahead of the image to get
them cached —— anything placed after the image can never hit.
In the Anthropic format these fields are named
cache_read_input_tokens and
cache_creation_input_tokens, and behave the same way. Note that explicit cache_control
markers have no effect (upstream uses automatic prefix caching), and that the two protocols
report usage differently: OpenAI’s prompt_tokens is always the full count, while Anthropic’s
input_tokens drops to the uncached remainder after a hit —— the two cannot be reconciled
directly.Supported image formats
All four supported formats convert to identical token counts, so the container never affects cost.
Verified capability matrix
Measured by APIYI on 2026-08-21:Accuracy spot checks
Limits and common errors
The 1,048,576 context ceiling is measured, and the error message shows that
max_tokens
counts against that same total (… in the messages, … in the completion). When packing a
long context, leave room for your output budget or you will hit the ceiling.You have uploaded an unsupported image—— format is not one of the four, or the base64 is corruptFailed to download image—— the URL is unreachable or took over 60 secondsImage in assistant message is unsupported—— images may only appear inusermessages
In testing, roughly 1%-3% of requests had their connection silently closed (surfacing to the
client as an SSL EOF or a handshake timeout). This is unrelated to images and unrelated to the
group —— it is an occasional transport-level event. Always set a read timeout and retry,
otherwise a single request can hang for over two minutes.
See Timeout configuration.
Full examples
OpenAI format (default group)
Anthropic format (ClaudeCode group)
Related documentation
Vision Understanding API
General calling patterns and comparisons across vision models
DeepSeek V4 Flash
The text-only sibling on the same base, with 1M context and dual endpoints
Choosing a group
How the Codex, ClaudeCode and Default groups differ, and which to pick
Timeout configuration
Recommended client read timeout and retry settings