# Priser

Hver model koster præcis det, som modellens producent opkræver for den, i amerikanske dollars. Du betaler fra din **API-saldo**,
som tælles i **API-kreditter**: **1.000 API-kreditter = 1 $**. API-saldoen er sin egen saldo, adskilt fra Doitong-appsnes
kreditter. Der er ingen abonnementer, minimumsbeløb eller gebyrer pr. model: et kald koster sin pris, som trækkes fra
API-saldoen, når anmodningen accepteres.

I Rusland (doitong.ru, api.doitong.ru eller `?currency=rub`) vises priser også i rubler: USD-prisen ×
USD/RUB-kursen × 1,3.

## Enheder

Hver model har én faktureringsenhed, som vises på dens side og i `GET https://api.doitong.com/v1/models/{model_id}`:

| Enhed | Mængde |
|---|---|
| `second` | Sekunder af output-video eller -lyd (`duration`) |
| `image` | Genererede billeder (`num_images`) |
| `megapixel` | Outputtets bredde × højde i megapixel (1 MP = 1024 × 1024 pixels) |
| `video` | Én genereret video |
| `request` | Ét kald |
| `1000_characters` | Tegn i inputtekst pr. 1000 |
| `step` | Træningstrin |

Pris = mængde × API-kreditter pr. enhed, rundet op til en hel API-kredit (0,001 $), aldrig mindre end 1. Meget billige
enheder kan have en brøkpris pr. enhed (`0.4` API-kreditter pr. sekund); kun totalen for et kald rundes.

Nogle modeller opkræver en anden sats afhængigt af inputtet: video med lyd koster mere end uden, 4K koster mere
end 1K osv. Disse **regler** står på hver modelside. En parameter, du udelader, tæller som dens standardværdi,
så den pris, du ser for et input, er den pris, du betaler.

## Priser baseret på præcise, målte, estimerede og forbrugsbaserede værdier

Alle priser har en `mode`:

- `exact`: Prisen beregnes ud fra dit input (sekunder, billeder, megapixel, tegn, trin eller én fast
  pris pr. video eller kald).
