invite_user
Invite someone to your Marcora account by email as a creator or admin, or into a specific project as a collaborator. An invitation email is sent automatically, and the response also returns the exact invite link so you can share it directly. Admins can invite any role; a creator can invite collaborators only.
Parameters
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
email | string | Yes | — | Email address of the person to invite |
role | string | Yes | — | Role to grant: admin, creator, or collaborator |
project_id | string | No | — | Project UUID (from list_projects). Required for collaborator; for creator/admin, optionally also adds them to this project and deep-links their invite to it. |
Input Schema
{
"type": "object",
"required": [
"email",
"role"
],
"properties": {
"role": {
"enum": [
"admin",
"creator",
"collaborator"
],
"type": "string",
"description": "Role to grant: admin, creator, or collaborator"
},
"email": {
"type": "string",
"description": "Email address of the person to invite"
},
"project_id": {
"type": "string",
"format": "uuid",
"description": "Project UUID (from list_projects). Required for collaborator; for creator/admin, optionally also adds them to this project and deep-links their invite to it."
}
}
}Output Schema
{
"type": "object",
"required": [
"outcome",
"emailed",
"message",
"email",
"role"
],
"properties": {
"role": {
"type": "string",
"description": "`admin`, `creator`, or `collaborator`."
},
"email": {
"type": "string",
"description": "The invited email address."
},
"emailed": {
"type": "boolean",
"description": "True when an invitation email was sent."
},
"message": {
"type": "string",
"description": "Human-readable summary of what happened."
},
"outcome": {
"type": "string",
"description": "`invited` (an invitation email was sent) or `added_to_project` (the email was already a team member and was added straight to the project)."
},
"project_id": {
"type": [
"string",
"null"
],
"description": "Project the invitee was added to / pointed at, if any."
},
"invite_link": {
"type": [
"string",
"null"
],
"description": "The exact link to share directly — the sign-up link (with the project deep-link when a project was given) for new users, or the login URL for existing users. null when no invitation was sent."
},
"invite_token": {
"type": [
"string",
"null"
],
"description": "Invitation token, when one was sent."
},
"existing_user": {
"type": [
"boolean",
"null"
],
"description": "True if the email already had a Marcora account (login link) vs a new sign-up link."
},
"invitation_id": {
"type": [
"integer",
"null"
],
"description": "ID of the created/reused invitation, when one was sent."
}
}
}Instructions
Invite someone to your Marcora account by email. An invitation email is sent automatically, and the response also returns the exact invite_link so you can share it directly — for example, paste it to the person in Slack.
When to use: when the user wants to add someone to their team or to a project — "invite jordan@acme.com", "add Sam to the Website Update project", "get me a sign-up link for Priya".
Roles
| Role | What they get |
|---|---|
creator |
A full team member who can create and edit content |
admin |
A team administrator |
collaborator |
A project-scoped member who works only inside one project |
Who can invite whom
You must be an admin to invite someone as an admin or a creator — admins can invite any role. A creator can invite collaborators only. Viewers cannot invite anyone.
project_iddoes not restrict a creator or an admin. It is required for acollaborator— that's the project they'll collaborate on. For acreatororadminit is optional and does not limit their access; they keep full team access. It simply also adds them to that project and deep-links their invite so they land in it on first sign-in. Get the UUID fromlist_projects.
Brand-new invitees are emailed a sign-up link. People who already have a Marcora account are emailed a login link and see the invitation in-app once they log in.
Output
| Field | Type | Description |
|---|---|---|
outcome |
string | invited (an invitation email was sent) or added_to_project (the email was already a team member and was added straight to the project) |
emailed |
boolean | True when an invitation email was sent |
invite_link |
string | null | The exact link to share directly — the sign-up link (with the project deep-link when a project was given) for new users, or the login URL for existing users. null when no invitation was sent |
message |
string | Human-readable summary of what happened |
email |
string | The invited email address |
role |
string | admin, creator, or collaborator |
project_id |
string | null | Project the invitee was added to / pointed at, if any |
existing_user |
boolean | null | True if the email already had a Marcora account (login link) vs a new sign-up link |
invitation_id |
integer | null | ID of the created/reused invitation, when one was sent |
invite_token |
string | null | Invitation token, when one was sent |
Only outcome, emailed, message, email and role are always present — the rest are null when they don't apply.
Errors. A
collaboratorwith noproject_idreturns a 400. Inviting acreatororadminwhen you are not an admin returns a 403. An email that is already an active team member (with no project to add them to), or that already has a pending invitation, returns a clear error.
Example prompts
- "Invite jordan@acme.com to the team as a creator"
- "Add sam@acme.com as a collaborator on the Website Update project"
- "Invite priya@acme.com as an admin and give me the sign-up link to send her"