---
title: Оценка стоимости
description: POST /v1/models/{model}/estimate — узнать стоимость генерации в кредитах до запуска; задача не создаётся, кредиты не резервируются и не списываются.
icon: Calculator
---

Узнайте стоимость генерации в кредитах, ничего не запуская и не списывая.

## Песочница

<ApiPlayground path="/v1/models/{model}/estimate" method="post" />

`POST /v1/models/:model/estimate` считает стоимость переданного `input` на выбранной модели. Задача не создаётся, кредиты не резервируются. Хватит любого действующего ключа — отдельное право не нужно.

<Method name="POST" path="/v1/models/:model/estimate" />

## Запрос

<TypeTable
  type={{
    model: { type: 'string', description: 'Slug модели в пути. Список — GET /v1/models.', required: true },
    input: { type: 'object', description: 'Те же параметры, что и при отправке. Схема — в GET /v1/models/{model}, поле input_schema.', required: true }
  }}
/>

<Tabs items={['cURL', 'TypeScript', 'Python']}>
<Tab value="cURL">

```bash
curl -X POST https://api.clipia.ai/v1/models/seedance-2-fast-i2v/estimate \
  -H "Authorization: Bearer $CLIPIA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "prompt": "aerial shot over a neon city",
      "duration": 8,
      "resolution": "1080p"
    }
  }'
```

</Tab>
<Tab value="TypeScript">

```ts
const { credits } = await clipia.models.estimate('seedance-2-fast-i2v', {
  prompt: 'aerial shot over a neon city',
  duration: 8,
  resolution: '1080p',
});
console.log(`Генерация будет стоить ${credits} кредитов`);
```

</Tab>
<Tab value="Python">

```python
estimate = client.models.estimate(
    "seedance-2-fast-i2v",
    {"prompt": "aerial shot over a neon city", "duration": 8, "resolution": "1080p"},
)
print(f"Генерация будет стоить {estimate.credits} кредитов")
```

</Tab>
</Tabs>

**Ответ `200`**

```json
{
  "credits": 40
}
```

<TypeTable
  type={{
    credits: { type: 'integer', description: 'Стоимость переданного input на этой модели, в кредитах' },
    warnings: { type: 'array', description: 'Параметры input, которые модель не применит. Поле есть, только когда такие параметры найдены.' }
  }}
/>

Если в `input` есть ключ, который модель не применит (опечатка, параметр другой модели), оценка перечисляет его в `warnings` — в том же виде, что и [отправка](/ru/docs/api-reference/submit#warnings). Так набор параметров можно проверить до запуска.

## Зачем это нужно

Стоимость зависит от модели и параметров — длительности, разрешения, количества кадров, длины текста для озвучки, — а не от фактического времени работы. Поэтому её можно узнать заранее:

- подтвердить цену перед дорогой генерацией видео в высоком разрешении;
- сравнить варианты параметров, например 4 и 8 секунд или 720p и 1080p;
- проверить бюджет в автоматических сценариях, где генерацию запускает программа.

Та же логика расчёта используется при отправке: при тех же параметрах `credits` совпадает с `cost` в ответе [`POST /v1/models/{model}`](/ru/docs/api-reference/submit). Кредиты резервируются при отправке, списываются при успехе и полностью возвращаются при ошибке генерации.

<Callout type="info" title="Цены">
Цены актуальны на октябрь 2026 года. Точная стоимость всегда видна на кнопке запуска до списания.
</Callout>

## Ошибки

| HTTP | `code` | `message` | Когда |
|------|--------|-----------|-------|
| `400` | `invalid_request` | `input_too_large` / `input_too_deep` | `input` больше 100 000 байт или 8 уровней вложенности |
| `400` | `invalid_request` | — | `input` не объект или текст для озвучки длиннее допустимого |
| `404` | `not_found` | `model_not_found` | нет модели с таким slug |
| `429` | `rate_limit_exceeded` | — | превышен [лимит запросов](/ru/docs/api-reference/rate-limits) |
| `503` | `service_unavailable` | — | расчёт цены временно недоступен, повторите позже |
