Skip to content

Tiers and scopes

Every tool has a minimum subscription tier and, for write operations, a required OAuth scope. A call from a lower tier returns 403 tier_required. A call without the necessary scope returns 403 scope_required.

Starter < Lite < Growth < Business < Enterprise

Lifetime is an admin-granted status that maps to the same access as Business for API purposes.

ToolMin tierOAuth scopeAI credits
caramel.v1.meta.capabilitiesStarter(any)No
caramel.v1.meta.usageStarter(any)No
list_businessesStarter(any)No
list_campaignsStarter(any)No
get_campaignStarter(any)No
get_campaign_suggestionsStarter(any)No
delete_campaignStarter(any)No
caramel.v1.form.listStarterforms:readNo
caramel.v1.form.submitStarterforms:writeNo
caramel.v1.template.listStarter(any)No
list_template_libraryStarter(any)No
caramel.v1.domain.statusStarterprovisioning:writeNo
generate_campaignGrowth(any)Yes
refine_campaignGrowth(any)Yes
deploy_campaignGrowth(any)No
pause_campaignGrowth(any)No
resume_campaignGrowth(any)No
deploy_templateGrowthprovisioning:writeNo
caramel.v1.contact.upsertBusinessaudience:writeNo
ScopeWhat it grantsStatus
meta:readRead tool capabilities and usageLive
forms:readList forms and read submission countsLive
forms:writeSubmit forms programmaticallyLive
audience:writeAdd and update contactsLive
provisioning:writeCheck domain status; deploy templatesLive
audience:readList and search contactsComing soon
messaging:sendSend messages via email, SMS, WhatsAppComing soon

Request scopes in the OAuth authorization URL when sending the user through the connect flow. Scopes not requested are unavailable even on a qualifying tier. See Authentication for the full OAuth flow.

Tier is enforced server-side. Your app cannot bypass the gate by setting headers or calling a lower-level endpoint — the tools perform their own checks against the caller’s business record.

Tools that consume AI credits additionally return 402 insufficient_credits if the business has no credits left, even on a Growth-or-above tier. Tier is the first gate; credits are the second.

generate_campaign and refine_campaign each deduct credits from the business’s monthly AI credit balance. Credits are allocated by tier each billing cycle.

TierMonthly AI credits
Starter50
Lite150
Growth400
Business1,000
Enterprise3,000

One credit corresponds roughly to one generation or refinement iteration. Credit consumption scales with token usage:

Token rangeCredits per call
0 – 1,999 tokens0.5
2,000 – 4,999 tokens1.0
5,000 – 9,999 tokens2.0
10,000+ tokens3.0

Check the remaining balance with caramel.v1.meta.usage. The response includes ai_credits_remaining and the tier limit.

Note get_campaign_suggestions does not consume credits — it is a lightweight pre-generation advisory call available on all tiers.

caramel.v1.meta.capabilities returns per-tool tier_required in its response. Query it at startup and cache the result rather than maintaining your own table:

{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "caramel.v1.meta.capabilities",
"arguments": {}
}
}

The structured response includes the current tier for the authenticated business, so you can gate your own UI against it.

  • Tools — per-tool parameter reference.
  • Errors — the tier_required, scope_required, and insufficient_credits error codes.
  • Authentication — requesting scopes in the OAuth flow.