> For the complete documentation index, see [llms.txt](https://monkey-gun.gitbook.io/monkeygun/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://monkey-gun.gitbook.io/monkeygun/concepts/credits-and-quotes.md).

# Credits and quotes

What things cost, what a quote does and does not promise, and how to keep a video at the price you planned.

One credit is one cent. New accounts get a small allowance for planning and quotes; saving a card adds 500 credits for the first videos. Every paid call returns `charged`. Failed paid steps are refunded.

## Price list

| Component                                                                  | Credits                  |
| -------------------------------------------------------------------------- | ------------------------ |
| Script (per started minute of runtime)                                     | 20                       |
| Voiceover (per started 30 s)                                               | 30                       |
| Render (per started minute)                                                | 10                       |
| Edit: words unchanged / changed                                            | 20 / 50                  |
| Generated image                                                            | 25                       |
| AI clip, per second: MiniMax H3 / Kling 2.5 / Seedance Fast / Seedance 2.5 | 15 / 20 / 50 / 100       |
| Presenter, per second: stock / your photo                                  | 3 / 25                   |
| Generated music bed                                                        | 40                       |
| Generated sound effect                                                     | 5                        |
| Brand pass on an uploaded clip                                             | 5                        |
| Still image (carousel or infographic slide)                                | 15                       |
| Footage indexing, per minute                                               | 20                       |
| Voice clone (once)                                                         | 200                      |
| Web search / page read                                                     | 2 / 2                    |
| Running show, per source check                                             | 1 (+5 via browser fetch) |
| Reads, quotes, listing, structure, sharing, versions                       | free                     |

A plain 30-second video with narration, captions and your stills is **60 credits**. Sixty seconds is 90. A 30-second video with one 5-second Kling clip and a generated music bed is 200.

## Quote first

```bash
curl -X POST https://api.monkeygun.com/v1/quote -H "Authorization: Bearer $MK_KEY" \
  -d '{ "targetSeconds": 30, "images": "generate", "clips": { "provider": "kling", "count": 1, "seconds": 5 } }'
# { "credits": 260, "usd": "2.60", "breakdown": [ … ] }
```

{% hint style="warning" %}
A quote is a floor, not a cap. It prices the options you named. Three things add to it after the fact:

* **Show defaults.** Passing `showId` applies that show's `images`, `clips`, `aiVideo` and music defaults when your call does not set them. A show that defaults to `images: "auto"` adds 25 credits per generated image.
* **The director's choices.** With `images: "auto"` the engine generates an image for any scene that has no real still. Pass `images: "none"` or `"source"` to prevent generation.
* **Music.** `music.generate: true` adds 40.

To hold a price exactly, send your own `script` with `images: "none"` or `"source"`, name `clips` and `music` explicitly, and omit `showId` unless you want its defaults. There is no `maxCredits` parameter today.
{% endhint %}

## Balance and top-up without a browser

```bash
curl https://api.monkeygun.com/v1/billing/balance -H "Authorization: Bearer $MK_KEY"
# { "credits": 440, "plan": "free", "usdPerCredit": 0.01 }

curl -X POST https://api.monkeygun.com/v1/billing/topup -H "Authorization: Bearer $MK_KEY" -d '{ "amountUsd": 50 }'
# { "url": "https://checkout.stripe.com/…" }
```

The Stripe link credits the account the key belongs to. For unattended systems, save a card once (below) and the account pays as it goes.

## Card on file and pay-as-you-go

Save a card once in the studio under **Settings → Credits → Add card**. Stripe's hosted page collects it; Monkeygun stores only the brand, last four digits and expiry. Nothing is charged when you save it, and the first card on an account adds **500 bonus credits** (once per account, and once per card).

With a card on file, **pay-as-you-go** is on by default. When a call needs more credits than the wallet holds, Monkeygun charges the card for a top-up pack and the call goes through instead of answering `402`:

* The pack is **$10 for 1,000 credits** (the list rate), or the pack size you pick under Settings → Credits. A call that is short by more than one pack is charged enough packs in one charge.
* Automatic charges stop at **$50 per account per day**. Buying credits yourself is never capped.
* It applies to the studio, the API, the MCP server and scheduled shows alike: they all spend the same credits.
* Turn it off, change the pack or remove the card at any time under Settings → Credits. Every automatic charge appears there and in the usage ledger.
* **Top up ahead of time** (optional) buys the same pack whenever the balance drops below a line you choose, so scheduled work never waits for a charge.

If the card is declined, or the bank wants to confirm the charge, nothing is made or charged, the call answers `402` with `payment_failed`, and pay-as-you-go pauses until the card is updated. See [Errors](/monkeygun/reference/errors.md).

## Billing your own users

One key runs a whole integration. Monkeygun bills your account; you bill your users however you like. tokenslop sells "slop credits" at a markup over the quoted cost, debits before calling `from-data`, and refunds from the `video.render_failed` webhook or its reconciler. See [the tokenslop example](/monkeygun/examples/tokenslop.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://monkey-gun.gitbook.io/monkeygun/concepts/credits-and-quotes.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
