# Hinnoittelu

Jokainen malli maksaa täsmälleen sen, mitä mallin valmistaja siitä veloittaa, Yhdysvaltain dollareina. Maksat **API-saldostasi**, joka ilmoitetaan **API-krediitteinä**: **1 000 API-krediittiä = 1 $**. API-saldo on oma saldonsa, erillään Doitong-sovellusten krediiteistä. Paketteja, vähimmäisveloituksia tai mallikohtaisia maksuja ei ole: kutsu maksaa hintansa, joka vähennetään API-saldosta, kun pyyntö hyväksytään.

Venäjällä (doitong.ru, api.doitong.ru tai `?currency=rub`) hinnat näytetään myös ruplina: USD-hinta × USD/RUB-kurssi × 1,3.

## Yksiköt

Jokaisella mallilla on yksi laskutusyksikkö, joka näytetään sen sivulla ja kutsussa `GET https://api.doitong.com/v1/models/{model_id}`:

| Yksikkö | Määrä |
|---|---|
| `second` | Tulostevideon tai -äänen sekunnit (`duration`) |
| `image` | Luotujen kuvien määrä (`num_images`) |
| `megapixel` | Tulosteen leveys × korkeus megapikseleinä (1 MP = 1024 × 1024 pikseliä) |
| `video` | Yksi luotu video |
| `request` | Yksi kutsu |
| `1000_characters` | Syötetyn tekstin merkit tuhannen merkin jaksoissa |
| `step` | Koulutusvaiheet |

Hinta = määrä × API-krediitit yksikköä kohti, pyöristettynä ylöspäin kokonaiseksi API-krediitiksi (0,001 $), vähintään 1. Hyvin halvoilla yksiköillä voi olla murtolukuhinta yksikköä kohti (`0.4` API-krediittiä sekunnilta); vain kutsun kokonaishinta pyöristetään.

Jotkin mallit veloittavat eri hinnan syötteen mukaan: äänellinen video maksaa enemmän kuin äänetön, 4K enemmän kuin 1K ja niin edelleen. Nämä **säännöt** luetellaan jokaisella mallin sivulla. Pois jätetty parametri lasketaan oletusarvokseen, joten syötteelle näkemäsi hinta on maksamasi hinta.

## Täsmälliset, mitatut, arvioidut ja käytön mukaan määräytyvät hinnat

Jokaisella hinnalla on `mode`:

