Skip to content

Invite someone to an organization

POST
/v1/org/invite-member
curl --request POST \
--url https://your-tenant-host/v1/org/invite-member \
--header 'Content-Type: application/json' \
--header 'x-edgekit-site-id: site_example' \
--cookie ek.session_token=<ek.session_token> \
--data '{ "email": "ada@example.com", "role": "admin", "organizationId": "01926f3a-8b4e-7b33-a944-5e6f7a8b9c0d", "resend": true }'

Sends a seat offer to an address. Re-inviting an address that already holds a pending seat supersedes it rather than failing, so a retry is safe but mints a new invitation id; resend decides whether the mail goes out again. The invitee accepts with their own verified session, so an offer addressed to one person cannot be claimed by another.

x-edgekit-site-id
required

The site this request is for, within this tenant. Every official EdgeKit SDK sets it from the client you configured; set it yourself only when calling this API directly.

string
>= 1 characters <= 128 characters

Example

site_example

The site this request is for, within this tenant. Every official EdgeKit SDK sets it from the client you configured; set it yourself only when calling this API directly.

Media typeapplication/json
object
email
required
string format: email
<= 254 characters

Example

ada@example.com
role
required
string
Allowed values: admin member

Example

member
organizationId
string format: uuid
>= 1 characters <= 128 characters

Example

01926f3a-8b4e-7b33-a944-5e6f7a8b9c0d
resend
boolean

Example

true

The pending seat.

Media typeapplication/json
object
id
required
string format: uuid
organizationId
required
string format: uuid
email
required
string
role
required

Open: accept a member not listed. Known: owner, admin, member.

string | null
status
required

Open: accept a member not listed. Known: pending, accepted, rejected, canceled.

string | null
expiresAt
required
string | null format: date-time

Example

{
"id": "01926f3a-8b50-7d77-8188-7a8b9c0d1e2f",
"organizationId": "01926f3a-8b4e-7b33-a944-5e6f7a8b9c0d",
"email": "ada@example.com",
"role": "owner",
"status": "pending",
"expiresAt": "2026-08-02T09:00:00.000Z"
}

Invalid request.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Missing or invalid credential.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Not allowed.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Resource not found.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Request validation failed.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}

Unexpected error.

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details

Example

{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key."
}
}