Get the workspace's agent seat state
A seat is one CONCURRENT AI agent call. seats_total is what you can
run at once: tier_seats (from your plan) plus purchased_seats
(bought with POST /v1/agents/seats/purchase). seats_in_use is read
live from the seats ledger, not cached.
When past_due is true the seat subscription failed to renew;
purchased seats are at risk until the wallet is funded.
Authorization
bearerAuth Long-lived ES256 JWT minted from the dashboard (https://app.sautikit.com/developers/api-keys). Signed by the
platform keyring. Carries workspace_id and scopes claims;
revoked via the platform deny-list.
In: header
Response Body
application/json
application/json
curl -X GET "https://example.com/v1/agents/seats"{ "seats_total": 0, "seats_in_use": 0, "tier_seats": 0, "purchased_seats": 0, "seat_tier": "string", "monthly_price_minor": 0, "currency": "string", "renews_at": "2019-08-24T14:15:22Z", "past_due": true}{ "error": { "code": "validation.bad_request", "message": "string", "request_id": "string", "details": [ "string" ] }}Get concurrency-seat usage for the workspace GET
Live read of `seats_in_use` / `seats_total` — a claim/release cycle is visible on the next call.
Buy additional concurrent agent seats POST
Charges the wallet immediately and raises `seats_total` by `quantity`. Seats are a monthly subscription: they renew from the wallet, and a failed renewal sets `past_due` rather than removing capacity silently. Requires a writer role — buying capacity spends money.