---
title: "Add User To Project"
method: POST
path: "/projects/{project_id}/users"
tags: ["Projects"]
---

# Add User To Project

`POST /projects/{project_id}/users`

## Request

- Base URL: `https://api.aspect.inc`
- URL: `https://api.aspect.inc/projects/{project_id}/users`
- Auth: API key in header `Authorization`

Add a user to a project with the specified role.

If the person has no Aspect account yet, they're invited by email.

Requirements:
- Requires FULL_ACCESS on the project
- Cannot set project permissions for workspace owners (they always have full access)
- If the user doesn't have workspace access, auto-creates member_limited workspace permission,
  which takes a seat; only a workspace admin's add can buy that seat (`purchase_seat`)

Role must be a valid project role: full_access, editor, commenter, downloader, viewer

## Path parameters

- `project_id` string, uuid, required

## Request body

- ProjectAddUserRequest: Add a person to a project. If the email has no Aspect account yet, the person is invited.
  - `email` string, required: Email of the user to add to project
  - `role` 'full_access' | 'editor' | 'commenter' | 'downloader' | 'viewer' | 'no_access': Role on a project.
  - `purchase_seat` boolean: Buy a seat if none is free (prorated, charged now). Ignored when a seat is free. Only when the person is new to the workspace and you're a workspace admin.

## Response `201`

Successful Response

- ProjectUserResponse: 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
  - `avatar_url` string, nullable: User's avatar URL
  - `role` 'full_access' | 'editor' | 'commenter' | 'downloader' | 'viewer' | 'no_access', required: Role on a project.
  - `workspace_role` 'owner' | 'member' | 'member_limited', required: Role in a workspace.
  - `has_explicit_permission` boolean, required: True when the role was set on this project directly. False when it comes from the project's default role or workspace ownership.

## Other responses

- `422`: Validation Error

---

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