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
| Field | Type | Required | Notes |
|---|---|---|---|
email | string | yes | Length 3–254. |
role | "owner", "member" | no | Default "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
| Status | Meaning |
|---|---|
401 | Unauthenticated, invalid token or revoked key. |
403 | Forbidden, session required or org required. |
409 | Already exists, or stale version. |
422 | Validation failed. |
429 | Quota or rate limit exceeded; error.details says which, and when. |
500 | Internal error; quote error.request_id when reporting it. |
Every one carries the same envelope.