---
title: "Invite Member"
method: POST
path: "/v1/auth/tenants/{tenant_id}/invitations"
tags: ["auth", "auth"]
---

# Invite Member

`POST /v1/auth/tenants/{tenant_id}/invitations`

## Request

- Base URL: `https://api.elaan.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.elaan.io/v1/auth/tenants/{tenant_id}/invitations`
- Auth: none declared

Invite someone to the tenant by email with a role. Admin+ only. Refuses if
the email already belongs to a member (nothing to invite) or has a live pending
invite. Emits `UserInvited` (post-commit) → the dogfooded invite email with the
accept link.

## Path parameters

- `tenant_id` string, required

## Headers

- `authorization` string, nullable

## Request body

- InviteMemberRequest: Invite someone to the account with a role. `role` must be admin/member/viewer — owner is rejected (422).
  - `email` string, required
  - `role` string, required

## Response `201`

Successful Response

- InvitationResponse: A pending invitation, for the account's members/invites screen.
  - `id` string, required
  - `email` string, required
  - `role` string, required
  - `status` string, required
  - `expires_at` string, date-time, required
  - `created_at` string, date-time, required

## Other responses

- `403`: Not an admin (or higher) of that tenant
- `409`: A live invite for this email exists, or they're already a member
- `422`: Malformed email, or a role of owner

---

[API](https://skmtc.dev/elaan/apis/elaan-api.md) · [All operations](https://skmtc.dev/elaan/apis/elaan-api/llms.txt) · [OpenAPI document](https://skmtc.dev/elaan/apis/elaan-api/revisions/c96a7e6399aa?raw)
