# Prijzen

Elk model kost precies wat de maker ervoor rekent, in Amerikaanse dollars. Je betaalt uit je **API-saldo**,
dat wordt geteld in **API-credits**: **1.000 API-tegoed = $ 1**. Het API-saldo is een afzonderlijk saldo, los van de credits van
de Doitong-apps. Er zijn geen abonnementen, minimums of kosten per model: een aanroep kost de prijs ervan, afgeschreven van
het API-saldo zodra de request is geaccepteerd.

In Rusland (doitong.ru, api.doitong.ru of `?currency=rub`) worden prijzen ook in roebels weergegeven: de USD-prijs × de
USD/RUB-koers × 1,3.

## Eenheden

Elk model heeft één factureringseenheid, weergegeven op de modelpagina en in `GET https://api.doitong.com/v1/models/{model_id}`:

| Eenheid | Hoeveelheid |
|---|---|
| `second` | Seconden uitvoervideo of -audio (`duration`) |
| `image` | Gegenereerde afbeeldingen (`num_images`) |
| `megapixel` | Breedte × hoogte van de uitvoer, in megapixels (1 MP = 1024 × 1024 pixels) |
| `video` | Eén gegenereerde video |
| `request` | Eén aanroep |
| `1000_characters` | Tekens invoertekst, per 1000 |
| `step` | Trainingsstappen |

Prijs = hoeveelheid × API-credits per eenheid, naar boven afgerond op een heel API-credit ($ 0,001), nooit minder dan 1. Zeer goedkope
eenheden kunnen een fractionele prijs per eenheid hebben (`0.4` API-credits per seconde); alleen het totaal van een aanroep wordt afgerond.

Sommige modellen rekenen een ander tarief afhankelijk van de invoer: video met geluid kost meer dan zonder, 4K kost meer
dan 1K, enzovoort. Deze **regels** staan op elke modelpagina. Een parameter die je weglaat, telt als de standaardwaarde,
dus de prijs die je voor een invoer ziet, is de prijs die je betaalt.

## Exacte, gemeten, geschatte en gebruiksprijzen

Elke prijs heeft een `mode`:

- `exact`: de prijs wordt berekend op basis van je invoer (seconden, afbeeldingen, megapixels, tekens, stappen of één vaste
  prijs per video of aanroep).
