# Precios

Cada modelo cuesta exactamente lo que cobra su creador, en dólares estadounidenses. Pagas desde tu **saldo de API**,
que se contabiliza en **créditos de API**: **1000 créditos de API = 1 $**. El saldo de API es independiente del saldo de las aplicaciones de
Doitong. No hay planes, mínimos ni tarifas por modelo: una llamada cuesta su precio, que se descuenta del saldo de API cuando
se acepta la solicitud.

En Rusia (doitong.ru, api.doitong.ru o `?currency=rub`) los precios también se muestran en rublos: el precio en USD × el tipo de
cambio USD/RUB × 1,3.

## Unidades

Cada modelo tiene una unidad de facturación, que se muestra en su página y en `GET https://api.doitong.com/v1/models/{model_id}`:

| Unidad | Cantidad |
|---|---|
| `second` | Segundos del vídeo o audio de salida (`duration`) |
| `image` | Imágenes generadas (`num_images`) |
| `megapixel` | Anchura × altura de la salida, en megapíxeles (1 MP = 1024 × 1024 píxeles) |
| `video` | Un vídeo generado |
| `request` | Una llamada |
| `1000_characters` | Caracteres del texto de entrada, por cada 1000 |
| `step` | Pasos de entrenamiento |

Precio = cantidad × créditos de API por unidad, redondeado al alza a un crédito de API entero (0,001 $), nunca menos de 1.
Las unidades muy baratas pueden tener un precio fraccionario por unidad (`0.4` créditos de API por segundo); solo se redondea el total
de una llamada.

Algunos modelos cobran una tarifa distinta según la entrada: el vídeo con sonido cuesta más que sin sonido, 4K cuesta más que 1K,
etc. Estas **reglas** aparecen en la página de cada modelo. Un parámetro que omitas cuenta con su valor predeterminado, por lo que
el precio que ves para una entrada es el precio que pagas.

## Precios exactos, medidos, estimados y por uso

Cada precio tiene un `mode`:

- `exact`: el precio se calcula a partir de tu entrada (segundos, imágenes, megapíxeles, caracteres, pasos o un precio fijo por vídeo o llamada).
- `measured`: el precio depende de los archivos que envías: la duración de un vídeo o audio de entrada, el tamaño de una imagen de entrada,
  la frecuencia de fotogramas o el número de fotogramas de un vídeo. Los escaladores, las herramientas de sincronización labial, vídeo a vídeo,
  transcripción y audio se calculan así. Antes de ejecutar, la API lee la duración, resolución y frecuencia de fotogramas del archivo (la estimación
  hace lo mismo), por lo que la estimación coincide exactamente con lo que cobra la ejecución. La página del modelo indica por qué pagas
  ("Precio por segundo de tu vídeo de entrada") y su calculadora utiliza los datos de tu archivo. Un archivo que no se puede leer se rechaza con
  `unmeasurable_input` y no se cobra nada.
- `estimate`: el coste del propio modelo depende de algo que la entrada no puede indicar de antemano (tokens, tiempo de cálculo). Este modelo cobra
  un **precio estimado fijo por ejecución** (por imagen de salida cuando tiene un recuento de imágenes), establecido a partir del coste medio de
  ejecuciones reales de ese modelo. Aun así conoces el precio antes de ejecutar: la estimación es lo que pagas.
