DeepSeek V4 Pro via API: setup, pricing and image input
How to connect DeepSeek V4 Pro, send it an image and estimate the cost. And why V4.1 Flash is the better deal for plain text.
5 min · · models · сравнение
In the Zukko catalogue DeepSeek V4 Pro differs from the younger DeepSeek V4.1 Flash mainly in that it accepts image input. It does not win on price or on the intelligence index, and that is worth knowing before you connect it. Below: how to connect the DeepSeek V4 Pro API, how to send an image, what typical workloads cost, and when V4.1 Flash is the better choice.
DeepSeek V4 Pro pricing in Zukko
The model ID is deepseek-v4-pro. Prices in dollars per 1M tokens as of 6 October 2026:
| Parameter | Value |
|---|---|
| Input | $0.088 |
| Output | $0.25 |
| Cache read | $0.088 (if the provider reports it in the response) |
| Cache write | not charged separately |
| Context | 1M tokens |
| Image input | yes |
| Vendor's official price, input / output | $0.66 / $1.98 |
The intelligence index in the catalogue is 36 (the Intelligence Index from Artificial Analysis, a composite benchmark score). A cache read costs the same as normal input and a write is not charged separately, so caching does not change the bill for this model. Models and prices change: current data is at GET https://api.zukko.pro/v1/models or on the Models page in the dashboard.
Connecting the DeepSeek V4 Pro API
The model is called through the OpenAI-compatible address https://api.zukko.pro/v1 with a fetch_... key. No separate DeepSeek account is needed.
Python
from openai import OpenAI
client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")
resp = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[{"role": "user", "content": "Draft a checklist for receiving a batch of goods at a warehouse."}],
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, resp.usage.completion_tokens)curl
curl https://api.zukko.pro/v1/chat/completions \
-H "Authorization: Bearer fetch_your_key" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"messages": [{"role": "user", "content": "Hi! Answer in one sentence."}]
}'The model also works in the Anthropic format through POST /v1/messages — the gateway converts the request. Request parameters are in the /v1/chat/completions reference, SDK usage in the Python reference.
How to send an image
In the OpenAI format an image is passed as part of content with the image_url type: either as a link or as a base64 data: URL. An example for a local file:
import base64
from openai import OpenAI
client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")
with open("invoice.png", "rb") as f:
b64 = base64.b64encode(f.read()).decode()
resp = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[{
"role": "user",
"content": [
{"type": "text", "text": "Extract the invoice number, date and total amount as JSON."},
{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{b64}"}},
],
}],
)
print(resp.choices[0].message.content)
print("input tokens:", resp.usage.prompt_tokens)An image is billed as input tokens. How many tokens your image takes is shown in usage.prompt_tokens after the first request — base your budget on that number. If the request is too large, the server returns 413 — lower the resolution or compress the file before encoding it.
DeepSeek V4 Pro or V4.1 Flash
A comparison based on catalogue data:
deepseek-v4-pro | deepseek-v4.1-flash | |
|---|---|---|
| Input, $ per 1M | 0.088 | 0.013 |
| Output, $ per 1M | 0.25 | 0.038 |
| Intelligence index | 36 | 39 |
| Image input | yes | no |
| Context | 1M | 1M |
The honest conclusion: V4.1 Flash has the higher intelligence index (39 versus 36) and is also cheaper on both input and output. By this data, the only advantage of V4 Pro is image input. Setup and calculations for the younger model are in the article DeepSeek V4.1 Flash via API.
A calculation on one workload: a support bot, 10,000 conversations of 2,000 input and 400 output tokens — 20M input and 4M output. Formula: input (millions) × input price + output (millions) × output price.
- V4 Pro: 20 × 0.088 + 4 × 0.25 = 1.76 + 1 = $2.76
- V4.1 Flash: 20 × 0.013 + 4 × 0.038 = 0.26 + 0.152 = $0.412
For a purely text task V4 Pro makes sense only if it answers noticeably better than Flash on your examples. Check it yourself: 20–50 real requests with a known answer on both models, then compare the share of correct answers and the total in the Usage section.
The math for image tasks
5,000 document scans. Suppose each takes 3,000 input tokens (image plus instruction — take the exact number from usage in a trial) and a 500-token answer. That is 15M input and 2.5M output.
| Model | Calculation | Total | Intelligence index |
|---|---|---|---|
deepseek-v4-pro | 15 × 0.088 + 2.5 × 0.25 | $1.945 | 36 |
qwen3.8-max | 15 × 0.1 + 2.5 × 0.263 | $2.1575 | 45 |
gpt-6-sol | 15 × 0.13 + 2.5 × 0.63 | $3.525 | — |
claude-sonnet-5 | 15 × 0.2 + 2.5 × 1.013 | $5.5325 | — |
gpt-6.1-sol | 15 × 0.27 + 2.5 × 1.32 | $7.35 | 52 |
V4 Pro is the cheapest here, but Qwen 3.8 Max costs only a little more with an index of 45. If recognition accuracy matters to you, compare both on the same scans. Keep in mind that the same image can take a different number of tokens on different models, so run the trial on each model separately.
At the vendor's official V4 Pro price the same workload would cost 15 × 0.66 + 2.5 × 1.98 = 9.9 + 4.95 = $14.85.
A setup: Flash for text, Pro for images
If your stream is mixed, it is convenient to pick the model by whether there is an image. Key and balance are shared; only the model field changes:
def pick_model(has_image: bool) -> str:
return "deepseek-v4-pro" if has_image else "deepseek-v4.1-flash"
model = pick_model(has_image=True)So that a bug does not send the whole stream to the more expensive model, create a separate key for the job with a daily dollar limit and a list of allowed models — this is set up in the dashboard. If you do not have a key yet, create one on the API keys page.
FAQ
Why is V4 Pro's index lower than V4.1 Flash's?
The catalogue index is Artificial Analysis's composite benchmark score, and for these models it is 36 for V4 Pro and 39 for V4.1 Flash. The name "Pro" by itself does not mean a higher score. Decide based on your own tasks.
Which image formats are accepted?
In the OpenAI format — a link or a base64 data: URL in the image_url field. PNG or JPEG is the safest place to start; if the request is too large, you get a 413 error.
Does caching give a discount on V4 Pro?
No. A cache read costs $0.088 per million tokens — the same as normal input, and a write is not charged separately.
How do I pay from Russia?
The dollar balance can be topped up via SBP, a Russian bank card or cryptocurrency, from $1.
zukko
Pay 25×
less
for Claude Code & ChatGPT
One fetch_* key and base URL api.zukko.pro — for Cursor, Claude Code, Codex, and any SDK.
Related articles
- GPT-6 Astra or Claude Fable 5.1: Two Top Models by Price and IndexTwo premium models with the same intelligence index and different Zukko prices. We price a single request and an agent session with cache, and explain how to choose on your own data.
- Qwen or DeepSeek via API: Price, Context and Intelligence IndexFour models, one task and an honest calculation: what a run costs on Qwen 3.8 Max and Flash versus DeepSeek V4 Pro and V4.1 Flash.
- Claude Fable 5.1 or Sonnet 5.5: when a big price gap is justifiedFable 5.1 costs far more than Sonnet 5.5. We price the same task in both API formats and give a way to choose the model from results on your own examples.
- DeepSeek V4 Flash or V4.1 Flash: which cheap model to pickA newer version is not always more expensive. We compare DeepSeek V4 Flash and V4.1 Flash on price, cache, context and intelligence index, cost a workload and show how to test.