# Pagpepresyo

Ang bawat modelo ay eksaktong nagkakahalaga ng sinisingil dito ng gumawa nito, sa US dollars. Magbabayad ka mula sa iyong **balanse ng API**,
na sinusukat sa **kredito ng API**: **1,000 kredito ng API = $1**. Ang balanse ng API ay hiwalay na balanse, bukod sa
mga kredito ng mga Doitong app. Walang mga plano, minimum o bayarin bawat modelo: ang isang tawag ay nagkakahalaga ng presyo nito, na ibinabawas sa
balanse ng API kapag tinanggap ang kahilingan.

Sa Russia (doitong.ru, api.doitong.ru, o `?currency=rub`) ipinapakita rin ang mga presyo sa ruble: presyo sa USD × ang
USD/RUB rate × 1.3.

## Mga unit

May isang billing unit ang bawat modelo, na ipinapakita sa pahina nito at sa `GET https://api.doitong.ru/v1/models/{model_id}`:

| Unit | Dami |
|---|---|
| `second` | Mga segundo ng output na video o audio (`duration`) |
| `image` | Mga larawang nabuo (`num_images`) |
| `megapixel` | Lapad × taas ng output, sa megapixel (1 MP = 1024 × 1024 pixel) |
| `video` | Isang nabuong video |
| `request` | Isang tawag |
| `1000_characters` | Mga character ng input na text, bawat 1000 |
| `step` | Mga hakbang sa training |

Presyo = dami × kredito ng API bawat unit, niroround up sa buong kredito ng API ($0.001), at hindi kailanman bababa sa 1. Maaaring magkaroon ng fractional na presyo bawat unit ang napakamurang
unit (`0.4` kredito ng API bawat segundo); ang kabuuan lang ng isang tawag ang niroround.

May ilang modelong naniningil ng ibang rate depende sa input: mas mahal ang video na may tunog kaysa wala, mas mahal ang 4K
kaysa 1K, at iba pa. Nakalista ang mga **rule** na ito sa pahina ng bawat modelo. Ang parameter na hindi mo isinasama ay itinuturing na
value nito na default, kaya ang presyong nakikita mo para sa isang input ang presyong babayaran mo.

## Eksakto, sinusukat, tinatantiya at batay sa paggamit na mga presyo

May `mode` ang bawat presyo:

- `exact`: kinakalkula ang presyo mula sa iyong input (mga segundo, larawan, megapixel, character, step, o isang nakapirming
  presyo bawat video o tawag).
