list_switchable_orgs

List the orgs I can switch to

read collection tenant-private since 2026-10-01

Lists the orgs the signed-in user can switch to, ordered by name. Everyone gets the orgs they are a member of. Staff also get the orgs they hold an active grant to and the orgs in staff portfolios; an internal org is listed only for a membership or a grant. Each org says which of these put it on the list. In live mode test twins are not listed; in test mode each twin is listed in place of its org. Switching is switch_org; staff search every org with list_orgs. A system org (the template new orgs are cloned from) is never listed.

Contract

shape
collection
authority
read
evidence
none
subscription
false
permission
any one of: self.read (the signed-in caller, about themself only; it names no other user); a deactivated caller is refused first
idempotency
safe
emits
none
MCP tool
list_switchable_orgs
REST
POST https://api.containertradehq.com/v1/cap/list_switchable_orgs

Idempotency: a read: calling again changes nothing

Inputs

No inputs.

Paginated: next next_after · ceiling not_declared

Response

  • items · object[]
  • next_after · stringnull · Pass as `after` for the next page; null on the last one.
Full JSON Schema
{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "org_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 20,
            "pattern": "^[A-Za-z0-9_-]{1,20}$",
            "format": "tradehq-org-id",
            "description": "The org's id: what switch_org takes.",
            "x-data-class": "operational"
          },
          "name": {
            "type": "string",
            "description": "The org's name.",
            "x-data-class": "operational"
          },
          "org_type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "internal",
              "demo",
              "customer",
              "synthetic",
              "system",
              null
            ],
            "description": "The org's type (TRA-234); null for a ported org nothing has typed yet.",
            "x-data-class": "operational"
          },
          "member": {
            "type": "boolean",
            "description": "The caller is a member of the org.",
            "x-data-class": "operational"
          },
          "granted": {
            "type": "boolean",
            "description": "The caller holds an active staff grant to the org.",
            "x-data-class": "operational"
          },
          "grant_expires_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "When the latest-expiring active grant ends; null when there is none.",
            "x-data-class": "operational"
          },
          "portfolio_id": {
            "type": [
              "string",
              "null"
            ],
            "description": "The staff portfolio the org is in (the first by name when it is in several); null when none.",
            "x-data-class": "operational"
          },
          "portfolio_name": {
            "type": [
              "string",
              "null"
            ],
            "description": "That portfolio's name.",
            "x-data-class": "operational"
          }
        },
        "required": [
          "org_id",
          "name",
          "org_type",
          "member",
          "granted",
          "grant_expires_at",
          "portfolio_id",
          "portfolio_name"
        ],
        "additionalProperties": false
      }
    },
    "next_after": {
      "type": [
        "string",
        "null"
      ],
      "description": "Pass as `after` for the next page; null on the last one."
    }
  },
  "required": [
    "items",
    "next_after"
  ],
  "additionalProperties": false
}

Refusals

not yet declared

The platform refusals apply to every call: version, authentication, authority, validation and rate limits, each in the same envelope.

Surfaces

DesktopF
MobileF
APIF
MCPF
VoiceD4
PushN
OneBoxN
OutboundN
  • Voice: degraded: visualization
  • Push: emits nothing
  • OneBox: no document originates a switch
  • Outbound: crosses to no counterparty

Events

None emitted.

Related

None.