---
title: Estimación del coste
description: POST /v1/models/{model}/estimate — averigüe cuánto cuesta una generación en créditos antes de ejecutarla; no se crea ningún trabajo ni se reservan créditos.
icon: Calculator
---

Averigüe cuánto cuesta una generación en créditos sin ejecutar nada ni gastar créditos.

## Playground

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

`POST /v1/models/:model/estimate` calcula el coste del `input` indicado en el modelo seleccionado. No se crea ningún trabajo ni se reservan créditos. Sirve cualquier clave válida: no se necesita ningún permiso adicional.

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

## Solicitud

<TypeTable
  type={{
    model: { type: 'string', description: 'Slug del modelo en la ruta. Consulte GET /v1/models para ver la lista.', required: true },
    input: { type: 'object', description: 'Los mismos parámetros que enviaría en submit. El esquema está en el campo input_schema de GET /v1/models/{model}.', 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(`This generation will cost ${credits} 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"This generation will cost {estimate.credits} credits")
```

</Tab>
</Tabs>

**Respuesta `200`**

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

<TypeTable
  type={{
    credits: { type: 'integer', description: 'Coste del input indicado en este modelo, en créditos' },
    warnings: { type: 'array', description: 'Parámetros de input que el modelo no aplicará. Solo aparece cuando se han encontrado.' }
  }}
/>

Si `input` contiene una clave que el modelo no aplicará (una errata, un parámetro de otro modelo), la estimación la enumera en `warnings`, con el mismo formato que el [envío](/es/docs/api-reference/submit#warnings). Así puede comprobar un conjunto de parámetros antes de lanzar la generación.

## Para qué usarlo

El coste depende del modelo y de sus parámetros —duración, resolución, número de imágenes, longitud del texto en la síntesis de voz—, no del tiempo que tarde realmente el trabajo. Por eso puede conocerlo de antemano:

- confirmar el precio antes de un vídeo caro en alta resolución;
- comparar opciones de parámetros, por ejemplo 4 frente a 8 segundos o 720p frente a 1080p;
- comprobar el presupuesto en flujos automatizados en los que un programa lanza la generación.

El envío usa el mismo cálculo: con los mismos parámetros, `credits` coincide con `cost` en la respuesta de [`POST /v1/models/{model}`](/es/docs/api-reference/submit). Los créditos se reservan al enviar, se cobran si la generación tiene éxito y se reembolsan íntegramente si falla.

<Callout type="info" title="Precios">
Los precios están vigentes a octubre de 2026. El coste exacto siempre se muestra en el botón de ejecución antes de cobrar nada.
</Callout>

## Errores

| HTTP | `code` | `message` | Cuándo |
|------|--------|-----------|--------|
| `400` | `invalid_request` | `input_too_large` / `input_too_deep` | `input` supera los 100.000 bytes o los 8 niveles de anidamiento |
| `400` | `invalid_request` | — | `input` no es un objeto, o el texto para la síntesis de voz es demasiado largo |
| `404` | `not_found` | `model_not_found` | no existe ningún modelo con este slug |
| `429` | `rate_limit_exceeded` | — | se ha superado el [límite de solicitudes](/es/docs/api-reference/rate-limits) |
| `503` | `service_unavailable` | — | los precios no están disponibles temporalmente, inténtelo más tarde |