- `measured`: Prisen følger de filer, du sender: længden af en inputvideo eller -lyd, størrelsen af et inputbillede,
  billedhastigheden eller antallet af frames i en video. Opskalering, lip sync, video-til-video, transskription og lydværktøjer
  prissættes på denne måde. Før kørslen læser API'et filens længde, opløsning og billedhastighed (tilbuddet gør det
  samme), så tilbuddet er præcis det, som kørslen opkræver. Modellsiden angiver, hvad du betaler for ("Pris pr. sekund af din
  inputvideo"), og beregneren bruger tallene fra din fil. En fil, der ikke kan læses, afvises med
  `unmeasurable_input`, og der opkræves ikke noget.
- `estimate`: Modellens egen pris afhænger af noget, som inputtet ikke kan fortælle på forhånd (tokens, beregningstid).
  En sådan model opkræver en fast **estimeret pris pr. kørsel** (pr. outputbillede, når den har et billedantal), fastsat ud fra
  den gennemsnitlige pris for faktiske kørsler med modellen. Du kender stadig prisen, før du kører: tilbuddet er det, du betaler.
- `metered`: Modellen **opkræves efter det faktiske forbrug**, som kun selve kørslen kender: de tokens, en sprog- eller
  visionsmodel læser og skriver, de sekunder tale, som en stemmemodel genererer, eller modellens behandlingstid.
  Se [Opkrævet efter forbrug](#metered) nedenfor.

Modellsider angiver "Pris pr. kørsel", "Pris pr. sekund af din inputvideo" (og lignende), "Estimeret pris pr. kørsel" eller
"Opkrævet efter forbrug"; `GET https://api.doitong.com/v1/models?mode=measured`, `?mode=estimate` og `?mode=metered` viser dem.

## Opkrævet efter forbrug

En `metered`-model har en forbrugspris ("$0.01 pr. 1000 tokens", "$0.002 pr. sekund genereret lyd", "$0.00111 pr.
sekund behandlingstid") og et **maksimum pr. kørsel**: det højeste, kørslen kan koste, baseret på hvad din anmodning angiver
(`max_tokens`, længden af din tekst, opløsningen, antallet af outputs) og modellens offentliggjorte grænser. Det
afhænger aldrig af indholdet af en fil bag en URL. For en model, der faktureres efter behandlingstid eller længden af en stemme-
session, er maksimum den længste tid, en anmodning må køre (15 minutter for billeder, 30 for lyd, 60 for video), så det er
langt over en typisk kørsel. Et input, hvis maksimum ville overstige modellens grænse pr. kørsel (en meget lang tekst), afvises
med `422 invalid_input`:

1. Tilbuddet returnerer dette maksimum som `credits` (med `hold` og `typical`, en typisk kørsel). Når kørslen starter, trækkes
   maksimum fra API-saldoen, og det er det, saldoen og dit nøglebudget skal dække.
2. Når kørslen lykkes, afregnes anmodningen efter det forbrug, modellen rapporterer: forbrug × forbrugsprisen,
   rundet op til en hel API-kredit. **Resten af maksimum tilbagebetales automatisk**, én gang, som en `refund`-post
   på din API-saldo.
3. En kørsel koster aldrig mere end sit maksimum, heller ikke hvis forbruget ville gøre det. En mislykket eller annulleret kørsel tilbagebetales fuldt ud, som
   altid.

De fleste kørsler koster langt mindre end maksimum; modellsiden viser "Op til $X pr. kørsel" for builderens input og den
typiske kørsel ("fra" i kataloget). For de få modeller, der faktureres efter behandlingstid, er forbruget modellens behandlingstid (markeret
`approximate`).

```json 200 OK · tilbud på en 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"
}
```

Efter kørslen viser anmodningens `cost`, hvad der blev reserveret, og hvad forbruget endte på:

```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` er det, kørslen kostede. `settled.status` er `pending` i øjeblikket mellem resultatet og
afregningen og `no_usage` i det sjældne tilfælde, hvor modellen slet ikke rapporterede noget forbrug (så står maksimum som prisen).

## Få et tilbud før kørsel

`POST https://api.doitong.com/v1/quote/{model_id}` tager præcis den brødtekst, du ville sende til `run`, og returnerer prisen for det
input: den præcise pris, bortset fra en model [opkrævet efter forbrug](#metered), hvor det er det højeste, kørslen kan koste. Det
kræver ingen nøgle og koster ingenting:

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

Med en nøgle returnerer tilbuddet også `balance_credits` og `balance_usd` (din API-saldo), `affordable` og
`key_budget_remaining`. Tilføj `?currency=rub` for et `rub`-beløb.

> [!TIP]
> **Tilbuddet er opkrævningen.** Den samme funktion beregner begge dele, så en kørsel med dette input koster præcis `credits`.
> Den eneste undtagelse er en model [opkrævet efter forbrug](#metered) (`mode: metered`): her er `credits` det højeste, kørslen kan
> koste, trukket når den starter, og den ubrugte del tilbagebetales efter kørslen.

## Prisobjekter

Alle priser i API'et har samme struktur:

- 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` og `from_rub` i Rusland eller med `?currency=rub`;
- requests: `cost: { "credits": 560, "usd": "0.56", "charged": 560, "refunded": 0 }` (API-kreditter; en `metered`-anmodning
  tilføjer `mode`, `held`, `typical` og `settled`, se [Opkrævet efter forbrug](#metered));
- account: `GET https://api.doitong.com/v1/account` returnerer `credits` (API-saldoen), `balance: { "credits", "usd" }` og
  `storage` (pris, forbrug og månedligt estimat for fillagring).

## Tilbagebetalinger

- En ugyldig anmodning (enhver `4xx`, før kørslen starter) opkræves aldrig.
- En anmodning, der ender som `failed` (inklusive `timeout`), tilbagebetales fuldt ud til API-saldoen automatisk.
- En anmodning, du annullerer, før den starter, tilbagebetales fuldt ud. Når modellen er i gang med at generere, er en annullering kun en
  anmodning: Hvis modellen bliver færdig, leveres resultatet, og der opkræves betaling.
- En `metered`-anmodning, der lykkes, får den del af sit maksimum tilbage, som den ikke brugte.

Anmodningsobjektet viser det hele: `cost.credits`, `cost.charged` og `cost.refunded`.

## Fillagring

Outputfiler opbevares på vores lager. Du vælger det på kontoen eller pr. kørsel (`?storage=`):

| | Opbevares | Pris |
|---|---|---|
| For altid (`permanent`, standard) | Indtil du sletter dem | 100 API-kreditter (0,10 $) pr. GB pr. måned |
| 7 dage (`temporary`) | 7 dage | Gratis |

Permanent lagring opkræves én gang om dagen fra API-saldoen: gemte GB × månedsprisen ÷ antal dage i måneden, som
poster i finansbogen af typen `storage`. Brøkdele af en API-kredit overføres til næste dag, så en måned samlet set bliver præcis
GB × 100 API-kreditter (1 GB = 1024³ bytes; 10 GB gemt i en måned koster
1.000 API-kreditter). Saldoen kommer aldrig under nul: Når der ikke er nok til at betale, opkræves den dag ikke,
du får en e-mail, og du har 30 dage til optankning, før de gemte filer bliver midlertidige og
slettes 7 dage senere. Detaljer: [Filer](https://doitong.com/developers/docs/files#storage).

## Aktuelle priser

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

Dette er de fremhævede modeller. Alle 1.496 modeller og deres priser findes i [modelkataloget](https://doitong.com/developers/models) og i `GET /models` (ingen nøgle nødvendig).

## Optankning

Tilføj penge til API-saldoen på [https://doitong.com/developers/dashboard#balance](https://doitong.com/developers/dashboard#balance). Når saldoen er for lav, svarer en kørsel
`402 insufficient_credits` med en `top_up_url`. Hver API-nøgle kan også begrænses med sit eget budget i API-kreditter
(se [Godkendelse](https://doitong.com/developers/docs/authentication#credit-budgets)).
