Commet
  • Pricing
Log InTry out
Introduction

Quickstart

Learn

Manage PlansConfigure FeaturesConsumption ModelsAdd-onsCredit PacksPromo CodesPlan GroupsRegional PricesTrial PeriodsIntroductory Offers

Resources

SDK ReferenceError HandlingTestingCLI

Plugins

Better Auth
DocumentationKnowledge BaseBuild with AIAPI ReferenceWebhooks

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

ComponentDescriptionExample
Name & DescriptionCustomer-facing display information"Pro Plan — For growing teams"
Consumption ModelHow customers consume and pay for featuresMetered, Credits, or Balance
PricesPricing options by billing interval$99/month, $899/year
FeaturesWhat's included — boolean, metered, or seat-basedAPI Calls (10k), SSO, 5 Seats
Trial DaysOptional free trial period per interval14 days
VisibilityPublic (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

  • How Does Billing Work
  • How Do Free Plans Work Without Payment

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?

Customer Portal

Self-service portal for customers to manage their subscriptions.

Configure Features

Define capabilities with boolean, metered, and seat feature types in Commet.

On this page

Plan components
Free plans
Create a plan in the dashboard
Retrieve plans via SDK
Learn more
Related