Skip to main content
POST
Add User To Project

Authorizations

Authorization
string
header
required

JWT in Authorization header. 'Bearer ' prefix optional.

Path Parameters

project_id
string<uuid>
required

Body

application/json

API request schema for adding a user to a project.

If the email belongs to an unregistered user, a stub user will be created.

Note: NO_ACCESS role is only valid for MEMBER users (to block their default access). For MEMBER_LIMITED users, NO_ACCESS is invalid since they already have no access without explicit permission. This constraint is enforced at the route handler level.

email
string
required

Email of the user to add to project

role
enum<string>
default:editor

Role to assign to the user (must be a project role: full_access, editor, commenter, downloader, viewer; no_access only valid for MEMBER users)

Available options:
owner,
member,
member_limited,
full_access,
editor,
commenter,
downloader,
viewer,
no_access

Response

Successful Response

API response schema for a user with project access.

id
string<uuid>
required

User ID

first_name
string
required

User's first name

last_name
string
required

User's last name

email
string
required

User's email address

role
enum<string>
required

User's effective role on this project

Available options:
owner,
member,
member_limited,
full_access,
editor,
commenter,
downloader,
viewer,
no_access
actions
integer
required

Permission bitmap derived from role

workspace_role
enum<string>
required

User's workspace role (for determining editability)

Available options:
owner,
member,
member_limited,
full_access,
editor,
commenter,
downloader,
viewer,
no_access
has_explicit_permission
boolean
required

True if user has explicit permission on this project

avatar_url
string | null

User's avatar URL

external_id
string | null

External user ID from auth provider (None for stub users)