Cost Optimization & FinOps

Image Token Costs: How Vision Inputs Are Billed

Images don't have a separate price — they become input tokens by a published pixel formula. Which means image cost is controllable with one line of preprocessing.

Claude 3P 101 · Updated July 2026 · Unofficial guide

Claude's vision capability works on all four platforms — the Claude API, Claude Platform on AWS, Amazon Bedrock, Google Vertex AI, and Microsoft Foundry — and it bills the same way everywhere: an image is converted into visual tokens, which are charged at the model's ordinary input-token rate. There is no per-image fee and no separate vision price. That makes image cost unusually predictable, because the token count follows directly from pixel dimensions.

The formula

Claude processes images in 28×28-pixel patches. The token count is:

visual tokens = ceil(width / 28) × ceil(height / 28) — for example, a 1000×1000 px image is 36 × 36 = 1,296 tokens.

Priced at list input rates, that 1,296-token image costs 1,296 × $5/1M ≈ $0.0065 on Claude Opus 4.8, ≈ $0.0013 on Claude Haiku 4.5 ($1/MTok), and ≈ $0.013 on Claude Fable 5 ($10/MTok). Trivial per image — decisive at pipeline scale. A workflow processing 1 million such images a month on Opus 4.8 is buying 1.296 billion input tokens: about $6,480/month from the images alone.

Resolution tiers and automatic downscaling

You can't spend unbounded tokens on a huge image, because oversized images are downscaled automatically before tokenization. The ceiling depends on the model:

TierModelsMax long edgeMax visual tokens per image
High-resolutionClaude Fable 5, Opus 4.8, Opus 4.7, Sonnet 52,576 px4,784
StandardAll other models (incl. Haiku 4.5)1,568 px1,568

Note what this implies for migrations: moving a vision workload from a standard-tier model to a high-resolution one can multiply per-image tokens by up to ~3x, because the platform now preserves detail it previously discarded. Official guidance is explicit — downsample before sending if you don't need the fidelity.

Resizing is the whole optimization

Because the formula is quadratic-ish in dimensions, modest resizing yields outsized savings. Shrink that 1000×1000 image to 728×728 and it becomes 26 × 26 = 676 tokens — a 48% cut. Shrink to 504×504 and it's 18 × 18 = 324 tokens, a 75% cut. Whether that loses anything depends on the task: reading a dashboard's headline number survives aggressive downscaling; reading 8-point footnote text does not. Resize client-side, run your quality evals at each size, and pick the smallest size that passes — the API will never upscale on your behalf, so what you send is what you pay for (up to the tier cap).

# Downscale before upload: cheap insurance against oversized images
from PIL import Image

def shrink(path, longest=1092):
    img = Image.open(path)
    img.thumbnail((longest, longest))  # preserves aspect ratio
    return img  # ~39x39 patches max ≈ 1,521 tokens

Limits and platform quirks worth budgeting around

Size and count limits. Max image file size is 10 MB base64-encoded on the Claude API (5 MB on Bedrock and Google Cloud); max dimensions 8000×8000 px. A request can carry up to 600 images on 1M-context models, 100 on 200k-context models — but beyond 20 images per request, a stricter per-image limit of roughly 2,000 px per dimension applies.

Payload vs. token limits. Base64-encoded images inflate request size, and the 32 MB request cap can arrive before any token limit does. On the Claude API and Claude Platform on AWS, the Files API lets you upload once and reference by file_id; Bedrock and Google Cloud currently accept base64 image sources only.

Hidden vision spend. Screenshots taken by the computer-use tool are billed as vision input by this same formula — agentic browsing workloads are image-token workloads in disguise.

Caching applies. Images inside message content are cacheable, so a reference image used across many requests can ride the 0.1x cache-read rate like any other input. Adding or removing images invalidates the message-level cache, so keep stable images early in the prompt.

Where to go next

Documents are the other pixel-driven cost: PDF token costs applies this same formula page by page. For where visual tokens appear on the invoice, see the token bill anatomy.

Sources