Invite a member by email (owner/admin)
Invites an email address to the organization with any role but owner, up to your own access (custom roles need permissions enabled). Expires in seven days. Records a pending invite and emails the address. The response status is always "invited"; the user becomes a member only after they accept (POST /v1/me/invites/{orgId}/accept). Re-inviting the same email refreshes the invite's role and expiry. 409 if the email already belongs to a member.
Required permission
Checked against the member.invite permission for the resource it acts on. See Permissions for the roles and API key permissions that include it.
Command line
The orl CLI wraps this endpoint:
orl organizations member add --email <email>apiKeyAuthorizationBearer <token>OpenRelay API key. Send it as Authorization: Bearer or_… (legacy vl_… keys still work).
orgId*stringapplication/json- body
Send role or roleId.
email*stringrole?stringA built-in role. billing and inference need permissions enabled.
"admin""member""viewer""billing""inference"roleId?stringA custom role's id (role_...), for an organization with permissions enabled.
Added
application/json- response
userId*stringrole*stringroleName?stringThe role's display name (permissions enabled only).
email?stringfullName?stringavatarUrl?stringinvitedAt?stringjoinedAt?stringstatus?stringSet only on the addOrgMember response, where it is "invited": the invite is recorded and emailed, and the user becomes a member only after accepting it. Listed and updated members omit it, and "active" is not returned.
"active""invited"curl -X POST 'https://api.openrelay.inc/v1/orgs/string/members/add' \ -H 'Content-Type: application/json' \ -d '{ "email": "string"}'{ "userId": "string", "role": "string", "roleName": "string", "email": "string", "fullName": "string", "avatarUrl": "string", "invitedAt": "string", "joinedAt": "string", "status": "active"}Soft-delete an organization (owner only) DELETE
Owner-only soft-delete: members lose access and the org's remaining workloads are stopped. Support can restore the org, but not its Kubernetes clusters. Every cluster is deleted with the org, its workloads and data removed without a drain. 409 while any VM other than a Kubernetes cluster's worker is active, or the balance is not zero.
Leave an organization POST
Removes the signed-in user from the organization and revokes their playground keys. Organization keys are not affected. The organization must retain at least one owner.