Key concepts

Credits & plans

Your subscription has a plan with an included credit allowance, shared across every workspace under it — not a separate allowance per workspace. One credit is charged per image, on every render request:

  • A single-page png/jpeg render charges 1 credit.
  • An allPages png/jpeg render charges once per page — a 4-slide carousel costs 4.
  • A pdf render charges 1 credit per page it contains.
  • A video render (mp4, webm, gif) charges 1 credit per started second, at every size and quality, up to a 60 s maximum.
  • An identical render is still a new request and is still charged, even though its files are served from storage.
  • A retry with the same idempotencyKey returns the original request and charges 0.
  • Rerenders and saves from the embedded editor are charged the same way, for every page they render. A save with no changes charges 0.

Current usage and your plan's limits are always available to an API key from GET /v1/me, alongside the workspace and the key's own credential info:

{
  "workspace": { "id": "ws_123", "title": "Acme", "slug": "acme", "path": "acme", "created_at": "..." },
  "plan": {
    "type": "scale",
    "title": "Scale",
    "credits": { "used": 1200, "limit": 50000 },
    "limits": { "members": -1, "workspaces": 10, "rate_per_minute": 600 }
  },
  "credential": { "type": "api_key", "env": "live", "scopes": ["render:write", "template:read", "..."] }
}

Unlike the rest of the API, these fields are snake_case — a shipped contract carried over from created_at and rate_per_minute.

A plan's credit limit resets to full each billing period — except on Free, where the included credits are one-time and never reset. Workspaces can also be given their own, optional credit limit (a fence on top of the shared pool, not a separate allowance); when unset, a workspace draws freely from the subscription's pool. AI Design Agent usage is tracked separately as AI credits, with its own included allowance per plan.

Was this page helpful?