Plans
Free, Team, and Enterprise are self-serve (Stripe Checkout). Custom is invoiced annually - talk to us. SCIM provisioning is included in Enterprise and Custom; the directory-sync endpoints are rolling out - contact us if you need them enabled for compliance today (see SSO).
Grandfathered (legacy) plans
Pricing changes never move an existing subscription. If you subscribed before the current pricing, you keep the plan, price, and features you signed up for, for as long as the subscription stays active - and your Billing page keeps showing that plan, marked Legacy pricing. Choosing a different plan from the grid moves you to current pricing; the legacy rate can’t be restored afterward. New pricing applies to new subscriptions only.Free tier
The Free tier covers most teams getting started:- 3 connected clusters.
- Unlimited team members.
- All features that exist in OSS plus the Cloud control plane.
- The same MCP / PAT surfaces as paid plans, and the Radar AI agent at the included usage level.
- Google / GitHub sign-in (SAML / OIDC SSO starts on Enterprise).
Upgrading
Settings → Organization → Billing → Upgrade plan. We use Stripe Checkout. The first time you upgrade we lazy-create a Stripe Customer for your org and a subscription with one quantity per connected cluster. After checkout, your plan updates within a few seconds (Stripe webhook). After upgrade, the Manage billing button opens the Stripe Customer Portal where you can:- Update payment method.
- Download invoices.
- Change billing email.
- Cancel.
How the per-cluster quantity tracks
When you connect a new cluster, we increment the subscription quantity. When you delete a cluster, we decrement. Stripe handles proration automatically - mid-cycle changes are billed at the next invoice. If a sync to Stripe fails (network blip), it retries on a backoff. The quantity always converges to the actual cluster count.Past-due / payment failures
If a payment fails:- Stripe retries on its standard schedule (4 attempts over ~3 weeks).
- The org’s status flips to
past_dueand a banner appears in the Billing page. - A
billing.payment_failedevent fires through Notifications and the in-app inbox. - All read functionality keeps working - we don’t cut access mid-incident.
canceled due to non-payment, the org reverts to Free. You’ll lose access to clusters beyond the 3-cluster Free cap, but your data and members survive.
Invoices
Invoices live in the Stripe Customer Portal. Download as PDF. The “Bill to” line follows whatever address you set in Stripe. We don’t email invoices ourselves - Stripe does, to the billing email on the customer record. Update that in the Stripe portal under Account information.MCP fair-use
The “fair-use” cap on MCP requests is intentionally vague: we’ll only contact you if we see a runaway pattern (~tens of thousands of calls/hour from one user). Routine AI usage is well below that.Custom contracts
The Custom plan is invoiced annually and opens up:- Annual prepay with PO support.
- Custom SLA (99.9% uptime target) and dedicated CSM.
- Air-gapped deployment and custom data residency.
- DPA, SOC 2 reports, custom MSAs.
- Named Slack channel.
sales@skyhook.io or use the Talk to sales CTA in the Billing page.
Cancellation
Settings → Organization → Billing → Manage billing → Cancel (in Stripe). Cancellation takes effect at the end of the current billing period. Your org reverts to Free; data stays, clusters beyond 3 stop being usable.See also
- Organizations & roles - billing is owner-only.
- Notifications - subscribe to billing events.
- Audit log - billing changes are logged.