«Кодиум» хочет, чтобы бот сам отвечал на вопросы о расписании, пока администратор спит. Claude Code тут не поможет: он работает, пока ты пишешь ему в окне. Боту нужен свой доступ к модели, по которому программа обращается к ней сама, днём и ночью. Такой доступ называется API.
Чему научишься в этом уроке:
• объяснить, чем API отличается от Claude Code и сколько стоит один запрос;
• получить ключ CloseRouter и поставить на него лимит расходов;
• посмотреть актуальный список моделей и их цены;
• отправить первый запрос к модели из Python и найти его в расходах.
API: телефонная линия для программы
Claude Code похож на сотрудника, которому ты пишешь задания. API (программный интерфейс, способ одной программы обращаться к другой) похож на телефонную линию: твой бот сам звонит модели, задаёт вопрос и получает ответ. Ты в этом разговоре не участвуешь. Чтобы линия знала, кому выставить счёт, у программы есть ключ.
Токены: за что платят
Модель читает и пишет текст кусочками, они называются токенами. Токен примерно равен части слова. Платят отдельно за вход (всё, что программа отправила) и за выход (всё, что модель ответила), а цену пишут за миллион токенов. Выход дороже входа в несколько раз, поэтому длинные ответы стоят больше длинных вопросов.
Пример цен в CloseRouter на 09.10.2026 для модели claude-sonnet-5: 0,045 $ за миллион токенов входа и 0,224 $ за миллион выхода. На ней прошёл прогон этого курса. Цены меняются, свежие смотри в списке моделей, как показано ниже.

