Sign Up

Organizations

Accept an invitation

POST
/invitations/accept

Adds the current user to the organization with the invitation's roles. An existing member keeps their current roles.

Authorization

user_jwt
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Request Body

application/json
  1. body
token*string

The invitation token.

Response Body

The organization member

application/json
  1. response
assignable_project_permissions*array<string>

The project permissions the member may grant.

email*string

The member's email address.

joined_at*string

When the user joined the organization.

Formatdate-time
name?|

The member's display name.

org_permissions*array<string>

The member's effective organization permissions.

roles*array<string>

The assigned role identifiers.

user_id*string

The user ID.

Formatuuid
curl -X POST 'https://example.com/invitations/accept' \  -H 'Content-Type: application/json' \  -d '{  "token": "string"}'
{  "assignable_project_permissions": [    "string"  ],  "email": "string",  "joined_at": "2019-08-24T14:15:22Z",  "name": "string",  "org_permissions": [    "string"  ],  "roles": [    "string"  ],  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}

Decline an invitation

POST
/invitations/decline

Marks the invitation as declined until it is revoked or re-issued.

Authorization

user_jwt
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Request Body

application/json
  1. body
token*string

The invitation token.

Response Body

Invitation declined

curl -X POST 'https://example.com/invitations/decline' \  -H 'Content-Type: application/json' \  -d '{  "token": "string"}'
Empty

Look up an invitation

POST
/invitations/lookup

Looks up a pending invitation before the invitee accepts or declines it.

Authorization

user_jwt
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Request Body

application/json
  1. body
token*string

The invitation token.

Response Body

The pending invitation

application/json
  1. response

What POST /invitations/lookup shows the token holder before they decide.

email*string

The invited address — the one the email went to.

expires_at*string

When the invitation expires.

Formatdate-time
id*string

The invitation ID.

Formatuuid
invited_by?|

The inviter's display name, else their email; null when the inviting account no longer exists.

org_id*string

The organization ID.

Formatuuid
org_name*string

The organization name.

roles*array<string>

The role identifiers granted on acceptance.

curl -X POST 'https://example.com/invitations/lookup' \  -H 'Content-Type: application/json' \  -d '{  "token": "string"}'
{  "email": "string",  "expires_at": "2019-08-24T14:15:22Z",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "invited_by": "string",  "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",  "org_name": "string",  "roles": [    "string"  ]}

List organizations

GET
/orgs

Authorization

user_jwt
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Query Parameters

limit?integer

Maximum number of items to return, 1–200 (default 100)

Formatint64
Range1 <= value <= 200
Default100
cursor?string

Opaque continuation token returned as next_cursor by a previous request

Response Body

The page of organizations

application/json
  1. response

A page of organizations.

next_cursor?|

The cursor for the next page, or null when this is the last page.

organizations*array<>

The organizations in this page.

curl -X GET 'https://example.com/orgs'
{  "next_cursor": "string",  "organizations": [    {      "budget_stop_grace_seconds": 0,      "created_at": "2019-08-24T14:15:22Z",      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "max_sandbox_timeout_seconds": 0,      "name": "string",      "personal": true,      "preview_warning_disabled": true,      "sso_linked": true,      "sso_organization_id": "string",      "suspended": true,      "suspended_reason": "string",      "updated_at": "2019-08-24T14:15:22Z",      "v0_membership_sync_enabled": true,      "v1_membership_sync_enabled": true,      "membership": {        "default_project_id": "1226a120-3a85-4fe0-bba2-cdfc7af0d81b",        "grantable_project_permissions": [          "string"        ],        "permissions": [          "string"        ],        "roles": [          "string"        ]      }    }  ]}

Create an organization

POST
/orgs

Creates a non-personal organization and adds the current user as its initial administrator.

Authorization

user_jwt
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Request Body

application/json
  1. body
name*string

The organization name.

Response Body

The created organization

application/json
  1. response

An organization.

budget_stop_grace_seconds*integer

The delay before budget-held sandboxes are stopped or deleted; macOS sandboxes, which run on a prepaid Mac reservation, keep running.

Formatint64
created_at*string

When the organization was created.

Formatdate-time
id*string

