vlm.fyi Get the data
● Measured 2026-10-31 · 54 model × provider pairs

Every vision API has a different ceiling. We measure it.

The same model can take 4 images on one provider and over a thousand on another. vlm.fyi records what each API actually accepts in one request: images, real video frames, bytes and video files, with the provider's own error message as evidence.

Same model · DeepSeek V4.1 Flash (1017)768×432 frames per request
  • Jarvislabs≥ 384
  • Modal≥ 384
  • Together AI≥ 384
  • Fireworks via OpenRouter112
  • Fireworks112

Jarvislabs, Modal, and Together AI took all 384 frames we sent; Fireworks (direct and via OpenRouter) stopped at 112.

Pairs measured 54 18 featured · 36 more OpenRouter upstreams
Images per request 2–1,024+ set by the provider, not the model
Video seen per minute 0.5–118.4 frames same 5-min clip, depends on the provider
Tokens per frame 223–1,110 for the same 768×432 frame
01 — Limits per request

Pick a limit. See who fits.

How many video frames fit in one request?

768×432 frames, the size most video pipelines send. Whichever limit hits first counts: image count, decoded pixels or the context window.

DeepSeek V4.1 Flash (1017) Jarvislabs ≥ 384 DeepSeek V4.1 Flash (1017) Modal ≥ 384 DeepSeek V4.1 Flash (1017) Together AI ≥ 384 Gemini 3.7 Flash Google AI Studio via OpenRouter ≥ 384 GLM 5.3 Flash Together AI ≥ 384 GLM 5.3 Flash Z.ai via OpenRouter ≥ 384 Kimi K3 Modal ≥ 384 Kimi K3 Together AI ≥ 384 Qwen3.8 27B Alibaba Cloud via OpenRouter 224 Qwen3.6 35B A3B Auto-routed via OpenRouter 160 GLM 5.3 Flash Jarvislabs 128 DeepSeek V4.1 Flash (1017) Fireworks via OpenRouter 112 DeepSeek V4.1 Flash (1017) Fireworks 112 GLM 5.3 Flash Fireworks 112 Kimi K3 Fireworks 112 Muse Spark (open) Fireworks 112 Gemma 4 31B Jarvislabs 4 Qwen3.8 27B Jarvislabs 4 Gemini 3.7 Flash Google AI Studio (flex) via OpenRouter — Gemini 3.7 Flash Google AI Studio (priority) via OpenRouter — Gemini 3.7 Flash Google Vertex (global) via OpenRouter — Gemini 3.7 Flash Google Vertex (global, flex) via OpenRouter — Gemini 3.7 Flash Google Vertex (global, priority) via OpenRouter — Gemini 3.7 Flash Google Vertex (us) via OpenRouter — Qwen3.6 35B A3B AkashML (fp8) via OpenRouter — Qwen3.6 35B A3B Atlas Cloud (fp8) via OpenRouter — Qwen3.6 35B A3B CoreWeave (fp8) via OpenRouter — Qwen3.6 35B A3B DarkBloom (fp4) via OpenRouter — Qwen3.6 35B A3B DeepInfra (fp8) via OpenRouter — Qwen3.6 35B A3B DekaLLM via OpenRouter — Qwen3.6 35B A3B Parasail (fp8) via OpenRouter — Qwen3.6 35B A3B Phala via OpenRouter — Qwen3.6 35B A3B SiliconFlow (fp8) via OpenRouter — Qwen3.6 35B A3B Venice (fp8) via OpenRouter — Qwen3.8 27B AkashML (fp8) via OpenRouter — Qwen3.8 27B Cerebras (fp16) via OpenRouter — Qwen3.8 27B Chutes (fp8) via OpenRouter — Qwen3.8 27B Cloudflare via OpenRouter — Qwen3.8 27B CoreWeave (fp8) via OpenRouter — Qwen3.8 27B DarkBloom (fp4) via OpenRouter — Qwen3.8 27B DeepInfra (bf16) via OpenRouter — Qwen3.8 27B DekaLLM via OpenRouter — Qwen3.8 27B IonStream (fp8) via OpenRouter — Qwen3.8 27B Mancer (fp8) via OpenRouter — Qwen3.8 27B Modal via OpenRouter — Qwen3.8 27B ModelRun (fp4) via OpenRouter — Qwen3.8 27B NEAR AI (fp8) via OpenRouter — Qwen3.8 27B Novita via OpenRouter — Qwen3.8 27B Parasail (fp8) via OpenRouter — Qwen3.8 27B Phala via OpenRouter — Qwen3.8 27B Reka (fp8) via OpenRouter — Qwen3.8 27B Tenstorrent (fp4) via OpenRouter — Qwen3.8 27B Venice (fp8) via OpenRouter — Qwen3.8 27B Wafer (fp8) via OpenRouter —
measured limit ≥ the real limit is higher: nothing failed up to our probe's cap 100 overview frames + 2 clips
Show as table
ModelProviderValue
DeepSeek V4.1 Flash (1017)Jarvislabs≥ 384
DeepSeek V4.1 Flash (1017)Modal≥ 384
DeepSeek V4.1 Flash (1017)Together AI≥ 384
Gemini 3.7 FlashGoogle AI Studio via OpenRouter≥ 384
GLM 5.3 FlashTogether AI≥ 384
GLM 5.3 FlashZ.ai via OpenRouter≥ 384
Kimi K3Modal≥ 384
Kimi K3Together AI≥ 384
Qwen3.8 27BAlibaba Cloud via OpenRouter224
Qwen3.6 35B A3BAuto-routed via OpenRouter160
GLM 5.3 FlashJarvislabs128
DeepSeek V4.1 Flash (1017)Fireworks via OpenRouter112
DeepSeek V4.1 Flash (1017)Fireworks112
GLM 5.3 FlashFireworks112
Kimi K3Fireworks112
Muse Spark (open)Fireworks112
Gemma 4 31BJarvislabs4
Qwen3.8 27BJarvislabs4
Gemini 3.7 FlashGoogle AI Studio (flex) via OpenRouter—
Gemini 3.7 FlashGoogle AI Studio (priority) via OpenRouter—
Gemini 3.7 FlashGoogle Vertex (global) via OpenRouter—
Gemini 3.7 FlashGoogle Vertex (global, flex) via OpenRouter—
Gemini 3.7 FlashGoogle Vertex (global, priority) via OpenRouter—
Gemini 3.7 FlashGoogle Vertex (us) via OpenRouter—
Qwen3.6 35B A3BAkashML (fp8) via OpenRouter—
Qwen3.6 35B A3BAtlas Cloud (fp8) via OpenRouter—
Qwen3.6 35B A3BCoreWeave (fp8) via OpenRouter—
Qwen3.6 35B A3BDarkBloom (fp4) via OpenRouter—
Qwen3.6 35B A3BDeepInfra (fp8) via OpenRouter—
Qwen3.6 35B A3BDekaLLM via OpenRouter—
Qwen3.6 35B A3BParasail (fp8) via OpenRouter—
Qwen3.6 35B A3BPhala via OpenRouter—
Qwen3.6 35B A3BSiliconFlow (fp8) via OpenRouter—
Qwen3.6 35B A3BVenice (fp8) via OpenRouter—
Qwen3.8 27BAkashML (fp8) via OpenRouter—
Qwen3.8 27BCerebras (fp16) via OpenRouter—
Qwen3.8 27BChutes (fp8) via OpenRouter—
Qwen3.8 27BCloudflare via OpenRouter—
Qwen3.8 27BCoreWeave (fp8) via OpenRouter—
Qwen3.8 27BDarkBloom (fp4) via OpenRouter—
Qwen3.8 27BDeepInfra (bf16) via OpenRouter—
Qwen3.8 27BDekaLLM via OpenRouter—
Qwen3.8 27BIonStream (fp8) via OpenRouter—
Qwen3.8 27BMancer (fp8) via OpenRouter—
Qwen3.8 27BModal via OpenRouter—
Qwen3.8 27BModelRun (fp4) via OpenRouter—
Qwen3.8 27BNEAR AI (fp8) via OpenRouter—
Qwen3.8 27BNovita via OpenRouter—
Qwen3.8 27BParasail (fp8) via OpenRouter—
Qwen3.8 27BPhala via OpenRouter—
Qwen3.8 27BReka (fp8) via OpenRouter—
Qwen3.8 27BTenstorrent (fp4) via OpenRouter—
Qwen3.8 27BVenice (fp8) via OpenRouter—
Qwen3.8 27BWafer (fp8) via OpenRouter—
02 — Same model, different provider

