# Precios

Cada modelo cuesta exactamente lo que cobra su creador, en dólares estadounidenses. Pagas con tu **saldo de API**,
que se contabiliza en **créditos de API**: **1,000 créditos de API = $1**. El saldo de API es independiente y está separado de
los créditos de las aplicaciones de Doitong. No hay planes, mínimos ni cargos por modelo: una llamada cuesta su precio,
descontado 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 × la
tasa 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 de video o audio de salida (`duration`) |
| `image` | Imágenes generadas (`num_images`) |
| `megapixel` | Ancho × alto de la salida, en megapíxeles (1 MP = 1024 × 1024 píxeles) |
| `video` | Un video 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 hacia arriba a un crédito de API entero ($0.001), nunca menos de 1. Las
unidades muy económicas 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 diferente según la entrada: el video con sonido cuesta más que sin sonido, 4K cuesta más
que 1K, etc. Estas **reglas** se indican en la página de cada modelo. Un parámetro que omitas cuenta como su valor
predeterminado, así 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 video o llamada).
- `measured`: el precio depende de los archivos que envías: la duración de un video o audio de entrada, el tamaño de una
  imagen de entrada, la velocidad de fotogramas o la cantidad de fotogramas de un video. Los escaladores, las herramientas de sincronización labial, de video a video, de transcripción y de audio
  se cobran de esta manera. Antes de la ejecución, la API lee la duración, resolución y velocidad de fotogramas del archivo (la cotización hace lo
  mismo), por lo que la cotización es exactamente lo que cobra la ejecución. La página del modelo indica por qué pagas ("Precio por segundo de tu
  video de entrada") y su calculadora usa los datos de tu archivo. Un archivo que no se puede leer se rechaza con
  `unmeasurable_input` y no se cobra nada.
- `estimate`: el costo del modelo depende de algo que la entrada no puede indicar por adelantado (tokens, tiempo de procesamiento).
  Este tipo de modelo cobra un **precio estimado fijo por ejecución** (por imagen de salida cuando tiene una cantidad de imágenes), calculado a partir del
  costo promedio de ejecuciones reales de ese modelo. Aun así, conoces el precio antes de ejecutar: la cotización es lo que pagas.
- `metered`: al modelo se le **cobra según el uso real**, que solo conoce la 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 video 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 enumeran.

## 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 indica tu solicitud
(`max_tokens`, la longitud de tu texto, la resolución, la cantidad de salidas) y los límites publicados del modelo. Nunca
depende del contenido de un archivo 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 lo más que puede durar una solicitud (15 minutos para imágenes, 30 para audio, 60 para video), por lo que está
muy por encima de una ejecución típica. 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 cotización devuelve ese máximo como `credits` (con `hold` y `typical`, una ejecución habitual). Cuando comienza la ejecución, el
   máximo se descuenta del saldo de API, y es lo que deben cubrir el saldo y el presupuesto de tu clave.
2. Cuando la ejecución tiene éxito, la solicitud se liquida según el uso que el modelo informa: uso × precio por uso,
   redondeado hacia arriba 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 por completo, como
   siempre.

La mayoría de las ejecuciones cuesta 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 típica ("desde" en el catálogo). En los pocos modelos facturados por tiempo de procesamiento, el uso es el tiempo de procesamiento del modelo (marcado
`approximate`).

```json 200 OK · cotización de un modelo con cobro por uso
{
  "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 uso registrado:

```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 el costo de la ejecución. `settled.status` es `pending` durante el momento entre el resultado y la
liquidación, y `no_usage` en el caso poco frecuente de que el modelo no informe ningún uso (entonces el máximo se mantiene como precio).

## Cotización antes de ejecutar

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

```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 · cotizació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 cotización también devuelve `balance_credits` y `balance_usd` (tu saldo de API), `affordable` y
`key_budget_remaining`. Agrega `?currency=rub` para obtener un importe en `rub`.

> [!TIP]
> **La cotizació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 [con cobro por uso](#metered) (`mode: metered`): ahí `credits` es lo máximo que puede costar la ejecución,
> se descuenta cuando comienza y la parte no utilizada se reembolsa después de la ejecución.

## Objetos de precio

Todos los precios de la API tienen la misma estructura:

- models: `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`;
- requests: `cost: { "credits": 560, "usd": "0.56", "charged": 560, "refunded": 0 }` (créditos de API; una solicitud con cobro por uso
  agrega `mode`, `held`, `typical` y `settled`; consulta [Cobro por uso](#metered));
- account: `GET https://api.doitong.com/v1/account` devuelve `credits` (el saldo de API), `balance: { "credits", "usd" }` y
  `storage` (precio, uso y estimación mensual del almacenamiento de archivos).

## Reembolsos

- Una solicitud no válida (cualquier `4xx` antes de que comience la ejecución) nunca se cobra.
- Una solicitud que termina en `failed` (incluido `timeout`) se reembolsa por completo al saldo de API, automáticamente.
- Una solicitud que cancelas antes de que comience se reembolsa por completo. 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 tiene éxito recupera la parte de su máximo que no utilizó.

El objeto de la solicitud 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 × el precio mensual ÷ los días del mes, como
filas contables de tipo `storage`. Las fracciones de un crédito de API se trasladan al día siguiente, por lo que un mes suma exactamente
GB × 100 créditos de API (1 GB = 1024³ bytes; conservar 10 GB durante un mes cuesta
1,000 créditos de API). El saldo nunca baja de cero: cuando no puede pagar, ese día no se cobra,
recibes un correo electrónico y tienes 30 días para hacer una recarga antes de que los archivos conservados se vuelvan 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 video 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 (1,600 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 video 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 (1,600 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 video de salida | $8.00 (8,000 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 video 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 1,496 modelos y sus precios están en el [catálogo de modelos](https://doitong.com/developers/models) y en `GET /models` (no se necesita una clave).

## Recarga

Agrega 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
`402 insufficient_credits` con un `top_up_url`. Cada clave de API también puede tener su propio presupuesto en créditos de API
(consulta [Autenticación](https://doitong.com/developers/docs/authentication#credit-budgets)).
