Skip to main content
Some operations consume credits, the unit Brew meters AI generation and media rendering with. Each credit is worth $0.01 of underlying spend. Every credit-metered operation charges only on success. There are two metering modes:
  • Usage-metered: email generation, email import, AI email edits, semantic brand-image search, and image generation charge the actual model usage (token input/output for the email agent; embedding/image-gateway cost for search + image generation). The cost scales with the work, so there is no fixed number and no X-Credit-Cost header. The call still gates: an empty balance is rejected up front.
  • Fixed: every other media/render operation charges a flat, published per-operation cost, reported via the X-Credit-Cost response header.

Which Operations Cost Credits

Everything else is free: all reads (including the no-q browse of GET /v1/brand/images).

How the Cost Is Set

For fixed operations the cost is published and does not vary with output size. The authoritative number for a call is its X-Credit-Cost response header. For usage-metered operations the charge equals the real token/image cost the work incurred (no header). The full per-operation metering table is available machine-readably at GET /v1/helpcredits.operations.
Fixed-cost calls are value-aligned. You are never charged for an empty result. The client-preview render bills only when at least one client actually produces a screenshot; the accessibility audit bills only when it completes; contact validation bills only when at least one address is checked. If nothing is produced (nothing finished in time, or the service is temporarily unavailable) the call returns a retryable 503 SERVICE_UNAVAILABLE and is not billed.

Per-Address Metering

Contact validation is metered per address: the X-Credit-Cost for a call is the per-address cost times the number of addresses you submit (e.g. validating 100 addresses charges 100× the unit cost). See GET /v1/helpcredits.operations for the current per-address unit. The same per-address rate applies to the opt-in validate: true flag on POST /v1/contacts and POST /v1/contacts/import-csv. Batches over 100 addresses upsert first and validate as a background job that meters per address as it runs.

Running These from the Dashboard

Most of these operations are also runnable from the API catalog, where the cost sits on the row before you run it. A catalog run is a real call: it charges the same as one from your backend. The catalog is a subset, so the ingestion-time validate: true flag, email import, semantic brand-image search, image generation, and add-image are API-only.

Check Your Balance: GET /v1/usage

There is no dry-run cost preview. Credit-metered calls just charge on success; if you want to know what you can afford before you call, read your balance from the billing surface:
A null limit / remaining means unlimited. credits is the AI/media balance; emailSends is your monthly delivery allowance. Both reset at the period.end boundary. GET /v1/usage requires the emails scope.

What a Real (Charged) Call Reports

A successful fixed-cost call charges the published cost exactly once and returns two headers: Usage-metered calls (email generate/edit, image generation) bill the actual model usage to your account and do not return these headers. Read your balance from GET /v1/usage before and after to see the delta. Charging is idempotent: a retry with the same Idempotency-Key replays the original response and is not charged again.

Errors

402 is a confirmed empty balance; 503 is “can’t check right now, try again shortly”. Branch on the code, never on the message.

Need help?

Our team is ready to support you at every step of your journey with Brew. Choose the option that works best for you:

Search Documentation

Type in the “Ask any question” search bar at the top left to instantly find relevant documentation pages.

ChatGPT/Claude Integration

Click “Open in ChatGPT” at the top right of any page to analyze documentation with ChatGPT or Claude for deeper insights.