DeepSeek V4 Pro 0813 (batch) vs DeepSeek V4 Pro 0813
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, DeepSeek V4 Pro 0813 comes out about 1.3× cheaper.
| Feature | ||
|---|---|---|
| Provider | DeepSeek | DeepSeek |
| Model id | deepseek/deepseek-v4-pro-0813:batch | deepseek/deepseek-v4-pro-0813 |
| Context | 1,048,576 tokens | 1,048,576 tokens |
| Max output | 943,718 tokens | 384,000 tokens |
| Input / 1M tokens | 382,965 toman | 304,457 toman |
| Output / 1M tokens | 1,148,895 toman | 913,372 toman |
| ≈ one 1,000-word request | 1,991 toman | 1,583 toman |
| Input caching | 37,716 toman / 1M | 10,149 toman / 1M |
| Image input | No | No |
| File input | No | No |
| Tool calling | Yes | Yes |
| JSON output | Yes | Yes |
| Reasoning mode | Yes | Yes |
Which one for what?
DeepSeek V4 Pro 0813 (batch)
- Multi-step problems, maths, and tracking down a bug
- Whole documents or a codebase in a single request
- Agents that call your own APIs and database
1,991 toman per 1,000 words · Model page
DeepSeek V4 Pro 0813
- Multi-step problems, maths, and tracking down a bug
- Whole documents or a codebase in a single request
- Agents that call your own APIs and database
1,583 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": "deepseek/deepseek-v4-pro-0813:batch",
"messages": [{"role": "user", "content": "Introduce yourself in one sentence."}],
"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="deepseek/deepseek-v4-pro-0813:batch",
messages=[{"role": "user", "content": "Introduce yourself in one sentence."}],
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: "deepseek/deepseek-v4-pro-0813:batch",
messages: [{ role: "user", content: "Introduce yourself in one sentence." }],
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' => 'deepseek/deepseek-v4-pro-0813:batch',
'messages' => [['role' => 'user', 'content' => 'Introduce yourself in one sentence.']],
]);
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: "deepseek/deepseek-v4-pro-0813:batch",
Messages: []openai.ChatCompletionMessageParamUnion{openai.UserMessage("Introduce yourself in one sentence.")},
})
if err != nil {
panic(err)
}
fmt.Println(resp.Choices[0].Message.Content)
}model = "deepseek/deepseek-v4-pro-0813"
More comparisons: all pairs · model rankings · full catalogue
base_url = https://api.uttapen.ir/v1