<!-- source: https://modelux.ai/docs/concepts/billing -->

> How plans, limits, and self-serve billing work in modelux.

# Plans & Billing

modelux has four plans — **Free**, **Pro**, **Team**, and **Enterprise** —
that shape how much traffic you can run through the control plane and
which features are available to you. Upgrading, downgrading, and
managing your subscription is self-serve for Free, Pro, and Team; see
the [pricing page](/pricing) for current prices and the full feature
matrix.

## Limits vs. features

Each plan combines two things:

- **Limits** — numeric caps like monthly requests, number of projects,
  and API keys. When you hit a hard limit, the corresponding API call
  returns a `402 Payment Required` until you upgrade or the counter
  resets.
- **Features** — capabilities that are on or off per plan (e.g.
  ensembles, custom routing rules, audit log, warehouse export, SSO).
  Calling a gated endpoint without the feature returns `402` with a
  pointer to the plan that unlocks it.

Limits are checked at the edge of the proxy and in the management API.
Features are checked wherever the capability is used — routing config
creation, SCIM token minting, export setup, and so on.

## Self-serve upgrade and downgrade

From **Settings → Billing** in the dashboard you can:

- See your current plan, usage meters, and renewal date
- Start a subscription via Stripe Checkout (new customers)
- Switch plans (upgrade or downgrade) with proration handled by Stripe
- Update payment method, billing email, and tax IDs through the
  customer portal
- Switch between **monthly** and **annual** billing — annual is two
  months free (~17% off)

Plan changes take effect immediately. If you downgrade, any features
no longer included in your new plan stop working right away, but your
existing configs stay intact — re-upgrading restores them.

## Usage meters and soft nudges

The billing page shows a meter for each limited resource (requests,
projects, keys, provider credentials). When usage crosses **80%** of a
monthly limit we send a soft-nudge email so there's no surprise; at
**100%** you get a hard-cap email and the counter starts blocking.

Request counters reset on your subscription's renewal day; resource
counters (projects, keys, credentials) are measured at point-in-time,
not monthly.

## Free tier

Free is genuinely free — no card required — and hard-caps at the
stated monthly request limit. Internal-auth traffic (dashboard,
management API, MCP) is excluded from the counter, so working with
modelux never eats into your quota.

## Custom plans for Enterprise

Enterprise plans are created per-customer. They can include:

- Custom monthly request volume (or true unlimited)
- Configurable data residency and per-project payload retention controls
- Negotiated pricing and invoicing instead of card-on-file
- SSO, SCIM, audit logging, access review exports, and warehouse export
- Dedicated support channel and SLA

[Talk to sales](mailto:hello@modelux.ai) to scope one.

## API and MCP

Everything on the billing page is also available via the management
API and MCP:

- `GET /manage/v1/billing` — current plan, usage, and limits
- `GET /manage/v1/plans` — public plan catalog
- `POST /manage/v1/billing/checkout` — create a Stripe Checkout session
- `POST /manage/v1/billing/portal` — open the Stripe customer portal
- `POST /manage/v1/billing/change-plan` — switch to a different plan
- MCP tools: `get_billing`, `list_plans`, `create_checkout_session`

Use these if you want to surface plan / usage data inside your own
internal tools, or let an assistant drive an upgrade on your behalf.
