Plans and seats
Plan limits, how seats are counted, and the billing actions in the console.
Path: Billing (/settings/billing), in tabs, each at its own address:
| Tab | Address | Shows |
|---|---|---|
| Overview | /settings/billing | Your plan and its status, paid seats, last charge, renewal, whether a payment method is on file, what the plan includes |
| Usage | /settings/billing/usage | Members, projects, connections, machines and environments against your plan; each row opens the page that lists it |
| Add-ons | /settings/billing/add-ons | Your add-ons, the ones you can buy, and the wallet. Offered once an add-on is on sale or owned, or you have a wallet |
| History | /settings/billing/history | Every charge from our ledger, including add-on charges and wallet top-ups, 10 a page. Quote the reference to support |
An older /settings/billing?tab=history link opens the matching tab.
Plan limits
| Free | Pro | Enterprise | |
|---|---|---|---|
| Price per seat per month | $0 | $18 billed yearly, $22 billed monthly | Custom |
| Seats | 3 | Unlimited | Unlimited |
| Projects | 5 | Unlimited | Unlimited |
| Environments per project | 5 | Unlimited | Unlimited |
| Integration connections | 2 | Unlimited | Unlimited |
| Dynamic secret engines | 3 | Unlimited | Unlimited |
| Custom roles | 0 | Unlimited | Unlimited |
| Reads per minute, per identity | 240 | 2,000 | Custom |
| Writes per minute, per identity | 60 | 300 | Custom |
| Reads / writes per minute, per workspace | 600 / 150 | None | None |
| Audit record kept for | 14 days, or 1 year with an add-on | 180 days, or 1 year with an add-on | Set by contract; never pruned automatically |
| Write-only environments | No | Yes | Yes |
| Customer-managed key (BYOK) | No | Add-on | Yes |
| Alerts by email, to the members you choose | Yes | Yes | Yes |
| Alert channels: Slack, Teams, Discord, Google Chat, PagerDuty, webhook | No | Up to 10 | Unlimited |
| Per-project alert routing | No | No | Yes |
| Audit streaming | Add-on | Add-on | Yes |
| SAML single sign-on | No | Yes | Yes |
| SCIM directory sync | No | Add-on | Yes |
Rate limits apply per identity, with separate read and write buckets. Free also caps each workspace (rate limits).
Every plan gets the same envelope encryption under real KMS (encryption in the cloud); plans differ on capacity, write-only environments and alert channels (Pro), key ownership (BYOK on Enterprise, or Pro with an add-on), audit retention and streaming, and directory sync.
Add-ons
Priced per workspace, never per seat or machine, on the Add-ons tab. Prices are the US list price; the Add-ons tab and checkout show your market's.
| Add-on | Sold on | Price | Enterprise |
|---|---|---|---|
| SCIM directory sync | Pro | $49 a month | Included |
| Customer-managed keys | Pro | $99 a month | Included |
| Delivery Insights | Pro | $19 a month | Included |
| Approvals | Pro | $19 a month | Included |
| Compliance evidence | Pro | $79 a month | Included |
| Premium support | Pro | $199 a month | By agreement |
| Audit log streaming | Free, Pro | $29 a month, 20 GB included | Included |
| Extended audit history | Free, Pro | $19 a month, 5 M row-months included | Included |
| SMS and WhatsApp alerts | Pro | $10 a month, 500 messages included | By agreement |
| Assisted migration | Free, Pro | $499 once | By agreement |
Past a metered add-on's allowance, the extra use pauses unless you turn on overage, which a spend cap you set bounds. SMS and WhatsApp alerts fall back to email instead of pausing.
Seats
We charge per human seat. Machines are free.
| Rule | Behavior |
|---|---|
| What counts | Memberships in your workspace with status active |
| Machines | Never take a seat, never appear on your invoice |
| Directory-closed membership | Stops counting once your directory marks it; we keep the row (see directory sync) |
Your usage meters cover seats, machines (informational), projects and connections.
We show a seat gap notice when your members exceed your paid seats. Manage seats changes the quantity on your subscription.
Change plan
| Page | Purpose |
|---|---|
/settings/billing/upgrade | Confirm billing country and seat count; we hand off to Stripe or Paystack (by country). Your browser never sees the price book |
/settings/billing/return | Polls until the payment webhook lands your new plan |
We read your plan from our own records, never from the payment processor. We resolve a contract grant against the processor's plan to the more generous one, so an invoiced Enterprise workspace needs no subscription.
Cancel: Danger Zone.
Required permissions
Slugs: roles and permissions. The built-in Billing Admin role handles invoices and reaches no values.
| Action | Needs | Step-up | Recorded as |
|---|---|---|---|
| Open the billing page | billing:read | No | not recorded |
| Open the upgrade page | billing:manage | No | not recorded |
| Start a checkout | billing:manage | No | billing.checkout.started |
| Change the seat count | billing:manage | Yes | not recorded from the console |
| Cancel the plan | billing:manage | Yes | billing.subscription.cancel_requested |
The payment webhook that updates our ledger records a seat change. Filter for billing.* in the audit log.
Next: Danger Zone.