Skip to main content
POST
/
workspaces
Create a workspace
curl --request POST \
  --url https://api.altostrat.io/workspaces \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "name": "My New Workspace",
  "description": "For developing the next big thing.",
  "billing_mode": "pooled"
}'
{
  "id": "ws_a1b2c3d4e5f6g7h8",
  "name": "ACME Corporation",
  "description": "Primary workspace for all ACME projects.",
  "billing_mode": "pooled",
  "pooled_seat_limit": 100,
  "archived": false,
  "created_at": "2025-10-29T00:40:06.000000Z",
  "updated_at": "2025-10-29T00:40:06.000000Z",
  "archived_at": null
}

Authorizations

Authorization
string
header
required

Enter your JWT in the format: Bearer {token}

Body

application/json
name
string
required

The name of the workspace. Maximum 50 characters.

Example:

"My New Workspace"

billing_mode
enum<string>
required

The billing mode for the workspace.

Available options:
single,
assigned,
pooled
Example:

"pooled"

description
string | null

An optional description for the workspace. Maximum 200 characters.

Example:

"For developing the next big thing."

Response

The workspace was created successfully.

id
string

Unique identifier for the workspace, prefixed with ws_.

Example:

"ws_a1b2c3d4e5f6g7h8"

name
string

The name of the workspace.

Example:

"ACME Corporation"

description
string | null

An optional description for the workspace.

Example:

"Primary workspace for all ACME projects."

billing_mode
enum<string>

The billing mode for the workspace. Determines how subscriptions and usage are handled.

Available options:
single,
assigned,
pooled
Example:

"pooled"

pooled_seat_limit
integer | null

The total number of seats available in 'pooled' billing mode. This is null for other modes.

Example:

100

archived
boolean

Whether the workspace is archived.

Example:

false

created_at
string<date-time>

The timestamp when the workspace was created.

Example:

"2025-10-29T00:40:06.000000Z"

updated_at
string<date-time>

The timestamp when the workspace was last updated.

Example:

"2025-10-29T00:40:06.000000Z"

archived_at
string<date-time> | null

The timestamp when the workspace was archived.

Example:

null