- `exact`: hinta lasketaan syötteestäsi (sekunneista, kuvista, megapikseleistä, merkeistä, vaiheista tai kiinteästä videokohtaisesta tai kutsukohtaisesta hinnasta).
- `measured`: hinta perustuu lähettämiisi tiedostoihin: syötevideon tai -äänen pituuteen, syötekuvan kokoon tai videon ruutunopeuteen tai ruutujen määrään. Skaalaimet, huulisynkronointi, video videoksi, litterointi ja äänityökalut hinnoitellaan näin. Ennen ajoa API lukee tiedoston pituuden, resoluution ja ruutunopeuden (samoin tekee hintalaskelma), joten hintalaskelma vastaa täsmälleen ajon veloitusta. Mallin sivulla kerrotaan, mistä maksat ("Hinta syötevideon sekuntia kohti"), ja laskin käyttää tiedostosi arvoja. Tiedosto, jota ei voi lukea, hylätään virheellä `unmeasurable_input`, eikä mitään veloiteta.
- `estimate`: mallin oma hinta riippuu jostakin, mitä syötteestä ei voi etukäteen päätellä (sanakkeista tai laskenta-ajasta). Tällainen malli veloittaa kiinteän **arvioidun ajo­kohtaisen hinnan** (kuvamäärän sisältävillä malleilla tulostekuvaa kohti), joka perustuu kyseisen mallin todellisten ajojen keskimääräiseen hintaan. Tiedät silti hinnan ennen ajoa: hintalaskelma on maksamasi hinta.
- `metered`: mallista veloitetaan **todellisen käytön mukaan**, jonka vain ajo itse tietää: kieli- tai näkömallin lukemat ja kirjoittamat sanakkeet, äänimallin tuottaman puheen sekunnit tai mallin käsittelyaika. Katso alta [Käytön mukaan veloitettavat](#metered).

Mallien sivuilla lukee "Hinta ajoa kohti", "Hinta syötevideon sekuntia kohti" (ja vastaavasti), "Arvioitu hinta ajoa kohti" tai "Veloitetaan käytön mukaan"; kutsut `GET https://api.doitong.com/v1/models?mode=measured`, `?mode=estimate` ja `?mode=metered` luettelevat ne.

## Käytön mukaan veloitettavat

`metered`-mallilla on käyttöhinta ("$0.01 per 1000 sanaketta", "$0.002 tuotetun äänen sekunnilta", "$0.00111 käsittelyajan sekunnilta") ja **enimmäishinta ajoa kohti**: suurin summa, jonka ajo voi maksaa pyyntösi tietojen (`max_tokens`, tekstisi pituus, resoluutio, tulosteiden määrä) ja mallin julkaistujen rajojen perusteella. Se ei koskaan riipu URL-osoitteen takana olevan tiedoston sisällöstä. Käsittelyajan tai äänisession pituuden mukaan laskutettavilla malleilla enimmäishinta on pisin sallittu ajo (kuville 15 minuuttia, äänelle 30 ja videolle 60), joten se on paljon tyypillistä ajoa suurempi. Syöte, jonka enimmäishinta ylittäisi mallin ajo­kohtaisen rajan (esimerkiksi hyvin pitkä teksti), hylätään virheellä `422 invalid_input`:

1. Hintalaskelma palauttaa enimmäishinnan kentässä `credits` (sekä kentät `hold` ja `typical`, joka kuvaa tavallista ajoa). Kun ajo alkaa, enimmäishinta vähennetään API-saldosta, ja saldon sekä avaimen budjetin on katettava se.
2. Kun ajo onnistuu, pyyntö selvitetään mallin ilmoittaman käytön mukaan: käyttö × käyttöhinta, pyöristettynä ylöspäin kokonaiseksi API-krediitiksi. **Loppuosa enimmäishinnasta hyvitetään automaattisesti** kerran API-saldon `refund`-rivin kautta.
3. Ajo ei koskaan maksa enimmäishintaa enempää, vaikka käyttö sitä edellyttäisi. Epäonnistunut tai peruutettu ajo hyvitetään kokonaan, kuten aina.

Useimmat ajot maksavat paljon enimmäishintaa vähemmän; mallin sivulla näytetään rakennustyökalun syötteelle "Enintään $X ajoa kohti" ja tyypilliselle ajolle (luettelossa "alkaen"). Harvoilla käsittelyajan mukaan laskutettavilla malleilla käyttö on mallin käsittelyaika (merkitty `approximate`).

```json 200 OK · käytön mukaan veloitettavan mallin hintalaskelma
{
  "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"
}
```

Ajon jälkeen pyynnön `cost` näyttää pidätetyn summan ja käytön hinnan:

```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` on ajon hinta. `settled.status` on `pending` tuloksen ja selvityksen välisen ajan ja `no_usage` siinä harvinaisessa tapauksessa, ettei malli ilmoittanut käytöstä lainkaan (tällöin enimmäishinta jää hinnaksi).

## Hintalaskelma ennen ajoa

`POST https://api.doitong.com/v1/quote/{model_id}` ottaa täsmälleen rungon, jonka lähettäisit kutsulle `run`, ja palauttaa kyseisen syötteen hinnan: tarkan hinnan, paitsi [käytön mukaan veloitettavalla](#metered) mallilla enimmäishinnan, jonka ajo voi maksaa. Avainta ei tarvita eikä kutsu maksa mitään:

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

Avaimen kanssa hintalaskelma palauttaa lisäksi `balance_credits`- ja `balance_usd`-kentät (API-saldosi), kentät `affordable` ja `key_budget_remaining`. Lisää `?currency=rub`, jos haluat `rub`-määrän.

> [!TIP]
> **Hintalaskelma on veloitus.** Sama funktio laskee molemmat, joten tämän syötteen sisältävä ajo maksaa täsmälleen `credits`.
> Poikkeuksena on [käytön mukaan veloitettava](#metered) malli (`mode: metered`): siinä `credits` on suurin ajon mahdollinen hinta, joka vähennetään ajon alussa ja jonka käyttämätön osa hyvitetään ajon jälkeen.

## Hintaobjektit

Jokaisella API:n hinnalla on sama rakenne:

- mallit: `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" }` — lisäksi `rub`, `rub_display` ja `from_rub` Venäjällä tai parametrilla `?currency=rub`;
- pyynnöt: `cost: { "credits": 560, "usd": "0.56", "charged": 560, "refunded": 0 }` (API-krediittiä; käytön mukaan veloitettava pyyntö sisältää lisäksi kentät `mode`, `held`, `typical` ja `settled`, katso [Käytön mukaan veloitettavat](#metered));
- tili: `GET https://api.doitong.com/v1/account` palauttaa kentän `credits` (API-saldo), objektin `balance: { "credits", "usd" }` ja kentän `storage` (tiedostojen tallennustilan hinta, käyttö ja kuukausiarvio).

## Hyvitykset

- Virheellisestä pyynnöstä (mikä tahansa `4xx` ennen ajon alkamista) ei koskaan veloiteta.
- Tilaan `failed` päättyvä pyyntö (myös `timeout`) hyvitetään kokonaan API-saldoon automaattisesti.
- Pyyntö, jonka peruutat ennen sen alkamista, hyvitetään kokonaan. Kun malli on alkanut tuottaa tulosta, peruutus on vain pyyntö: jos malli valmistuu, tulos toimitetaan ja veloitetaan.
- Onnistuneesta `metered`-pyynnöstä palautetaan sen enimmäishinnan käyttämättä jäänyt osa.

Pyyntöobjekti näyttää kaikki tiedot: `cost.credits`, `cost.charged` ja `cost.refunded`.

## Tiedostojen tallennus

Tulostetiedostot säilytetään tallennustilassamme. Valitset tallennuksen keston tilillä tai ajoa kohti (`?storage=`):

| | Säilytys | Hinta |
|---|---|---|
| Ikuisesti (`permanent`, oletus) | Kunnes poistat ne | 100 API-krediittiä (0,10 $) gigatavua kohti kuukaudessa |
| 7 päivää (`temporary`) | 7 päivää | Ilmainen |

Pysyvästä tallennuksesta veloitetaan kerran päivässä API-saldosta: säilytetyt gigatavut × kuukausihinta ÷ kuukauden päivien määrä, tilikirjan `storage`-tyyppisinä riveinä. API-krediitin murto-osat siirtyvät seuraavaan päivään, joten kuukauden kokonaishinnaksi tulee täsmälleen gigatavujen määrä × 100 API-krediittiä (1 GB = 1024³ tavua; 10 GB:n säilytys kuukauden ajan maksaa 1 000 API-krediittiä). Saldo ei koskaan mene alle nollan: jos maksuun ei ole varaa, kyseiseltä päivältä ei veloiteta, saat sähköpostiviestin ja sinulla on 30 päivää aikaa tehdä saldon lisäys, ennen kuin säilytetyt tiedostot muuttuvat väliaikaisiksi ja ne poistetaan 7 päivää myöhemmin. Lisätietoja: [Tiedostot](https://doitong.com/developers/docs/files#storage).

## Nykyiset hinnat

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

Nämä ovat suositellut mallit. Kaikki 1 496 mallia ja niiden hinnat ovat [malliluettelossa](https://doitong.com/developers/models) ja komennossa `GET /models` (avainta ei tarvita).

## Saldon lisäys

Lisää rahaa API-saldoon osoitteessa [https://doitong.com/developers/dashboard#balance](https://doitong.com/developers/dashboard#balance). Kun saldo on liian pieni, ajo palauttaa virheen `402 insufficient_credits` ja kentän `top_up_url`. Jokaiselle API-avaimelle voi myös määrittää oman budjetin API-krediitteinä (katso [Todennus](https://doitong.com/developers/docs/authentication#credit-budgets)).
