Create and manage pricing plans in Commet that automatically generate subscriptions.
Plans are pre-configured billing packages that combine pricing, features, and billing intervals. Assign a plan to a customer and Commet creates the subscription, customer portal, and recurring invoices automatically.
| Component | Description | Example |
|---|---|---|
| Name & Description | Customer-facing display information | "Pro Plan — For growing teams" |
| Consumption Model | How customers consume and pay for features | Metered, Credits, or Balance |
| Prices | Pricing options by billing interval | $99/month, $899/year |
| Features | What's included — boolean, metered, or seat-based | API Calls (10k), SSO, 5 Seats |
| Trial Days | Optional free trial period per interval | 14 days |
| Visibility | Public (pricing page) or private (internal use) | Public or Private |
A free plan has a price of $0 and no billing cycle. Customers are activated immediately without checkout. Free plans have one restriction: overage cannot be configured. Features on a free plan always block usage at the included limit. See How Do Free Plans Work for details.
Go to Plans and click Create Plan. Fill in each component from the table above, then save. For detailed feature configuration, see Configure Features.
const plans = await commet.plans.list()plans = commet.plans.list()plans, err := client.Plans.List(ctx, nil)var plans = commet.plans().list();$plans = $commet->plans->list();curl https://commet.co/api/v1/plans \
-H "x-api-key: $COMMET_API_KEY"Include private plans:
const plans = await commet.plans.list({ includePrivate: 'true' })plans = commet.plans.list(include_private="true")includePrivate := "true"
plans, err := client.Plans.List(ctx, &commet.ListPlansParams{
IncludePrivate: &includePrivate,
})var plans = commet.plans().list(
ListPlansParams.builder().includePrivate("true").build()
);$plans = $commet->plans->list(includePrivate: 'true');curl "https://commet.co/api/v1/plans?includePrivate=true" \
-H "x-api-key: $COMMET_API_KEY"Get a specific plan:
const plan = await commet.plans.get({ id: 'pln_xxx' })plan = commet.plans.get("pln_xxx")plan, err := client.Plans.Get(ctx, "pln_xxx")var plan = commet.plans().get("pln_xxx");$plan = $commet->plans->get('pln_xxx');curl https://commet.co/api/v1/plans/pln_xxx \
-H "x-api-key: $COMMET_API_KEY"How is this guide?