Claude Sonnet 4.5 vs Gemini 2.5 Pro
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. On cost, Gemini 2.5 Pro comes out about 38% cheaper.
| Feature | Claude Sonnet 4.5 | |
|---|---|---|
| Provider | Anthropic | |
| Model id | anthropic/claude-sonnet-4.5 | google/gemini-2.5-pro |
| Context | 1,000,000 tokens | 1,048,576 tokens |
| Max output | 64,000 tokens | 65,536 tokens |
| Input / 1M tokens | 1,038,658 toman | 432,774 toman |
| Output / 1M tokens | 5,193,290 toman | 3,462,194 toman |
| ≈ one 1,000-word request | 8,102 toman | 5,063 toman |
| Input caching | 103,866 toman / 1M | 43,277 toman / 1M |
| Image input | Yes | Yes |
| File input | Yes | Yes |
| Tool calling | Yes | Yes |
| JSON output | Yes | Yes |
| Reasoning mode | Yes | Yes |
Which one for what?
Claude Sonnet 4.5
- 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
8,102 toman per 1,000 words · Model page
Gemini 2.5 Pro
- 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
5,063 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",
"messages": [{"role": "user", "content": "Introduce yourself."}],
"stream": true
}'from openai import OpenAI
client = OpenAI(
base_url="https://api.uttapen.ir/v1",
api_key="sk-up-…",
)
stream = client.chat.completions.create(
model="anthropic/claude-sonnet-4.5",
messages=[{"role": "user", "content": "Introduce yourself."}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.uttapen.ir/v1",
apiKey: "sk-up-…",
});
const stream = await client.chat.completions.create({
model: "anthropic/claude-sonnet-4.5",
messages: [{ role: "user", content: "Introduce yourself." }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}<?php
// composer require openai-php/client guzzlehttp/guzzle
$client = OpenAI::factory()
->withBaseUri('https://api.uttapen.ir/v1')
->withApiKey('sk-up-…')
->make();
$result = $client->chat()->create([
'model' => 'anthropic/claude-sonnet-4.5',
'messages' => [['role' => 'user', 'content' => 'Introduce yourself.']],
]);
echo $result->choices[0]->message->content;package main
import (
"context"
"fmt"
"github.com/openai/openai-go"
"github.com/openai/openai-go/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://api.uttapen.ir/v1"),
option.WithAPIKey("sk-up-…"),
)
resp, err := client.Chat.Completions.New(context.Background(), openai.ChatCompletionNewParams{
Model: "anthropic/claude-sonnet-4.5",
Messages: []openai.ChatCompletionMessageParamUnion{openai.UserMessage("Introduce yourself.")},
})
if err != nil {
panic(err)
}
fmt.Println(resp.Choices[0].Message.Content)
}model = "google/gemini-2.5-pro"
Frequently asked
- Which is cheaper, Claude Sonnet 4.5 or Gemini 2.5 Pro?
- Gemini 2.5 Pro is the cheaper of the two: one 1,000-word request costs about 5,063 toman, about 38% cheaper than Claude Sonnet 4.5.
- Which one has the larger context window?
- Gemini 2.5 Pro, with 1,048,576 tokens.
- Can I use Claude Sonnet 4.5 and Gemini 2.5 Pro with one API key?
- Yes. An uttapen key reaches every model unless you gave it an allowed-models list, and each request is charged in toman to the same wallet; only the model value changes.
More comparisons: all pairs · model rankings · full catalogue
base_url = https://api.uttapen.ir/v1