Manage Plans
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.
Plan components
| 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 |
Free plans
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.
Create a plan in the dashboard
Go to Plans and click Create Plan. Fill in each component from the table above, then save. For detailed feature configuration, see Configure Features.
Retrieve plans via SDK
const plans = await commet.plans.list()plans = commet.plans.list()plans, err := client.Plans.List(ctx, nil)ApiResponse<List<Plan>> plans = commet.plans().list();$plans = $commet->plans->list();curl https://commet.co/api/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,
})ApiResponse<List<Plan>> plans = commet.plans().list(true, null, null);$plans = $commet->plans->list(includePrivate: true);curl "https://commet.co/api/plans?includePrivate=true" \
-H "x-api-key: $COMMET_API_KEY"Get a specific plan:
const plan = await commet.plans.get('plan_xxx')plan = commet.plans.get(plan_code='plan_xxx')plan, err := client.Plans.Get(ctx, "plan_xxx")ApiResponse<Plan> plan = commet.plans().get("plan_xxx");$plan = $commet->plans->get('plan_xxx');curl https://commet.co/api/plans/plan_xxx \
-H "x-api-key: $COMMET_API_KEY"Learn more
Related
- Consumption Models — Metered, Credits, and Balance explained
- Credit Packs — Purchasable credit packages
- Plan Groups — Enable self-service upgrades and downgrades
- Configure Features — Boolean, metered, and seat features
- Manage Subscriptions — Assign plans to customers
- Customer Portal — Self-service billing portal
How is this guide?