Skip to main content
Every plan, including Free, has full API and MCP access. Creating, publishing, and serving websites on their Cactal platform domains is free. The sites included in your plan decide how many websites can have custom domains enabled. Published sites in Free organizations display a compact Made with Cactal badge linking to Cactal. Paid organizations have no badge on either Cactal or custom domains. The badge is added when serving the page, not stored in website source or deployment assets; billing updates and cache invalidation change it without republishing. Draft previews do not display the badge.

Plans

Pro includes everything in Free, and annual billing is a uniform 20% discount. Additional sites cost 20persitepermonth,or20 per site per month**, or **192 per site per year on annual billing.

What counts as a site

A site counts toward your plan when an organization owner enables custom domains for it in the dashboard (Site settings, Domains). Sites on Cactal domains are unlimited and free. A website with custom domains enabled counts once, whether it holds one custom domain or all 10. Enabling is the single billing moment: adding or removing domains afterwards never changes billing.
  • Publishing and updating websites is free on every plan.
  • Enabling custom domains for a website adds it to your plan. The owner confirms the exact price in the enable dialog before anything is billed; the charge applies immediately and is prorated from that day.
  • Removing domains from an enabled website, even the last one, does not stop its charge. Only disabling custom domains does.
  • Disabling custom domains (owner-only, Site settings, Domains) immediately disconnects every custom domain on the website and stops its charge, crediting the unused time on your next invoice.
  • Moving a website to the trash disables custom domains automatically, which disconnects its domains, stops its charge, and releases those hostnames. Restoring the website brings it back with custom domains disabled, so nothing re-bills until an owner re-enables them.
  • Check your current plan, billing interval, renewal or cancellation date, and site count with GET /v1/billing/state.
Every organization member can read GET /v1/billing/state, including through an organization-scoped API key. Direct website access does not grant this organization-wide read. All other billing endpoints require the organization owner role, which API keys cannot hold, and so does POST /v1/websites/{websiteId}/domains/enablement, the operation that enables or disables custom domains. API callers can attach a domain only to a website with custom domains enabled; otherwise the request returns 403 with blocked_reason: custom_domains_disabled, and an organization owner enables custom domains from the dashboard, confirming the charge there.

Feature availability

Analytics endpoints under GET /v1/websites/{websiteId}/analytics/* require the Pro plan or above; on Free they return 403.

Usage allowances

Organization members can see credit usage and available credits in the sidebar, the website-name menu, and Settings → Billing. Balances belong to the selected organization; unlimited credits in another organization do not carry over. Members can read these balances without permission to buy credits or change billing. Displayed balances and out-of-credit warnings reflect finalized charges. Temporary reservations during agent runs or image generation do not count as spending; Cactal still accounts for them when admitting concurrent work. AI credits power the built-in Cactal agent and image generation. Every agent run reports the credits it charged alongside its token usage, and each image-generation result reports its exact completed charge. The agent offers three model tiers: Fast on every plan, with Standard and Max on paid plans only. Every plan includes a monthly allowance of AI credits: 100 per month on Free, 1,000 per month on Pro’s entry tier. The allowance resets each month and unused credits do not roll over. Pro supports higher monthly tiers at $25 per 1,000 credits per month; pick a tier on the dashboard’s billing page or with POST /v1/billing/ai-credit-tier (preview with POST /v1/billing/ai-credit-tier/preview): increases apply immediately with a prorated charge and carry the unused balance over; decreases take effect at renewal. Need more in a given month? Buy prepaid credits (minimum 400 credits, at the same $25 per 1,000 rate) with POST /v1/billing/usage-top-up/checkout. Top-up credits never expire and are spent after the monthly allowance runs out. Optionally enable auto-reload so the balance refills with a set number of credits whenever it drops below a threshold you choose. GET /v1/billing/state reports the AI credit meter, its nextResetAt timestamp, the prepaid balance, and any credits granted by Cactal support under creditGrants. Cactal support can also grant credits to your organization, for example as a service credit or a trial extension. Granted credits appear on the billing page with what is left and any expiry date, and the dashboard’s credit meter counts them alongside purchased credits as a separate figure from the monthly allowance. They are spent after the monthly allowance and before purchased credits, and grants with an expiry are spent soonest first. The organization owner is emailed when a grant is added.

Product limits

CMS

See CMS for field types and their constraints.

Assets

Uploads exceeding the kind’s limit are rejected at POST /v1/websiteAssets. Accepted MIME types per kind, the upload flow, and CDN delivery from cdn.cactal.app are covered in Assets.

API

List endpoints paginate with cursors — see Pagination. The full bucket table, 429 handling, and Retry-After semantics are in Rate limits. Rate limits are identical on every plan and shared between REST and MCP.
Plan gating never reduces API or MCP capability. Upgrading adds sites with custom domains, analytics, and AI credits, not access to publishing operations.