Credits & Billing
GEN charges credits for every compute-intensive operation — text generation, image generation, video generation, voice synthesis, lipsync, captions, research, content ideas, and renders. All reads and CRUD writes are free.
Where credits live
Section titled “Where credits live”Credits live on the organization (workspace), not the agent. Every request to an agent-scoped endpoint checks the agent’s parent org for credits.
curl "https://api.gen.pro/v1/organizations/$ORG_ID" \ -H "X-API-Key: $GEN_API_KEY"Response includes available_credit: { generic, aura }. The generic bucket covers all Auto Content Engine + agent.gen.pro operations; the aura bucket is for connected-social features and isn’t consumed by the API surface.
Buying credits with x402
Section titled “Buying credits with x402”Credit purchases can be funded with Stripe or with x402. x402 purchases are arbitrary amount: pass either amount_usd or credits, and GEN returns a 402 Payment Required quote.
curl -X POST "https://api.gen.pro/v1/x402_credit_purchase" \ -H "X-API-Key: $GEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "workspace_id": "'$ORG_ID'", "amount_usd": "1.25" }'The response includes payment_methods and payment_required.accepts. If you do not send network, GEN lists every configured payment option instead of choosing silently.
{ "workspace_id": 123, "amount_usd": "1.25", "credits": "143.678161", "payment_methods": [ { "network": "sui", "x402Network": "sui", "asset": "USDC", "payTo": "0x..." }, { "network": "solana", "x402Network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp", "asset": "USDC", "payTo": "3Y..." }, { "network": "base", "x402Network": "eip155:8453", "asset": "USDC", "payTo": "0x..." } ], "payment_required": { "x402Version": 2, "accepts": ["same options as payment_methods, with maxAmountRequired"] }}For agents and MCP clients: show the user or calling agent the payment_methods list, then sign one matching payment_required.accepts[] entry. Workspace funding wallets exist behind the scenes for settlement and sweeping; the user-facing choice is the returned Sui, Solana, or Base payment method.
When a paid API call returns x402_credit_purchase, read the same fields there:
estimated_credits/minimum_credits— how many credits the attempted API call needs.payment_methods— available Sui, Solana, and Base x402 options.payment_required.accepts[]— exact x402 payloads to sign.retry.headers— sendPAYMENT-SIGNATURE,X402-Checkout-Session-Id, and the selectedX402-Network.
Credit behavior
Section titled “Credit behavior”Each compute operation costs a number of credits that depends on the capability and tier it uses. Pricing is set per operation — you don’t need to compute it yourself. For generation jobs, estimate the request before running it and show the estimate to the user when the workflow needs cost confirmation.
| Capability tier | Relative cost |
|---|---|
| Image generation | low |
| GPU workloads (e.g. lipsync) | medium |
| Text / intelligence | varies by tier |
| Video generation | highest (scales with duration) |
What’s free
Section titled “What’s free”| Free | Charged | |
|---|---|---|
GET any endpoint | yes | — |
| Create / update / delete engines, rows, columns, cells, layers | yes | — |
| Clone a template | yes | — |
| Upload a content resource | yes | — |
| Set a content preference | yes | — |
POST /cells/:id/generate (any type) | — | yes |
POST /cells/:id/layers/:id/generate | — | yes |
POST /cells/:id/render | — | yes |
POST /v1/research | — | yes |
POST /v1/agent/run (content ideas / chat) | — | yes |
Pre-charge and reconcile
Section titled “Pre-charge and reconcile”Every compute operation:
- Pre-charges the estimated credits before running (to avoid a mid-job overdraft)
- Runs the vendor operation
- Reconciles — refunds the delta if actual < estimated, charges extra if actual > estimated
If the job fails or is stopped, the full pre-charge is refunded. You never pay for a failed generation.
Estimate first
Section titled “Estimate first”Exact credit cost depends on the selected operation, model, duration, resolution, asset inputs, and current account state. Use the estimate flow before large batches or user-confirmed paid actions, then run the generation only after the user accepts the estimate.
Running out mid-batch
Section titled “Running out mid-batch”If credits run out mid-batch you’ll see:
{ "error": "Insufficient credits for this job", "error_code": "insufficient_credits_for_job" }The in-flight generation’s pre-charge is refunded; subsequent POST /generate calls reject until the org tops up. No partial renders charged.
Idempotency
Section titled “Idempotency”Pre-charge endpoints accept an Idempotency-Key header. If you retry a request with the same key within 24 hours, you get the same response without double-charging. Services that integrate GEN and need at-most-once guarantees should derive the key deterministically from their own request ID.
curl -X POST "https://api.gen.pro/v1/vidsheet/$EID/cells/$CID/generate?agent_id=$AGENT_ID" \ -H "X-API-Key: $GEN_API_KEY" \ -H "Idempotency-Key: myapp-request-abc123" \ -H "Content-Type: application/json" \ -d '{ "generation_type": "text", "data": { "prompt": "...", "model": "gemini_2_0_flash" } }'