Reference
orgs
Organizations, the tenant. The creator becomes the first owner. Index · shared schemas · errors.
| Procedure | Summary | REST | MCP tool | Stability |
|---|---|---|---|---|
orgs.create | Create an org; the signed-in user becomes its owner | POST | — | experimental |
orgs.list | The orgs in the caller's view: a user's memberships with their role, or an API key's one org | GET | — | experimental |
orgs.get | Get an org | GET | — | experimental |
orgs.update | Rename an org or change its slug (CONFLICT when the slug is taken) | POST | — | experimental |
orgs.setPlacementScope | Set where the org's work may share a device host: org (its projects in turn; CONFLICT project-placement-in-use while a trusted issuer gives each sub-tenant its own project) or project (each apart; CONFLICT placement-units-required until the org has a placement_units limit, credentials-allow-all-projects while a credential lets every project sign). Owners only, every owner mailed. Trust class. | POST | — | experimental |
orgs.create
Create an org; the signed-in user becomes its owner
| REST | POST /v1/orgs/create (input as a JSON body) |
| RPC | /rpc/v2/orgs/create |
| MCP | not a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: none |
| Auth | account:write |
| Tenancy | none |
| Troupe Cloud | answered by the control plane |
| Stability | experimental, since 1.0 |
Input:
{ name: DisplayName; slug?: Slug }Output:
{ org: Org }Named types: DisplayName, Org, Slug.
orgs.list
The orgs in the caller's view: a user's memberships with their role, or an API key's one org
| REST | GET /v1/orgs/list (input as query parameters) |
| RPC | /rpc/v2/orgs/list |
| MCP | not a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: read-only, idempotent |
| Auth | session: any authenticated principal, no scope check |
| Tenancy | none |
| Troupe Cloud | answered by the control plane |
| Stability | experimental, since 1.0 |
Input:
{}Output:
{ orgs: Org[] }Errors: U.
Named types: Org.
orgs.get
Get an org
| REST | GET /v1/orgs/get (input as query parameters) |
| RPC | /rpc/v2/orgs/get |
| MCP | not a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: read-only, idempotent |
| Auth | org:read |
| Tenancy | org |
| Troupe Cloud | answered by the control plane |
| Stability | experimental, since 1.0 |
Input:
{ orgId: OrgId }Output:
{ org: Org }orgs.update
Rename an org or change its slug (CONFLICT when the slug is taken)
| REST | POST /v1/orgs/update (input as a JSON body) |
| RPC | /rpc/v2/orgs/update |
| MCP | not a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: idempotent |
| Auth | org:manage |
| Tenancy | org |
| Troupe Cloud | answered by the control plane |
| Stability | experimental, since 1.0 |
Input:
{ orgId: OrgId; name?: DisplayName; slug?: Slug }Output:
{ org: Org }Errors: U, NOT_FOUND, ORG_SUSPENDED, CONFLICT.
Named types: DisplayName, Org, OrgId, Slug.
orgs.setPlacementScope
Set where the org's work may share a device host: org (its projects in turn; CONFLICT project-placement-in-use while a trusted issuer gives each sub-tenant its own project) or project (each apart; CONFLICT placement-units-required until the org has a placement_units limit, credentials-allow-all-projects while a credential lets every project sign). Owners only, every owner mailed. Trust class.
| REST | POST /v1/orgs/set-placement-scope (input as a JSON body) |
| RPC | /rpc/v2/orgs/setPlacementScope |
| MCP | not a tool (a cloud platform procedure; the cloud MCP surface is the curated device tools); hints: idempotent |
| Auth | org:manage; trust-class: locally only the runtime owner token; in the cloud only an interactive user session re-authenticated within 15 minutes; never an API key or an MCP token |
| Tenancy | org |
| Troupe Cloud | answered by the control plane |
| Stability | experimental, since 1.0 |
Input:
{ orgId: OrgId; placementScope: 'org' | 'project' }Output:
{ org: Org }Errors: U, NOT_FOUND, ORG_SUSPENDED, CONFLICT.