Generative endpoints are metered in credits. A store holds one wallet (promo/incore/credits/{sid}, in the central incore store), tops it up in CRM & Studio under Settings › Plan, and every paid call debits its price before the handler runs.
The convention#
A credit is an opaque integer on the backend. 1 credit = $0.01 is a pricing convention used by the credits shop in CRM & Studio and the invoices — nothing in the API enforces a currency.
Paid routes#
| Route | Credits |
|---|---|
/api/gen/seo |
3 |
/api/gen/jsonld |
5 |
/api/gen/translate |
10 |
/api/gen/realty |
15 |
/api/gen/nutrients |
25 |
/api/gen/log |
free |
Every gen/* route has a twin under the top-level /generative/** group with the same price. Both groups debit the same wallet — the central incore wallet the CRM & Studio AI features bill against. Integrations use /api/gen.
The credential#
Generative routes take an identity-token, not a store token: the identity your project holds in the central store, shown under Settings › Plan › Credits. It names the wallet, so the store header and the access-token are ignored on these routes — the store is always incore. A request with only a store access-token is refused with 401 Identity token required.
Each route's price is printed next to it in the API reference, and the Try-it rail confirms before sending a paid request.
Who pays, who doesn't#
- A token with the
masterrole bypasses metering entirely — that is CRM & Studio's own channel and the reason integrations must not run on a master token. - Everyone else pays from the wallet of the identity token's customer and needs a positive balance — an empty wallet is a
402with the price in the message.
Reading the balance#
POST /api/promo/credits/value returns the current balance for the token's customer; credits/records pages through the ledger (top-ups, debits, refunds). The Promo group documents both; the SDK exposes them as promo.credits.