curl --request POST \
--url https://api.example.com/v1/ui/products/{id}/plans \
--header 'Content-Type: application/json' \
--data '
{
"usageTracking": {
"method": "automatic",
"granularity": "hourly"
},
"limits": {},
"metadata": {},
"features": {},
"name": "<string>",
"description": "<string>",
"type": "recurring",
"billingCycle": "weekly",
"price": 123,
"creditsPerUnit": 123,
"currency": "<string>",
"billingModel": "pre-paid",
"freeUnits": 123,
"limit": 123,
"basePrice": 123,
"setupFee": 123,
"trialDays": 123,
"rolloverUnusedUnits": true,
"autoRenew": true,
"status": "active",
"maxActiveUsers": 123,
"accessExpiryDays": 123,
"default": true
}
'{
"type": "recurring",
"reference": "pln_1A2B3C4D",
"price": 2999,
"currency": "USD",
"requiresPayment": true,
"isActive": true,
"status": "active",
"createdAt": "<string>",
"updatedAt": "<string>",
"meterRef": "mtr_1A2B3C4D",
"name": "Starter",
"description": "Best for teams getting started",
"currencySymbol": "$",
"freeUnits": 100,
"setupFee": 500,
"trialDays": 14,
"billingCycle": "monthly",
"billingModel": "pre-paid",
"creditsPerUnit": 1,
"measures": "requests",
"limit": 10000,
"rolloverUnusedUnits": false,
"limits": {},
"features": {},
"maxActiveUsers": 123,
"accessExpiryDays": 123
}curl --request POST \
--url https://api.example.com/v1/ui/products/{id}/plans \
--header 'Content-Type: application/json' \
--data '
{
"usageTracking": {
"method": "automatic",
"granularity": "hourly"
},
"limits": {},
"metadata": {},
"features": {},
"name": "<string>",
"description": "<string>",
"type": "recurring",
"billingCycle": "weekly",
"price": 123,
"creditsPerUnit": 123,
"currency": "<string>",
"billingModel": "pre-paid",
"freeUnits": 123,
"limit": 123,
"basePrice": 123,
"setupFee": 123,
"trialDays": 123,
"rolloverUnusedUnits": true,
"autoRenew": true,
"status": "active",
"maxActiveUsers": 123,
"accessExpiryDays": 123,
"default": true
}
'{
"type": "recurring",
"reference": "pln_1A2B3C4D",
"price": 2999,
"currency": "USD",
"requiresPayment": true,
"isActive": true,
"status": "active",
"createdAt": "<string>",
"updatedAt": "<string>",
"meterRef": "mtr_1A2B3C4D",
"name": "Starter",
"description": "Best for teams getting started",
"currencySymbol": "$",
"freeUnits": 100,
"setupFee": 500,
"trialDays": 14,
"billingCycle": "monthly",
"billingModel": "pre-paid",
"creditsPerUnit": 1,
"measures": "requests",
"limit": 10000,
"rolloverUnusedUnits": false,
"limits": {},
"features": {},
"maxActiveUsers": 123,
"accessExpiryDays": 123
}Product ID or reference
Show child attributes
1recurring, usage-based, one-time, hybrid weekly, monthly, quarterly, yearly, custom pre-paid, post-paid active, inactive, archived Plan created successfully
Plan type exposed in SDK
recurring, one-time, usage-based, hybrid "recurring"
Plan reference
"pln_1A2B3C4D"
Plan price in cents
2999
Currency code (ISO 4217)
"USD"
Whether payment is required
true
Whether the plan is active (derived from status)
true
Plan status
"active"
Creation timestamp
Last update timestamp
Meter reference for usage-based plans
"mtr_1A2B3C4D"
Plan name
"Starter"
Plan description
"Best for teams getting started"
Currency symbol (derived from currency)
"$"
Number of free units included
100
One-time setup fee
500
Free trial period in days
14
Billing cycle
"monthly"
Billing model
pre-paid, post-paid "pre-paid"
Credits per usage unit (integer, >= 1)
1
What the plan measures for usage tracking
"requests"
Usage limit for the meter
10000
Whether unused units roll over to next period
false
Usage limits
Plan features
Maximum number of active users
Access expiry in days