- `metered`: al modelo se le cobra según el **uso real**, que solo conoce la propia ejecución: los tokens que un modelo de lenguaje o visión lee y
  escribe, los segundos de voz que genera un modelo de voz o el tiempo de procesamiento del modelo. Consulta [Cobro por uso](#metered) más abajo.

Las páginas de los modelos indican "Precio por ejecución", "Precio por segundo de tu vídeo de entrada" (y similares), "Precio estimado por ejecución"
o "Cobro por uso"; `GET https://api.doitong.com/v1/models?mode=measured`, `?mode=estimate` y `?mode=metered` los enumera.

## Cobro por uso

Un modelo `metered` tiene un precio por uso ("$0.01 por cada 1000 tokens", "$0.002 por segundo de audio generado", "$0.00111 por segundo
de tiempo de procesamiento") y un **máximo por ejecución**: lo máximo que puede costar la ejecución, según lo que indique tu solicitud
(`max_tokens`, la longitud de tu texto, la resolución, el número de salidas) y los límites publicados del modelo. Nunca depende del contenido de
un archivo situado detrás de una URL. Para un modelo facturado por tiempo de procesamiento o por la duración de una sesión de voz, el máximo es
el tiempo máximo que puede ejecutarse una solicitud (15 minutos para imágenes, 30 para audio, 60 para vídeo), por lo que es muy superior a una
ejecución habitual. Una entrada cuyo máximo superaría el límite por ejecución del modelo (un texto muy largo) se rechaza con `422 invalid_input`:

1. La estimación devuelve ese máximo como `credits` (con `hold` y `typical`, una ejecución habitual). Cuando comienza la ejecución, se descuenta
   el máximo del saldo de API, y es lo que deben cubrir el saldo y el presupuesto de tu clave.
2. Cuando la ejecución termina correctamente, la solicitud se liquida según el uso que el modelo comunica: uso × precio por uso, redondeado al alza
   a un crédito de API entero. **El resto del máximo se reembolsa automáticamente**, una vez, como una fila `refund` de tu saldo de API.
3. Una ejecución nunca cuesta más que su máximo, aunque su uso lo superara. Una ejecución fallida o cancelada se reembolsa íntegramente, como siempre.

La mayoría de las ejecuciones cuestan mucho menos que el máximo; la página del modelo muestra "Hasta $X por ejecución" para la entrada del creador y
la ejecución habitual ("desde" en el catálogo). En los pocos modelos facturados por tiempo de procesamiento, el uso es el tiempo de procesamiento del
modelo (marcado como `approximate`).

```json 200 OK · estimación de un modelo con medición
{
  "object": "quote",
  "credits": 621,
  "usd": "0.621",
  "mode": "metered",
  "label": "Charged by usage",
  "hold": { "credits": 621, "usd": "0.621" },
  "typical": { "credits": 10, "usd": "0.01" },
  "settlement": "usage",
  "display": "$0.01 / 1000 tokens",
  "breakdown": "up to 62.035 × 1000 tokens × $0.01"
}
```

Después de la ejecución, `cost` de la solicitud muestra lo retenido y el importe correspondiente al uso:

```json
{
  "cost": { "credits": 621, "usd": "0.621", "charged": 621, "refunded": 611, "mode": "metered", "held": 621,
            "typical": 10, "settled": { "status": "settled", "credits": 10, "usd": "0.01", "quantity": 1,
            "unit": "1000_tokens", "unit_usd": "0.01", "source": "billed_usage", "approximate": false } }
}
```

`charged − refunded` es lo que ha costado la ejecución. `settled.status` es `pending` durante el intervalo entre el resultado y la liquidación,
y `no_usage` en el caso poco frecuente de que el modelo no comunique ningún uso (entonces el máximo se mantiene como precio).

## Estimar antes de ejecutar

`POST https://api.doitong.com/v1/quote/{model_id}` acepta exactamente el cuerpo que enviarías a `run` y devuelve el precio de esa entrada: el precio exacto,
salvo para un modelo [facturado por uso](#metered), cuyo precio es lo máximo que puede costar la ejecución. No necesita clave y no cuesta nada:

```bash
curl -X POST "https://api.doitong.com/v1/quote/flux/schnell" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "A lighthouse at dusk", "num_images": 2}'
```

```json 200 OK · estimación
{
  "object": "quote",
  "model": "flux/schnell",
  "credits": 6,
  "usd": "0.006",
  "unit": "megapixel",
  "quantity": 2,
  "unit_credits": 3,
  "mode": "exact",
  "label": "Price per run",
  "display": "$0.003 / megapixel",
  "breakdown": "2 MP (2 images) × 3 API credits",
  "input": { "prompt": "A lighthouse at dusk", "num_images": 2 },
  "warnings": []
}
```

Con una clave, la estimación también devuelve `balance_credits` y `balance_usd` (tu saldo de API), `affordable` y `key_budget_remaining`.
Añade `?currency=rub` para obtener un importe en `rub`.

> [!TIP]
> **La estimación es el cargo.** La misma función calcula ambos, por lo que una ejecución con esta entrada cuesta exactamente `credits`.
> La única excepción es un modelo [facturado por uso](#metered) (`mode: metered`): en ese caso `credits` es lo máximo que puede costar la ejecución,
> se descuenta al comenzar y la parte no utilizada se reembolsa después.

## Objetos de precio

Todos los precios de la API tienen la misma estructura:

- modelos: `price: { "credits": 112, "usd": "0.112", "unit": "second", "display": "$0.112 / second",
  "credits_display": "112 API credits / second", "from_credits": 560, "from_usd": "0.56", "mode": "exact" }` — además de `rub`,
  `rub_display` y `from_rub` en Rusia o con `?currency=rub`;
- solicitudes: `cost: { "credits": 560, "usd": "0.56", "charged": 560, "refunded": 0 }` (créditos de API; una solicitud con medición
  añade `mode`, `held`, `typical` y `settled`, consulta [Cobro por uso](#metered));
- cuenta: `GET https://api.doitong.com/v1/account` devuelve `credits` (el saldo de API), `balance: { "credits", "usd" }` y `storage` (precio del
  almacenamiento de archivos, uso y estimación mensual).

## Reembolsos

- Una solicitud no válida (cualquier `4xx` antes de que comience la ejecución) nunca se cobra.
- Una solicitud que termina `failed` (incluido `timeout`) se reembolsa íntegramente al saldo de API, automáticamente.
- Una solicitud que canceles antes de que comience se reembolsa íntegramente. Una vez que el modelo está generando, cancelar solo es una
  solicitud: si el modelo termina, se entrega el resultado y se cobra.
- Una solicitud `metered` que termina correctamente recupera la parte de su máximo que no ha utilizado.

El objeto de solicitud lo muestra todo: `cost.credits`, `cost.charged` y `cost.refunded`.

## Almacenamiento de archivos

Los archivos de salida se conservan en nuestro almacenamiento. Tú eliges, en la cuenta o por ejecución (`?storage=`):

| | Conservación | Precio |
|---|---|---|
| Para siempre (`permanent`, predeterminado) | Hasta que los elimines | 100 créditos de API (0,10 $) por GB al mes |
| 7 días (`temporary`) | 7 días | Gratis |

El almacenamiento permanente se cobra una vez al día del saldo de API: GB conservados × precio mensual ÷ días del mes, como filas del libro
mayor de tipo `storage`. Las fracciones de un crédito de API se arrastran al día siguiente, por lo que un mes suma exactamente GB ×
100 créditos de API (1 GB = 1024³ bytes; 10 GB conservados durante un mes cuestan 1000 créditos de API).
El saldo nunca baja de cero: cuando no puede pagar, ese día no se cobra, recibes un correo y tienes 30 días para recargar antes
de que los archivos conservados pasen a ser temporales y se eliminen 7 días después. Detalles: [Archivos](https://doitong.com/developers/docs/files#storage).

## Precios actuales

| Modelo | ID | Precio | Desde |
|---|---|---|---|
| [FLUX.1 \[dev\]](https://doitong.com/developers/models/flux/dev) | `flux/dev` | 0,025 $ / megapíxel | 0,025 $ (25 créditos de API) |
| [FLUX.1 \[schnell\]](https://doitong.com/developers/models/flux/schnell) | `flux/schnell` | 0,003 $ / megapíxel | 0,003 $ (3 créditos de API) |
| [FLUX.2 \[dev\]](https://doitong.com/developers/models/flux-2) | `flux-2` | 0,012 $ / megapíxel | 0,012 $ (12 créditos de API) |
| [FLUX.2 \[pro\]](https://doitong.com/developers/models/flux-2-pro) | `flux-2-pro` | 0,015 $ / megapíxel de imagen de salida | 0,015 $ (15 créditos de API) |
| [GPT Image 2.5 Text to Image](https://doitong.com/developers/models/openai/gpt-image-2.5/flare/text-to-image) | `openai/gpt-image-2.5/flare/text-to-image` | desde 0,008 $ / imagen | 0,008 $ (8 créditos de API) |
| [Ideogram V4.5](https://doitong.com/developers/models/ideogram/v4.5) | `ideogram/v4.5` | desde 0,03 $ / imagen | 0,03 $ (30 créditos de API) |
| [Nano Banana 2](https://doitong.com/developers/models/nano-banana-2) | `nano-banana-2` | desde 0,06 $ / imagen | 0,06 $ (60 créditos de API) |
| [Nano Banana Pro](https://doitong.com/developers/models/nano-banana-pro) | `nano-banana-pro` | desde 0,15 $ / imagen | 0,15 $ (150 créditos de API) |
| [Qwen Image 3 Text to Image](https://doitong.com/developers/models/alibaba/qwen-image-3/text-to-image) | `alibaba/qwen-image-3/text-to-image` | desde 0,04 $ / imagen | 0,04 $ (40 créditos de API) |
| [Recraft V4.1 Text to Image](https://doitong.com/developers/models/recraft/v4.1/text-to-image) | `recraft/v4.1/text-to-image` | 0,035 $ / imagen | 0,035 $ (35 créditos de API) |
| [Seedream 5.0 Pro Text to Image](https://doitong.com/developers/models/bytedance/seedream/v5/pro/text-to-image) | `bytedance/seedream/v5/pro/text-to-image` | desde 0,068 $ | 0,068 $ (68 créditos de API) |
| [FLUX.1 Kontext \[pro\]](https://doitong.com/developers/models/flux-pro/kontext) | `flux-pro/kontext` | 0,04 $ / imagen | 0,04 $ (40 créditos de API) |
| [Nano Banana 2 Edit](https://doitong.com/developers/models/nano-banana-2/edit) | `nano-banana-2/edit` | desde 0,06 $ / imagen | 0,06 $ (60 créditos de API) |
| [Nano Banana Pro Edit](https://doitong.com/developers/models/nano-banana-pro/edit) | `nano-banana-pro/edit` | desde 0,15 $ / imagen | 0,15 $ (150 créditos de API) |
| [Qwen Image 3 Edit](https://doitong.com/developers/models/alibaba/qwen-image-3/edit) | `alibaba/qwen-image-3/edit` | desde 0,04 $ / imagen | 0,04 $ (40 créditos de API) |
| [FLUX 3 Max Text to Video](https://doitong.com/developers/models/blackforestlabs/flux-3-max/text-to-video) | `blackforestlabs/flux-3-max/text-to-video` | desde 0,0425 $ / segundo de vídeo de salida | 0,043 $ (43 créditos de API) |
| [Grok Imagine Video 1.5 Text to Video](https://doitong.com/developers/models/xai/grok-imagine-video/v1.5/text-to-video) | `xai/grok-imagine-video/v1.5/text-to-video` | desde 0,08 $ / segundo | 0,48 $ (480 créditos de API) |
| [Kling 3.0 Pro Text to Video](https://doitong.com/developers/models/kling-video/v3/pro/text-to-video) | `kling-video/v3/pro/text-to-video` | desde 0,112 $ / segundo | 0,56 $ (560 créditos de API) |
| [LTX 2.5 Pro Text to Video](https://doitong.com/developers/models/lightricks/ltx-2.5/text-to-video/pro) | `lightricks/ltx-2.5/text-to-video/pro` | desde 0,12 $ / segundo | 0,72 $ (720 créditos de API) |
| [MiniMax H3 Text to Video](https://doitong.com/developers/models/minimax/h3/text-to-video) | `minimax/h3/text-to-video` | desde 0,05 $ / segundo | 0,25 $ (250 créditos de API) |
| [Seedance 2.0 Fast Text to Video](https://doitong.com/developers/models/bytedance/seedance-2.0/fast/text-to-video) | `bytedance/seedance-2.0/fast/text-to-video` | desde 0,113 $ / segundo | 0,452 $ (452 créditos de API) |
| [Seedance 2.0 Text to Video](https://doitong.com/developers/models/bytedance/seedance-2.0/text-to-video) | `bytedance/seedance-2.0/text-to-video` | desde 0,141 $ / segundo | 0,564 $ (564 créditos de API) |
| [Veo 3.1](https://doitong.com/developers/models/veo3.1) | `veo3.1` | desde 0,20 $ / segundo | 1,60 $ (1600 créditos de API) |
| [Veo 3.1 Fast](https://doitong.com/developers/models/veo3.1/fast) | `veo3.1/fast` | desde 0,10 $ / segundo | 0,80 $ (800 créditos de API) |
| [Wan 3.0 Text to Video](https://doitong.com/developers/models/alibaba/wan-3.0/text-to-video) | `alibaba/wan-3.0/text-to-video` | desde 0,05 $ / segundo | 0,25 $ (250 créditos de API) |
| [FLUX 3 Max Image to Video](https://doitong.com/developers/models/blackforestlabs/flux-3-max/image-to-video) | `blackforestlabs/flux-3-max/image-to-video` | desde 0,0425 $ / segundo de vídeo de salida | 0,043 $ (43 créditos de API) |
| [Grok Imagine Video 1.5 Image to Video](https://doitong.com/developers/models/xai/grok-imagine-video/v1.5/image-to-video) | `xai/grok-imagine-video/v1.5/image-to-video` | desde 0,082 $ / segundo | 0,492 $ (492 créditos de API) |
| [Kling 3.0 Pro Image to Video](https://doitong.com/developers/models/kling-video/v3/pro/image-to-video) | `kling-video/v3/pro/image-to-video` | desde 0,112 $ / segundo | 0,56 $ (560 créditos de API) |
| [LTX 2.5 Pro Image to Video](https://doitong.com/developers/models/lightricks/ltx-2.5/image-to-video/pro) | `lightricks/ltx-2.5/image-to-video/pro` | desde 0,12 $ / segundo | 0,72 $ (720 créditos de API) |
| [MiniMax H3 Image to Video](https://doitong.com/developers/models/minimax/h3/image-to-video) | `minimax/h3/image-to-video` | desde 0,05 $ / segundo | 0,25 $ (250 créditos de API) |
| [Seedance 2.0 Fast Image to Video](https://doitong.com/developers/models/bytedance/seedance-2.0/fast/image-to-video) | `bytedance/seedance-2.0/fast/image-to-video` | desde 0,113 $ / segundo | 0,452 $ (452 créditos de API) |
| [Seedance 2.0 Image to Video](https://doitong.com/developers/models/bytedance/seedance-2.0/image-to-video) | `bytedance/seedance-2.0/image-to-video` | desde 0,141 $ / segundo | 0,564 $ (564 créditos de API) |
| [Veo 3.1 Fast Image to Video](https://doitong.com/developers/models/veo3.1/fast/image-to-video) | `veo3.1/fast/image-to-video` | desde 0,10 $ / segundo | 0,80 $ (800 créditos de API) |
| [Veo 3.1 Image to Video](https://doitong.com/developers/models/veo3.1/image-to-video) | `veo3.1/image-to-video` | desde 0,20 $ / segundo | 1,60 $ (1600 créditos de API) |
| [Wan 3.0 Image to Video](https://doitong.com/developers/models/alibaba/wan-3.0/image-to-video) | `alibaba/wan-3.0/image-to-video` | desde 0,05 $ / segundo | 0,25 $ (250 créditos de API) |
| [Seedance 2.0 Fast Reference to Video](https://doitong.com/developers/models/bytedance/seedance-2.0/fast/reference-to-video) | `bytedance/seedance-2.0/fast/reference-to-video` | desde 0,113 $ / segundo | 0,452 $ (452 créditos de API) |
| [Seedance 2.0 Reference to Video](https://doitong.com/developers/models/bytedance/seedance-2.0/reference-to-video) | `bytedance/seedance-2.0/reference-to-video` | desde 0,141 $ / segundo | 0,564 $ (564 créditos de API) |
| [Kling AI Avatar 2.0 Pro](https://doitong.com/developers/models/kling-video/ai-avatar/v2/pro) | `kling-video/ai-avatar/v2/pro` | 0,115 $ / segundo de audio de entrada | 0,115 $ (115 créditos de API) |
| [Sync Lipsync 3](https://doitong.com/developers/models/sync-lipsync/v3) | `sync-lipsync/v3` | 8,00 $ / minuto de vídeo de salida | 8,00 $ (8000 créditos de API) |
| [VEED Fabric 1.0](https://doitong.com/developers/models/veed/fabric-1.0) | `veed/fabric-1.0` | desde 0,08 $ / segundo de audio de entrada | 0,08 $ (80 créditos de API) |
| [Topaz Image Upscale](https://doitong.com/developers/models/topaz/upscale/image/precision) | `topaz/upscale/image/precision` | 0,08 $ / 24 megapíxeles de imagen de salida | 0,08 $ (80 créditos de API) |
| [Topaz Video Upscale](https://doitong.com/developers/models/topaz/upscale/video/precision) | `topaz/upscale/video/precision` | desde 0,00667 $ / segundo de vídeo de entrada | 0,10 $ (100 créditos de API) |
| [Bria RMBG 2.0](https://doitong.com/developers/models/bria/background/remove) | `bria/background/remove` | desde 0,018 $ | 0,018 $ (18 créditos de API) |
| [Eleven v4 Text to Speech](https://doitong.com/developers/models/elevenlabs/tts/eleven-v4) | `elevenlabs/tts/eleven-v4` | 0,08 $ / 1000 caracteres | 0,08 $ (80 créditos de API) |
| [MiniMax Speech 2.8 HD](https://doitong.com/developers/models/minimax/speech-2.8-hd) | `minimax/speech-2.8-hd` | 0,10 $ / 1000 caracteres | 0,10 $ (100 créditos de API) |
| [MiniMax Music 3](https://doitong.com/developers/models/minimax/music-3) | `minimax/music-3` | 0,002 $ / segundo | 0,12 $ (120 créditos de API) |
| [MMAudio V2](https://doitong.com/developers/models/mmaudio-v2) | `mmaudio-v2` | 0,001 $ / segundo | 0,008 $ (8 créditos de API) |

Estos son los modelos destacados. Todos los datos de los 1496 modelos y sus precios están en el [catálogo de modelos](https://doitong.com/developers/models) y en `GET /models` (no se necesita ninguna clave).

## Recargar

Añade dinero al saldo de API en [https://doitong.com/developers/dashboard#balance](https://doitong.com/developers/dashboard#balance). Cuando el saldo es demasiado bajo, una ejecución responde con
`402 insufficient_credits` y un `top_up_url`. Cada clave de API también puede limitarse con su propio presupuesto en créditos de API
(consulta [Autenticación](https://doitong.com/developers/docs/authentication#credit-budgets)).