- `measured`: nakabatay ang presyo sa mga file na ipinapadala mo: haba ng input na video o audio, laki ng input na
  larawan, frame rate o bilang ng frame ng isang video. Ganito ang presyo para sa mga upscaler, lip sync, video-to-video, transcription at audio tool.
  Bago tumakbo, binabasa ng API ang haba, resolution at frame rate ng file (ganito rin ang ginagawa ng quote), kaya eksaktong
  katumbas ng sinisingil ng run ang quote. Sinasabi ng pahina ng modelo kung para saan ka magbabayad ("Presyo bawat segundo ng iyong
  input na video") at ginagamit ng calculator nito ang mga numero ng iyong file. Ang file na hindi mabasa ay tinatanggihan na may
  `unmeasurable_input` at walang sisingilin.
- `estimate`: nakadepende ang sariling gastos ng modelo sa bagay na hindi masasabi nang maaga ng input (mga token, oras ng pag-compute).
  Naniningil ang ganitong modelo ng nakapirming **tinatantiyang presyo bawat run** (bawat output na larawan kapag may bilang ng larawan), batay sa
  karaniwang gastos ng mga aktuwal na run ng modelong iyon. Alam mo pa rin ang presyo bago mag-run: ang quote ang babayaran mo.
- `metered`: **sinisingil ang modelo batay sa aktuwal na paggamit**, na alam lang ng run mismo: mga token na binabasa at sinusulat ng language o
  vision modelo, mga segundo ng speech na binubuo ng voice model, o oras ng pagproseso ng modelo.
  Tingnan ang [Sinisingil batay sa paggamit](#metered) sa ibaba.

Sinasabi ng mga pahina ng modelo ang "Presyo bawat run", "Presyo bawat segundo ng iyong input na video" (at katulad nito), "Tinatantiyang presyo bawat run" o
"Sinisingil batay sa paggamit"; inililista ng `GET https://api.doitong.ru/v1/models?mode=measured`, `?mode=estimate` at `?mode=metered` ang mga ito.

## Sinisingil batay sa paggamit

Ang isang `metered` na modelo ay may presyo batay sa paggamit ("$0.01 bawat 1000 token", "$0.002 bawat segundo ng nabuong audio", "$0.00111 bawat
segundo ng oras ng pagproseso") at isang **maximum bawat run**: ang pinakamalaking maaaring gastusin ng run, batay sa sinasabi ng iyong kahilingan
(`max_tokens`, haba ng iyong text, resolution, bilang ng output) at sa inilathalang limitasyon ng modelo. Hindi ito kailanman nakadepende sa nilalaman ng file sa likod ng URL. Para sa modelong sinisingil batay sa oras ng pagproseso o haba ng voice
session, ang maximum ay ang pinakamatagal na maaaring tumakbo ang isang kahilingan (15 minuto para sa mga larawan, 30 para sa audio, 60 para sa video), kaya malayong
mas mataas ito kaysa sa karaniwang run. Ang input na ang maximum ay lalampas sa limitasyon ng modelo bawat run (napakahabang text) ay tinatanggihan
na may `422 invalid_input`:

1. Ibinabalik ng quote ang maximum na iyon bilang `credits` (kasama ang `hold` at `typical`, isang karaniwang run). Kapag nagsimula ang run, ibinabawas ang
   maximum mula sa balanse ng API, at ito ang kailangang masaklaw ng balanse at badyet ng iyong key.
2. Kapag naging matagumpay ang run, inaayos ang kahilingan sa paggamit na iniulat ng modelo para rito: paggamit × presyo batay sa paggamit,
   niroround up sa buong kredito ng API. **Awtomatikong nire-refund ang natitirang bahagi ng maximum**, isang beses, bilang isang row na `refund`
   ng iyong balanse ng API.
3. Hindi kailanman lalampas sa maximum ang gastos ng run, kahit lumampas dito ang paggamit. Ang nabigo o kinanselang run ay buong nire-refund, gaya ng dati.

Mas mura nang malaki kaysa sa maximum ang karamihan ng run; ipinapakita ng pahina ng modelo ang "Hanggang $X bawat run" para sa input ng builder at ang
karaniwang run ("mula sa" sa catalog). Para sa iilang modelong sinisingil batay sa oras ng pagproseso, ang paggamit ay oras ng pagproseso ng modelo (may markang
`approximate`).

```json 200 OK · quote ng metered na modelo
{
  "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"
}
```

Pagkatapos ng run, ipinapakita ng `cost` ng kahilingan kung ano ang na-hold at kung magkano ang naging paggamit:

```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 } }
}
```

Ang `charged − refunded` ang gastos ng run. Ang `settled.status` ay `pending` sa panahong pagitan ng resulta at
settlement, at `no_usage` sa pambihirang pagkakataong walang iniulat na paggamit ang modelo (kung gayon, nananatiling presyo ang maximum).

## Quote bago mag-run

Tinatanggap ng `POST https://api.doitong.ru/v1/quote/{model_id}` ang eksaktong body na ipapadala mo sa `run` at ibinabalik ang presyo ng
input na iyon: ang eksaktong presyo, maliban sa modelong [sinisingil batay sa paggamit](#metered), kung saan ito ang pinakamalaking maaaring gastusin ng run. Hindi
ito nangangailangan ng key at walang bayad:

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

```json 200 OK · quote
{
  "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": []
}
```

Kapag may key, ibinabalik din ng quote ang `balance_credits` at `balance_usd` (iyong balanse ng API), `affordable` at
`key_budget_remaining`. Idagdag ang `?currency=rub` para sa halagang `rub`.

> [!TIP]
> **Ang quote ang singil.** Parehong function ang nagkakalkula sa dalawa, kaya eksaktong `credits` ang gastos ng run gamit ang input na ito.
> Ang tanging eksepsiyon ay modelong [Sinisingil batay sa paggamit](#metered) (`mode: metered`): doon, ang `credits` ang pinakamalaking maaaring gastusin ng run,
> ibinabawas kapag nagsimula ito, at nire-refund ang hindi nagamit na bahagi pagkatapos ng run.

## Mga object ng presyo

Pare-pareho ang anyo ng bawat presyo sa API:

- mga modelo: `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" }` — dagdag ang `rub`,
  `rub_display` at `from_rub` sa Russia o gamit ang `?currency=rub`;
- mga kahilingan: `cost: { "credits": 560, "usd": "0.56", "charged": 560, "refunded": 0 }` (kredito ng API; ang metered na kahilingan
  ay nagdaragdag ng `mode`, `held`, `typical` at `settled`, tingnan ang [Sinisingil batay sa paggamit](#metered));
- account: ibinabalik ng `GET https://api.doitong.ru/v1/account` ang `credits` (ang balanse ng API), `balance: { "credits", "usd" }` at
  `storage` (presyo ng storage ng file, paggamit at buwanang pagtatantiya).

## Mga refund

- Ang invalid na kahilingan (anumang `4xx` bago magsimula ang run) ay hindi kailanman sinisingil.
- Ang kahilingang magtatapos sa `failed` (kabilang ang `timeout`) ay buong awtomatikong nire-refund sa balanse ng API.
- Ang kahilingang kakanselahin mo bago ito magsimula ay buong nire-refund. Kapag bumubuo na ang modelo, ang cancel ay kahilingan lamang: kung matatapos ang modelo, ihahatid ang resulta at sisingilin.
- Ang matagumpay na `metered` na kahilingan ay ibinabalik ang bahaging hindi nito nagamit mula sa maximum.

Ipinapakita ng object ng kahilingan ang lahat ng ito: `cost.credits`, `cost.charged` at `cost.refunded`.

## Storage ng file

Iniingatan ang mga output na file sa aming storage. Ikaw ang pipili, sa account o bawat run (`?storage=`):

| | Itinatago | Presyo |
|---|---|---|
| Walang hanggan (`permanent`, default) | Hanggang burahin mo ang mga ito | 100 kredito ng API ($0.10) bawat GB bawat buwan |
| 7 araw (`temporary`) | 7 araw | Libre |

Sinisingil ang permanenteng storage isang beses bawat araw mula sa balanse ng API: GB na itinatago × buwanang presyo ÷ mga araw sa buwan, bilang
mga ledger row na may kind na `storage`. Dinadala sa susunod na araw ang mga fraction ng kredito ng API, kaya eksaktong
GB × 100 kredito ng API ang kabuuan sa isang buwan (1 GB = 1024³ byte; ang 10 GB na itinago sa loob ng isang buwan ay nagkakahalaga ng
1,000 kredito ng API). Hindi kailanman bababa sa zero ang balanse: kapag hindi ito makabayad, hindi sisingilin ang araw na iyon,
makakatanggap ka ng email, at mayroon kang 30 araw para magdagdag ng balanse bago maging temporary ang mga file na itinatago at
mabura pagkalipas ng 7 araw. Mga detalye: [Mga file](https://doitong.com/developers/docs/files#storage).

## Mga kasalukuyang presyo

| Modelo | ID | Presyo | Mula sa |
|---|---|---|---|
| [FLUX.1 \[dev\]](https://doitong.com/developers/models/flux/dev) | `flux/dev` | $0.025 / megapixel | $0.025 (25 kredito ng API) |
| [FLUX.1 \[schnell\]](https://doitong.com/developers/models/flux/schnell) | `flux/schnell` | $0.003 / megapixel | $0.003 (3 kredito ng API) |
| [FLUX.2 \[dev\]](https://doitong.com/developers/models/flux-2) | `flux-2` | $0.012 / megapixel | $0.012 (12 kredito ng API) |
| [FLUX.2 \[pro\]](https://doitong.com/developers/models/flux-2-pro) | `flux-2-pro` | $0.015 / megapixel ng output na larawan | $0.015 (15 kredito ng 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` | mula sa $0.008 / larawan | $0.008 (8 kredito ng API) |
| [Ideogram V4.5](https://doitong.com/developers/models/ideogram/v4.5) | `ideogram/v4.5` | mula sa $0.03 / larawan | $0.03 (30 kredito ng API) |
| [Nano Banana 2](https://doitong.com/developers/models/nano-banana-2) | `nano-banana-2` | mula sa $0.06 / larawan | $0.06 (60 kredito ng API) |
| [Nano Banana Pro](https://doitong.com/developers/models/nano-banana-pro) | `nano-banana-pro` | mula sa $0.15 / larawan | $0.15 (150 kredito ng 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` | mula sa $0.04 / larawan | $0.04 (40 kredito ng 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 / larawan | $0.035 (35 kredito ng 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` | mula sa $0.068 | $0.068 (68 kredito ng API) |
| [FLUX.1 Kontext \[pro\]](https://doitong.com/developers/models/flux-pro/kontext) | `flux-pro/kontext` | $0.04 / larawan | $0.04 (40 kredito ng API) |
| [Nano Banana 2 Edit](https://doitong.com/developers/models/nano-banana-2/edit) | `nano-banana-2/edit` | mula sa $0.06 / larawan | $0.06 (60 kredito ng API) |
| [Nano Banana Pro Edit](https://doitong.com/developers/models/nano-banana-pro/edit) | `nano-banana-pro/edit` | mula sa $0.15 / larawan | $0.15 (150 kredito ng API) |
| [Qwen Image 3 Edit](https://doitong.com/developers/models/alibaba/qwen-image-3/edit) | `alibaba/qwen-image-3/edit` | mula sa $0.04 / larawan | $0.04 (40 kredito ng 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` | mula sa $0.0425 / segundo ng output na video | $0.043 (43 kredito ng 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` | mula sa $0.08 / segundo | $0.48 (480 kredito ng 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` | mula sa $0.112 / segundo | $0.56 (560 kredito ng 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` | mula sa $0.12 / segundo | $0.72 (720 kredito ng API) |
| [MiniMax H3 Text to Video](https://doitong.com/developers/models/minimax/h3/text-to-video) | `minimax/h3/text-to-video` | mula sa $0.05 / segundo | $0.25 (250 kredito ng 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` | mula sa $0.113 / segundo | $0.452 (452 kredito ng 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` | mula sa $0.141 / segundo | $0.564 (564 kredito ng API) |
| [Veo 3.1](https://doitong.com/developers/models/veo3.1) | `veo3.1` | mula sa $0.20 / segundo | $1.60 (1,600 kredito ng API) |
| [Veo 3.1 Fast](https://doitong.com/developers/models/veo3.1/fast) | `veo3.1/fast` | mula sa $0.10 / segundo | $0.80 (800 kredito ng 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` | mula sa $0.05 / segundo | $0.25 (250 kredito ng 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` | mula sa $0.0425 / segundo ng output na video | $0.043 (43 kredito ng 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` | mula sa $0.082 / segundo | $0.492 (492 kredito ng 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` | mula sa $0.112 / segundo | $0.56 (560 kredito ng 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` | mula sa $0.12 / segundo | $0.72 (720 kredito ng API) |
| [MiniMax H3 Image to Video](https://doitong.com/developers/models/minimax/h3/image-to-video) | `minimax/h3/image-to-video` | mula sa $0.05 / segundo | $0.25 (250 kredito ng 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` | mula sa $0.113 / segundo | $0.452 (452 kredito ng 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` | mula sa $0.141 / segundo | $0.564 (564 kredito ng 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` | mula sa $0.10 / segundo | $0.80 (800 kredito ng API) |
| [Veo 3.1 Image to Video](https://doitong.com/developers/models/veo3.1/image-to-video) | `veo3.1/image-to-video` | mula sa $0.20 / segundo | $1.60 (1,600 kredito ng 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` | mula sa $0.05 / segundo | $0.25 (250 kredito ng 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` | mula sa $0.113 / segundo | $0.452 (452 kredito ng 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` | mula sa $0.141 / segundo | $0.564 (564 kredito ng 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 ng input na audio | $0.115 (115 kredito ng API) |
| [Sync Lipsync 3](https://doitong.com/developers/models/sync-lipsync/v3) | `sync-lipsync/v3` | $8.00 / minuto ng output na video | $8.00 (8,000 kredito ng API) |
| [VEED Fabric 1.0](https://doitong.com/developers/models/veed/fabric-1.0) | `veed/fabric-1.0` | mula sa $0.08 / segundo ng input na audio | $0.08 (80 kredito ng API) |
| [Topaz Image Upscale](https://doitong.com/developers/models/topaz/upscale/image/precision) | `topaz/upscale/image/precision` | $0.08 / 24 megapixel ng output na larawan | $0.08 (80 kredito ng API) |
| [Topaz Video Upscale](https://doitong.com/developers/models/topaz/upscale/video/precision) | `topaz/upscale/video/precision` | mula sa $0.00667 / segundo ng input na video | $0.10 (100 kredito ng API) |
| [Bria RMBG 2.0](https://doitong.com/developers/models/bria/background/remove) | `bria/background/remove` | mula sa $0.018 | $0.018 (18 kredito ng API) |
| [Eleven v4 Text to Speech](https://doitong.com/developers/models/elevenlabs/tts/eleven-v4) | `elevenlabs/tts/eleven-v4` | $0.08 / 1000 character | $0.08 (80 kredito ng API) |
| [MiniMax Speech 2.8 HD](https://doitong.com/developers/models/minimax/speech-2.8-hd) | `minimax/speech-2.8-hd` | $0.10 / 1000 character | $0.10 (100 kredito ng API) |
| [MiniMax Music 3](https://doitong.com/developers/models/minimax/music-3) | `minimax/music-3` | $0.002 / segundo | $0.12 (120 kredito ng API) |
| [MMAudio V2](https://doitong.com/developers/models/mmaudio-v2) | `mmaudio-v2` | $0.001 / segundo | $0.008 (8 kredito ng API) |

Ito ang mga tampok na modelo. Ang lahat ng 1,496 modelo at mga presyo nito ay nasa [catalog ng mga modelo](https://doitong.com/developers/models) at sa `GET /models` (hindi kailangan ng key).

## Magdagdag ng balanse

Magdagdag ng pera sa balanse ng API sa [https://doitong.ru/developers/dashboard#balance](https://doitong.ru/developers/dashboard#balance). Kapag masyadong mababa ang balanse, sasagot ang isang run ng
`402 insufficient_credits` na may `top_up_url`. Maaari ring lagyan ng sariling badyet sa kredito ng API ang bawat API key
(tingnan ang [Authentication](https://doitong.com/developers/docs/authentication#credit-budgets)).
