Pricing Strategies
A pricing strategy is the actual pricing rule inside a plan. If a pricing plan is the “Pro Plan” container, strategies are the line items: “49/month platform fee,” “5,000 calls for 0.03 overage.” A plan can have multiple strategies. Most plans combine a few:- A usage strategy for per-event billing (tied to a signal)
- A recurring strategy for a fixed monthly fee
- A onetime strategy for a setup fee
- A seat_based strategy for per-user pricing
Charge types
| Charge type | What it means | Example |
|---|---|---|
usage | Pay per event/unit. Requires a linked signal. | $0.01 per API call |
recurring | Fixed fee every billing cycle | $49/month platform fee |
onetime | One-time fee, charged on first invoice only | $500 setup fee |
seat_based | Per-seat/per-user pricing | $10/seat/month |
Pricing models
The pricing model determines how the rate math works forusage and seat_based strategies.
Flat
Every unit costs the same price. Simple multiplication.Graduated
Different rates for different quantity ranges — like tax brackets. Each range is charged at its own rate.Volume
Total quantity determines ONE rate for ALL units. The more you use, the cheaper each unit gets — but the rate applies to everything, not just the overflow.Credit Pool
Flat fee for a pool of units, then per-unit overage. You pay the pool price whether you use 1 unit or all of them. Only after exceeding the pool does the overage rate kick in.rate is the flat pool price (not per-unit). The second tier’s rate is the per-unit overage rate.
Create pricing strategies (bulk)
In plain English: Add one or more pricing strategies to a plan. You can create all your strategies in one call — send an array. Method & URL:name(string) — Strategy name, e.g. “API Call Pool”agentId(UUID) — Which agent this strategy belongs tochargeType(string) - One of:usage,recurring,onetime,seat_based
signalId(UUID) — Required if chargeType isusage. The signal this strategy prices.pricingModel(string) - One of:flat,graduated,volume,credit_pool. Required forusageandseat_based.billingFrequency(string) —monthlyoryearly(default: monthly)tiers(array) — Tier configuration. Each tier haslower(number),upper(number or null),rate(number).rate(number) — Flat rate. Used when pricingModel isflator there are no tiers.minimumCommitment(number) — Minimum units/seats to bill for, even if actual usage is lower.active(boolean, default true) — Whether this strategy is active.tags(string[]) — Tags for categorization.
201 Created): Array of created strategies with IDs.
Using the SDK:
400 Bad Request— Missing required fields, orsignalIdnot provided for ausagestrategy.404 Not Found— Plan, agent, or signal not found in this org.
List pricing strategies
Method & URL:chargeType- Filter by charge type (usage,recurring,onetime,seat_based)pricingModel— Filter by pricing model (flat,graduated,volume,credit_pool)active— Filter by active status (trueorfalse)page,limit— Pagination (default: page 1, limit 10)
Get a pricing strategy
Method & URL:Update a pricing strategy
Method & URL:Bulk update + create
In plain English: Update existing strategies and create new ones in a single call. Useful when reconfiguring an entire plan. Method & URL:Delete a pricing strategy
Method & URL:deletedAt, doesn’t destroy data).
Using the SDK:

