API reference / Account
Create a workspace
Adds a workspace to the key's organization, for another business, brand or client. Its owners and admins reach it at once. Needs an owner or admin.
/api/v1/workspacesOther ways to call it
troopy workspace createtroopy_create_workspaceIdempotency-Key header. A retry with the same key gets the first answer back, and the operation runs one time.Body
application/jsonname*stringThe workspace's name, 1 to 80 characters
At least 1 characters · At most 80 characters
Response
201 · application/jsondata*object19 properties
id*stringA 24-character id
name*stringwebsite*string | nullThe business's website
description*string | nullWhat the business does, in its own words
logoUrl*string | nullA public link to the business's logo, or null when it has none
timezone*string | nullThe business's IANA time zone. Teammates plan their days and routines in it
region*string | nullThe business's country or region, ISO 3166 (like DE)
language*enum<string>The language teammates write in, BCP 47
endefresitptnlplsvdanbficstrarheand 7 more
postalAddress*string | nullThe business's postal address: every outreach email ends with it
outreachSending*booleanWhether campaigns' approved emails go out from its mailboxes: off unless an owner or admin turns it on, and off again stops sending at once
troopRoom*enum<string>Who handles a troop chat message naming no teammate: troop (a quick read decides whether a teammate answers, looks into it, reacts or stays out) or lead (the lead always answers)
trooplead
learnFromTalk*booleanWhether teammates learn from what people say to each other: troop chat messages naming no teammate and comments on tasks, read now and then for facts about the business, kept as Memories with who said them. Off unless an owner or admin turns it on
learnFromWork*booleanWhether a teammate writes down what a finished task taught it. Troopy looks at a task when a person stepped in: answered a question, turned a call down, commented, or sent work back. Each lesson waits for a person's approval. On unless an owner or admin turns it off
learnFromDocs*booleanWhether teammates read the facts of the docs, web pages and files of the brain, and keep each one as a Memory with its document. A document that changes is read again. On unless an owner or admin turns it off
engineering*objectHow engineering tickets go from Analyze to Release: who approves plans, who releases, and the gates
9 properties
planApproval*enum<string>When a person approves a plan before the build starts: always, only for medium and large changes, or never
alwayslargernever
planApprovers*enum<string>Who approves plans: everyone in the workspace, or owners and admins
everyonemanagers
releaseMode*enum<string>How changes go live: github (people merge there), or button (a person presses Release)
githubbutton
releasers*enum<string>Who presses Release: owners and admins, or everyone in the workspace
managerseveryone
mergeMethod*enum<string>How Release merges a pull request. The repo must allow it
squashmergerebase
requireChecks*booleanWhether GitHub's checks must pass before a ticket is ready to release
codeReview*enum<string>Who reviews the code of each change at Test, before the QA tester tests it: off, one agent, or a council. A council is one agent for each AI lab that the organization connects, up to 3, or two Claude models when Claude is the only lab. Each agent of a council must pass. Auto-release needs a council, and merges only a change that a council passed
offonecouncil
tries*integerHow many times testing may send a ticket back to Build before the Engineer stops and asks
At least 1 · At most 5
codePlan*string | nullThe AI plan that writes and reviews code. Null: Troopy picks, a Claude plan first. A plan that is out of usage gives its place to the next plan that writes code
autoRelease*object | nullThe grant of an owner or admin for Troopy to release each engineering ticket that passed every gate, with no person pressing Release. null when nobody ever granted one
9 properties
on*booleanIn force now
until*stringWhen it ends
dailyCap*integerThe most changes that it releases in 24 hours
maxSize*enum<string>The largest change that it releases, by the size that the Engineer gave it
smallmediumlarge
grantedBy*stringThe name of the person who granted it
grantedAt*stringISO 8601 date and time
endedAt*string | nullwhy*string | nullWhy it ended
today*integerThe changes that it released in the last 24 hours
artGrant*object | nullThe grant of an owner or admin for teammates to make art with the image provider with no yes, within the pictures a day of its plan. null: a person says yes to each batch
2 properties
grantedBy*stringThe name of the person who turned it on
grantedAt*stringISO 8601 date and time
createdAt*stringISO 8601 date and time
memberCount*integer