Product documentation
Organizations
B2B Organizations — the tenant's own customer companies (SSO-1897): org CRUD, membership, and email invitations (token shown once on invite).
Organizations
B2B Organizations — the tenant's own customer companies (SSO-1897): org CRUD, membership, and email invitations (token shown once on invite).
Base URL: https://api.stg.thoryn.org
Operations
| Method | Path | Summary | Scopes |
|---|---|---|---|
POST | /api/v1/organization-invitations/accept | Organization Invitation Accept Accept | bearer, no extra scope |
GET | /api/v1/organizations | Organizations List | tenant:orgs.read |
POST | /api/v1/organizations | Organizations Create | tenant:orgs.write |
GET | /api/v1/organizations/{id} | Organizations Get | tenant:orgs.read |
PATCH | /api/v1/organizations/{id} | Organizations Patch | tenant:orgs.write |
DELETE | /api/v1/organizations/{id} | Organizations Delete | tenant:orgs.write |
GET | /api/v1/organizations/{id}/invitations | Organizations List Invitations | tenant:orgs.read |
POST | /api/v1/organizations/{id}/invitations | Organizations Invite | tenant:orgs.write |
DELETE | /api/v1/organizations/{id}/invitations/{invId} | Organizations Revoke Invitation | tenant:orgs.write |
GET | /api/v1/organizations/{id}/members | Organizations List Members | tenant:orgs.read |
POST | /api/v1/organizations/{id}/members | Organizations Add Member | tenant:orgs.write |
PATCH | /api/v1/organizations/{id}/members/{subject} | Organizations Patch Member Status | tenant:orgs.write |
DELETE | /api/v1/organizations/{id}/members/{subject} | Organizations Remove Member | tenant:orgs.write |
Operation details
POST /api/v1/organization-invitations/accept
Organization Invitation Accept Accept
- Operation ID:
organizationInvitationAcceptAccept - Required scopes: bearer, no extra scope
Request body (required): application/json → AcceptInvitationRequest
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
GET /api/v1/organizations
Organizations List
- Operation ID:
organizationsList - Required scopes:
tenant:orgs.read
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
slug | query | no | string | |
externalId | query | no | string | |
limit | query | no | integer | |
cursor | query | no | string |
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
POST /api/v1/organizations
Organizations Create
- Operation ID:
organizationsCreate - Required scopes:
tenant:orgs.write
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
Idempotency-Key | header | no | string |
Request body (required): application/json → CreateOrganizationRequest
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
GET /api/v1/organizations/{id}
Organizations Get
- Operation ID:
organizationsGet - Required scopes:
tenant:orgs.read
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string |
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
PATCH /api/v1/organizations/{id}
Organizations Patch
- Operation ID:
organizationsPatch - Required scopes:
tenant:orgs.write
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string |
Request body (required): application/json → UpdateOrganizationRequest
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
DELETE /api/v1/organizations/{id}
Organizations Delete
- Operation ID:
organizationsDelete - Required scopes:
tenant:orgs.write
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string |
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
GET /api/v1/organizations/{id}/invitations
Organizations List Invitations
- Operation ID:
organizationsListInvitations - Required scopes:
tenant:orgs.read
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string | |
limit | query | no | integer | |
cursor | query | no | string |
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
POST /api/v1/organizations/{id}/invitations
Organizations Invite
- Operation ID:
organizationsInvite - Required scopes:
tenant:orgs.write
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string | |
Idempotency-Key | header | no | string |
Request body (required): application/json → CreateInvitationRequest
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
DELETE /api/v1/organizations/{id}/invitations/{invId}
Organizations Revoke Invitation
- Operation ID:
organizationsRevokeInvitation - Required scopes:
tenant:orgs.write
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string | |
invId | path | yes | string |
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
GET /api/v1/organizations/{id}/members
Organizations List Members
- Operation ID:
organizationsListMembers - Required scopes:
tenant:orgs.read
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string | |
limit | query | no | integer | |
cursor | query | no | string |
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
POST /api/v1/organizations/{id}/members
Organizations Add Member
- Operation ID:
organizationsAddMember - Required scopes:
tenant:orgs.write
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string | |
Idempotency-Key | header | no | string |
Request body (required): application/json → AddMemberRequest
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
PATCH /api/v1/organizations/{id}/members/{subject}
Organizations Patch Member Status
- Operation ID:
organizationsPatchMemberStatus - Required scopes:
tenant:orgs.write
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string | |
subject | path | yes | string |
Request body (required): application/json → UpdateMemberStatusRequest
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |
DELETE /api/v1/organizations/{id}/members/{subject}
Organizations Remove Member
- Operation ID:
organizationsRemoveMember - Required scopes:
tenant:orgs.write
Parameters:
| Name | In | Required | Type | Description |
|---|---|---|---|---|
id | path | yes | string | |
subject | path | yes | string |
Responses:
| Status | Description | Body |
|---|---|---|
200 | OK | object |
401 | Unauthorized — bearer token missing, expired, signed by an untrusted issuer, or missing the tnt tenant claim. | Problem (problem+json) |
403 | Forbidden — token lacks a required tenant:* scope, or the tnt claim does not match the tenant addressed by the request path. | Problem (problem+json) |