Invites
API for inviting teammates into an organization and managing invites that have not been accepted yet. Every invite is addressed by the email it was sent to. Creating or resending an invite sends an email to that address.
Returns every invite for the organization, newest first, including invites that were already accepted or revoked. Check status to find the pending ones.
1500OK
Bad request
Unauthorized
Forbidden
Not found
Method not allowed
Conflict
Unprocessable Content
Internal server error
Default error response
GET /v1/org/{org_id}/invites HTTP/1.1
Accept: */*
[
{
"org_id": "text",
"email": "text",
"role": "user",
"status": "invited",
"invited_by": null,
"created_at": "2026-01-01T00:00:00.000Z"
}
]Sends an invitation email to the address. Returns 201 with the new invite. If the address already has an invite in this organization, no second invite is created: the existing one is resent and returned with 200, keeping its original role. A revoked or rejected invite is reinstated as pending. An address that already accepted its invite is a member, so this returns 409.
Address to send the invitation email to
Role to grant on acceptance. Defaults to the organization's default role. Ignored when the address already has an invite.
OK
Organization the invite belongs to
[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\ZAddress the invite was sent to, and its identifier in this API
Role the invitee holds in the organization
'invited' is pending; 'accepted', 'rejected' and 'revoked' are final
Email of the user who sent the invite
When the invite was first created
A new invite was created and emailed
Bad request
Unauthorized
Forbidden
Not found
Method not allowed
Conflict
Unprocessable Content
Internal server error
Default error response
POST /v1/org/{org_id}/invites HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 40
{
"email": "name@gmail.com",
"role": "user"
}{
"org_id": "text",
"email": "text",
"role": "user",
"status": "invited",
"invited_by": null,
"created_at": "2026-01-01T00:00:00.000Z"
}Revokes a pending invite and removes the access it granted. The invite link stops working. Only a pending invite can be revoked. Unlike most deletes in this API this returns 200 and the invite, because the invite is not deleted: it stays on the list with status 'revoked', and the response is how the caller sees that.
OK
Organization the invite belongs to
[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\ZAddress the invite was sent to, and its identifier in this API
Role the invitee holds in the organization
'invited' is pending; 'accepted', 'rejected' and 'revoked' are final
Email of the user who sent the invite
When the invite was first created
Bad request
Unauthorized
Forbidden
Not found
Method not allowed
Conflict
Internal server error
Default error response
DELETE /v1/org/{org_id}/invites/{email} HTTP/1.1
Accept: */*
{
"org_id": "text",
"email": "text",
"role": "user",
"status": "invited",
"invited_by": null,
"created_at": "2026-01-01T00:00:00.000Z"
}Changes the role the invitee will hold. Only a pending invite can be changed; use the organization's member management to change the role of someone who has already accepted.
New role for the pending invite
OK
Organization the invite belongs to
[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\ZAddress the invite was sent to, and its identifier in this API
Role the invitee holds in the organization
'invited' is pending; 'accepted', 'rejected' and 'revoked' are final
Email of the user who sent the invite
When the invite was first created
Bad request
Unauthorized
Forbidden
Not found
Method not allowed
Conflict
Unprocessable Content
Internal server error
Default error response
PATCH /v1/org/{org_id}/invites/{email} HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 15
{
"role": "user"
}{
"org_id": "text",
"email": "text",
"role": "user",
"status": "invited",
"invited_by": null,
"created_at": "2026-01-01T00:00:00.000Z"
}Sends the invitation email again, to the same address, with the same invite link. A revoked, rejected or accepted invite cannot be resent.
OK
Organization the invite belongs to
[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}\ZAddress the invite was sent to, and its identifier in this API
Role the invitee holds in the organization
'invited' is pending; 'accepted', 'rejected' and 'revoked' are final
Email of the user who sent the invite
When the invite was first created
Bad request
Unauthorized
Forbidden
Not found
Method not allowed
Conflict
Internal server error
Default error response
POST /v1/org/{org_id}/invites/{email}/resend HTTP/1.1
Accept: */*
{
"org_id": "text",
"email": "text",
"role": "user",
"status": "invited",
"invited_by": null,
"created_at": "2026-01-01T00:00:00.000Z"
}Last updated
Was this helpful?

