Справочник
Цены и кредиты
Расходы по API считаются в кредитах Caicaini и списываются из выделенного пула apiCredits. Та же единица, что и в чат-продукте, но другая цена за кредит и строгое разделение пулов.
Как работают кредиты
- Каждый вызов модели стоит кредитов. Точную сумму считаем из входных и выходных токенов плюс множитель модели.
- Кредиты — никогда не плавающая запятая. Везде целочисленная арифметика; ничего не округляется в ущерб тебе.
- Поле
usage.credits_consumedв каждом ответе — авторитетное списание. Сколько там написано, столько мы и списали. - Пул
apiCreditsполностью изолирован от твоих чат-кредитов. Подписочные кредиты и пополнения чата никогда не утекают в API-расходы и наоборот.
Пакеты пополнения
Самый дешёвый способ купить кредиты — четыре предустановленных пакета. Слайдер произвольной суммы на той же странице интерполирует между этими тарифами.
| Пакет | Цена | Кредиты | Кредитов за $ | vs starter |
|---|---|---|---|---|
| api_starter | $10 | 70,000 | 7,000 | — |
| api_builder | $50 | 380,000 | 7,600 | +8% |
| api_scale | $200 | 1,600,000 | 8,000 | +14% |
| api_enterprise | $1,000 | 8,500,000 | 8,500 | +21% |
Произвольная сумма
Если ни один пакет не подходит, введи в дашборде любую сумму от $10 до $10 000 — мы посчитаем кредиты по ставке соответствующего тарифа. Слайдер на /developers/billing показывает арифметику в реальном времени; источник истины — сервер.
| Диапазон сумм | Кредитов за $ | Эквивалент пакета |
|---|---|---|
| $10.00 – $49.99 | 7,000 | ставка api_starter |
| $50.00 – $199.99 | 7,600 | ставка api_builder |
| $200.00 – $999.99 | 8,000 | ставка api_scale |
| $1,000.00+ | 8,500 | ставка api_enterprise |
Предварительный расчёт
Дашборд бьётся в эндпойнт-предпросмотр на той же серверной логике, по которой проходит реальное пополнение, — что видишь, то и получаешь.
# Preview what $50 buys without creating a payment.
curl https://caicaini.com/api/developers/billing/preview \
-H "Authorization: Bearer YOUR_DASHBOARD_JWT" \
-H "Content-Type: application/json" \
-d '{"usdCents": 5000}'
# {
# "credits": 380000,
# "creditsPerDollar": 7600,
# "markupX": 1.32,
# "tier": "builder"
# }Стоимость по моделям
У разных моделей разные ставки кредитов за 1K токенов. Более быстрые и маленькие модели стоят меньше за токен; модели с большими возможностями — больше. Когда нет сильного предпочтения, используй caicaini/auto — роутер выбирает самую дешёвую модель, которая правдоподобно справится с задачей.
caicaini/auto— тарифицируется по той модели, которую выбрал роутер. Auto редко берёт самую дорогую опцию.caicaini/opus— самая дорогая за токен. Лучшие возможности. Стоит примерно в 5× дорожеcaicaini/sonnet.caicaini/sonnet— средний тариф. Дефолт для продакшен-трафика.caicaini/haiku— дёшево и быстро. Примерно 1/3 от стоимостиsonnet.caicaini/kimi— самая дешёвая за токен на длинных контекстах. Большое преимущество для retrieval-нагрузок.
Резервирование до вызова
Перед каждым вызовом мы оцениваем стоимость по худшему сценарию (вход плюс полный max_tokens по выходной ставке модели) и резервируем столько кредитов из твоего apiCredits. После завершения вызова резерв снимается, а списывается фактическая стоимость. Если доступного баланса не хватит на худший сценарий, вызов вернёт 402 с типом insufficient_quota до любой работы провайдера.
Оценка до отправки
// Quick budgeting: if you know average input/output tokens per turn,
// estimate credit cost before sending. Replace the rates with the values
// you read from the model row in GET /v1/models if you want exact numbers.
type Rates = { in_per_1k_credits: number; out_per_1k_credits: number };
function estimateCredits(inputTokens: number, outputTokens: number, r: Rates): number {
return Math.ceil((inputTokens / 1000) * r.in_per_1k_credits)
+ Math.ceil((outputTokens / 1000) * r.out_per_1k_credits);
}
// Then keep usage.credits_consumed from each response as the source of truth.Возвраты
Возвраты инициируются админом и редки. Самый частый случай — стрим оборвался до того, как пришёл хоть какой-то вывод, такие возвращаем автоматически. Для всего остального обращайся в поддержку и приложи id сообщения из соответствующего ответа. Что возвращается по умолчанию — на странице Ошибки.