Skip to main content

Pricing

Paid Feature

This feature is only available in paid plans. Learn More

Unlayer measures AI usage in credits. Each workspace has one shared usage bucket, so every AI feature, project, and end user in that workspace contributes to the same balance. A request uses credits according to the work performed; there is no fixed per-request charge.

For current plan allowances and add-on pricing, see unlayer.com/pricing.

One-time welcome credits

Eligible workspaces see a one-time 5,000-credit welcome offer in Billing. Availability follows the workspace's current plan, subscription status, and AI feature eligibility; current Free and legacy plans do not qualify. Eligibility to buy a paid credit pack is separate. The grant does not unlock AI features that the workspace's plan excludes.

Typical credit usage​

These ranges are useful for planning, but the exact amount depends on the request, model, input, and generated output:

  • A small text or block edit usually uses tens of credits.
  • Generating or editing an image usually uses dozens to hundreds of credits, depending on the model, resolution, prompt, and reference images.
  • Full-template generation and HTML or website imports usually use hundreds to a couple thousand credits.

The editor shows the credits used after each completed Assistant request. For a complete billing record, use the server-side AI Credits API and webhooks.

Image turns in the Assistant include both the image operations and the conversation work. A request to edit several images performs and bills each image edit separately. Image input, image output, and text are priced separately using the provider's reported usage when available. A clarification can use text credits without generating an image. Uploading, reordering, previewing, and adding results to the prompt do not run an image operation. Undo change is also local and free. Applying an image can trigger a separate paid alt-text description when automatic alt text is enabled. The direct POST /v3/images/generate endpoint and standalone Image Editor do not add the builder Assistant's conversation-model work.

Protected edits that make no changes​

In designMode: 'live', an edit request uses zero AI credits when the server verifies that template permissions prevented the edit, the resulting design is unchanged, and the request would normally use no more than 200 credits. Provider usage is still recorded internally. If fallback models were used, the 200-credit ceiling applies to the combined cost of every attempt.

With the whole canvas selected, this rule applies regardless of the request's language—for example, both “remove the footer” and “remova o rodapé”.

Requests above that ceiling use credits normally. When some edits are allowed, the Assistant keeps those edits, preserves protected content, and charges for the completed request. Ordinary answers, clarification questions, errors, and edits in designMode: 'edit' also retain their normal billing behavior. A host callback rejecting an otherwise valid edit does not waive credits.

Capped and uncapped workspaces​

Console frames AI usage against a positive allowance. For example, with 7,400 credits used from a 10,000-credit allowance, the Billing tile shows "2,600 left of 10,000", while the project Usage page shows "7,400 / 10,000". A plan or add-on allowance is shown even when enforcement is in shadow mode; an enforced workspace whose only positive allocation is a claimed bonus is shown the same way.

Console's allowance display is not an enforcement signal. The server balance API sets is_capped to true only when enforcement is enabled, and the editor balance indicator and threshold/exhausted webhooks use the same enforcement gate. A shadow workspace can therefore show a real remaining allowance in Console while returning is_capped: false, keeping the editor indicator hidden, continuing AI after the allowance is used, and emitting no threshold or exhausted webhooks.

Some older plans are grandfathered. When they have no plan or add-on AI allowance, Console shows only the credits used after usage begins, with no remaining balance or exhausted state. A one-time grant can top up a capped allowance, but it does not create a cap for a grandfathered uncapped workspace.

The AI Credits tile carries an information icon. Hover or focus it to see what the number counts and whether an allowance bounds it.

See the workspace balance​

When the editor session has a complete, active, enforced balance, the Assistant header shows the credits used and remaining in the current monthly window. Annual subscriptions still use monthly credit windows. Use the refresh action in the balance popover to include activity from other sessions and AI features. Because this indicator follows enforcement, it remains hidden for shadow-mode workspaces even when Console shows a positive allowance.

The balance is optional. White-label embeds without an active usage period, period dates, or complete balance data do not show an empty placeholder.