The organization ID.

Formatuuid
max_sandbox_timeout_seconds*|

The longest timeout a sandbox in this organization may have, in seconds; null uses the platform maximum.

Formatint32
name*string

The organization name.

personal*boolean

Whether this is the user's personal organization.

preview_warning_disabled*boolean

Whether sandbox previews skip the warning page.

sso_linked*boolean

Whether the organization is linked to its single sign-on configuration.

sso_organization_id*|

The ID of the single sign-on organization the organization is linked to; null when sso_linked is false.

suspended*boolean

Whether new resource creation is suspended.

suspended_reason?|

The member-visible suspension reason, when available.

updated_at*string

When the organization was last updated.

Formatdate-time
v0_membership_sync_enabled*boolean

Whether membership changes sync with the Daytona v0 organization of the same ID. When true, removing a member also removes them from the Daytona v0 organization.

v1_membership_sync_enabled*booleanDeprecated

Deprecated: use v0_membership_sync_enabled, which carries the same value.

curl -X POST 'https://example.com/orgs' \  -H 'Content-Type: application/json' \  -d '{  "name": "string"}'
{  "budget_stop_grace_seconds": 0,  "created_at": "2019-08-24T14:15:22Z",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "max_sandbox_timeout_seconds": 0,  "name": "string",  "personal": true,  "preview_warning_disabled": true,  "sso_linked": true,  "sso_organization_id": "string",  "suspended": true,  "suspended_reason": "string",  "updated_at": "2019-08-24T14:15:22Z",  "v0_membership_sync_enabled": true,  "v1_membership_sync_enabled": true}

Get an organization

GET
/orgs/{org_id}

Authorization

user_jwt read:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Response Body

The organization

application/json
  1. response

An organization.

budget_stop_grace_seconds*integer

The delay before budget-held sandboxes are stopped or deleted; macOS sandboxes, which run on a prepaid Mac reservation, keep running.

Formatint64
created_at*string

When the organization was created.

Formatdate-time
id*string

The organization ID.

Formatuuid
max_sandbox_timeout_seconds*|

The longest timeout a sandbox in this organization may have, in seconds; null uses the platform maximum.

Formatint32
name*string

The organization name.

personal*boolean

Whether this is the user's personal organization.

preview_warning_disabled*boolean

Whether sandbox previews skip the warning page.

sso_linked*boolean

Whether the organization is linked to its single sign-on configuration.

sso_organization_id*|

The ID of the single sign-on organization the organization is linked to; null when sso_linked is false.

suspended*boolean

Whether new resource creation is suspended.

suspended_reason?|

The member-visible suspension reason, when available.

updated_at*string

When the organization was last updated.

Formatdate-time
v0_membership_sync_enabled*boolean

Whether membership changes sync with the Daytona v0 organization of the same ID. When true, removing a member also removes them from the Daytona v0 organization.

v1_membership_sync_enabled*booleanDeprecated

Deprecated: use v0_membership_sync_enabled, which carries the same value.

curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08'
{  "budget_stop_grace_seconds": 0,  "created_at": "2019-08-24T14:15:22Z",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "max_sandbox_timeout_seconds": 0,  "name": "string",  "personal": true,  "preview_warning_disabled": true,  "sso_linked": true,  "sso_organization_id": "string",  "suspended": true,  "suspended_reason": "string",  "updated_at": "2019-08-24T14:15:22Z",  "v0_membership_sync_enabled": true,  "v1_membership_sync_enabled": true}

Update an organization

PATCH
/orgs/{org_id}

Updates the fields present in the request body. The name is trimmed and must contain 1 to 100 characters with no control characters.

Authorization

user_jwt write:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Request Body

application/json
  1. body
max_sandbox_timeout_seconds?|

The longest timeout a sandbox in this organization may have, in seconds; null uses the platform maximum.

Formatint64
name?string

The replacement organization name.

Response Body

The organization

application/json
  1. response

An organization.

budget_stop_grace_seconds*integer

The delay before budget-held sandboxes are stopped or deleted; macOS sandboxes, which run on a prepaid Mac reservation, keep running.

Formatint64
created_at*string

When the organization was created.

Formatdate-time
id*string

