# Driftflight API pricing: price per image, credits and payment

Driftflight charges per image by tier, the same on pay as you go and on prepaid credits: `sketch` $0.01, `studio` $0.06, `gallery` $0.14. Send `POST https://agents.driftflight.com/zcj/l0ydxqfls3t3/v1/images/generate` with `prompt` and `model`, then either pay the 402 price quote or draw down a prepaid balance.

## At a glance

- **Endpoint:** `POST https://agents.driftflight.com/zcj/l0ydxqfls3t3/v1/images/generate`, one image per request.
- **Body:** `prompt` (required), `model` (`sketch`, `studio` or `gallery`), optional `preset`. An omitted `model` runs `studio`.
- **Price per image:** `sketch` $0.01; `studio` $0.06; `gallery` $0.14. Prepaid credits use the same prices.
- **Pay per call:** an unpaid call gets a 402, the price quote, which you pay and then retry. x402 and MPP are the wallet rails. They settle in USDC and need no account or registration.
- **Prepaid credits:** at least $1 per purchase, and at least $1 by card. You need a bearer credential, the agent identity the storefront issues.
- **Card:** pays a per-call image only when the call costs at least $0.50, so card buyers fund prepaid credits.
- **Free allowance:** `sketch` includes 3. It requires a credential claimed by a human with a verified email.
- **Full purchase flow:** [the buyer skill](https://agents.driftflight.com/zcj/l0ydxqfls3t3/SKILL.md).

## Prices per image

| `model` | Pay as you go | Prepaid credits | Listed size |
| --- | --- | --- | --- |
| `sketch` | $0.01 | Same price, drawn from balance | 1408x768 |
| `studio` | $0.06 | Same price, drawn from balance | 1408x768 |
| `gallery` | $0.14 | Same price, drawn from balance | 1408x768 |

Each request renders one image and bills one unit of the meter that its `model` names, so ten images take ten requests. Set `model` on every request. Every paid render from the storefront comes with C2PA credentials and a commercial licence that is perpetual and worldwide. Prices shown to people on Driftflight's website belong to a separate channel. At the storefront, [the catalog](https://agents.driftflight.com/zcj/l0ydxqfls3t3/manifest.json) applies. Read it at call time, and read each call's 402 for that call's exact amount.

## Plans open to agents

### Pay as you go

You buy nothing in advance. Call the endpoint, and each call gets its own 402. You need no identity, account or API key, because the signed payment identifies the payer. A purchase request for this plan returns `payg_not_purchasable` (400).

### Prepaid credits

You buy a balance once, and later calls draw it down at the per-image prices.

- **Minimum:** $1 per purchase. By card, the minimum is $1 (`purchase.cardMinimumUsd`), which is the larger of the plan minimum and the card floor. The plan sets no maximum.
- **Body:** `{"amountUsd": "<whole-cent amount>"}`. The amount is required.
- **Identity:** you need a bearer credential on every rail. Register at [auth.md](https://agents.driftflight.com/zcj/l0ydxqfls3t3/auth.md).
- **Purchase:** `POST https://agents.driftflight.com/zcj/l0ydxqfls3t3/plans/{planId}/purchase`. Find the exact address in the catalog's `purchase.url` on the plan with slug `credits`.
- **Top up:** `POST https://agents.driftflight.com/zcj/l0ydxqfls3t3/extend` with your bearer and `amountUsd`. Top-ups follow the same minimums.
- **Balance:** usage is deducted from what you fund, not charged on top of it. Unused funds stay as credit. To see your balance, send `GET https://agents.driftflight.com/zcj/l0ydxqfls3t3/agent/entitlements` with your bearer. The response returns `remainingCreditUsd`.
- **Durability:** a credential registered anonymously and never claimed lapses within a few days, and any credit bought with it lapses with it. Claim the credential to a human's email before buying or soon after.

## Payment rails and conditions

| Rail | Settles in | Pays for | Challenge in | Send proof as | Bearer |
| --- | --- | --- | --- | --- | --- |
| x402 | Base USDC (`eip155:8453`), scheme `exact` | Image calls, credit purchases, top-ups | `payment-required` header | `x-payment` header | Purchases only, in `Authorization` |
| MPP | Tempo USDC, intent `charge` | Image calls, credit purchases, top-ups | `www-authenticate` header | `Authorization: Payment <credential>` | Purchases only, in `ZC-Agent-Authorization` |
| Card | USD | Credit purchases, top-ups, image calls of at least $0.50 | The 402's `card` block, or a `method="stripe"` challenge | `{"checkout": true}` for a hosted checkout, or a shared payment token in `Authorization: Payment` | Purchases and top-ups |

- An x402 `exact` payment is charged in full when you pay. It is not returned if delivery fails.
- A card never lowers a plan minimum, and the plan minimum applies to wallet payments for purchases and top-ups as well.
- After a hosted card checkout, poll its `statusUrl` until it reports complete before you use the credit.
- `Authorization` carries one credential. Never comma-combine `Payment` and `Bearer` in it.

## Free sketch allowance

- **What:** `sketch` includes 3. The allowance needs no funding.
- **Who:** a credential claimed by a human with a verified email. The claim refuses plus-aliased addresses. An unclaimed anonymous credential does not qualify.
- **Scope:** one allowance per claiming human, shared by every credential that person claims.
- **How:** send your bearer with the `zc-mode: free` header. When the allowance covers a call, the call is served free, and `chargedUsd` in its `zc-billing` header is zero.
- **Unverified credential:** you get `verified_email_required` (403). Complete the claim step in [auth.md](https://agents.driftflight.com/zcj/l0ydxqfls3t3/auth.md), exchange for a fresh token, then resend.

## Worked totals

| Job | Total |
| --- | --- |
| 10 `sketch` images | $0.10 |
| 100 `sketch` images | $1 |
| 25 `studio` images | $1.50 |
| 10 `gallery` images | $1.40 |
| 20 `sketch` drafts, 4 `studio` and 1 `gallery` | $0.58 |

These totals are the same on both plans. On pay as you go, each image is a separate 402 at its own price, and separate calls never combine toward the card floor. To fund credits, send an `amountUsd` that covers the usage total and also meets the plan minimum. By card, the amount must reach $1. When the allowance is available, a claimed credential's free `sketch` images can lower a pay-as-you-go `sketch` total.

## The 402 price quote

```bash
curl -sS -X POST https://agents.driftflight.com/zcj/l0ydxqfls3t3/v1/images/generate \
  -H 'Content-Type: application/json' \
  -d '{"prompt": "a botanical illustration of a fern frond unfurling", "model": "sketch", "preset": "botanical"}'
```

The 402 body carries the fields listed below.

- `payment.id` and `payment.amountUsd`
- the `plan` with its `id`, `slug` and `billingMode`
- `usage` with the meter and quantity
- a `protocols` block with an `x402` entry and an `mpp` entry
- an `accepts` list of x402 terms, each with a `billing` note
- `terms` links

The same challenges arrive in the `payment-required` and `www-authenticate` headers, so a standard x402 or MPP client can settle them without reading the body. The example quote took 0.2 seconds and charged nothing.

## What the storefront returns

| Request | Response | Next |
| --- | --- | --- |
| Image call with no payment | 402 price quote, nothing charged | Pay it and resend the same request |
| Same call with x402 or MPP proof | Image response with `imageUrl`, `model`, `licence` | GET `imageUrl` for the bytes. x402 adds `payment-response` and MPP adds `payment-receipt` |
| Image call with a bearer that holds credits | Image response. `zc-billing` shows `fundingSource` `credit`, `chargedUsd` and `remainingCreditUsd` | Watch the balance |
| Image call after credit runs out | `usage_exhausted` | `POST https://agents.driftflight.com/zcj/l0ydxqfls3t3/extend` |
| Credit purchase without a bearer | 401 `bearer_required`, before any price is quoted | Register, then resend with the bearer |
| Credit purchase or top-up with a bearer | One priced 402 | Pay it. Success returns `purchased` or `extended` as `true`, plus `access` |
| Credit purchase without `amountUsd` | 400 `amount_required` | Add the amount |
| Amount below `purchase.minimumUsd` | 400 `amount_below_minimum` | Send at least $1 |
| Card amount below `purchase.cardMinimumUsd` | 400 `amount_below_card_minimum` | Send at least $1, or pay on a wallet rail |
| Amount not in whole cents | 400 `amount_not_cent_increment` | Round to whole cents |

A delivered response with no `zc-billing` header billed nothing.

## Frequently asked questions

### Do prepaid credits cost less per image than pay as you go?

No. Every tier has the same per-image price on both plans. Credits let a card buyer fund image work, and credit-funded calls draw down a balance instead of each settling its own 402.

### Can I pay for a single image by card?

The card rail takes a per-call payment only when the call costs at least $0.50, and each tier's price is below that floor. To pay by card, buy prepaid credits with at least $1 and draw them down.

### Does a storefront call need an API key, an account or a subscription?

No. A per-call image needs only a paid 402 on a wallet rail. Prepaid credits need a bearer credential, which you get by registering at the storefront's identity endpoint, and the free allowance needs that credential claimed by a human with a verified email. Neither needs an API key.

### Who gets the free sketch images?

The allowance goes to a credential that a human has claimed with a verified email. That human's claimed credentials share it, and each call must carry the `zc-mode: free` header. Anonymous, unclaimed credentials do not receive it.

### Is anything charged before I pay the 402?

No. The quote is free to request, so you can inspect prices safely. Once you pay, an x402 `exact` payment is charged in full, and it is not returned if delivery fails.

## Keep reading

- [Buyer skill](https://agents.driftflight.com/zcj/l0ydxqfls3t3/SKILL.md): the full purchase flow
- [How to pay](https://agents.driftflight.com/zcj/l0ydxqfls3t3/payment.md): the 402 and each rail
- [Card payment](https://agents.driftflight.com/zcj/l0ydxqfls3t3/payment/card.md): hosted checkout and shared payment tokens
- [Agent identity](https://agents.driftflight.com/zcj/l0ydxqfls3t3/auth.md): register, claim and exchange a bearer credential
- [Error reference](https://agents.driftflight.com/zcj/l0ydxqfls3t3/errors.md): every code and its recovery
- [Catalog](https://agents.driftflight.com/zcj/l0ydxqfls3t3/manifest.json): live prices, plans and free units

---

Updated 2026-10-08. All Driftflight guides: https://agents.driftflight.com/guides.md. Storefront: https://agents.driftflight.com/zcj/l0ydxqfls3t3/llms.txt.
