YandexGPT API or foreign models through a gateway: which to choose

A Russian model in Yandex Cloud and foreign models behind an OpenAI-compatible gateway solve the same job differently. We compare the approaches without rankings.

5 min · · сравнение · models

If you are choosing a model for a chatbot, classification or data extraction, there are two options: a Russian service such as Yandex Cloud, or foreign models (Claude, GPT, Gemini, DeepSeek) through a gateway. This article is about the YandexGPT API and its alternative: how request format, key setup, payment and context differ, and above all how to compare quality on your own data rather than on someone else's tables.

Yandex Cloud's tariffs and features are deliberately left out below: they change, and the service's documentation is the only reliable source. Everything about Zukko's API and prices is as of 18 October 2026.

The YandexGPT API: how it works

YandexGPT is part of the Yandex Cloud platform. Broadly, the path to the first request is:

  1. Register in Yandex Cloud and set up a billing account.
  2. A folder, inside which you work. Its identifier takes part in requests.
  3. A service account with a role that allows calling models (check the role name in the documentation).
  4. An API key of the service account, or an IAM token, for authentication.
  5. A request to the models endpoint, where the model is addressed with a string that includes the folder identifier.

Take exact role names, endpoints and the model address format from the current Yandex Cloud documentation: they have changed over time, and outdated guides from the internet easily lead to 401 and 403 errors. The Yandex Cloud documentation also describes an OpenAI API compatibility mode; check whether it supports the features you need (tools, streaming, images).

Hence the answer to a common question, how to get a YandexGPT API key: according to the Yandex Cloud documentation, the key is created for a service account in the cloud console, not in a user profile.

Foreign models through a gateway

With Zukko you get one fetch_... key, a single dollar balance and pay-per-token billing with no subscription. The request format is OpenAI-compatible, so the regular openai SDK works:

bash
from openai import OpenAI

client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")

r = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "Extract the date and amount from the email: 'Pay by 5 November, 12,400 RUB.'"}],
)
print(r.choices[0].message.content)

Switching models means changing one model string. Any model can also be called in the Anthropic format (/v1/messages). GET https://api.zukko.pro/v1/models returns the model list.

Access from Russia goes through the gateway, with payment by SBP (the payment page adds 8.5% on top), MasterCard, or crypto.

Comparing the approaches

CriterionYandexGPT in Yandex CloudForeign models via Zukko
API formatits own, plus an OpenAI compatibility mode (check the docs)OpenAI-compatible and Anthropic-compatible
Authenticationservice account, API key or IAM token, folder identifierone fetch_... key, limits and model list per key
PaymentYandex Cloud account, tariffs on the cloud's sitedollar balance from $1, SBP, MasterCard or crypto
Model choiceYandex's own lineupClaude, GPT, Gemini, DeepSeek, Qwen, GLM on one key
Contextcheck per model in the docs1M tokens for most catalog models, 128K for GLM, 256K for Grok
Where data goesset by Yandex's termsset by the model provider; send personal data only after a risk assessment

The last row matters more than it looks. If your project has data localization requirements or rules for personal data processing, that decision belongs to the company's lawyer, not the developer. A model with the best price-to-quality ratio is no help if the project's terms do not allow it.

Cost: YandexGPT API price versus a gateway calculation

We do not quote Yandex Cloud's price: take it from the cloud's tariff page and calculate by the same rules as below. For the gateway the calculation is simple: input tokens × input price + output tokens × output price, in dollars per 1M tokens.

Assume (as a hypothetical example) a classification bot handling 10,000 requests a day, each with 1,500 input tokens and 300 output tokens. That is 15M input tokens and 3M output tokens per day. Prices as of 18 October 2026:

ModelInput / output, $ per 1MFormulaPer day
deepseek-v4.1-flash0.013 / 0.03815 × 0.013 + 3 × 0.038$0.309
gpt-6.1-sol0.27 / 1.3215 × 0.27 + 3 × 1.32$8.01
claude-sonnet-5-50.4 / 215 × 0.4 + 3 × 2$12.00

The gap between models is large, so first decide what quality you need, and only then compare prices. If requests share a long prefix (instructions, a knowledge base), the cache is billed separately and can noticeably reduce spend, but note the caveats: for GPT only cache reads are visible, and Claude gives the cache discount in the Anthropic format. More in prompt caching.

Comparing Russian and foreign models without fooling yourself

Public rankings transfer poorly to your task. The model strength index (Artificial Analysis Intelligence Index; in our catalog claude-opus-5-5 has 58, gpt-6.1-sol 52, deepseek-v4.1-flash 39) shows overall level, but not how a model handles your emails, contracts or Russian-language dialogues. So you need a small test of your own:

  1. Collect 30 to 50 real examples, including hard and messy ones.
  2. Decide in advance what counts as a correct answer (field, format, tolerated mistakes).
  3. Run the same requests through all candidates and save the answers.
  4. Count the share of correct answers and the cost per request.

A skeleton for the gateway (write the Yandex call as your own function following Yandex Cloud's documentation):

bash
import csv
from openai import OpenAI

client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_your_key")

def gateway(model):
    def ask(prompt):
        r = client.chat.completions.create(
            model=model, messages=[{"role": "user", "content": prompt}]
        )
        return r.choices[0].message.content
    return ask

candidates = {

Then grade the results by hand or with an automatic check. A fuller evaluation skeleton is in how to test prompts.

How to choose

  • You need data and processing strictly inside a Russian cloud, or integration with other Yandex services: look at YandexGPT.
  • You need a choice of different models, flexible pricing and one key for all tasks: a gateway.
  • Not sure: run the test above on both options and compare quality and cost on your examples.

A Zukko key is created in the dashboard. The request format is in the chat/completions reference, and models are in the Models section.

FAQ

Can I use YandexGPT and foreign models together?

Yes. For example, some requests (with sensitive data) go to a Russian cloud and the rest go to the gateway. Make the choice in your code by request type.

Does the gateway need a separate SDK?

No. The openai SDK with base_url="https://api.zukko.pro/v1" or plain HTTP requests is enough. For Claude there is also the Anthropic format.

How do I find out which model is better for Russian?

There is no universal answer: check on your own texts using the method above. Do not rely on reviews that do not show examples like your data.

How much does it cost to try the gateway?

Top-ups start at $1. A test of 50 requests with 1,500 input tokens and 300 output tokens on deepseek-v4.1-flash comes to 50 × (0.0015 × 0.013 + 0.0003 × 0.038) ≈ $0.0015, a fraction of a cent.

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.

Get API keyDocumentation

api.zukko.pro · fetch_*

YandexGPT API or foreign models via a gateway · Zukko