The provider decides, not the model.

Frames per request for each provider of a model, on one shared scale, and whether that provider takes video.

Single-provider models: Gemini 3.7 Flash, Gemma 4 31B, Muse Spark (open), Qwen3.6 35B A3B.

03 — The routing lottery

Same model id, same clip, a different video every time.

OpenRouter routes one model id to many upstream providers. We pinned each one and sent the same 5-minute clip. This is how much of it each upstream fed the model.

Qwen3.8 27B

21 OpenRouter upstreams · 9 take video

15× difference: Alibaba Cloud feeds the model 60 frames a minute of this clip; DekaLLM 4.

  • Alibaba Cloud 60/min
  • AkashML (fp8) 6.3/min ⁎
  • DeepInfra (bf16) 6.3/min ⁎
  • Parasail (fp8) 6.3/min ⁎
  • Reka (fp8) 6.3/min ⁎
  • Venice (fp8) 6.3/min ⁎
  • Phala 6/min ⁎
  • Chutes (fp8) 4.4/min ⁎
  • DekaLLM 4/min ⁎

Reject videoCerebras (fp16)CloudflareIonStream (fp8)ModalModelRun (fp4)NEAR AI (fp8)Tenstorrent (fp4)Wafer (fp8)

Take video, frames not measuredCoreWeave (fp8)Novita