AI Assistant header with an AI Credits balance indicator and a hover popover showing used and remaining credits, the current period start, and reset dateAI Assistant header with an AI Credits balance indicator and a hover popover showing used and remaining credits, the current period start, and reset date

For an embedded editor, set features.ai.creditsUrl to your own billing, usage, or help page. It must be an absolute HTTP or HTTPS URL:

unlayer.init({
features: {
ai: {
creditsUrl: 'https://app.example.com/settings/ai-credits',
},
},
});

This changes the destination of workspace credit links, not metering or enforcement. In Console, a workspace Billing URL takes priority when one is available.

For a separate host-managed per-user allowance, use credits.ai.purchaseUrl or the credits:purchase callback instead. See In-Builder Credit Upsell.

When credits reach zero​

This section applies only when enforcement is enabled. Shadow-mode workspaces are never paused by metered credit usage, even if Console displays a positive allowance.

The default behavior is show_error: AI controls remain visible, but the editor stops new generations and explains that the workspace is out of credits. You can instead hide AI controls in embedded editors by setting the project's exhaustion_behavior to disable:

PUT /v3/projects/:id/ai-credits/settings
Authorization: Bearer unlayer_sk_...
Content-Type: application/json

{
"exhaustion_behavior": "disable"
}

Use show_error to restore the default. Read the current value with GET /v3/projects/:id/ai-credits/settings. See AI Credits API and webhooks for the full settings contract.

Recurring plan and credit-pack capacity resets at its next monthly boundary. One-time welcome credits do not refill. Eligible current plans with an active paid subscription can add capacity from Console → Billing → Add-ons; trial or legacy workspaces may need to change plans before self-service packs are available.

Customize the exhaustion message​

Use the normal translation override mechanism. For an embedded end user who cannot manage workspace billing, customize the Assistant title, the feature-specific message, and the generic fallback:

unlayer.init({
locale: 'en-US',
translations: {
'en-US': {
'labels.ai.assistant.credits_exhausted.title':
'AI credits are currently unavailable',
'labels.usage_limit.errors.credits_exhausted_contact_owner':
'Your {feature} credits are used up. Contact your account owner to continue.',
'labels.usage_limit.errors.credits_exhausted_contact_owner_generic':
'Your credits are used up. Contact your account owner to continue.',
},
},
});

Keep {feature} in the message if you want the editor to insert the localized feature name, such as “AI generation.” The generic fallback is used when the feature is missing or unrecognized; it does not receive a {feature} value.

These keys apply to workspace exhaustion. The separate host-managed per-user notice uses labels.credits.*; see credit notice translations.

Reset and expiration​

Plan and recurring add-on credits are recurring allowances. Unused credits do not accumulate when a new allowance window starts. The balance API returns reset_date while it can resolve an active future billing window, and null otherwise. Use the returned value instead of calculating it from the subscription term.

A future reset_date is not a promise of renewal: when the subscription is scheduled to end with that window, it marks expiration instead. See the balance response.

Some eligible workspaces are offered a one-time 5,000-credit welcome bonus in Billing. It is not granted on first AI use; someone with billing access must select Claim now. The card shows the exact expiration date before the claim. The bonus normally expires at the next monthly credit reset, so it does not carry into a new window.

Billing offers the welcome bonus only when the workspace's current plan, subscription status, and AI feature eligibility qualify. Current Free and legacy plans do not qualify. Eligibility to buy a paid credit pack is separate. The bonus shares the workspace credit bucket and does not unlock excluded AI features.

Development and staging​

There is no separate unmetered development tier. A dev or staging project uses the shared allowance of its workspace. To measure a workflow before launch, run it in a test project and inspect the request result or the usage API.

Grandfathered uncapped workspaces continue to meter that usage without pausing requests or creating overage charges.

If you resell AI, keep each end user's allowance and reset schedule in your own backend. The builder can display that state, but it does not replace backend enforcement. See In-Builder Credit Upsell.

Disable all AI features​

unlayer.init({
features: {
ai: false,
},
});