Дмитрий Анашкин

Балансы оплаченных сервисов: как не узнать от клиента, что кончились деньги на API

Опубликовано 28 сент. 2026 г.10 мин чтенияНачальный
Балансы оплаченных сервисов: как не узнать от клиента, что кончились деньги на API
Плейбук
Балансы оплаченных сервисов
Дмитрий Анашкин · 10 мин
Чему вы научитесь
  • Почему деньги на API кончаются внезапно и кто узнаёт об этом первым
  • У каких сервисов остаток читается по API, а у каких только руками
  • Какой ключ можно отдать следилке, а какой нельзя
  • Как ставить пороги и не утонуть в предупреждениях
  • Почему следилке нужен пульс снаружи хостинга
Начальный
2просмотров

Коротко

Почему деньги на API кончаются внезапно?

Когда собираешь продукты через вайбкодинг, платные аккаунты копятся незаметно. Доступ к нейросети через посредника, второй посредник про запас, сервис поиска, озвучка, хостинг, домен. Я пересчитал свои и насчитал 27 кандидатов на слежку по всем проектам.

Хуже всего с общими аккаунтами. У меня один посредник к нейросетям оплачивает запросы сразу шести проектов, другой - четырёх. Ни один проект не видит, сколько осталось всего, потому что каждый знает только свою долю расхода.

Раз в неделю я тратил от пятнадцати до тридцати минут на обход кабинетов. И всё равно пропустил.

В моём сервисе замеров канал к одной нейросети двое суток отвечал ошибкой 429 «слишком много запросов», похожей на перегрузку. На деле у ключа не была подключена оплата, и причину искали глазами.

Что это значит на практике: деньги кончаются тихо. Если следить за ними некому, первым об этом узнает клиент.

Где остаток виден по API, а где только руками?

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

Тип аккаунтаОстаток по APIЧто делать
Посредники к нейросетямобычно есть отдельный запрос остаткачитать по расписанию
Крупные поставщики моделейнет, только отчёт о расходе по админ-ключуручная цифра и их собственные письма о лимитах
Облака и хостингичасто есть, иногда сразу «дней до блокировки»осторожно с ключом, см. ниже
Сервисы озвучки и данныхесть в своих единицах: символы, кредиты, токеныпоказывать как есть, без пересчёта в рубли
Подпискинет, есть дата продленияследить за датой

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

Отдельно про единицы. Сервис озвучки отдаёт остаток в символах, один из поставщиков моделей - в токенах. Перевод в рубли - уже оценка, поэтому показывай единицы самого сервиса.

Ключ для чтения остатка часто умеет тратить

Из тринадцати читаемых аккаунтов у восьми остаток отдаётся только ключом, который умеет тратить деньги или управлять серверами. Ещё у двух это под вопросом. Даже у крупного посредника к нейросетям документация требует для остатка ключ управления, а не обычный рабочий.

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

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

Где и как хранить сами ключи, чтобы они не утекли через код, подробно разобрано в статье о том, где хранить ключи своего продукта.

Как вести ручную цифру, чтобы она не врала?

Ручная цифра - это снимок: зашёл в кабинет, увидел 1 200 рублей, записал с датой. Через неделю снимок ничего не говорит о сегодняшнем дне, и таблица обязана это показывать.

Три правила, которые держат ручную цифру честной:

  • Время снятия у каждой цифры. Без него свежий остаток и цифра месячной давности выглядят одинаково.
  • Срок годности. Цифре больше семи дней - строка желтеет, и следилка просит обновить.
  • Никакого «минус расход». Соблазн понятен: знаешь вчерашний остаток и примерный расход, вычел и получил сегодняшний. Это уже прогноз, а выглядит он как факт.

С автоматическими цифрами та же логика. Сервис не ответил - в строке статус «не прочиталось», а не ноль и не прошлое значение. Ноль пугает зря, прошлое значение успокаивает зря, и второе опаснее.

Какие пороги ставить и как не утонуть в предупреждениях?

Порог в днях звучит красиво: «денег хватит на пять дней». Я пробовал считать дни по логам своего продукта, и расчёт ошибся бы в двадцать раз. В логе цена одного замера складывалась из двух разных аккаунтов, и разделить её задним числом было нельзя. У главного аккаунта ошибка шла в опасную сторону: «хватит надолго».

