Members
List the members of one organization. The caller must be a seated member holding read:members. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuidOrganization members
application/json- response
members*array<>curl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members'{ "members": [ { "email": "string", "name": "string", "role": "string", "roles": [ "string" ], "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5" } ]}Replace a member's role assignments in one organization. The caller must be a seated member holding write:members; the route also enforces the delegation rules and last-admin guard. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuiduser_id*stringMember user id
uuidapplication/json- body
dry_run?|Rehearse: run the full path and the cascade, then roll back (PLAN-NARROWING-REVOCATION-WARNING.md). Absent means false.
roles*array<string>The member's complete new role set (slugs). Required and non-empty:
the handler answers 400 otherwise — Option only so the error names
the field instead of failing at deserialization.
1 <= itemsUpdated member, or a dry-run preview when dry_run is true
application/json- response
dry_run*booleanrevoked_keys*integerint640 <= valuecurl -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" ]}'{ "dry_run": true, "revoked_keys": 0}Remove a membership from one organization. Removing yourself requires only read:organization; removing another member requires delete:members. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuiduser_id*stringMember user id
uuidRemoved member
application/json- response
removed*stringuuidrevoked_keys*integerint640 <= valuerevoked_preview_grants*integerSigned preview grants the member minted that the removal deleted (issue #1297, Leg B; PLAN-MEMBER-REMOVAL-KEY-REVOCATION.md D12).
int640 <= valuecurl -X DELETE 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "removed": "b07f53d7-69c3-4e70-b8bd-5f0f78ddacb1", "revoked_keys": 0, "revoked_preview_grants": 0}Preview how many keys would be revoked if this membership were removed. Removing yourself requires only read:organization; removing someone else requires delete:members. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringOrganization id
uuiduser_id*stringMember user id
uuidMembership-removal preview
application/json- response
revoked_keys*integerint64revoked_preview_grants?|Signed preview grants the member minted that removal would delete
(issue #1297, Leg B). null — not 0 — when Redis is unconfigured or
unreachable: an unknown must not read as an all-clear.
int64user_id*stringuuidcurl -X GET 'https://example.com/orgs/497f6eca-6276-4993-bfeb-53cbbbba6f08/members/497f6eca-6276-4993-bfeb-53cbbbba6f08/removal-preview'{ "revoked_keys": 0, "revoked_preview_grants": 0, "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}List who can access one project. The caller must be able to enter the project and hold read:members in the owning organization. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringProject id, or the literal default for the caller's default project alias
Project members
application/json- response
members*array<>curl -X GET 'https://example.com/projects/string/members'{ "members": [ { "added_at": "2019-08-24T14:15:22Z", "email": "string", "implicit": true, "name": "string", "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5" } ]}Add one explicit project-membership row. The caller must be able to enter the project and hold write:members in the owning organization. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringProject id, or the literal default for the caller's default project alias
application/json- body
user_id*stringuuidAdded project member ids
application/json- response
added*array<>curl -X POST 'https://example.com/projects/string/members' \ -H 'Content-Type: application/json' \ -d '{ "user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"}'{ "added": [ "cfeefd5f-7de0-424c-ae7a-a31ee9b42101" ]}Add up to 200 explicit project-membership rows in one request. The caller must be able to enter the project and hold write:members in the owning organization. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringProject id, or the literal default for the caller's default project alias
application/json- body
user_ids*array<>Added project member ids
application/json- response
added*array<>curl -X POST 'https://example.com/projects/string/members/bulk' \ -H 'Content-Type: application/json' \ -d '{ "user_ids": [ "2d98503d-4ab4-41bd-8fc6-78cc006fd2db" ]}'{ "added": [ "cfeefd5f-7de0-424c-ae7a-a31ee9b42101" ]}Remove one explicit project-membership row and revoke that member's keys in the project when needed. The caller must be able to enter the project and hold write:members in the owning organization. Only an OIDC user JWT is admitted on this route; dtno_ organization API keys are not.
user_jwtAuthorizationBearer <token>OIDC access token of a signed-in user (the dashboard/CLI login) used on the management plane: /me, /orgs*, /projects*, /invitations*, /roles, billing, audit, API-key, and service-account routes. Every management operation documents the org/project permission the authenticated member must hold.
id*stringProject id, or the literal default for the caller's default project alias
user_id*stringMember user id
uuidRemoved project member
application/json- response
removed*stringuuidrevoked_keys*integer0 <= valuecurl -X DELETE 'https://example.com/projects/string/members/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "removed": "b07f53d7-69c3-4e70-b8bd-5f0f78ddacb1", "revoked_keys": 0}