11Деньги
Баланс
Кошелёк API общий для всех ключей аккаунта. Проверяйте доступную сумму перед пачкой запросов и обрабатывайте нехватку средств в коде.
Узнать баланс
/balanceДостаточно ключа API. У метода нет тела и параметров, а вызов ничего не списывает.
curl --fail-with-body --max-time 20 \ https://api.rendergrid.io/ api/ public/ v1/ balance \ -H "Authorization: Bearer $RENDERGRID_API_KEY"
import os from decimal import Decimal import requests key = os.environ["RENDERGRID_API_KEY"] response = requests.get( "https://api.rendergrid.io/ api/ public/ v1/ balance", headers={"Authorization": f"Bearer {key}"}, timeout=(5, 20), ) response.raise_for_status() # строка -> Decimal, не float available = Decimal(response.json()["available"]) print(available)
// Node.js 22+, файл .mjs const url = "https://api.rendergrid.io/ api/ public/ v1/ balance"; const key = process.env.RENDERGRID_API_KEY; const response = await fetch(url, { headers: { Authorization: `Bearer ${key}` }, signal: AbortSignal.timeout(20_000), }); if (!response.ok) { const body = await response.text(); throw new Error(`HTTP ${response.status}: ${body}`); } // строка: не превращайте её в Number const { available } = await response.json(); console.log(available);
{
"currency": "USD",
"balance": "42.5000",
"overdraft_limit": "0.0000",
"available": "42.5000"
}| Поле | Тип | Что значит |
|---|---|---|
currency | string | Код валюты: USD |
balance | string | Текущий баланс кошелька. Может быть отрицательным в пределах одобренной кредитной линии |
overdraft_limit | string | Кредитная линия кошелька. "0.0000" — работа только по предоплате |
available | string | Сколько можно потратить: balance + overdraft_limit |
Деньги — это строки
Все три суммы — десятичные строки в долларах с четырьмя знаками после запятой. Сохраняйте эту точность: в Python берите Decimal, в других языках — целые единицы по $0,0001. Двоичные числа с плавающей точкой для денег не годятся.
| Пример | balance | overdraft_limit | available |
|---|---|---|---|
| Обычный счёт | "42.5000" | "0.0000" | "42.5000" |
| Кредитная линия | "-3.0000" | "10.0000" | "7.0000" |
| Пусто | "0.0000" | "0.0000" | "0.0000" |
Когда списываются деньги
Сумма списывается при приёме запроса, до начала работы. Если картинка не получилась, списание возвращается само.
Неудачный запрос бесплатен: сумма сразу возвращается на баланс.
Чтение баланса ничего не резервирует: пока вы его читаете, соседний запрос может потратить деньги. Поэтому всегда обрабатывайте 402, даже если проверка прошла.
HTTP/1.1 402 Payment Required { "error": { "code": "ERR_INSUFFICIENT_BALANCE", "message": "insufficient api wallet balance", "details": { "required": "0.0400", "available": "0.0100", "top_up_url": "/portal/billing" } } }
required — цена этой картинки, available — сколько доступно сейчас. Обе суммы — строки в долларах с четырьмя знаками. top_up_url ведёт в раздел «Баланс и пополнение» кабинета.
HTTP/1.1 402 Payment Required { "error": { "code": "ERR_INSUFFICIENT_BALANCE", "message": "monthly budget exceeded", "details": { "reason": "monthly_budget_exceeded", "cap": 50.0 } } }
Месячный лимит аккаунта или ключа считается по календарному месяцу UTC; возврат за неудачную картинку освобождает сумму. Это жёсткий предел: пока лимит исчерпан, генерации не принимаются, а с баланса ничего не списывается. Подробнее — «Лимиты».
Как читать баланс
- Проверяйте баланс перед пачкой запросов и время от времени во время работы.
- Чтение баланса входит в лимит запросов аккаунта, но не занимает слот генерации и не делит интервал опроса заданий.
- Не опирайтесь на проверку как на гарантию: решающий ответ даёт сам запрос генерации.
Пополнение
В публичном API нет метода пополнения. Баланс пополняют в USDT в разделе «Баланс и пополнение» кабинета или через менеджера. Баланс и список операций видны там же.
Частые вопросы
Можно ли узнать баланс отдельного ключа?
Когда деньги вернутся за неудачную картинку?
Что значит «кредитная линия»?
overdraft_limit равно "0.0000", а работа идёт только по предоплате.