Назад в блог

AI для новичковИнструкция

Что такое API-ключ и как его хранить безопасно

Что такое API-ключ нейросети, где его взять, почему его нельзя хранить в коде и git, как сделать первый запрос и что делать, если ключ утёк.

Автор: CheapTokens TeamОпубликовано Обновлено 4 мин чтения

Обложка: API-ключ как пароль от аккаунта в нейросети, хранящийся в переменной окружения
Содержание
  1. Что такое API-ключ
  2. Где взять ключ
  3. Где ключа не должно быть никогда
  4. Храните ключ в переменной окружения
  5. Первый запрос
  6. Привычки, которые берегут ключ
  7. Что делать, если ключ утёк
  8. Что дальше

Вы зарегистрировались в API нейросети, и первое, что от вас просят, — ключ. В этом руководстве: что такое API-ключ, откуда он берётся, как его хранить и что делать, если он попал не туда.

Что такое API-ключ#

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

Отсюда два вывода:

  • Кто знает ключ, тот может тратить ваш баланс. Сервис не отличит вас от человека, скопировавшего ключ.
  • Ключ — это не модель и не баланс. Это только пропуск. Баланс — отдельная вещь, его пополняют, а один и тот же ключ работает с любой моделью, доступной вашему аккаунту.

Стоимость запроса считается в токенах. Если токены вам пока незнакомы, начните со статьи Что такое токен в ИИ.

Где взять ключ#

Ключи выдаёт личный кабинет каждого сервиса. Например, у официального API DeepSeek есть страница API keys по адресу platform.deepseek.com/api_keys, а в документации ключ читается из переменной окружения DEEPSEEK_API_KEY (проверено 21 октября 2026 года). Порядок почти везде одинаковый:

  1. Создайте аккаунт.
  2. Откройте в кабинете страницу с API-ключами.
  3. Нажмите кнопку создания нового ключа и дайте ему имя, например my-first-script.
  4. Сразу скопируйте ключ. Многие сервисы показывают его только один раз.

В CheapTokens путь от аккаунта до ключа описан в статье Первый API-запрос в CheapTokens. CheapTokens работает с предоплаченным балансом в долларах: один баланс на все модели. Если запрос не проходит из-за пустого баланса, смотрите ошибку «Not enough tokens».

Где ключа не должно быть никогда#

Большинство утечек — не взломы, а ошибки копирования:

  • ключ, вписанный прямо в код (api_key="sk-..."), который потом отправили на GitHub;
  • ключ на скриншоте, в сообщении в чате или в вопросе на форуме;
  • ключ в клиентском коде (веб-страница или мобильное приложение): любой может открыть его и прочитать;
  • файл .env, попавший в коммит git.

Последний случай самый частый. Даже если удалить файл следующим коммитом, ключ останется в истории git, поэтому ключ, который хоть раз был в коммите, считайте утёкшим.

Храните ключ в переменной окружения#

Переменная окружения — именованное значение, которое живёт в вашей системе, а не в коде. Программа читает его при запуске, поэтому код можно безопасно показывать другим, а ключ остаётся на вашем компьютере.

В Linux или macOS задайте её для текущего терминала:

bash
export CHEAPTOKENS_API_KEY="YOUR_API_KEY"

В Windows PowerShell:

powershell
$env:CHEAPTOKENS_API_KEY = "YOUR_API_KEY"

Значение действует, пока открыт терминал. Чтобы оно сохранялось между сеансами, добавьте строку в профиль оболочки либо используйте файл .env в проекте и внесите его в .gitignore до первого коммита:

text
# .gitignore
.env

В коде ключ читайте из окружения, а не вписывайте:

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",
    api_key=os.environ["CHEAPTOKENS_API_KEY"],  # read from the environment, not written in the code
)

Если переменной нет, os.environ[...] сразу остановит программу с ошибкой — это лучше, чем отправить запрос с пустым ключом.

Первый запрос#

CheapTokens понимает форматы OpenAI Chat Completions и Anthropic Messages, поэтому подходят стандартные SDK: меняются только базовый адрес и ключ. Полный тест с моделью MiniMaxAI/MiniMax-M2.7:

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",
    api_key=os.environ["CHEAPTOKENS_API_KEY"],
)

response = client.chat.completions.create(
    model="MiniMaxAI/MiniMax-M2.7",
    messages=[{"role": "user", "content": "Explain what an API key is in two sentences."}],
    max_tokens=200,
)

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

То же через curl: оболочка подставляет переменную, и ключ не виден в самой команде:

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "MiniMaxAI/MiniMax-M2.7", "messages": [{"role": "user", "content": "Hello"}], "max_tokens": 100}'

Такой короткий тест стоит копейки. Например, запрос с 1 000 входных и 500 выходных токенов обойдётся в $0.00013 по текущей цене. У MiniMax-M2.7 к тому же контекст 180K и ответы до 8 192 токенов, так что для первых опытов модель удобна. Если ответ обрывается на полуслове, читайте Почему ответ ИИ обрывается.

Идентификатор модели берите из документации CheapTokens, а не из другого сервиса: у разных провайдеров имена моделей отличаются.

Привычки, которые берегут ключ#

  • Один ключ на проект. Если один утечёт, вы замените только его, а всё остальное продолжит работать.
  • Давайте ключам имена, по которым видно, где они используются (laptop-script, telegram-bot), — после замены вы будете знать, что обновить.
  • Держите на балансе немного, пока учитесь. При предоплате ущерб от утёкшего ключа ограничен суммой на балансе, но это всё равно ваши деньги.
  • Не присылайте ключи в чаты людям и ИИ-помощникам, вырезайте их из логов и скриншотов.
  • Не кладите ключ в браузер или мобильное приложение. Обращайтесь к API с сервера, который вы контролируете, а приложение пусть общается с ним.

Что делать, если ключ утёк#

Если вы отправили ключ в публичный репозиторий, написали его в сообщении или просто не уверены, действуйте так, будто он уже у чужого человека:

  1. Сначала отзовите ключ. Откройте страницу, где вы его создали, и удалите или отключите ключ. Сделайте это прежде всего остального, уборка — потом.
  2. Создайте новый ключ с новым именем.
  3. Замените его везде, где он использовался: в переменных окружения, файлах .env, на серверах, в приложениях и инструментах.
  4. Проверьте баланс и расход. Запросы, которых вы не делали, — признак того, что старым ключом пользовались.
  5. Уберите ключ из исходников. Удалите его из кода и добавьте .env в .gitignore. Удаление файла не стирает ключ из истории git, поэтому шаг 1 важнее, чем переписывание истории.

Порядок важен. Отозванный ключ безвреден, даже если остался в старом коммите.

Что дальше#

Готовы попробовать? Получите ключ CheapTokens, задайте его как CHEAPTOKENS_API_KEY и запустите пример выше.

Адреса API, id моделей и лимиты — в документации CheapTokens.