Ключ и лимит в CloseRouter
CloseRouter это шлюз: посредник между твоей программой и моделями разных компаний. Один ключ открывает модели Anthropic, Google, OpenAI и других, оплата по факту с баланса в кабинете. Если ты идёшь дорожкой «без подписки», ключ у тебя уже есть: тот же, что в настройках Claude Code. На дорожке Pro подписка не включает API, ключ CloseRouter нужен отдельно.
Ключи выпускаются на странице ключей кабинета. При создании ключа задаётся лимит расходов: сумма в долларах и период (на день, на месяц или на всё время). Когда лимит исчерпан, модель перестаёт отвечать по этому ключу, и больше лимита не уйдёт. Для учёбы хватит небольшой суммы на месяц. Если на балансе ноль, платные модели отвечают ошибкой 402 insufficient_balance.
Ключ сразу положи в .env, как в уроке «Секреты и .env». В чат с агентом, в код и на скриншоты он не попадает.
Какие модели есть и сколько стоят
Названия моделей у шлюза свои и со временем меняются. Список с ценами отдаёт сам CloseRouter. В PowerShell это одна команда, вместо <твой ключ> подставь свой:
curl.exe https://api.closerouter.dev/v1/models -H "Authorization: Bearer <твой ключ>"
В ответе для каждой модели есть её имя (например, anthropic/claude-sonnet-5) и поле usd_per_million_tokens с ценой за миллион токенов. Можно попросить агента: «выполни этот запрос с ключом из .env и сделай таблицу: модель, цена входа, цена выхода». Так ключ не появится в истории команд.
Первый запрос из кода
Поставь две библиотеки: для обращения к модели и для чтения .env. На Windows пиши py, так команда точно попадёт в установленный Python:
py -m pip install anthropic python-dotenv
В .env проекта добавь адрес шлюза и ключ. Адрес пишется без /v1 на конце, библиотека допишет путь сама, так же как Claude Code:
ANTHROPIC_BASE_URL=https://api.closerouter.dev
ANTHROPIC_API_KEY=<твой ключ>
Файл first_request.py:
from dotenv import load_dotenv
from anthropic import Anthropic
load_dotenv() # читаем .env: адрес шлюза и ключ
client = Anthropic() # библиотека сама берёт ANTHROPIC_BASE_URL и ANTHROPIC_API_KEY
msg = client.messages.create(
model="anthropic/claude-sonnet-5", # пример на 09.10.2026, сверь со списком моделей
max_tokens=200,
messages=[{"role": "user", "content": "Во сколько обычно начинаются вечерние занятия в онлайн-школе? Ответь одним предложением."}],
)
print(msg.content[0].text)
print("Вход:", msg.usage.input_tokens, "токенов, выход:", msg.usage.output_tokens, "токенов")
Как запустить: в терминале в папке проекта набериpy first_request.py. Ответ модели и число токенов появятся в двух строках. Строкаload_dotenv()обязательна: без неё программа не увидит файл.envи сообщит, что ключа нет.
Для n8n и библиотек в стиле OpenAI адрес другой: https://api.closerouter.dev/v1, с /v1. Подключение модели в n8n подробно разобрано в уроке трека 2 «Подключаем модель».
Считаем стоимость
Цена запроса складывается из двух частей. Возьмём условные рубли, чтобы считать в уме: вход 3 ₽ за 1000 токенов, выход 15 ₽ за 1000 токенов. Запрос в 2000 токенов входа стоит 2000 ÷ 1000 × 3 = 6 ₽ за вход, к этому прибавляется выход. Реальные цены за миллион токенов в долларах на порядки ниже, считаются так же. Фактическое списание видно в кабинете CloseRouter, раздел «Использование»: там расход по дням, моделям и ключам.
Если не получилось
- authentication_error или ошибка про ключ. Нет строки
load_dotenv(),.envлежит в другой папке или ключ скопирован не целиком. - Модель «may not exist». Имя модели не совпадает со списком шлюза. Возьми точное имя из ответа
/v1/models. - 402 insufficient_balance. На балансе ноль, пополни его в кабинете.
- Ошибка пути или 404. Для библиотеки anthropic адрес без
/v1. Проверь строкуANTHROPIC_BASE_URL.
Контрольный вопрос. Условная цена: вход 3 ₽ за 1000 токенов, выход 15 ₽ за 1000 токенов. Запрос бота школы занял 1500 токенов входа и 300 токенов выхода. Сколько стоит запрос целиком?
Подсказка: Посчитай вход и выход отдельно, каждый по своей цене, потом сложи.
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Контрольный вопрос. Программа отработала неделю, а сегодня на каждый запрос получает 402 insufficient_balance. Что делать?
Подсказка: Неделю всё работало, значит адрес и модель верные. Что могло закончиться?
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Контрольный вопрос. Запуск first_request.py закончился ошибкой: модель с таким именем не найдена. Что проверить в первую очередь?
Подсказка: Ключ и адрес программа нашла, раз ответ про модель. Откуда берутся точные имена?
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Задание. МИССИЯ «Первый звонок модели». Выпусти ключ CloseRouter с лимитом (или проверь лимит на уже выданном), получи список моделей и выбери одну. Положи адрес и ключ в .env, запусти first_request.py со своим вопросом от лица ученика школы. Посчитай стоимость запроса по ценам выбранной модели из списка и сверь с разделом «Использование». Приложи: (1) скриншот ответа программы с числом токенов; (2) скриншот ключа, где видны сумма и период лимита (сам ключ закрыт); (3) расчёт стоимости: формула и итог в долларах; (4) скриншот строки расхода из кабинета. Принято, если: программа ответила и вывела число токенов; у ключа есть лимит с суммой и периодом; расчёт сделан по ценам из списка моделей и указана дата; ключа нет ни в коде, ни на скриншотах.
Подсказка: Сумма за один запрос выйдет очень маленькой, это нормально. Запиши её со всеми знаками после запятой.
✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.
На курсе задания проверяются автоматически. Решить первое задание бесплатно → · Подобрать курс
Что дальше
Твоя программа умеет сама обращаться к модели. В следующем уроке обратная задача: подключим к Claude Code внешний инструмент через MCP, чтобы агент сам читал файлы заказчика.
Итог:
• API нужен, когда модель работает внутри продукта без тебя;
• платят за токены входа и выхода, цена указана за миллион;
• ключ CloseRouter живёт в .env и всегда с лимитом расходов;
• имена и цены моделей берут из /v1/models, фактическое списание видно в разделе «Использование».
