---
title: "Invite a member"
method: POST
path: "/v1/members/invitations"
tags: ["Members"]
---

# Invite a member

`POST /v1/members/invitations`

## Request

- Base URL: `https://api.mentio.dev`
- URL: `https://api.mentio.dev/v1/members/invitations`
- Auth: HTTP bearer

Send an email invitation to join the workspace as admin or member; it expires after 48 hours. Idempotent: an address that already holds an open invitation gets it back with 200 and no second email. An address that is already a member is a 409 already_member. Team changes need a signed-in owner or admin (an OAuth token from an MCP sign-in, or the dashboard session): an API key answers 403.

## Request body

- object
  - `email` string, email, required: The address to invite; it receives an email with a link to join.
  - `role` 'admin' | 'member': The role they join with. Ownership is only handed over in the dashboard.

## Response `200`

The open invitation this address already had

- Invitation
  - `id` string, required: Invitation id (inv_...).
  - `email` string, required: The invited address, lowercased.
  - `role` 'owner' | 'admin' | 'member', required: The role they join with.
  - `invitedBy` object, nullable, required: Who sent it; an API key invites on behalf of the oldest owner.
    - `id` string, required
    - `email` string, required
    - `name` string, nullable, required
  - `expiresAt` string, required: Invitations last 48 hours; an expired one is no longer listed.
  - `createdAt` string, required: When the invitation was sent.

## Other responses

- `201`: The invitation, emailed
- `401`: Missing or invalid API key
- `403`: The credential is an API key, or its person is not an owner or admin
- `409`: The address is already a member (already_member)

---

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