Overview
A project invite offers someone a role on a project: Read, Write, or Admin. The role sets what they can do in the project. It can go to any email address, including one with no LiveKit account yet.
The invite includes a token that identifies it when the recipient accepts or declines. Only the invited email address can answer the invite. The role takes effect only when they accept and become a project member.
An invite expires 48 hours after it's sent. An expired invite returns 400. Inviting the same address again replaces the earlier invite with a new token, role, and expiry. To change only the role, update the invite.
Listing invites needs the Read role on the project. Sending, updating, and deleting invites need the Admin role.
To call these endpoints from the CLI, use the lk project invite commands, for example lk project invite list --user-auth.
The project invite object
A pending email invite to a project. The recipient answers it with the token the invite carries.
projectIdstringThe project the invite is to (p_...).
emailstringThe email address the invite was sent to.
roleint32Access level the invitee takes on the project: 0 invited, 1 read, 2 write, 3 admin.
inviteTokenstringThe token that identifies the invite. The invitee answers with it. Only GetInvite returns it, to the invitee who asks with it. ListInvites and UpdateInvite leave it empty. InviteMember returns the token of the invite that it creates.
expiresAttimestampWhen the invite stops working.
List invites
/v0/projects/{projectId}/invitesLists the unexpired invites of a project, ordered by email.
Returns a list of ProjectInvite objects, with a pageInfo cursor.
Path parameters
projectIdstringThe project ID (p_...).
Query parameters
page.cursorstringThe cursor of the page to return: the nextCursor of the previous page. When empty, the list starts at the first item.
page.pageSizeint32The maximum number of items to return. When 0, the list uses its default page size.
Invite member
/v0/projects/{projectId}/invitesPath parameters
projectIdstringThe project ID (p_...).
Request body
The request to invite a user to a project by email. When an invite for the email exists, the API refreshes it. The response has the invite token.
emailstringThe email address to invite.
roleint32Access level to grant on the project: 1 read, 2 write, 3 admin.
Response fields
projectIdstringThe projectId value.
inviteTokenstringThe inviteToken value.
Update invite
/v0/projects/{projectId}/invites/{email}Returns the ProjectInvite object.
Path parameters
projectIdstringThe project ID (p_...).
emailstringThe email address of the invited person.
Request body
roleint32Access level to set on the invite: 1 read, 2 write, 3 admin.
Delete invite
/v0/projects/{projectId}/invites/{email}Path parameters
projectIdstringThe project ID (p_...).
emailstringThe email address of the invited person.
Get invite
/v0/project-invites/{inviteToken}Returns the ProjectInvite object.
Path parameters
inviteTokenstringThe invite token. The link in the invite email carries it as the t query parameter, and ListInvites returns it.
Answer invitation
/v0/project-invites/{inviteToken}:answerIf accept is true, returns the ProjectMember object for the new member. If accept is false, returns an empty object.
Path parameters
inviteTokenstringThe invite token. The link in the invite email carries it as the t query parameter, and ListInvites returns it.
Request body
acceptbooleanTrue accepts the invite; false declines it.