Billing & plans
Infiniview bills per account. Plan tier governs concurrency, monthly scan budget, and which scanners and runtime agents are available.
Plans
Three plan tiers ship today. The Settings page in the dashboard shows the exact limits for your account at any time — they may move as the product evolves, so this page only lists the dimensions that are durable across tiers.
| Dimension | What it controls |
|---|---|
| Monthly scan budget | How many scans the account can complete per billing month before manual-trigger rate limiting tightens. |
| Concurrent scans | How many scan runs may execute simultaneously per account. |
| Scanner set | Default-enabled scanners are available on every tier; opt-in and license-gated scanners are tier-dependent. |
| Runtime agent set | Specific runtime agents (verification, interaction testing, exploit confirmation) may be tier-gated. |
| Evidence retention | How long replay artifacts and proof bundles are retained after a scan completes. |
| Email completion alerts | Tier-dependent — toggle from Settings. |
Reading plan status
GET /api/billing/status returns the current plan, billing-cycle window, and remaining scan budget for the signed-in account.
GET /api/billing/status
{
"planKey": "team", // free | team | enterprise (example values)
"status": "active", // active | trialing | past_due | canceled
"currentPeriodEnd": "...",
"scanBudget": { "used": 42, "limit": 200 },
"concurrency": { "active": 1, "limit": 3 }
}Starting checkout
The dashboard launches checkout via an in-app overlay rather than a hosted redirect. Posting to the checkout-session endpoint returns a single-use URL the overlay opens.
POST /api/billing/checkout-session
{ "planKey": "team" }
# 200 OK
{ "url": "https://checkout.infiniview.dev/..." } # opened in the overlayThe endpoint is rate-limited to 5 requests per 60 seconds per account. The returned URL is short-lived; request a new session if it expires.
Upgrades and downgrades
- Upgrades take effect immediately. New scanners and runtime agents become available on the next scan; existing snapshots keep the configuration they were launched with.
- Downgrades take effect at the end of the current billing period. Disabled scanners stop running on the next scan after the period flips.
- A downgrade that drops below your active concurrent-scan count is allowed — in-flight runs finish, but newly queued runs respect the new limit.
Cancellation
Cancel from Settings > Billing in the dashboard. The cancellation closes at the end of the current billing period and your data remains accessible (read-only) for the retention window listed in your plan. New scans cannot be launched after cancellation takes effect.
Endpoints
GET /api/billing/status # current plan and usage
POST /api/billing/checkout-session # { planKey } · 5/60sFor the full API surface, see the API reference.