The organization ID.

Formatuuid
max_sandbox_timeout_seconds*|

The longest timeout a sandbox in this organization may have, in seconds; null uses the platform maximum.

Formatint32
name*string

The organization name.

personal*boolean

Whether this is the user's personal organization.

preview_warning_disabled*boolean

Whether sandbox previews skip the warning page.

sso_linked*boolean

Whether the organization is linked to its single sign-on configuration.

sso_organization_id*|

The ID of the single sign-on organization the organization is linked to; null when sso_linked is false.

suspended*boolean

Whether new resource creation is suspended.

suspended_reason?|

The member-visible suspension reason, when available.

updated_at*string

When the organization was last updated.

Formatdate-time
v0_membership_sync_enabled*boolean

Whether membership changes sync with the Daytona v0 organization of the same ID. When true, removing a member also removes them from the Daytona v0 organization.

v1_membership_sync_enabled*booleanDeprecated

Deprecated: use v0_membership_sync_enabled, which carries the same value.

curl -X PATCH 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{}'
{  "budget_stop_grace_seconds": 0,  "created_at": "2019-08-24T14:15:22Z",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "max_sandbox_timeout_seconds": 0,  "name": "string",  "personal": true,  "preview_warning_disabled": true,  "sso_linked": true,  "sso_organization_id": "string",  "suspended": true,  "suspended_reason": "string",  "updated_at": "2019-08-24T14:15:22Z",  "v0_membership_sync_enabled": true,  "v1_membership_sync_enabled": true}

Delete an organization

DELETE
/orgs/{org_id}

Deletes an organization after confirming that no active resources block removal.

Authorization

user_jwt delete:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: delete:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Response Body

Organization deleted

curl -X DELETE 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Empty
GET
/orgs/{org_id}/audit-logs

Returns audit logs newest first. The actor_created_by field is null when the caller cannot view organization members. Filters use field[op]=value, where op is eq, not, in, not_in, gt, gte, lt, or lte.

Authorization

headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:audit

Path Parameters

org_id*string

The organization ID

Formatuuid

Query Parameters

limit?integer

Maximum number of items to return, 1–200 (default 100)

Formatint64
Range1 <= value <= 200
Default100
cursor?string

Opaque continuation token returned as next_cursor by a previous request

action?string

The action filter

target_type?string

The target resource type filter

target_id?string

The target resource ID filter

actor?string

The actor user or API key ID

Formatuuid
status?integer

The response status code filter

Formatint32
start_at?string

The inclusive start of the time range

Formatdate-time
end_at?string

The exclusive end of the time range

Formatdate-time

Response Body

The page of audit logs

application/json
  1. response
audit_logs*array<>

The audit log entries.

next_cursor?|

The cursor for the next page, or null at the end.

curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/audit-logs'
{  "audit_logs": [    {      "action": "string",      "actor_created_by": "35765c86-3f6c-4c27-b840-a0903bbdedd6",      "actor_email": "string",      "actor_key_id": "b9a81dca-0dc5-41dd-a51c-3cd1a6ec03ff",      "actor_key_prefix": "string",      "actor_kind": "string",      "actor_service_account_id": "f8d1a8f6-34ae-45b6-8962-16779520eaec",      "actor_user_id": "d6ed4497-4325-4995-9f49-e288b7192e46",      "created_at": "2019-08-24T14:15:22Z",      "error_message": "string",      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "ip_address": "string",      "metadata": {},      "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",      "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9",      "status_code": 0,      "target_id": "string",      "target_type": "string",      "user_agent": "string"    }  ],  "next_cursor": "string"}
GET
/orgs/{org_id}/audit-logs/config

Authorization

user_jwt read:audit
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:audit

Path Parameters

org_id*string

The organization ID

Formatuuid

Response Body

The audit configuration

application/json
  1. response
disabled*boolean

Whether audit capture is disabled.

curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/audit-logs/config'
{  "disabled": true}
PATCH
/orgs/{org_id}/audit-logs/config

Enables or disables capture for future organization actions.

Authorization

user_jwt write:audit
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:audit

Path Parameters

org_id*string

The organization ID

Formatuuid

Request Body

