Статья · ИНСТРУКЦИИ · 30 окт. 2026 · 7 мин чтения

Как получить API-ключ DeepSeek

Евгений
Технический писатель · IT, облачные сервисы
Как получить API-ключ DeepSeek
7 мин чтения

Для работы с DeepSeek через API нужен не только аккаунт на платформе, но и отдельный ключ доступа — строка, которая начинается с sk-. Без неё любой запрос к api.deepseek.com вернёт ошибку аутентификации, даже если на балансе есть деньги. Ниже — последовательность действий от регистрации до первого рабочего запроса, с проверкой на каждом этапе и разбором мест, где чаще всего спотыкаются.

Понадобится почта или Google-аккаунт, доступ к платёжному средству для пополнения (если планируете выходить за пределы стартового баланса) и минимальный набор инструментов: терминал с curl или Python с установленным пакетом openai.

Регистрация на platform.deepseek.com

Откройте platform.deepseek.com — это отдельный портал для разработчиков, он не совпадает с основным сайтом DeepSeek и чат-интерфейсом. Нажмите Sign Up, укажите email и пароль либо войдите через существующий Google-аккаунт.

После регистрации платформа попросит подтвердить почту — без этого шага создание ключа будет недоступно. Письмо приходит в течение пары минут; если его нет, проверьте папку «Спам», у некоторых корпоративных почтовых фильтров письма от DeepSeek попадают туда.

Важный момент по доступности: DeepSeek ограничивает регистрацию для ряда стран и территорий. Если при попытке входа вы видите сообщение о недоступности сервиса в вашем регионе, дело не в настройках браузера и не в VPN на стороне провайдера — платформа блокирует доступ на уровне аккаунта.

После подтверждения почты вы попадаете в консоль. В левом меню видны разделы API Keys, Usage (расход и баланс) и Top up (пополнение). Пока ключей нет, список в API Keys пуст — это нормальное состояние.

Создание API-ключа

В разделе API Keys нажмите Create new API key. Платформа попросит ввести имя ключа — оно нужно только для вашего удобства, чтобы позже отличать ключи для разных проектов или окружений. Если планируете использовать DeepSeek в нескольких сервисах, давайте ключам осмысленные имена вроде prod-backend или local-dev: при компрометации одного ключа вы удаляете только его, не затрагивая остальные.

После нажатия Create API key платформа покажет сгенерированную строку. Скопируйте её сразу — повторно увидеть значение нельзя. Если закрыть окно, не сохранив ключ, придётся генерировать новый: в целях безопасности платформа хранит только хеш, а не сам ключ.

Ключ выглядит как длинная строка, начинающаяся с sk-. Сохраните его в менеджере секретов или хотя бы в защищённом файле вне репозитория. Распространённая ошибка — отправить ключ в чат коллеге или сохранить в публичном GitHub-гисте «на минутку»: такие ключи сканеры находят за минуты, а расход на чужой трафик списывается с вашего баланса.

Пополнение баланса и проверка биллинга

Созданный ключ сам по себе не даёт бесплатных запросов. DeepSeek тарифицирует API по токенам: входные и выходные токены считаются отдельно, а цена зависит от модели и от того, попадает ли запрос в пиковые часы. Когда баланс нулевой, запросы возвращают HTTP 402 Insufficient Balance.

Перейдите в Top up. Для российских пользователей доступные способы пополнения стоит проверить на странице оплаты в момент входа — платформа поддерживает карты и электронные кошельки в зависимости от региона. Минимальная сумма пополнения обычно невелика, для тестов хватает нескольких долларов: deepseek-flash на cache miss стоит $0.15 за миллион входных токенов в непиковые часы, так что бюджет на первые эксперименты получается скромным.

Пиковые часы, если планируете считать расход заранее, — это 01:00–04:00 и 06:00–10:00 UTC по будням (китайские праздники не считаются). Всё остальное время действует пониженная ставка, обычно вдвое ниже пиковой. Для тестовых запросов это неважно, а вот при пакетной обработке разница в счёте заметна.

Отдельно проверьте в Usage, есть ли у аккаунта granted balance — стартовый или промо-баланс. Если он есть, списания сначала идут с него, и только потом с пополненного. Не полагайтесь на старые скриншоты из туториалов, где фигурируют конкретные суммы «бесплатных токенов»: условия меняются, смотреть нужно на свою страницу Usage.

Пополнение через банковский перевод для юрлиц доступно только после корпоративной верификации и идёт дольше — от десяти минут до часа. Для физического лица проще карта.

Проверка ключа первым запросом (curl)

Самый быстрый способ убедиться, что ключ рабочий, — отправить прямой HTTP-запрос через curl. Никаких SDK, только терминал.

Сначала положите ключ в переменную окружения, чтобы он не попал в историю команд в открытом виде:

export DEEPSEEK_API_KEY="sk-ваш-ключ-здесь"

Теперь сам запрос к чат-эндпоинту:

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"
      }'

Разберём ключевые параметры. Адрес https://api.deepseek.com — база для OpenAI-совместимого формата. Тонкость с /v1: сам эндпоинт https://api.deepseek.com/v1/chat/completions валиден, но если вы работаете через Python SDK, то base_url нужно указывать без /v1. SDK дописывает версию сам, и при base_url="https://api.deepseek.com/v1" он сформирует путь /v1/v1/chat/completions, что даст 404. В curl вы путь пишете руками, поэтому здесь оба варианта рабочие.

