Один ключ к DeepSeek, GPT, Claude и Gemini — оплата в рублях, доступ без VPN.

Получить ключ

Быстрый старт: первый запрос к DeepSeek API

Минимум действий, чтобы увидеть ответ модели: получить ключ, отправить один POST-запрос и понять, что вернулось в JSON. Всё, что нужно, — терминал с curl и ключ.

Что понадобится

API-ключ, доступ в интернет и любая среда с HTTP-клиентом. Адрес — https://api.deepseek.com, основной метод — POST /chat/completions. Название модели: deepseek-flash или deepseek-v4-pro.

  1. Получите API-ключ

    Ключ создаётся в личном кабинете провайдера и выглядит как длинная строка. Не вставляйте его в код: положите в переменную окружения, чтобы ключ не попал в репозиторий и логи.

    bash
    export DEEPSEEK_API_KEY="sk-ваш-ключ"

    В Windows PowerShell то же самое делается командой $env:DEEPSEEK_API_KEY = "sk-ваш-ключ" в текущей сессии. Проверить, что доступ работает и ключ принят, можно запросом списка моделей: GET https://api.deepseek.com/models.

  2. Отправьте первый запрос

    Ниже официальный пример из документации DeepSeek. Модель — deepseek-flash, режим рассуждений включён явно, потоковая выдача выключена.

    bash
    curl https://api.deepseek.com/chat/completions \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer ${DEEPSEEK_API_KEY}" \
      -d '{
            "model": "deepseek-flash",
            "messages": [
              {"role": "system", "content": "You are a helpful assistant."},
              {"role": "user", "content": "Hello!"}
            ],
            "thinking": {"type": "enabled"},
            "reasoning_effort": "high",
            "stream": false
          }'

    Если ответ пришёл, значит ключ верный, баланс положительный и модель доступна. Дальше можно уменьшать объём запроса: без явного thinking режим рассуждений всё равно включён по умолчанию, а reasoning_effort: "high" — тоже значение по умолчанию.

  3. Разберите ответ

    Ответ — обычный JSON. Текст модели лежит в choices[0].message.content, цепочка рассуждений — в reasoning_content рядом с ним, расход токенов — в объекте usage.

    json
    {
      "model": "deepseek-flash",
      "choices": [
        {
          "index": 0,
          "message": {
            "role": "assistant",
            "content": "Привет! Я языковая модель DeepSeek.",
            "reasoning_content": "Запрос на приветствие, отвечу коротко."
          },
          "finish_reason": "stop"
        }
      ],
      "usage": {
        "prompt_tokens": 25,
        "completion_tokens": 92,
        "total_tokens": 117,
        "prompt_cache_hit_tokens": 0,
        "prompt_cache_miss_tokens": 25,
        "prompt_tokens_details": {"cached_tokens": 0},
        "completion_tokens_details": {"reasoning_tokens": 48}
      }
    }

    Пример сокращён: служебные поля вроде id, object и created здесь опущены. Состав полей соответствует документации.

Тот же запрос на Python

Официальный способ — библиотека openai версии 1.x: она работает с DeepSeek как с обычным OpenAI-совместимым сервером. Достаточно указать base_url и имя модели.

python
import os

from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com",
)

response = client.chat.completions.create(
    model="deepseek-flash",
    messages=[
        {"role": "system", "content": "Ты — полезный ассистент."},
        {"role": "user", "content": "Привет! Представься в двух предложениях."},
    ],
    stream=False,
)

message = response.choices[0].message
print("Ответ:", message.content)
print("Рассуждения:", getattr(message, "reasoning_content", None))
print("Токены:", response.usage.total_tokens)

Режим рассуждений включён по умолчанию и заметно увеличивает расход токенов. Если рассуждения не нужны, они отключаются через extra_body — параметр thinking не входит в стандартную схему OpenAI SDK.

