Skip to main content
Entities are a resource that lives under a parent customer, that can have it’s own plans and feature balances. Entity-level balances let you set usage limits that apply to each entity (like users, workspaces, or projects) individually. Instead of a single shared pool, each entity gets their own balance. You model this with a license plan: a plan describing everything one entity gets. The parent plan offers a pool of those licenses, and you assign a license to an entity to give it its own balance. This is useful when you want to ensure fair usage across team members or isolate resource consumption per workspace.
For the mechanics behind this and the other way to provision entity plans, see entity plans. If you only need to charge by headcount, with no per-seat limits, see per-seat pricing instead.

Example case

We have an AI meeting notes product with team-based pricing:
  • Team plan: $30 per seat per month
  • Each seat gets: 50 meeting summaries per month
If a team has 8 users, they pay $30 \times 8 = $240/month, and each user gets their own 50 summaries.

Configure Pricing

1

Create Features

Create two features:
  1. Seats - A metered non-consumable feature identifying the entity type (team members)
  2. Meeting Summaries - A metered consumable feature for the number of meeting summaries generated
2

Create the Seat License Plan

Create a Seat plan holding everything one team member gets:
  1. A $30/month price
  2. Meeting Summaries: 50 per month
Give it its own group. Attaching a plan replaces other plans in the same group, so a license plan sharing a group with its parent would knock the parent off.
3

Create Team Plan

Create a Team plan and, under Licenses, add the Seat plan with 0 included seats.The Team plan now offers a pool of Seat licenses at $30/month each. (Set included above 0 to give the plan some free seats.) A team member only receives their own 50 summaries once a license is assigned to them.

Implementation

1

Create an Autumn Customer

When an organization signs up, create an Autumn customer.
2

Create Initial Entity

Create an entity for the admin user who is signing up. This just registers the entity — no balance is granted until a license is assigned to it. This should be done server-side for security.
This entity exists but has no balances yet. It receives its 50 meeting summaries once you assign it a Seat license, a couple of steps below.
3

Attach the Team Plan and Buy Seats

When the customer upgrades to Team, attach the plan. Pass licenseQuantities to say how many Seat licenses they want — quantity is the total number of seats, including any the plan includes for free.
Change the seat count later by attaching again with a new quantity. Autumn prorates the difference.
4

Assign Seat Licenses

When team members are added, assign each of them a Seat license. This is what gives them their own balance of 50 summaries. It consumes one seat from the pool bought in the previous step.
feature_id is only required when the entity doesn’t exist yet — Autumn creates it for you, so you can skip the separate entity-create call.Assignment is idempotent: re-assigning someone who already holds an active Seat license succeeds without consuming another seat. If the pool has no seats left, the call errors — buy more seats first.After assigning, navigate to the Autumn customer page and you will see the entity and its balance.
5

Check Access Per Entity

Before generating a meeting summary, check if that specific user has remaining balance.
6

Track Usage Per Entity

When a user generates a summary, track the usage against their entity.
7

Check Customer-level Balance (Optional)

You can also check the total balance across all entities, useful for admin dashboards.
8

Release Seat Licenses

When a team member leaves, release their license. Their balance is removed and the seat returns to the pool, ready to be assigned to someone else.
Releasing a license frees the seat but does not change what the customer pays — they keep the 4 seats they bought. To stop paying for a seat, attach the Team plan again with a lower quantity; Autumn prorates the refund.license_plan_id is optional, and only needed to disambiguate when an entity holds licenses from more than one plan.

Summary

Entity-level balances are ideal when you want to:
  • Ensure fair usage across team members
  • Isolate consumption per workspace or project
  • Bill per-entity while providing entity-specific limits
To see how many seats a customer has bought and used, call licenses.list. To see who currently holds one, call licenses.list_assignments.