Поэтому схема такая:

  • Пороги в валюте аккаунта. Жёлтый условно значит «пополнить на этой неделе», красный - «сегодня».
  • Прогноз по снимкам. Раз в сутки остаток записывается, темп считается по разнице снимков, пополнения в расход не засчитываются. Первый прогноз появляется на второй день, до этого честный прочерк.
  • Дата вместо суммы. У хостинга и домена важна дата «оплачено до». Тревога за четырнадцать и за пять дней: хостинг убивает дата, а не остаток.

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

Обратная ошибка тоже бывает. В одном разобранном случае следилка за пульсом замолчала на 43 дня: ключ повтора был привязан к сервису, а не к конкретному сбою, старые тревоги никто не закрывал, и каждый новый сбой система считала дублем первого.

Почему сторож не должен жить на том хостинге, за которым следит?

Самый опасный отказ следилки - молчание. Остановилось расписание, отвалился бот, закончились деньги на сервере, а снаружи это выглядит как хороший день без тревог.

Отсюда правило: сторож не живёт на хостинге, за балансом которого следит. Я его нарушил. Следилку для своих аккаунтов я собираю вкладкой в своей рабочей платформе, а платформа стоит у того же хостинга.

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

Нарушение я закрываю тремя компенсациями:

  1. Внешний пульс. Сторож после каждого обхода отмечается в бесплатном сервисе проверки пульса. Обход идёт раз в три часа. Нет отметки дольше четырёх часов - приходит сообщение от внешнего сервиса, а не от самого сторожа.
  2. Даты «оплачено до» у хостинга, регистратора и домена с тревогой за две недели и за пять дней.
  3. Родные уведомления хостинга, проверенные руками до запуска.

Ещё один пульс - утренняя сводка. Она приходит всегда, даже когда всё в порядке. Нет сводки утром - это уже сигнал.

Про то, почему у автоматизации тишина - самая частая поломка, я писал в материале про автозадачи, которые работают без тебя.

Один обход кабинетов вместо еженедельных

Мой первый сторож для хостинга был написан, но месяц молчал: ему так и не выдали токен. Снаружи это ничем не отличалось от спокойного месяца. Поэтому порядок такой:

  1. Составить список

    Все платные аккаунты по всем проектам одной таблицей: сервис, какие проекты на нём живут, предоплата или подписка.

  2. Разметить по API и ключам

    У каждого аккаунта: читается ли остаток, каким ключом, что этот ключ умеет кроме чтения.

  3. Включить родные уведомления

    Письма о лимитах, боты хостингов, напоминания регистратора. Это первая линия там, где API нет.

  4. Задать пороги и даты

    Жёлтый и красный порог в валюте аккаунта, даты «оплачено до» у хостинга и домена.

  5. Проверить подставной тревогой

    Временно поднять порог выше текущего остатка и убедиться, что сообщение пришло.

Аккаунт без ключа или без цифры остаётся строкой «не подключён» и каждое утро попадает в сводку, пока не подключишь или не уберёшь его.

Частые вопросы

Частые вопросы

Главный вывод

Хорошая следилка за балансами скучная. Она пишет редко, всегда по делу и честно говорит «не знаю», когда цифры нет.

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

А ты знаешь, сколько сейчас денег на каждом аккаунте, от которого зависит твой продукт?

Источники

Отправь другу или себе в избранное в Telegram, чтобы не потерять.

Поделиться в Telegram
Было полезно?
Автор
Дмитрий Анашкин
Практик-интегратор ИИ в бизнес

Основатель NeuroDA и SMAIPL. Корпоративные воркшопы по ИИ, внедрение AI в бизнес-процессы.

Похожие гайды

Как подключить домен к сайту: свой адрес вместо технической ссылки

Свой домен меняет адрес, а не приложение, и подключается за вечер. Разбираю на запуске этого блога, как выбрать между поддоменом и корнем, какую запись DNS ставить, откуда берётся замочек https, сколько ждать и почему после переключения ломаются вход и карта сайта.

10 мин

Сколько стоит содержать приложение: из чего складывается счёт

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

9 мин

Локальная ссылка перестала открываться: что такое localhost и почему он гаснет

Ссылка localhost ведёт в твой же компьютер, а сайт по ней показывает программа-сервер, которая живёт, пока открыто окно агента. Разбираю, что такое порт, почему первый запуск долгий, четыре причины, по которым страница не открывается, и как запускать проект без агента.

10 мин

Первая версия работает, а радости нет: почему это нормально

Первая рабочая версия почти всегда разочаровывает: вложено много, а на экране одна скромная страница. Разбираю на случае ученика, почему первый срез - это примерно четверть продукта, как попросить агента показать заложенное и спящее и что делать с его тревожными сообщениями о секретах.

8 мин

Связанные понятия