python
response = client.chat.completions.create(
    model="deepseek-flash",
    messages=[{"role": "user", "content": "Сколько будет 17 * 24?"}],
    extra_body={"thinking": {"type": "disabled"}},
)

print(response.choices[0].message.content)

Нужен API-ключ сегодня

Регистрация по email или Telegram занимает пару минут, оплата идёт в рублях, VPN не нужен. Один ключ работает и с DeepSeek, и с другими моделями.

Получить ключ

Многоходовой диалог

Состояние диалога хранит клиент: каждое новое сообщение добавляется в массив messages. Официальный паттерн — вернуть в историю объект сообщения ассистента целиком, а не только текст.

python
import os

from openai import OpenAI

client = OpenAI(api_key=os.environ["DEEPSEEK_API_KEY"], base_url="https://api.deepseek.com")

messages = [{"role": "user", "content": "What's the highest mountain in the world?"}]
response = client.chat.completions.create(model="deepseek-flash", messages=messages)
messages.append(response.choices[0].message)
Если используете tools

При передаче массива tools поле reasoning_content обязательно возвращать назад во всех последующих запросах диалога, иначе сервер отвечает HTTP 400. Без tools это поле передавать не нужно — оно игнорируется.

Что означает каждое поле ответа

Поля ответа Chat Completions и их смысл
Поле Что содержит
choices[0].message.content Готовый текст ответа. Именно это показывают пользователю.
choices[0].message.reasoning_content Цепочка рассуждений модели. Приходит на одном уровне с content, когда thinking включён.
choices[0].finish_reason Причина остановки: stop, length, content_filter, tool_calls, insufficient_system_resource или aborted.
usage.prompt_tokens Все входные токены. Равны сумме prompt_cache_hit_tokens и prompt_cache_miss_tokens.
usage.completion_tokens Все выходные токены, включая рассуждения из completion_tokens_details.reasoning_tokens.
usage.prompt_cache_hit_tokens Токены входа, попавшие в контекстный кэш. Тарифицируются в десятки раз дешевле — см. разбор цен.
usage.total_tokens Сумма входа и выхода — удобно для подсчёта стоимости запроса.

Подсчитать деньги по этим полям просто: токены × цена / 1 000 000 отдельно для входа и выхода. Готовые примеры — на странице «Цены и расчёт».

Первые ошибки: 401, 402, 422

Три кода, которые чаще всего встречаются на старте. Полный список — в разделе «Ошибки и лимиты».

Что означают первые ошибки и куда смотреть
Код Значение Что делать
401 Authentication Fails Неверный API-ключ. Проверьте, что переменная окружения подставилась в заголовок, нет лишних пробелов и кавычек, что ключ не отозван.
402 Insufficient Balance Закончился баланс. Проверьте состояние через GET /user/balance и пополните счёт.
422 Invalid Parameters Параметры запроса не приняты. Сверьте типы и допустимые значения со справочником параметров. Ошибки в структуре тела запроса — например, stream_options.include_usage без stream: true — приходят отдельным кодом 400.
Про тело ошибки и повторы

Структура тела ошибки в официальной документации не описана: разбирать ответ безопаснее по HTTP-коду, а не по конкретному полю JSON. Заголовка Retry-After и формальной политики backoff тоже нет — пауза перед повтором при 500 и 503 остаётся рекомендацией практики, а не требованием API.

Нужен API-ключ сегодня

Регистрация по email или Telegram занимает пару минут, оплата идёт в рублях, VPN не нужен. Один ключ работает и с DeepSeek, и с другими моделями.

Получить ключ

Читайте также

Один ключ вместо пяти аккаунтов

DeepSeek, GPT, Claude и Gemini через один OpenAI-совместимый адрес: api.aitunnel.ru/v1. Регистрация занимает пару минут, оплата в рублях, доступ без VPN.

  • Один ключ на все модели
  • Оплата в рублях и счёт для юрлиц
  • Совместимо с OpenAI SDK