Sable Pro plans
Sable Pro is a four-tier subscription: Free, Pro, Private, and Business. Every feature is on every tier, Free included. A plan raises your limits, extends how far back your history reaches, and adds support. It is billed in USDT, auto-debited from the same prepaid balance that pays for your compute.
Two things a plan is deliberately not:
- It does not change the price of compute. Every request is metered at list plus margin on every tier, the same rate on Free as on Business. A plan buys limits, retention and support, not cheaper compute. Free is a real pay-as-you-go tier, not a crippled trial.
- It does not unlock features. Since 2026-10-14 every capability (confidential execution, audit packs, region pinning, Vault issuer tools, org seats, OpenTelemetry export) is on every plan, Free included.
- It does not change how private your prompts are. Signed receipts and privacy by default are on every tier, including Free, and so is the confidential (TEE-attested) execution path. A plan never gates whether your prompt is protected.
The tiers
| Feature | Free | Pro | Private | Business |
|---|---|---|---|---|
| Monthly fee (USDT) | FreeFree | Pro$79 | Private$199 | Business$399 |
| History visible | Free7 days | Pro90 days | Private90 days | Business365 days |
| Rate limit per key | Free60/min | Pro600/min | Private600/min | Business1,200/min |
| Sandboxes running at once | Free4 | Pro8 | Private12 | Business24 |
| Signed receipts | FreeYes | ProYes | PrivateYes | BusinessYes |
| Privacy by default | FreeYes | ProYes | PrivateYes | BusinessYes |
| Metered compute | FreeYes | ProYes | PrivateYes | BusinessYes |
| Confidential + double-blind | FreeYes | ProYes | PrivateYes | BusinessYes |
| Region pinning | FreeYes | ProYes | PrivateYes | BusinessYes |
| Compliance audit packs | FreeYes | ProYes | PrivateYes | BusinessYes |
| Vault issuer tools | FreeYes | ProYes | PrivateYes | BusinessYes |
| Org seats | FreeYes | ProYes | PrivateYes | BusinessYes |
| OpenTelemetry export | FreeYes | ProYes | PrivateYes | BusinessYes |
| Support | Freecommunity | Proemail support | Privateemail support | Businesspriority support |
Fees are set by the deployment operator, so the authoritative numbers are always
whatever GET /v1/billing/plans returns. The figures above are the standard
pricing.
The first three rows are enforced by the gateway when the operator turns plan gates on. Every row below them is on every plan, so no plan refuses any of them. Which gates actually exist today lists every row and says which side of that line it is on.
What each tier includes
Every feature, on every tier. The tiers differ only in capacity and support:
- Free: 60 requests a minute per key, 4 sandboxes at once, 7 days of history, community support.
- Pro: 600 a minute, 8 sandboxes, 90 days of history, email support.
- Private: Pro's limits with 12 sandboxes at once.
- Business: 1,200 a minute, 24 sandboxes, 365 days of history, priority support.
The privacy features are three different guarantees, and only one of them hides your prompt from the machine running the model:
- The confidential tier runs on hardware-attested Intel TDX, where the host provably cannot read the prompt and the proof travels in your receipt. Each request is still metered at the model's price.
- The double-blind lanes hide who is asking from the vendor. The vendor's servers still process your plaintext prompt. They are not confidential execution, and they are not host-blind.
- Region pinning is honored only when the pin matches the region this deployment declared, and refused otherwise.
Which gates actually exist today
The table above is what a plan advertises. Enforcement is a separate, smaller thing, and the difference is worth stating plainly rather than implying the whole table is wired up.
Five things are checked in the gateway (two of them, confidential execution and
audit packs, are on every plan today, so they refuse no one), and only when the
operator sets
SABLE_PLAN_GATES_ENFORCED=true. With it off, every check below is skipped, the
same staged rollout as billing enforcement itself. GET /v1/billing/plans
reports the current state per plan in an enforced block, so a client never has
to take this page's word for it.
| Capability | Enforced? | Where |
|---|---|---|
| Rate limit per key | Enforced?Yes, when enforcement is on | WhereEvery API-key request. The plan's limit is a ceiling: a key may be set stricter, never looser. Over it returns 429 with Retry-After. |
| Sandboxes running at once | Enforced?Yes, when enforcement is on | WherePOST /v1/sandboxes. The plan's number replaces the deployment-wide cap for your account. Over it returns 429. |
| History visible | Enforced?Yes, when enforcement is on | WhereThe listings GET /v1/usage/events, GET /v1/usage/sandboxes and GET /v1/runs show records from inside the window only. Nothing is deleted: receipts and the credit ledger stay intact, a receipt stays fetchable by id, and upgrading shows the older records again. |
| Confidential (TEE-attested) execution | Enforced?Checked, refuses no one | WherePOST /v1/chat/completions, on the attested route only. Every plan includes it since 2026-10-14, so the check passes for every account. A plan without it would get 402, never a silent downgrade. |
| Compliance audit packs | Enforced?Checked, refuses no one | WherePOST /v1/runs/:id/audit. Every plan includes it since 2026-10-14. A plan without it would get 402. |
| Double-blind private lanes | Enforced?No | WhereReachable on every tier. The public catalog reports them under one flag with confidential (confidential_and_double_blind), which overstates the gate. |
| Signed spend statements | Enforced?No | WherePOST /v1/usage/statement is not gated, though it is advertised alongside audit packs. |
| Region pinning | Enforced?No, on every plan | WhereA pin is honored or refused on the deployment's declared region alone. The plan is never consulted. |
| Vault issuer tools | Enforced?No, on every plan | WhereNo Vault route consults the plan. |
| Org seats | Enforced?No, on every plan | WhereNo org route consults the plan. |
| OpenTelemetry export | Enforced?No, on every plan | WhereExport is a deployment-wide config flag, not a per-account capability. |
Paid plans are also not on sale until the operator sets
SABLE_PLANS_PURCHASABLE=true. While it is off, POST /v1/billing/subscription
refuses a paid plan and charges nothing.
Discovering plans
GET /v1/billing/plans is public, so an agent or anyone evaluating Sable can read
the catalog before holding any credential.
curl https://api.buildsable.com/v1/billing/plans{
"currency": "USD",
"paid_in": "USDT (auto-debited from your prepaid balance)",
"note": "Compute is metered at list + margin on every tier. A plan buys limits, retention and support — not cheaper compute, and not features: every capability is on every plan, Free included.",
"gates_enforced": false,
"plans": [
{
"id": "private",
"name": "Private",
"fee_micro_usd": 199000000,
"fee_usd": 199.0,
"retention_days": 90,
"rate_limit_per_min": 600,
"max_concurrent_sandboxes": 12,
"features": {
"signed_receipts": true,
"privacy_by_default": true,
"metered_compute": true,
"confidential_and_double_blind": true,
"region_pinning": true,
"audit_packs": true,
"vault_issuer": true,
"org_seats": true,
"otel_export": true
},
"support": "email support"
}
]
}
Your subscription
GET /v1/billing/subscription (session-authed) returns the plan you are on, when
the current period ends, whether it renews, the full plan spec, and your balance.
{
"plan": "private",
"period_end": "2026-10-01T00:00:00Z",
"auto_renew": true,
"spec": { "id": "private", "name": "Private", "fee_usd": 199.0, "...": "..." },
"balance_micro_usd": 250000000
}
Subscribing and changing plans
POST /v1/billing/subscription with { "plan": "pro" | "private" | "business" | "free" } (session-authed).
curl https://api.buildsable.com/v1/billing/subscription \
-H "Authorization: Bearer $SABLE_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "plan": "private" }'A paid plan charges its full monthly fee from your prepaid balance
immediately and starts a fresh 30-day period. If your balance cannot cover the
fee, the request returns 402 with the amount owed and your current balance;
top up and try again. There is no proration when you switch
plans, and the current period is not refunded.
Switching to "free" cancels auto-renew. Your current plan keeps its
limits until the period ends, then drops to Free.
Cancelling
POST /v1/billing/subscription/cancel (session-authed) turns off auto-renew. The
plan keeps its limits until period_end, then the renewal worker drops it
to Free. There is no refund of the current period. You can also do all of this
from the portal under Subscription.
Honest scope
A plan is a billing and entitlement record on this gateway. It changes your limits, retention and support. Every capability is on every plan. It does not change the privacy contract: prompts, completions, and submitted code are never persisted on any tier, and every plan artifact, like every Sable artifact, is metadata only.