Skip to content
POST /invite/{id}/resend

Mints a fresh token and a fresh 7-day expiry for a pending invite, swapped onto the same row — the invite id is unchanged and the previous link stops working. The answer to "the invite email never arrived": creating the same invite again is refused as a duplicate (`409`), so this is the route that sends a new link. The raw `token` comes back once, as on create. The caller's own grant ceiling is re-checked against the invite's role, so resending can never hand out a role the caller could not grant. Requires `member:manage`.

Path Parameters

idstring
required·

Invite id (inv_…).

Response Body

created_atstring · date-time
emailstring · email

Lowercased at creation.

email_sentboolean

False when no invite email went out (the token still works).

expires_atstring · date-time

Seven days after creation.

idstring

Invite id (inv_…).

invited_bystring,null

User id (usr_…) of the inviter.

role_idsstring[]

The single role (role_…) the invitee receives on acceptance.

statusstring

Lifecycle state; only pending invites can still be accepted.

team_idsstring[]

Teams (team_…) they are added to.

tokenstring

Raw invite token — returned once, never retrievable again.

updated_atstring · date-time
curl -X POST 'https://api.elaichi.ai/invite/<id>/resend' \
  -H 'Authorization: Bearer $ELAICHI_API_TOKEN' \
  -H 'Content-Type: application/json'
const response = await fetch('https://api.elaichi.ai/invite/<id>/resend', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer ' + process.env.ELAICHI_API_TOKEN,
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
console.log(data);
import os
import requests

url = "https://api.elaichi.ai/invite/<id>/resend"
headers = {
    "Authorization": f"Bearer {os.environ['ELAICHI_API_TOKEN']}",
    "Content-Type": "application/json",
}

response = requests.post(url, headers=headers)
print(response.json())