- `measured`: de prijs volgt de bestanden die je verzendt: de lengte van een invoervideo of -audio, de grootte van een invoerafbeelding,
  de framesnelheid of het aantal frames van een video. Upscalers, lipsynchronisatie, video-naar-video, transcriptie en audiotools
  worden zo geprijsd. Voor de run leest de API de lengte, resolutie en framesnelheid van het bestand (de prijsopgave doet hetzelfde),
  dus de prijsopgave is precies wat de run kost. De modelpagina vermeldt waarvoor je betaalt ("Prijs per seconde van je
  invoervideo") en de calculator gebruikt de gegevens van je bestand. Een bestand dat niet kan worden gelezen, wordt geweigerd met
  `unmeasurable_input` en er worden geen kosten in rekening gebracht.
- `estimate`: de eigen kosten van het model hangen af van iets wat de invoer niet vooraf kan aangeven (tokens, rekentijd).
  Zo'n model rekent een vaste **geschatte prijs per run** (per uitvoerafbeelding wanneer het een aantal afbeeldingen heeft), gebaseerd op de
  gemiddelde kosten van echte runs van dat model. Je kent de prijs nog steeds vóór de run: de prijsopgave is wat je betaalt.
- `metered`: het model wordt **op basis van werkelijk gebruik belast**, dat alleen de run zelf kent: de tokens die een taal- of
  visionmodel leest en schrijft, de seconden spraak die een stemmodel genereert of de verwerkingstijd van het model.
  Zie [Op basis van gebruik belast](#metered) hieronder.

Modelpagina's vermelden "Prijs per run", "Prijs per seconde van je invoervideo" (en vergelijkbare teksten), "Geschatte prijs per run" of
"Op basis van gebruik belast"; `GET https://api.doitong.com/v1/models?mode=measured`, `?mode=estimate` en `?mode=metered` geven deze weer.

## Op basis van gebruik belast

Een `metered`-model heeft een gebruiksprijs ("$0.01 per 1000 tokens", "$0.002 per seconde gegenereerde audio", "$0.00111 per
seconde verwerkingstijd") en een **maximum per run**: het hoogste bedrag dat de run kan kosten, op basis van wat je request vermeldt
(`max_tokens`, de lengte van je tekst, de resolutie, het aantal uitvoerbestanden) en de gepubliceerde limieten van het model. Dit hangt
nooit af van de inhoud van een bestand achter een URL. Voor een model dat per verwerkingstijd of per lengte van een stemsessie wordt
gefactureerd, is het maximum de langste duur die een request mag hebben (15 minuten voor afbeeldingen, 30 voor audio, 60 voor video),
dus veel hoger dan een typische run. Een invoer waarvan het maximum boven de limiet per run van het model zou uitkomen (een zeer lange tekst)
wordt geweigerd met `422 invalid_input`:

1. De prijsopgave retourneert dat maximum als `credits` (met `hold` en `typical`, een gebruikelijke run). Wanneer de run start, wordt
   het maximum van het API-saldo afgeschreven; het saldo en je sleutelbudget moeten dit bedrag dekken.
2. Wanneer de run slaagt, wordt de request afgerekend op het gebruik dat het model rapporteert: gebruik × gebruiksprijs,
   naar boven afgerond op een heel API-credit. **De rest van het maximum wordt automatisch terugbetaald**, één keer, als een `refund`-regel
   van je API-saldo.
3. Een run kost nooit meer dan het maximum, ook niet als het gebruik daarboven zou uitkomen. Een mislukte of geannuleerde run wordt volledig terugbetaald,
   zoals altijd.

De meeste runs kosten veel minder dan het maximum; de modelpagina toont "Tot $X per run" voor de invoer van de builder en de
typische run ("vanaf" in de catalogus). Voor de enkele modellen die op verwerkingstijd worden gefactureerd, is het gebruik de verwerkingstijd van het model (gemarkeerd als
`approximate`).

```json 200 OK · prijsopgave van een metered-model
{
  "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"
}
```

Na de run toont de `cost` van de request wat is vastgehouden en wat het gebruik bedroeg:

```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` is wat de run kostte. `settled.status` is `pending` gedurende het moment tussen het resultaat en de
afrekening, en `no_usage` in het zeldzame geval dat het model helemaal geen gebruik rapporteerde (dan blijft het maximum de prijs).

## Prijsopgave vóór de run

`POST https://api.doitong.com/v1/quote/{model_id}` accepteert precies de body die je naar `run` zou sturen en retourneert de prijs van die
invoer: de exacte prijs, behalve voor een model dat [op basis van gebruik wordt belast](#metered), waarbij dit het maximum is dat de run
kan kosten. Er is geen sleutel nodig en de aanroep kost niets:

```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 · prijsopgave
{
  "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": []
}
```

Met een sleutel retourneert de prijsopgave ook `balance_credits` en `balance_usd` (je API-saldo), `affordable` en
`key_budget_remaining`. Voeg `?currency=rub` toe voor een bedrag in `rub`.

> [!TIP]
> **De prijsopgave is de afschrijving.** Dezelfde functie berekent beide, dus een run met deze invoer kost precies `credits`.
> De enige uitzondering is een model dat [op basis van gebruik wordt belast](#metered) (`mode: metered`): daar is `credits` het maximum dat de run kan
> kosten, afgeschreven bij de start, en wordt het ongebruikte deel na de run terugbetaald.

## Prijsobjecten

Elke prijs in de API heeft dezelfde vorm:

- 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" }` — plus `rub`,
  `rub_display` en `from_rub` in Rusland of met `?currency=rub`;
- requests: `cost: { "credits": 560, "usd": "0.56", "charged": 560, "refunded": 0 }` (API-credits; een metered-request
  voegt `mode`, `held`, `typical` en `settled` toe, zie [Op basis van gebruik belast](#metered));
- account: `GET https://api.doitong.com/v1/account` retourneert `credits` (het API-saldo), `balance: { "credits", "usd" }` en
  `storage` (prijs, gebruik en maandelijkse schatting van bestandsopslag).

## Terugbetalingen

- Een ongeldige request (elke `4xx` voordat de run start) wordt nooit belast.
- Een request die eindigt als `failed` (inclusief `timeout`) wordt automatisch volledig terugbetaald naar het API-saldo.
- Een request die je annuleert voordat deze start, wordt volledig terugbetaald. Zodra het model genereert, is annuleren slechts een
  verzoek: als het model voltooit, wordt het resultaat geleverd en in rekening gebracht.
- Een `metered`-request die slaagt, krijgt het deel van het maximum terug dat niet is gebruikt.

Het request-object toont alles: `cost.credits`, `cost.charged` en `cost.refunded`.

## Bestandsopslag

Uitvoerbestanden worden opgeslagen in onze opslag. Je kiest dit in het account of per run (`?storage=`):

| | Bewaard | Prijs |
|---|---|---|
| Voor altijd (`permanent`, standaard) | Tot je ze verwijdert | 100 API-credits ($ 0,10) per GB per maand |
| 7 dagen (`temporary`) | 7 dagen | Gratis |

Voor permanente opslag wordt eenmaal per dag het API-saldo belast: bewaarde GB × de maandprijs ÷ het aantal dagen in de maand, als
boekingsregels met soort `storage`. Fracties van een API-credit worden meegenomen naar de volgende dag, zodat een maand precies uitkomt op
GB × 100 API-credits (1 GB = 1024³ bytes; 10 GB die een maand worden bewaard kosten
1.000 API-credits). Het saldo wordt nooit negatief: wanneer er niet kan worden betaald, wordt die dag niet belast,
je ontvangt een e-mail en hebt 30 dagen om op te waarderen voordat de bewaarde bestanden tijdelijk worden en
7 dagen later worden verwijderd. Details: [Bestanden](https://doitong.com/developers/docs/files#storage).

## Huidige prijzen

| Model | ID | Prijs | Vanaf |
|---|---|---|---|
| [FLUX.1 \[dev\]](https://doitong.com/developers/models/flux/dev) | `flux/dev` | $ 0,025 / megapixel | $ 0,025 (25 API-tegoed) |
| [FLUX.1 \[schnell\]](https://doitong.com/developers/models/flux/schnell) | `flux/schnell` | $ 0,003 / megapixel | $ 0,003 (3 API-tegoed) |
| [FLUX.2 \[dev\]](https://doitong.com/developers/models/flux-2) | `flux-2` | $ 0,012 / megapixel | $ 0,012 (12 API-tegoed) |
| [FLUX.2 \[pro\]](https://doitong.com/developers/models/flux-2-pro) | `flux-2-pro` | $ 0,015 / megapixel uitvoerafbeelding | $ 0,015 (15 API-tegoed) |
| [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` | vanaf $ 0,008 / afbeelding | $ 0,008 (8 API-tegoed) |
| [Ideogram V4.5](https://doitong.com/developers/models/ideogram/v4.5) | `ideogram/v4.5` | vanaf $ 0,03 / afbeelding | $ 0,03 (30 API-tegoed) |
| [Nano Banana 2](https://doitong.com/developers/models/nano-banana-2) | `nano-banana-2` | vanaf $ 0,06 / afbeelding | $ 0,06 (60 API-tegoed) |
| [Nano Banana Pro](https://doitong.com/developers/models/nano-banana-pro) | `nano-banana-pro` | vanaf $ 0,15 / afbeelding | $ 0,15 (150 API-tegoed) |
| [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` | vanaf $ 0,04 / afbeelding | $ 0,04 (40 API-tegoed) |
| [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 / afbeelding | $ 0,035 (35 API-tegoed) |
| [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` | vanaf $ 0,068 | $ 0,068 (68 API-tegoed) |
| [FLUX.1 Kontext \[pro\]](https://doitong.com/developers/models/flux-pro/kontext) | `flux-pro/kontext` | $ 0,04 / afbeelding | $ 0,04 (40 API-tegoed) |
| [Nano Banana 2 Edit](https://doitong.com/developers/models/nano-banana-2/edit) | `nano-banana-2/edit` | vanaf $ 0,06 / afbeelding | $ 0,06 (60 API-tegoed) |
| [Nano Banana Pro Edit](https://doitong.com/developers/models/nano-banana-pro/edit) | `nano-banana-pro/edit` | vanaf $ 0,15 / afbeelding | $ 0,15 (150 API-tegoed) |
| [Qwen Image 3 Edit](https://doitong.com/developers/models/alibaba/qwen-image-3/edit) | `alibaba/qwen-image-3/edit` | vanaf $ 0,04 / afbeelding | $ 0,04 (40 API-tegoed) |
| [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` | vanaf $ 0,0425 / seconde uitvoervideo | $ 0,043 (43 API-tegoed) |
| [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` | vanaf $ 0,08 / seconde | $ 0,48 (480 API-tegoed) |
| [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` | vanaf $ 0,112 / seconde | $ 0,56 (560 API-tegoed) |
| [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` | vanaf $ 0,12 / seconde | $ 0,72 (720 API-tegoed) |
| [MiniMax H3 Text to Video](https://doitong.com/developers/models/minimax/h3/text-to-video) | `minimax/h3/text-to-video` | vanaf $ 0,05 / seconde | $ 0,25 (250 API-tegoed) |
| [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` | vanaf $ 0,113 / seconde | $ 0,452 (452 API-tegoed) |
| [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` | vanaf $ 0,141 / seconde | $ 0,564 (564 API-tegoed) |
| [Veo 3.1](https://doitong.com/developers/models/veo3.1) | `veo3.1` | vanaf $ 0,20 / seconde | $ 1,60 (1.600 API-tegoed) |
| [Veo 3.1 Fast](https://doitong.com/developers/models/veo3.1/fast) | `veo3.1/fast` | vanaf $ 0,10 / seconde | $ 0,80 (800 API-tegoed) |
| [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` | vanaf $ 0,05 / seconde | $ 0,25 (250 API-tegoed) |
| [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` | vanaf $ 0,0425 / seconde uitvoervideo | $ 0,043 (43 API-tegoed) |
| [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` | vanaf $ 0,082 / seconde | $ 0,492 (492 API-tegoed) |
| [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` | vanaf $ 0,112 / seconde | $ 0,56 (560 API-tegoed) |
| [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` | vanaf $ 0,12 / seconde | $ 0,72 (720 API-tegoed) |
| [MiniMax H3 Image to Video](https://doitong.com/developers/models/minimax/h3/image-to-video) | `minimax/h3/image-to-video` | vanaf $ 0,05 / seconde | $ 0,25 (250 API-tegoed) |
| [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` | vanaf $ 0,113 / seconde | $ 0,452 (452 API-tegoed) |
| [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` | vanaf $ 0,141 / seconde | $ 0,564 (564 API-tegoed) |
| [Veo 3.1 Fast Image to Video](https://doitong.com/developers/models/veo3.1/fast/image-to-video) | `veo3.1/fast/image-to-video` | vanaf $ 0,10 / seconde | $ 0,80 (800 API-tegoed) |
| [Veo 3.1 Image to Video](https://doitong.com/developers/models/veo3.1/image-to-video) | `veo3.1/image-to-video` | vanaf $ 0,20 / seconde | $ 1,60 (1.600 API-tegoed) |
| [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` | vanaf $ 0,05 / seconde | $ 0,25 (250 API-tegoed) |
| [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` | vanaf $ 0,113 / seconde | $ 0,452 (452 API-tegoed) |
| [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` | vanaf $ 0,141 / seconde | $ 0,564 (564 API-tegoed) |
| [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 / seconde invoeraudio | $ 0,115 (115 API-tegoed) |
| [Sync Lipsync 3](https://doitong.com/developers/models/sync-lipsync/v3) | `sync-lipsync/v3` | $ 8,00 / minuut uitvoervideo | $ 8,00 (8.000 API-tegoed) |
| [VEED Fabric 1.0](https://doitong.com/developers/models/veed/fabric-1.0) | `veed/fabric-1.0` | vanaf $ 0,08 / seconde invoeraudio | $ 0,08 (80 API-tegoed) |
| [Topaz Image Upscale](https://doitong.com/developers/models/topaz/upscale/image/precision) | `topaz/upscale/image/precision` | $ 0,08 / 24 megapixels uitvoerafbeelding | $ 0,08 (80 API-tegoed) |
| [Topaz Video Upscale](https://doitong.com/developers/models/topaz/upscale/video/precision) | `topaz/upscale/video/precision` | vanaf $ 0,00667 / seconde invoervideo | $ 0,10 (100 API-tegoed) |
| [Bria RMBG 2.0](https://doitong.com/developers/models/bria/background/remove) | `bria/background/remove` | vanaf $ 0,018 | $ 0,018 (18 API-tegoed) |
| [Eleven v4 Text to Speech](https://doitong.com/developers/models/elevenlabs/tts/eleven-v4) | `elevenlabs/tts/eleven-v4` | $ 0,08 / 1000 tekens | $ 0,08 (80 API-tegoed) |
| [MiniMax Speech 2.8 HD](https://doitong.com/developers/models/minimax/speech-2.8-hd) | `minimax/speech-2.8-hd` | $ 0,10 / 1000 tekens | $ 0,10 (100 API-tegoed) |
| [MiniMax Music 3](https://doitong.com/developers/models/minimax/music-3) | `minimax/music-3` | $ 0,002 / seconde | $ 0,12 (120 API-tegoed) |
| [MMAudio V2](https://doitong.com/developers/models/mmaudio-v2) | `mmaudio-v2` | $ 0,001 / seconde | $ 0,008 (8 API-tegoed) |

Dit zijn de uitgelichte modellen. Alle 1.496 modellen en hun prijzen staan in de [modelcatalogus](https://doitong.com/developers/models) en in `GET /models` (geen sleutel nodig).

## Opwaarderen

Voeg geld toe aan het API-saldo via [https://doitong.com/developers/dashboard#balance](https://doitong.com/developers/dashboard#balance). Wanneer het saldo te laag is, antwoordt een run met
`402 insufficient_credits` en een `top_up_url`. Elke API-sleutel kan ook worden beperkt met een eigen budget in API-credits
(zie [Authenticatie](https://doitong.com/developers/docs/authentication#credit-budgets)).
