List the organizations below this one
The direct children of the caller's organization, keyset-paged over (created_at, id). Each row carries the kind and origin of the edge that put it there.
query Parameters
limitPage size. Values above the server-side cap are clamped (standard default 50, cap 200; a few document-heavy lists use larger windows). Invalid values fall back to the default.
after_created_atKeyset cursor: the created_at of the last row of the previous page.
after_idKeyset cursor: the id of the last row of the previous page.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List the organizations below this one › Responses
OK
Add an affiliate organization
Creates an organization below the caller's with an AFFILIATE edge — part of the same business rather than a customer of it — and invites its first admin. The parent's tree.children_allowed and tree.max_children settings gate it. The admin address is required and the request is refused with 422 without one, naming admin_email: an organization nobody can enter is not a tenant. An API key may create one too — the invitation is then credited to the platform's provisioning identity, while the audit trail records your key as what created it.
Headers
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Add an affiliate organization › Request Body
admin_emailWho is invited into the new organization. Required: an organization nobody can enter is not a tenant.
nameThe affiliate's display name.
default_currencyDefaults to the parent's.
default_localeDefaults to the parent's.
The new organization's legal identity: legal name, registered address, identifiers, tax registrations and bank account. Validated whole before anything is written; every refusal names its field under identity.*, and nothing is created when one is refused. Optional: what is missing is reported by the organization's compliance readiness, never refused.
slugOptional; derived from the name when omitted.
Add an affiliate organization › Responses
Created
Provision a child organization from a subscription
The same business-idempotent saga the subscription.activated consumer drives. Replaying converges on ONE organization. The plan must carry metadata.auto_provision_tenant; nothing provisions without it.
Headers
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Provision a child organization from a subscription › Request Body
source_subscription_idAn ACTIVE subscription in this organization's live workspace, on a plan carrying metadata.auto_provision_tenant.
source_delivery_idThis delivery's id. Derived from the subscription when omitted.
source_event_idThe outbound envelope's idempotency key. Derived from the subscription when omitted.
Provision a child organization from a subscription › Responses
Created
Get every organization below this one
Every organization below the caller's, at any depth, shallowest first — the caller's own organization is not among them. Each row carries its depth in the whole tree, so a client can render the shape. This is what /organization/children answers for direct children only.
Headers
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Get every organization below this one › Responses
OK
Get one organization below this one
Where the organization sits: its parent, its ancestors root first, the kind of its edge and its depth. An id that is not below the caller's organization answers 404.
path Parameters
idHeaders
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Get one organization below this one › Responses
OK
Change why a child hangs where it does
Flips the edge between customer and affiliate. The same kind is refused. Becoming a customer needs a customer row in the parent for this organization; the parent and the ancestor path are never touched.
path Parameters
idHeaders
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Change why a child hangs where it does › Request Body
edge_kindThe kind to flip TO. The same kind is refused.
Change why a child hangs where it does › Responses
OK
Invite an admin into a child organization
Writes the admin role-intent row and dispatches the invitation the child's identity mode calls for. The response reports the PROBED fact of whether anyone can now reach the organization.
path Parameters
idHeaders
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Invite an admin into a child organization › Responses
Accepted
Withdraw an invitation into a child organization
Idempotent: revoking an invitation that is not there succeeds.
path Parameters
idHeaders
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Withdraw an invitation into a child organization › Responses
OK
List a child organization's members and invitations
path Parameters
idHeaders
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
List a child organization's members and invitations › Responses
OK
Suspend or restore one membership in a child organization
Writes the MEMBERSHIP's status, not the person's realm account: a member of several organizations keeps every other one.
path Parameters
iduserIdHeaders
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Suspend or restore one membership in a child organization › Responses
OK
Re-send a child member's address verification
path Parameters
iduserIdHeaders
Idempotency-KeyUnique key that makes this POST safe to retry: repeats with the same key replay the first response instead of re-executing. Replays are scoped to the retrying principal (same API key / user) and kept for 24 hours. Required on every POST.
Client-generated idempotency key (e.g. a UUID).
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Re-send a child member's address verification › Responses
Accepted
Get an organization and everything below it
The organization itself first, then every organization below it, shallowest first.
path Parameters
idHeaders
X-Workspace-IdSelects the workspace this request operates in, by workspace UUID or slug (e.g. a sandbox workspace for test integrations). Omitted: the organization's default live workspace. Unknown workspace: 404; workspace outside your organization: 403. Discover workspaces via GET /workspaces.
Workspace UUID or slug.
Get an organization and everything below it › Responses
OK