Claude Sonnet 5.5 vs Gemini 3.1 Pro Preview

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, Claude Sonnet 5.5 comes out about 17% cheaper.

FeatureClaude Sonnet 5.5Gemini 3.1 Pro Preview
ProviderAnthropicGoogle
Model idanthropic/claude-sonnet-5.5google/gemini-3.1-pro-preview
Context1,000,000 tokens1,048,576 tokens
Max output128,000 tokens65,536 tokens
Input / 1M tokens692,439 toman692,439 toman
Output / 1M tokens3,462,194 toman4,154,632 toman
≈ one 1,000-word request5,401 toman6,301 toman
Input caching34,622 toman / 1M69,244 toman / 1M
Image inputYesYes
File inputYesYes
Tool callingYesYes
JSON outputYesYes
Reasoning modeYesYes

Which one for what?

Claude Sonnet 5.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
5,401 toman per 1,000 words · Model page

Gemini 3.1 Pro Preview

  • 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
6,301 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-5.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-5.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-5.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-5.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-5.5",
		Messages: []openai.ChatCompletionMessageParamUnion{openai.UserMessage("Introduce yourself.")},
	})
	if err != nil {
		panic(err)
	}
	fmt.Println(resp.Choices[0].Message.Content)
}

model = "google/gemini-3.1-pro-preview"

No API key yet? Create one →

Frequently asked

Which is cheaper, Claude Sonnet 5.5 or Gemini 3.1 Pro Preview?
Claude Sonnet 5.5 is the cheaper of the two: one 1,000-word request costs about 5,401 toman, about 17% cheaper than Gemini 3.1 Pro Preview.
Which one has the larger context window?
Gemini 3.1 Pro Preview, with 1,048,576 tokens.
Can I use Claude Sonnet 5.5 and Gemini 3.1 Pro Preview 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