Reject this clip (too large)DarkBloom (fp4)Mancer (fp8)

Qwen3.6 35B A3B

11 OpenRouter upstreams · 5 take video

237× difference: Atlas Cloud (fp8) feeds the model 118.4 frames a minute of this clip; SiliconFlow (fp8) 0.5.

  • Atlas Cloud (fp8) 118.4/min
  • DeepInfra (fp8) 27/min ⁎
  • AkashML (fp8) 12.5/min ⁎
  • Auto-routed 5.7/min ⁎
  • SiliconFlow (fp8) 0.5/min ⁎

Reject videoDarkBloom (fp4)PhalaVenice (fp8)

Take video, frames not measuredCoreWeave (fp8)DekaLLM

Reject this clip (too large)Parasail (fp8)

Gemini 3.7 Flash

7 OpenRouter upstreams · 7 take video
  • Google Vertex (global) 60/min
  • Google Vertex (global, flex) 60/min
  • Google Vertex (global, priority) 60/min
  • Google Vertex (us) 60/min
  • Google AI Studio 59.8/min
  • Google AI Studio (flex) 59.8/min
  • Google AI Studio (priority) 59.8/min
04 — Request format

What each endpoint accepts.

Input types, and the request-format rules that break integrations most often.

Model · provider Images inlineImages by URLVideo inputTool messagesExtra fields
DeepSeek V4.1 Flash (1017) DeepSeek
Fireworks via OpenRouter Yes Yes No Lenient Accepted
Fireworks Yes Yes No Lenient Accepted
Jarvislabs Yes Yes No Lenient Accepted
Modal Yes Yes No Lenient Accepted
Together AI Yes Yes No Strict order Accepted
GLM 5.3 Flash Z.ai
Fireworks Yes Yes Yes Lenient Accepted
Jarvislabs Yes Yes Yes Lenient Accepted
Together AI Yes Yes Yes Strict order Accepted
Z.ai via OpenRouter Yes Yes No Lenient Rejects response_format
Kimi K3 MoonshotAI
Fireworks Yes Yes Yes Lenient Rejects usage, reasoning
Modal Yes Yes No Lenient Accepted
Together AI Yes Yes Ignored Strict order Accepted
Qwen3.8 27B Qwen
Alibaba Cloud via OpenRouter Yes Yes Yes Lenient Rejects response_format
Jarvislabs Yes Yes Yes Lenient Accepted
Gemini 3.7 Flash Google
Google AI Studio via OpenRouter Yes Yes Yes Lenient Accepted
Gemma 4 31B Google
Jarvislabs Yes Yes Yes Lenient Accepted
Muse Spark (open) Meta
Fireworks Yes Yes No Lenient Rejects usage, reasoning
Qwen3.6 35B A3B Qwen
Auto-routed via OpenRouter Yes Yes Yes Lenient Accepted