application/json
  1. body
disabled*boolean

Whether to disable audit capture.

Response Body

The audit configuration

application/json
  1. response
disabled*boolean

Whether audit capture is disabled.

curl -X PATCH 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/audit-logs/config' \  -H 'Content-Type: application/json' \  -d '{  "disabled": true}'
{  "disabled": true}
GET
/orgs/{org_id}/entitlements

Returns every entitlement key and whether it is available to the organization.

Authorization

user_jwt read:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Response Body

The organization's entitlements

application/json
  1. response

The entitlements available to an organization.

entitlements*

Every entitlement key, true when it is available to the organization.

curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/entitlements'
{  "entitlements": {    "property1": true,    "property2": true  }}
GET
/orgs/{org_id}/feature-flags

Authorization

user_jwt read:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Response Body

The organization feature flags

application/json
  1. response
flags*

The published feature keys enabled for the organization. Disabled keys are omitted.

curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/feature-flags'
{  "flags": {    "property1": true,    "property2": true  }}
GET
/orgs/{org_id}/invitations

Returns pending, declined, and expired invitations newest first.

Authorization

user_jwt read:members
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:members

Path Parameters

org_id*string

The organization ID

Formatuuid

Query Parameters

limit?integer

Maximum number of items to return, 1–200 (default 100)

Formatint64
Range1 <= value <= 200
Default100
cursor?string

Opaque continuation token returned as next_cursor by a previous request

Response Body

The page of organization invitations

application/json
  1. response
invitations*array<>

The organization invitations.

next_cursor?|

The cursor for the next page, or null at the end.

curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/invitations'
{  "invitations": [    {      "created_at": "2019-08-24T14:15:22Z",      "declined_at": "2019-08-24T14:15:22Z",      "email": "string",      "expires_at": "2019-08-24T14:15:22Z",      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",      "roles": [        "string"      ],      "status": "pending"    }  ],  "next_cursor": "string"}
POST
/orgs/{org_id}/invitations

Creates an invitation or re-issues an existing invitation for the same email address. Members join an organization by looking up and accepting the invitation link; they may decline it instead.

Authorization

user_jwt write:members
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:members

Path Parameters

org_id*string

The organization ID

Formatuuid

Request Body

application/json
  1. body
email*string

The email address to invite.

roles?array<string>|

Absent ⇒ ["developer"]; an explicit empty array is a 400.

Items1 <= items

Response Body

The invitation, updated

application/json
  1. response
created_at*string

When the invitation was created or last re-issued.

Formatdate-time
declined_at?|

When the invitation was declined, or null.

Formatdate-time
email*string

The invited email address.

expires_at*string

When the invitation expires.

Formatdate-time
id*string

The invitation ID.

Formatuuid
org_id*string

The organization ID.

Formatuuid
roles*array<string>

The role identifiers granted on acceptance.

status*InvitationStatus

The invitation status.

Value in"pending""declined""expired"
accept_url?|

The invitation acceptance URL, or null when it was delivered by email.

curl -X POST 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/invitations' \  -H 'Content-Type: application/json' \  -d '{  "email": "string"}'
{  "created_at": "2019-08-24T14:15:22Z",  "declined_at": "2019-08-24T14:15:22Z",  "email": "string",  "expires_at": "2019-08-24T14:15:22Z",  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "org_id": "a40f5d1f-d889-42e9-94ea-b9b33585fc6b",  "roles": [    "string"  ],  "status": "pending",  "accept_url": "string"}
DELETE
/orgs/{org_id}/invitations/{invitation_id}

Invalidates an invitation that has not been accepted.

Authorization

user_jwt write:members
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:members

Path Parameters

org_id*string

The organization ID

Formatuuid
invitation_id*string

The invitation ID

Formatuuid

Response Body

Invitation revoked

curl -X DELETE 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/invitations/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Empty

Get organization limits

GET
/orgs/{org_id}/limits

Returns effective limits and current usage. A null limit means unlimited.

Authorization

headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Response Body

The organization's limits

application/json
  1. response
api_keys_per_organization*

The organization's live API-key limit and current usage.

api_keys_per_project*

The organization's live API-key limit and current usage.

image_builds*

Concurrent image-build limits.

members?

Organization member limits. Omitted for project-scoped callers.

sandbox_resources?

Per-sandbox resource maximums for Linux sandboxes. Omitted by API versions that predate them.

sandboxes*

Sandbox count limits.

secrets_per_project*

The organization's live API-key limit and current usage.

curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/limits'
{  "api_keys_per_organization": {    "limit": 0,    "usage": 0  },  "api_keys_per_project": {    "limit": 0,    "usage": 0  },  "image_builds": {    "concurrent": {      "limit": 0,      "usage": 0    }  },  "members": {    "limit": 0,    "usage": 0,    "pending_invitations": 0  },  "sandbox_resources": {    "max_memory_mib": 0,    "max_vcpus": 0  },  "sandboxes": {    "concurrent": {      "limit": 0,      "usage": 0    },    "gpu_concurrent": {      "limit": 0,      "usage": 0    },    "total": {      "limit": 0,      "usage": 0    },    "windows_concurrent": {      "limit": 0,      "usage": 0    }  },  "secrets_per_project": {    "limit": 0,    "usage": 0  }}

Get the macOS settings

GET
/orgs/{org_id}/macos-settings

Authorization

user_jwt read:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Response Body

The macOS settings

application/json
  1. response

An organization's macOS settings.

macos_auto_reserve*boolean

Whether a macOS create buys a Mac reservation when the organization holds none in the region. On unless an admin turns it off.

macos_auto_reserve_disabled_at?|

When an admin last turned auto-reserve off; null while it is on.

Formatdate-time
macos_auto_reserve_disabled_by?|

The admin who last turned auto-reserve off; null while it is on, or when no admin was recorded.

Formatuuid
macos_auto_reserve_max_reservations*integer

The most live auto-created reservations the org may hold at once.

Formatint32
curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/macos-settings'
{  "macos_auto_reserve": true,  "macos_auto_reserve_disabled_at": "2019-08-24T14:15:22Z",  "macos_auto_reserve_disabled_by": "66e39aae-c839-4c51-b2e7-10cd6611e171",  "macos_auto_reserve_max_reservations": 0}

Update macOS settings

PATCH
/orgs/{org_id}/macos-settings

Authorization

user_jwt write:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Request Body

application/json
  1. body

The macOS settings to change: any non-empty subset of the fields.

macos_auto_reserve?|

Whether new macOS creates may automatically reserve capacity.

macos_auto_reserve_max_reservations?|

Maximum number of automatically created reservations.

Formatint32

Response Body

The macOS settings

application/json
  1. response

An organization's macOS settings.

macos_auto_reserve*boolean

Whether a macOS create buys a Mac reservation when the organization holds none in the region. On unless an admin turns it off.

macos_auto_reserve_disabled_at?|

When an admin last turned auto-reserve off; null while it is on.

Formatdate-time
macos_auto_reserve_disabled_by?|

The admin who last turned auto-reserve off; null while it is on, or when no admin was recorded.

Formatuuid
macos_auto_reserve_max_reservations*integer

The most live auto-created reservations the org may hold at once.

Formatint32
curl -X PATCH 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/macos-settings' \  -H 'Content-Type: application/json' \  -d '{}'
{  "macos_auto_reserve": true,  "macos_auto_reserve_disabled_at": "2019-08-24T14:15:22Z",  "macos_auto_reserve_disabled_by": "66e39aae-c839-4c51-b2e7-10cd6611e171",  "macos_auto_reserve_max_reservations": 0}
GET
/orgs/{org_id}/members

Authorization

user_jwt read:members
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:members

Path Parameters

org_id*string

The organization ID

Formatuuid

Query Parameters

limit?integer

Maximum number of items to return, 1–200 (default 100)

Formatint64
Range1 <= value <= 200
Default100
cursor?string

Opaque continuation token returned as next_cursor by a previous request

Response Body

The page of organization members

application/json
  1. response
members*array<>

The organization members.

next_cursor?|

The cursor for the next page, or null at the end.

curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members'
{  "members": [    {      "assignable_project_permissions": [        "string"      ],      "email": "string",      "joined_at": "2019-08-24T14:15:22Z",      "name": "string",      "org_permissions": [        "string"      ],      "roles": [        "string"      ],      "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"    }  ],  "next_cursor": "string"}
PATCH
/orgs/{org_id}/members/{user_id}

Replaces the member's complete role set.

Authorization

user_jwt write:members
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:members

Path Parameters

org_id*string

The organization ID

Formatuuid
user_id*string

The user ID

Formatuuid

Request Body

application/json
  1. body
roles*array<string>

The member's complete new role set. Required, with at least one role.

Items1 <= items

Response Body

The organization member

application/json
  1. response
assignable_project_permissions*array<string>

The project permissions the member may grant.

email*string

The member's email address.

joined_at*string

When the user joined the organization.

Formatdate-time
name?|

The member's display name.

org_permissions*array<string>

The member's effective organization permissions.

roles*array<string>

The assigned role identifiers.

user_id*string

The user ID.

Formatuuid
curl -X PATCH 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members/497f6eca-6276-4993-bfeb-53cbbbba6f08' \  -H 'Content-Type: application/json' \  -d '{  "roles": [    "string"  ]}'
{  "assignable_project_permissions": [    "string"  ],  "email": "string",  "joined_at": "2019-08-24T14:15:22Z",  "name": "string",  "org_permissions": [    "string"  ],  "roles": [    "string"  ],  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}
DELETE
/orgs/{org_id}/members/{user_id}

Authorization

headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:organization

Path Parameters

org_id*string

The organization ID

Formatuuid
user_id*string

The user ID

Formatuuid

Response Body

Member removed

curl -X DELETE 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members/497f6eca-6276-4993-bfeb-53cbbbba6f08'
Empty
GET
/orgs/{org_id}/members/{user_id}/removal-preview

Shows the credentials and preview grants that removal would revoke.

Authorization

headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:organization

Path Parameters

org_id*string

The organization ID

Formatuuid
user_id*string

The user ID

Formatuuid

Response Body

The member removal preview

application/json
  1. response
revoked_api_keys*integer

The number of API keys the removal would revoke.

Formatint64
revoked_preview_grants?|

The number of signed preview grants the removal would delete, or null when unknown.

Formatint64
user_id*string

The user ID that would be removed.

Formatuuid
curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members/497f6eca-6276-4993-bfeb-53cbbbba6f08/removal-preview'
{  "revoked_api_keys": 0,  "revoked_preview_grants": 0,  "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}

Preview a member update

POST
/orgs/{org_id}/members/{user_id}/update-preview

Authorization

user_jwt write:members
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:members

Path Parameters

org_id*string

The organization ID

Formatuuid
user_id*string

The user ID

Formatuuid

Request Body

application/json
  1. body
roles*array<string>

The member's complete new role set.

Items1 <= items

Response Body

The change impact

application/json
  1. response
revoked_api_keys*integer

The number of API keys the change would revoke.

Formatint64
Range0 <= value
revoked_preview_grants*integer

The number of preview grants the change would revoke.

Formatint64
Range0 <= value
curl -X POST 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members/497f6eca-6276-4993-bfeb-53cbbbba6f08/update-preview' \  -H 'Content-Type: application/json' \  -d '{  "roles": [    "string"  ]}'
{  "revoked_api_keys": 0,  "revoked_preview_grants": 0}
GET
/orgs/{org_id}/otel-config

Header values are write-only and are never returned.

Authorization

user_jwt read:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Response Body

The telemetry configuration

application/json
  1. response

An organization's telemetry configuration: the endpoint and the names of the configured request headers. Header values are write-only and are never returned.

created_at*|

When the configuration was created, or null when it is unset.

Formatdate-time
endpoint*|

The tenant's OTLP/HTTP endpoint.

header_names*array<string>

Names of the request headers configured; values are write-only and never returned.

updated_at*|

When the configuration was last updated, or null when it is unset.

Formatdate-time
curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/otel-config'
{  "created_at": "2019-08-24T14:15:22Z",  "endpoint": "string",  "header_names": [    "string"  ],  "updated_at": "2019-08-24T14:15:22Z"}
DELETE
/orgs/{org_id}/otel-config

Stops forwarding sandbox telemetry for the organization.

Authorization

user_jwt write:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Response Body

Telemetry configuration reset

curl -X DELETE 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/otel-config'
Empty
PUT
/orgs/{org_id}/otel-config

Replaces the forwarding endpoint and request headers. Header values are write-only, and an unknown request field is rejected.

Authorization

user_jwt write:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Request Body

application/json
  1. body

The telemetry configuration to set. headers defaults to empty, and an unknown field is rejected with 400.

endpoint*string

OTLP/HTTP endpoint (https://…; plaintext http only where the deployment allows insecure endpoints).

headers?

Request headers sent to the endpoint, name → value. Values are write-only: no read returns them.

Response Body

The telemetry configuration

application/json
  1. response

An organization's telemetry configuration: the endpoint and the names of the configured request headers. Header values are write-only and are never returned.

created_at*|

When the configuration was created, or null when it is unset.

Formatdate-time
endpoint*|

The tenant's OTLP/HTTP endpoint.

header_names*array<string>

Names of the request headers configured; values are write-only and never returned.

updated_at*|

When the configuration was last updated, or null when it is unset.

Formatdate-time
curl -X PUT 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/otel-config' \  -H 'Content-Type: application/json' \  -d '{  "endpoint": "string"}'
{  "created_at": "2019-08-24T14:15:22Z",  "endpoint": "string",  "header_names": [    "string"  ],  "updated_at": "2019-08-24T14:15:22Z"}
PATCH
/orgs/{org_id}/preview-warning

Turns the preview warning page off or on for the organization's sandbox previews. When plan requirements are enforced, turning it off requires this setting to be included in the organization's plan; turning it on does not.

Authorization

user_jwt write:organization
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:organization

Path Parameters

org_id*string

The organization ID

Formatuuid

Request Body

application/json
  1. body

Turns the preview warning page off or on. Unknown fields are rejected.

disabled*boolean

true turns the preview warning page off for every sandbox preview of the organization (needs the preview_warning_opt_out entitlement where enforcement is on); false turns it back on.

Response Body

The preview warning setting

application/json
  1. response

An organization's preview-warning setting.

disabled*boolean

Whether sandbox previews skip the warning page.

curl -X PATCH 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/preview-warning' \  -H 'Content-Type: application/json' \  -d '{  "disabled": true}'
{  "disabled": true}
GET
/orgs/{org_id}/sso/connections

Lists the single sign-on connections configured for the organization. An organization that has not completed setup has no connections.

Authorization

user_jwt read:sso
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: read:sso

Path Parameters

org_id*string

The organization ID

Formatuuid

Query Parameters

limit?integer

Maximum number of items to return, 1–200 (default 100)

Formatint64
Range1 <= value <= 200
Default100
cursor?string

Opaque continuation token returned as next_cursor by a previous request

Response Body

The page of single sign-on connections

application/json
  1. response
connections*array<>

The organization's single sign-on connections.

next_cursor?|

Opaque continuation token for the next page, or null on the last page.

curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/sso/connections'
{  "connections": [    {      "connection_type": "string",      "created_at": "2019-08-24T14:15:22Z",      "domains": [        "string"      ],      "id": "string",      "name": "string",      "status": "string",      "updated_at": "2019-08-24T14:15:22Z"    }  ],  "next_cursor": "string"}
POST
/orgs/{org_id}/sso/setup-links

Creates a short-lived link for configuring single sign-on or directory sync. The link expires five minutes after issuance.

Authorization

user_jwt write:sso
headerAuthorizationBearer <token>

Bearer access token for a signed-in user.

Scope: write:sso

Path Parameters

org_id*string

The organization ID

Formatuuid

Request Body

application/json
  1. body

Settings for creating a single sign-on setup link.

intent*PortalIntent

The setup area to open: sso for single sign-on or dsync for directory sync.

Value in"sso""dsync"

Response Body

The created single sign-on setup link

application/json
  1. response
url*string

The setup URL, which expires five minutes after issuance.

curl -X POST 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/sso/setup-links' \  -H 'Content-Type: application/json' \  -d '{  "intent": "sso"}'
{  "url": "string"}