---
title: "Purchase Seats"
method: POST
path: "/api/v1/orgs/{org_id}/seats"
tags: ["organizations"]
---

# Purchase Seats

`POST /api/v1/orgs/{org_id}/seats`

## Request

- Base URL: `https://app.ctlsurf.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.ctlsurf.com/api/v1/orgs/{org_id}/seats`
- Auth: HTTP bearer

Buy seats, charged immediately and prorated (owner only).

`seats` is the absolute target, not a delta, so a double-submitted request
cannot buy twice.

Restricted to the owner rather than all admins: this spends money, and the
owner is who the billing relationship belongs to.

## Path parameters

- `org_id` string, uuid, required

## Request body

- SeatPurchase: Buy or release seats. `seats` is the absolute target, not a delta.
  - `seats` integer, required

## Response `200`

Successful Response

- SeatChangeResponse
  - `seats_purchased` integer, required
  - `seats_assigned` integer, required
  - `seats_scheduled` integer, nullable
  - `effective` string, required
  - `message` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ctlsurf/apis/notebook-control-plane.md) · [All operations](https://skmtc.dev/ctlsurf/apis/notebook-control-plane/llms.txt) · [OpenAPI document](https://skmtc.dev/ctlsurf/apis/notebook-control-plane/revisions/ddfbbe20d5ce?raw)
