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

Содержание
Вы зарегистрировались в API нейросети, и первое, что от вас просят, — ключ. В этом руководстве: что такое API-ключ, откуда он берётся, как его хранить и что делать, если он попал не туда.
Что такое API-ключ#
API-ключ — длинная строка из букв и цифр, по которой сервис узнаёт, кто отправляет запрос. Это пароль для программ: ваш скрипт передаёт ключ с каждым запросом, а сервис по нему находит ваш аккаунт и списывает стоимость запроса с баланса.
Отсюда два вывода:
- Кто знает ключ, тот может тратить ваш баланс. Сервис не отличит вас от человека, скопировавшего ключ.
- Ключ — это не модель и не баланс. Это только пропуск. Баланс — отдельная вещь, его пополняют, а один и тот же ключ работает с любой моделью, доступной вашему аккаунту.
Стоимость запроса считается в токенах. Если токены вам пока незнакомы, начните со статьи Что такое токен в ИИ.
Где взять ключ#
Ключи выдаёт личный кабинет каждого сервиса. Например, у официального API DeepSeek есть страница API keys по адресу platform.deepseek.com/api_keys, а в документации ключ читается из переменной окружения DEEPSEEK_API_KEY (проверено 21 октября 2026 года). Порядок почти везде одинаковый:
- Создайте аккаунт.
- Откройте в кабинете страницу с API-ключами.
- Нажмите кнопку создания нового ключа и дайте ему имя, например
my-first-script. - Сразу скопируйте ключ. Многие сервисы показывают его только один раз.
В CheapTokens путь от аккаунта до ключа описан в статье Первый API-запрос в CheapTokens. CheapTokens работает с предоплаченным балансом в долларах: один баланс на все модели. Если запрос не проходит из-за пустого баланса, смотрите ошибку «Not enough tokens».
Где ключа не должно быть никогда#
Большинство утечек — не взломы, а ошибки копирования:
- ключ, вписанный прямо в код (
api_key="sk-..."), который потом отправили на GitHub; - ключ на скриншоте, в сообщении в чате или в вопросе на форуме;
- ключ в клиентском коде (веб-страница или мобильное приложение): любой может открыть его и прочитать;
- файл
.env, попавший в коммит git.
Последний случай самый частый. Даже если удалить файл следующим коммитом, ключ останется в истории git, поэтому ключ, который хоть раз был в коммите, считайте утёкшим.
Храните ключ в переменной окружения#
Переменная окружения — именованное значение, которое живёт в вашей системе, а не в коде. Программа читает его при запуске, поэтому код можно безопасно показывать другим, а ключ остаётся на вашем компьютере.
В Linux или macOS задайте её для текущего терминала:
export CHEAPTOKENS_API_KEY="YOUR_API_KEY"В Windows PowerShell:
$env:CHEAPTOKENS_API_KEY = "YOUR_API_KEY"Значение действует, пока открыт терминал. Чтобы оно сохранялось между сеансами, добавьте строку в профиль оболочки либо используйте файл .env в проекте и внесите его в .gitignore до первого коммита:
# .gitignore
.envВ коде ключ читайте из окружения, а не вписывайте:
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/:
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: оболочка подставляет переменную, и ключ не виден в самой команде:
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 с сервера, который вы контролируете, а приложение пусть общается с ним.
Что делать, если ключ утёк#
Если вы отправили ключ в публичный репозиторий, написали его в сообщении или просто не уверены, действуйте так, будто он уже у чужого человека:
- Сначала отзовите ключ. Откройте страницу, где вы его создали, и удалите или отключите ключ. Сделайте это прежде всего остального, уборка — потом.
- Создайте новый ключ с новым именем.
- Замените его везде, где он использовался: в переменных окружения, файлах
.env, на серверах, в приложениях и инструментах. - Проверьте баланс и расход. Запросы, которых вы не делали, — признак того, что старым ключом пользовались.
- Уберите ключ из исходников. Удалите его из кода и добавьте
.envв.gitignore. Удаление файла не стирает ключ из истории git, поэтому шаг 1 важнее, чем переписывание истории.
Порядок важен. Отозванный ключ безвреден, даже если остался в старом коммите.
Что дальше#
- Сделайте первый запрос с ключом: Первый API-запрос в CheapTokens.
- Узнайте, за что вы платите: Что такое токен в ИИ.
- Пополните баланс, когда он закончится: ошибка «Not enough tokens».
Готовы попробовать? Получите ключ CheapTokens, задайте его как CHEAPTOKENS_ и запустите пример выше.
Адреса API, id моделей и лимиты — в документации CheapTokens.



