Members

Invite a member

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.

POST
/v1/members/invitations
AuthorizationBearer <token>

API key minted via POST /v1/api-keys (format mk_live_...)

In: header

emailstring

The address to invite; it receives an email with a link to join.

Formatemail
Lengthlength <= 200
role?string

The role they join with. Ownership is only handed over in the dashboard.

Default"member"
Value in"admin" | "member"

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://api.mentio.dev/v1/members/invitations" \  -H "Content-Type: application/json" \  -d '{    "email": "user@example.com"  }'
{
  "id": "string",
  "email": "string",
  "role": "owner",
  "invitedBy": {
    "id": "string",
    "email": "string",
    "name": "string"
  },
  "expiresAt": "string",
  "createdAt": "string"
}
{
  "id": "string",
  "email": "string",
  "role": "owner",
  "invitedBy": {
    "id": "string",
    "email": "string",
    "name": "string"
  },
  "expiresAt": "string",
  "createdAt": "string"
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "retryAfterSeconds": 0
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "retryAfterSeconds": 0
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "string",
    "requestId": "string",
    "retryAfterSeconds": 0
  }
}