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.
API key minted via POST /v1/api-keys (format mk_live_...)
In: header
The address to invite; it receives an email with a link to join.
emaillength <= 200The role they join with. Ownership is only handed over in the dashboard.
"member""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
}
}Update the workspace filters PATCH
Replace any of the lists; an omitted list is untouched and an empty one clears it. Entries are stored in canonical form (terms lowercased, authors as profile links or bare names, repositories as owner/name, subreddits without r/). Takes effect on new mentions within a minute; stored mentions are untouched.
List pending invitations GET
Invitations sent and not yet accepted, declined or expired. An accepted one appears in GET /v1/members instead.