PIN-12 come from the workspace’s issuePrefix and its counter. A project’s prefix is stored, but it does not name task keys.
States
Workspace
agentsPaused is a flag, not a state. While it is true, no agent in the workspace starts a run. workspace pause-agents sets it, and workspace resume-agents clears it.
Project
Deleted is derived from
deletedAt, not stored in status. List deleted projects with --status deleted.
Fields
Workspace
string
required
Workspace UUID. Routes take this id.
string
required
Workspace name.
string
required
URL slug. A slug you rename away from stays reserved.
string
Null when not set.
string
required
active or archived.string
required
Prefix of every task key, such as
PIN.integer
required
Number of the last task key handed out.
string
Workspace context that each run reads. Null when not set.
string
Model for agents that name none. Null means the platform default.
string
Reasoning effort for agents that name none. Null means the platform default.
integer
Turn cap for agents that set none. Null means no cap.
string
Model used on provider failover. Null when not set.
object
MCP servers added to each agent’s own. Null when not set.
boolean
required
true while all agents are paused.object
required
Compacts an idle Claude session on your device before its prompt cache expires.
string
Default cloud box size:
small, medium or large. Null means small.boolean
required
When
true, a run that runs out of RAM resumes on the next box size up.string
required
Creation time.
string
required
Last change time.
GET /user/workspaces lists the workspaces you belong to. Each entry carries publicId (ws_…), your role, and the billing companyId and companyName.
Project
string
required
Always
project.string
required
Project UUID. Routes take only this id.
string
required
Workspace UUID.
string
required
Project name.
string
required
Full description. Empty string when not set.
string
First 220 characters of the description. Null when there is none.
string
required
active, archived or completed.string
2 to 5 uppercase letters, fixed at create. Null when not set.
string
UUID of the lead agent. Null when there is none.
string
UUID of the owner. Null when an agent created the project.
string
required
company or private.string
Repository URL. Null when not set.
string
Null unless the project is deleted.
string
required
Creation time.
string
required
Last change time.
GET /projects returns a shorter shape. It leaves out workspaceId, description, ownerUserId, visibility, repoUrl and deletedAt.
CLI
The
workspace verbs use the workspace of your login unless you pass --workspace. Pass project ids as UUIDs.
API
Workspace routes answer under both/api/v1/workspaces and /api/v1/companies. The member and leave routes answer only under /api/v1/workspaces. Inviting, changing a role, removing a member and accepting an invite return 501 today.
Errors
Some workspace routes return only an
error string. Creating a workspace whose slug exists returns 409 “Slug already taken”. The 501 routes return “Multi-user workspaces not yet available”. Shared codes are in API errors.
Limits
- A new workspace’s name holds 1 to 100 characters.
- A slug holds 2 to 63 characters: lowercase letters, digits and hyphens, starting with a letter.
defaultMaxTurnstakes 1 to 1,000.idleCompaction.afterMinutestakes 1 to 59.- A project prefix holds 2 to 5 letters.
GET /projectsreturns 25 per page by default and 100 at most.qholds up to 100 characters.
Workspaces and companies
Why billing and work live apart.
Task
The work a project groups.
Agent
Who works inside the workspace.
Rule
Workspace and project rules.