Кредиты и оплата
Как вызовы API расходуют кредиты, как работают резерв и окончательное списание, расчёт цены до запуска, баланс, статистика и лимиты расходов.
API тратит те же кредиты, что и popnow.ai. Отдельного тарифа для API, подписки и минимального платежа нет: покупайте пакет кредитов, когда понадобится больше, а бесплатные кредиты за регистрацию работают и здесь.
- 1 кредит = 0,01 $ по базовой ставке. В больших пакетах есть бонусные кредиты, поэтому каждый кредит обходится чуть дешевле.
- Цена зависит от модели и опций: за изображение, за секунду видео или аудио, за запрос или за 1000 символов озвучки. Цены указаны на странице каждой модели.
- Каждую сумму ответ даёт дважды: в целых кредитах (
credits,maxCredits,availableCredits…) и строкой в долларах США (cost,maxCharge,available…). Пользуйтесь полями в кредитах; строки в долларах — для бухгалтерии.
Как списывается оплата за задачу
holdsettlerelease- Резерв. Когда
createTaskпринимает задачу, на балансе откладывается самая высокая цена, которой она может достичь (estimatedCredits). Зарезервированные кредиты нельзя потратить дважды, но они ещё не списаны. - Списание или возврат. Когда задача завершается:
succeeded→ вы платите за фактический расход, с округлением вверх до целых кредитов и никогда не больше резерва. Остаток возвращается на баланс.failedилиexpired→ весь резерв возвращается. Вы ничего не платите.
Где сейчас задача, видно по её записи: пока settled равен false, credits — это резерв; когда settled становится true, credits — окончательное списание.
Несколько моделей берут плату за запрос, который их разработчик отклонил из-за содержания. Если это так, на странице модели об этом сказано; во всех остальных случаях сбой бесплатен.
| Ситуация | Платно? |
|---|---|
createTask отклонён (400, 402, 403, 429, 50301 …) | Нет — ни задачи, ни резерва |
Задача succeeded | Да, фактическая сумма, не больше резерва |
Задача failed или expired | Нет, кроме случая с отказом по содержанию выше |
| Соединение оборвалось после отправки | Неизвестно, пока не проверите: отправьте снова с тем же Idempotency-Key, чтобы найти задачу |
| Чтение задач, моделей, баланса или статистики | Никогда |
Сначала узнайте цену
POST /api/v1/jobs/quote принимает ровно то же тело, что и createTask, и возвращает цену, ничего не создавая и не резервируя:
curl -X POST "https://api.popnow.ai/api/v1/jobs/quote" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "alibaba/wan-3.0/image-to-video", "input": {"image_url": "https://media.popnow.ai/movie/lighthouse.webp", "resolution": "720p", "duration_seconds": 5}}'{
"code": 200,
"msg": "success",
"data": {
"quoteId": "q_…",
"model": "alibaba/wan-3.0/image-to-video",
"maxCredits": 68,
"expectedCredits": 68,
"estimatedCost": "0.68",
"maxCharge": "0.68",
"currency": "USD",
"quantity": "5",
"unit": "per_second",
"expiresAt": "2026-10-16T09:25:00Z"
},
"request_id": "req_…"
}maxCredits — максимум, который может стоить запрос, то есть сумма резерва. expectedCredits — обычная стоимость; они различаются, только если итог зависит от результата, например от реальной длины ролика.
Чтобы цена не изменилась между показом пользователю и запуском, передайте quoteId и expectedCredits (показанный maxCredits) в createTask в течение пяти минут. Если что-то изменилось, createTask ответит 40901 и ничего не зарезервирует; запросите расчёт заново.
Баланс
curl "https://api.popnow.ai/api/v1/chat/credit" \
-H "Authorization: Bearer $POPNOW_API_KEY"availableCredits — сколько могут потратить новые задачи, heldCredits — сколько отложено под выполняющиеся, totalCredits — их сумма (available, held и total — те же суммы в долларах). Название пути историческое и к чату отношения не имеет. Если доступного баланса не хватает на резерв новой задачи, createTask возвращает 40201.
Статистика
GET /api/v1/usage?from=2026-10-01&to=2026-10-16 возвращает по вызывающему ключу число задач, сколько из них прошло и сколько упало и сколько они стоили в кредитах — всего (totalCredits), по дням и по моделям. Даты в UTC, to не включается, период — не больше 92 дней. Учитываются только закрытые списания, поэтому итог за день может ещё измениться, пока завершаются запоздавшие задачи. Отчёт ограничен 30 запросами в минуту; для всего аккаунта используйте страницу статистики в API-консоли.
Лимиты расходов
Для каждого ключа в API-консоли можно задать дневной, месячный и общий лимит, они показываются в кредитах. Запрос, который превысил бы лимит, возвращает 40202 и ничего не резервирует. Дневные лимиты сбрасываются в 00:00 UTC, месячные — 1-го числа в 00:00 UTC, общий не сбрасывается никогда. Пока вы их не задали, лимитов у ключей нет.
Покупка кредитов и возвраты
Кредиты покупаются на сайте, а не через API. Пакеты и цены — на странице цен; что и когда можно вернуть, объясняет политика возвратов.

