Skip to main content

Invite a teammate by email

POST /v1/invites

The invite is consumed on the invitee's first sign-in with that email address. Owners only. Invites expire after 14 days.

Credential. A dashboard session token belonging to an owner of the organisation.

curl --fail-with-body -X POST "https://api-833252724876.us-central1.run.app/v1/invites" \
-H "Authorization: Bearer $JEAN_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "ada@example.com"
}'

Body

FieldTypeRequiredNotes
emailstringyesLength 3–254.
role"owner", "member"noDefault "member".

Response · 201

{
"id": "inv_a1b2c3d4e5f6g7h8i9j0",
"org_id": "org_k3j2h4g5f6d7s8a9q0w1",
"email": "ada@example.com",
"role": "owner",
"invited_by": "usr_b2c3d4e5f6g7h8i9j0k1",
"created_at": "2026-01-15T09:30:00Z",
"expires_at": "2026-01-15T09:30:00Z",
"accepted_at": null,
"accepted_by": null,
"revoked_at": null
}

Errors

StatusMeaning
401Unauthenticated, invalid token or revoked key.
403Forbidden, session required or org required.
409Already exists, or stale version.
422Validation failed.
429Quota or rate limit exceeded; error.details says which, and when.
500Internal error; quote error.request_id when reporting it.

Every one carries the same envelope.

API overview · Full contract