# Plans & meters

Everything buyers can purchase is configured in the ZeroClick dashboard:
products, plans, meters, pricing, and entitlements. If you'd rather not set
this up yourself, the ZeroClick team can configure your catalog for you. The
contract on your side stays the same either way.

## Products

A **product** is something you sell from a service, for example "Weather
API – Standard Access". Each product has a **shape** that determines its
billing model:

| Shape | In short |
| --- | --- |
| Pay as you go | No base fee; every unit of usage is billed at the meter price. |
| Subscription | A recurring fee for access and entitlements; no metering required. |
| Subscription + included usage | A recurring fee that includes usage, with overage billed per meter. |
| Prepaid credits | Buyers purchase a balance upfront; usage draws it down. |

See [Product shapes](/docs/product-shapes) for how to choose and how each one
behaves at the metering level.

## Meters

A **meter** is a usage dimension you measure on a product:

- **Label**: the human-readable name, e.g. "API requests". The kebab-cased
  label (`api-requests`) is what you reference when
  [reporting usage](/docs/metering-and-usage).
- **Unit**: what one unit means, e.g. "request", "run", "token".

Define a meter for each thing you charge for. Most APIs need only one or two.

## Plans

A **plan** is a pricing tier within a product, such as Starter or Scale.
Plans have:

| Field | Description |
| --- | --- |
| Billing interval | `none`, `month`, or `year`. Use `none` for one-time purchases such as prepaid credits. |
| Base price | The recurring (or one-time) price in USD. |
| Included credits | Optional. A USD allowance included in the base price. |
| Credit expiry | Whether included credits `expire` at the end of each period or `rollover`. |
| Spend cap | Optional. The most a buyer can spend in a period, including overage. ZeroClick notifies you and the buyer when it's reached; your API then returns the [402 exhaustion response](/docs/metering-and-usage#when-a-meter-is-exhausted) for paid actions. |

### Per-meter pricing

Each plan prices each meter:

- **Unit price**: USD per unit (or per bundle).
- **Bundle size**: units sold together. A bundle size of 1,000 with a unit
  price of $0.10 means $0.10 per 1,000 units.
- **Included units**: units covered by the base price before overage pricing
  kicks in.

### Entitlements

Entitlements are key-value flags attached to a plan, such as
`support: priority` or `max-resolution: 4k`. They're delivered to you with the
[API key exchange](/docs/api-key-exchange) call, so your API can gate features
by plan without hard-coding plan names.

## What buyers see

Your catalog is published at the proxy:

`GET https://{service-slug}.pay.zeroclick.io/plans`

Agents fetch this endpoint to compare plans and purchase one. Plan names,
descriptions, prices, included usage, and meters are all visible. Write them
for a buyer deciding what to purchase.

You can also serve the storefront and proxy from a subdomain of your own
site, such as `agents.example.com`. See
[Use your own domain](/docs/going-live#use-your-own-domain).
