import { Autumn } from 'autumn-js'
const autumn = new Autumn()
const result = await autumn.plans.create({
planId: "free_plan",
name: "Free",
autoEnable: true,
items: [
{
featureId: "messages",
included: 100,
reset: {
interval: "month",
},
},
],
});{
"id": "pro",
"name": "Pro Plan",
"description": null,
"group": null,
"version": 1,
"addOn": false,
"autoEnable": false,
"price": {
"amount": 10,
"interval": "month",
"display": {
"primaryText": "$10",
"secondaryText": "per month"
}
},
"items": [
{
"featureId": "messages",
"included": 100,
"unlimited": false,
"reset": {
"interval": "month"
},
"price": {
"amount": 0.5,
"interval": "month",
"billingUnits": 100,
"billingMethod": "usage_based",
"maxPurchase": null
},
"display": {
"primaryText": "100 messages",
"secondaryText": "then $0.5 per 100 messages"
}
},
{
"featureId": "users",
"included": 0,
"unlimited": false,
"reset": null,
"price": {
"amount": 10,
"interval": "month",
"billingUnits": 1,
"billingMethod": "prepaid",
"maxPurchase": null
},
"display": {
"primaryText": "$10 per Users"
}
}
],
"createdAt": 1771513979217,
"env": "sandbox",
"archived": false,
"baseVariantId": null,
"config": {
"ignore_past_due": false
}
}
Create a plan
Creates a new plan with optional base price and feature configurations.
Use this to programmatically create pricing plans. See How plans work for concepts.
import { Autumn } from 'autumn-js'
const autumn = new Autumn()
const result = await autumn.plans.create({
planId: "free_plan",
name: "Free",
autoEnable: true,
items: [
{
featureId: "messages",
included: 100,
reset: {
interval: "month",
},
},
],
});{
"id": "pro",
"name": "Pro Plan",
"description": null,
"group": null,
"version": 1,
"addOn": false,
"autoEnable": false,
"price": {
"amount": 10,
"interval": "month",
"display": {
"primaryText": "$10",
"secondaryText": "per month"
}
},
"items": [
{
"featureId": "messages",
"included": 100,
"unlimited": false,
"reset": {
"interval": "month"
},
"price": {
"amount": 0.5,
"interval": "month",
"billingUnits": 100,
"billingMethod": "usage_based",
"maxPurchase": null
},
"display": {
"primaryText": "100 messages",
"secondaryText": "then $0.5 per 100 messages"
}
},
{
"featureId": "users",
"included": 0,
"unlimited": false,
"reset": null,
"price": {
"amount": 10,
"interval": "month",
"billingUnits": 1,
"billingMethod": "prepaid",
"maxPurchase": null
},
"display": {
"primaryText": "$10 per Users"
}
}
],
"createdAt": 1771513979217,
"env": "sandbox",
"archived": false,
"baseVariantId": null,
"config": {
"ignore_past_due": false
}
}
Plan Configuration
A plan consists of:- Base price - optional recurring charge for the plan itself
- Items - feature configurations defining what customers get and how they’re billed
Configuring Items
Each item in theitems array configures a single feature. There are two types:
Consumable features (API calls, messages, credits):
- Set
includedfor free units that reset each period - Set
reset.intervalto define when balance resets toincluded - Optionally add
pricefor usage beyond included amount
- Set
includedfor the base allocation - Do NOT set
reset- usage persists across billing cycles - Use
billing_method: "prepaid"for upfront payment per unit
Common Use Cases
await autumn.plans.create({
planId: "free_plan",
name: "Free",
autoEnable: true, // Automatically attached on customer creation
items: [
{
featureId: "messages",
included: 100,
reset: { interval: "month" }
}
]
});
Body Parameters
Response
{
"id": "pro",
"name": "Pro Plan",
"description": null,
"group": null,
"version": 1,
"addOn": false,
"autoEnable": false,
"price": {
"amount": 10,
"interval": "month",
"display": {
"primaryText": "$10",
"secondaryText": "per month"
}
},
"items": [
{
"featureId": "messages",
"included": 100,
"unlimited": false,
"reset": {
"interval": "month"
},
"price": {
"amount": 0.5,
"interval": "month",
"billingUnits": 100,
"billingMethod": "usage_based",
"maxPurchase": null
},
"display": {
"primaryText": "100 messages",
"secondaryText": "then $0.5 per 100 messages"
}
},
{
"featureId": "users",
"included": 0,
"unlimited": false,
"reset": null,
"price": {
"amount": 10,
"interval": "month",
"billingUnits": 1,
"billingMethod": "prepaid",
"maxPurchase": null
},
"display": {
"primaryText": "$10 per Users"
}
}
],
"createdAt": 1771513979217,
"env": "sandbox",
"archived": false,
"baseVariantId": null,
"config": {
"ignore_past_due": false
}
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Body
The ID of the plan to create.
1^[a-zA-Z0-9_-]+$Display name of the plan.
1Group identifier for organizing related plans. Plans in the same group are mutually exclusive.
Optional description of the plan.
If true, this plan can be attached alongside other plans. Otherwise, attaching replaces existing plans in the same group.
If true, plan is automatically attached when a customer is created. Use for free tiers.
Base recurring price for the plan. Omit for free or usage-only plans.
Show child attributes
Show child attributes
Feature configurations for this plan. Each item defines included units, pricing, and reset behavior.
Show child attributes
Show child attributes
Free trial configuration. Customers can try this plan before being charged.
Show child attributes
Show child attributes
Miscellaneous plan-level configuration flags.
Show child attributes
Show child attributes
Response
OK
A plan defines a set of features, pricing, and entitlements that can be attached to customers.
Unique identifier for the plan.
Display name of the plan.
Optional description of the plan.
Group identifier for organizing related plans. Plans in the same group are mutually exclusive.
Version number of the plan. Incremented when plan configuration changes.
Whether this is an add-on plan that can be attached alongside a main plan.
If true, this plan is automatically attached when a customer is created. Used for free plans.
Base recurring price for the plan. Null for free plans or usage-only plans.
Show child attributes
Show child attributes
Feature configurations included in this plan. Each item defines included units, pricing, and reset behavior for a feature.
Show child attributes
Show child attributes
Unix timestamp (ms) when the plan was created.
Environment this plan belongs to ('sandbox' or 'live').
sandbox, live Whether the plan is archived. Archived plans cannot be attached to new customers.
If this is a variant, the ID of the base plan it was created from.
Miscellaneous plan-level configuration flags.
Show child attributes
Show child attributes
Free trial configuration. If set, new customers can try this plan before being charged.
Show child attributes
Show child attributes
Show child attributes
Show child attributes