6ioAPI

Баланс и цены

Баланс

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

curl https://api.6io.io/v1/balance -H "Authorization: Bearer sixio_sk_..."
{
  "currency": "credits",
  "balance": "9.986728000000",
  "reserved": "0.000000000000",
  "available": "9.986728000000"
}
  • balance — сколько кредитов на счёте;
  • reserved — сколько сейчас отложено под идущие запросы;
  • available — сколько можно потратить на новые запросы (balance минус reserved).

Как пополнить

Только кредитами сайта: в консоли, на вкладке «Обзор», укажите, сколько кредитов перевести. Кредиты покупаются на сайте 6io. Один кредит сайта даёт один кредит API.

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

Как считается цена

Цена в кредитах = стоимость у поставщика в долларах × множитель (кредитов за доллар) × (1 + наценка группы). Множитель и наценку задаёт 6io, отдельно они не показываются: в pricing каталога уже учтены оба. Сумма округляется один раз, в конце, до двенадцати знаков, а не по каждому токену.

У группы sixio цена модели — это цена 6io для вашего входа (длительность, разрешение, число картинок) с наценкой группы.

Множитель и наценка запоминаются в момент, когда запрос принят. Если мы поменяем их позже, уже принятые запросы не пересчитываются.

Как проходит платный запрос

  1. Резерв. Перед отправкой поставщику 6io откладывает оценку: размер вашего запроса плюс max_tokens (если он не указан, берётся значение по умолчанию). Если доступных средств не хватает, ответ 402 insufficient_funds, до поставщика запрос не доходит.
  2. Списание по факту. После ответа резерв заменяется настоящей суммой: сколько запрос реально стоил у поставщика. Разница возвращается на баланс.

Пример. Вы отправили чат-запрос. Резерв — 0,5 кредита. Ответ короткий и обошёлся в 0,013272 кредита. Баланс уменьшился на 0,013272, остальные 0,486728 снова доступны.

Для моделей fal итог берётся из данных fal о фактически оплаченных единицах (они появляются через несколько минут), для sixio списывается ровно резерв.

Если денег не хватило

Фактический расход иногда выше резерва, например при очень длинном ответе. Тогда списывается весь факт, и баланс может уйти в минус. Пока он отрицательный, новые платные запросы закрыты (402 insufficient_funds). Запросы, уже отправленные поставщику, продолжают выполняться и учитываться. Пополните баланс, чтобы продолжить.

Состояние запроса

GET /v1/requests/{id} показывает состояние запроса и деньги по нему. Номер берите из заголовка X-Sixio-Request-Id или из поля id ответа: это строка вида req_…, а не число.

Поле Что значит
status running — выполняется; succeeded; failed; unknown — исход пока неизвестен
billing_status reserved — деньги в резерве; settled — списано; released — резерв снят, списания нет; billing_pending — ждёт подтверждения суммы; billing_review — разбирает администратор
reserved сумма резерва, кредиты
charged_credits сумма списания, кредиты, когда запрос закрыт

Что с деньгами, если запрос не удался

Что произошло Деньги
Поставщик отказал из-за ваших параметров (4xx) резерв снят, списания нет
Поставщик отказал из-за частоты запросов или до него не достучались (503 upstream_busy) резерв снят, запрос можно просто повторить
Поставщик не ответил или ответил ошибкой сервера (502/503 upstream_unavailable) резерв остаётся: генерация могла состояться, и мы проверяем расход у поставщика
Задание fal или задача sixio закончились ошибкой резерв снят

Если сумму по запросу не удалось подтвердить автоматически за сутки, он уходит в ручной разбор. Резерв в это время остаётся, решение принимает администратор. Что делать вам в таких случаях — в разделе Повторы и сбои.