Заголовок Authorization обязателен и содержит ключ с префиксом Bearer. Поле model принимает deepseek-flash или deepseek-v4-pro; имена из ранних туториалов вроде deepseek-chat и deepseek-reasoner всё ещё принимаются как legacy-алиасы, но запросы обслуживает актуальная модель Flash по её цене.

Блок thinking с reasoning_effort включает режим рассуждений. Для deepseek-flash это не обязательно — модель работает и без него, но с явным включением вы увидите в ответе поле reasoning_content с цепочкой рассуждений. Если ваш клиент не умеет обрабатывать это поле, уберите thinking из тела запроса, иначе некоторые инструменты могут вернуть ошибку о неожиданном поле.

Успешный ответ — JSON с массивом choices, где в message.content лежит текст ответа модели. Если вместо этого пришёл {"error": {"message": "Authentication Fails"}}, ключ скопирован неверно или переменная окружения не подхватилась в текущей сессии терминала.

Первый запрос через Python SDK

Если curl сработал, тот же запрос через Python занимает пару минут. SDK от OpenAI подходит без модификаций — достаточно подменить base_url и api_key.

Установите пакет:

pip install --upgrade openai

Создайте файл test_deepseek.py:

import os
from openai import OpenAI

api_key = os.environ.get("DEEPSEEK_API_KEY")
if not api_key:
    raise RuntimeError("DEEPSEEK_API_KEY не задан в окружении")

client = OpenAI(
    api_key=api_key,
    base_url="https://api.deepseek.com",
)

response = client.chat.completions.create(
    model="deepseek-flash",
    messages=[
        {"role": "system", "content": "Ты — лаконичный ассистент."},
        {"role": "user", "content": "Назови три причины использовать API вместо веб-интерфейса."},
    ],
    stream=False,
    reasoning_effort="high",
    extra_body={"thinking": {"type": "enabled"}},
)

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

Запустите:

python test_deepseek.py

Обратите внимание на extra_body: параметр thinking не входит в стандартную схему OpenAI SDK, поэтому его нужно передавать именно так — в обходной части тела запроса. Если передать его напрямую в create(), Python выдаст TypeError о неожиданном именованном аргументе. Это отличие от curl, где JSON произвольной структуры и принимает любые поля.

Второй print выводит usage — количество входных и выходных токенов. Полезно сверить его с ожиданиями: если на короткий запрос ушло непропорционально много токенов, возможно, вы передали слишком длинный системный промпт или включили лишний контекст.

Типичные ошибки и способы их устранения

Ошибка 401 Authentication Fails. Самая частая причина — ключ скопирован с обрезанным началом или концом. Строка должна начинаться ровно с sk- и не содержать пробелов по краям. Вторая причина — переменная DEEPSEEK_API_KEY задана в одном терминале, а запрос запускается из другого или из IDE, которая не наследует окружение shell. Проверьте echo $DEEPSEEK_API_KEY в той же сессии, откуда уходит запрос.

Ошибка 402 Insufficient Balance. Баланс исчерпан или не пополнялся. Ключ при этом валиден — это не проблема аутентификации. Зайдите в Top up и пополните счёт, либо проверьте, не истёк ли срок действия промо-баланса.

Ошибка 429 Rate Limit Reached. Превышен лимит одновременных запросов: у deepseek-flash это 2500, у deepseek-v4-pro — 500. Для одиночных тестов неактуально, но при нагрузочном тестировании или пакетной обработке вы упрётесь именно в этот лимит, а не в баланс. Решение — ограничить конкурентность на своей стороне или добавить паузу между запросами.

Ответ приходит от OpenAI, а не от DeepSeek. Забыт base_url. Если в коде остаётся дефолтный https://api.openai.com/v1, запрос уйдёт в OpenAI с валидным DeepSeek-ключом и вернёт ошибку аутентификации. Явно указывайте base_url="https://api.deepseek.com" при создании клиента.

Модель не распознана. Используется имя, которого нет в текущей линейке — например, опечатка в deepseek-flash или устаревшее имя, которое уже вывели из обращения. Актуальные ID: deepseek-flash и deepseek-v4-pro; legacy-алиасы deepseek-chat и deepseek-reasoner пока принимаются, но лучше на них не закладываться в новых проектах. Проверять актуальный список моделей и цены стоит на странице Models & Pricing, а не по статьям полугодовой давности.

Ключ утёк в клиентский код. Если sk- попал в JavaScript фронтенда, мобильное приложение или публичный репозиторий, ключ нужно немедленно удалить в консоли и сгенерировать новый. Запросы к DeepSeek должны идти только с бэкенда: браузер не должен знать ваш API-ключ.

Запросы перестали проходить после серии успешных. Проверьте Usage: возможно, закончился баланс или вы приблизились к лимиту конкурентности. Оба сценария уже разобраны выше — 402 и 429 соответственно.

Каждая из перечисленных ошибок имеет конкретную причину и устранима без переустановки SDK или смены аккаунта.

Вверх!