uttapen

Claude Sonnet 4.5 (batch) vs Claude Sonnet 4.6 (batch)

Both sit behind the same key and the same code on uttapen — the only thing that changes is the model string, so you can run each of them against your own workload without touching anything else.

FeatureClaude Sonnet 4.5 (batch)Claude Sonnet 4.6 (batch)
ProviderAnthropicAnthropic
Model idanthropic/claude-sonnet-4.5:batchanthropic/claude-sonnet-4.6:batch
Context1,000,000 tokens1,000,000 tokens
Max output64,000 tokens128,000 tokens
Input / 1M tokens435,188 toman435,188 toman
Output / 1M tokens2,175,938 toman2,175,938 toman
≈ one 1,000-word request3,394 toman3,394 toman
Input caching43,519 toman / 1M43,519 toman / 1M
Image inputYesYes
File inputYesYes
Tool callingYesYes
JSON outputYesYes
Reasoning modeYesYes

Which one for what?

Claude Sonnet 4.5 (batch)

  • Multi-step problems, maths, and tracking down a bug
  • Whole documents or a codebase in a single request
  • Reading screenshots, invoices, and scanned forms
  • Agents that call your own APIs and database
3,394 toman per 1,000 words · Model page

Claude Sonnet 4.6 (batch)

  • Multi-step problems, maths, and tracking down a bug
  • Whole documents or a codebase in a single request
  • Reading screenshots, invoices, and scanned forms
  • Agents that call your own APIs and database
3,394 toman per 1,000 words · Model page

Run both with the same code

Swap the model value between the two ids and send the same request twice; what each answer cost comes back in the X-Uttapen-Cost-Toman header.

curl https://api.uttapen.ir/v1/chat/completions \
  -H "Authorization: Bearer sk-up-…" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-4.5:batch",
    "messages": [{"role": "user", "content": "Introduce yourself in one sentence."}],
    "stream": true
  }'

model = "anthropic/claude-sonnet-4.6:batch"

More comparisons: all pairs · model rankings · full catalogue

base_url = https://api.uttapen.ir/v1