> For the complete documentation index, see [llms.txt](https://docs.ai.neevcloud.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ai.neevcloud.com/api-reference/tenant/project-members.md).

# Project Members

Project member management endpoints

## List project members

> Retrieve all members of a project

```json
{"openapi":"3.0.3","info":{"title":"Tenant API","version":"0.1.0"},"tags":[{"name":"Project Members","description":"Project member management endpoints"}],"servers":[{"url":"https://api.ai.neevcloud.com/tenant","description":"Consolidated public API gateway"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Use the **`access_token`** from `POST /api/v1/auth/login` (same credentials as the console). In **Authorize**, paste **only that token** — do not prepend `Bearer`, and do not use inference keys (`sk-nc-*`) here. The same token authenticates this API and AI Models / AI Runtime.\n"}},"schemas":{"ProjectMemberListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProjectMemberResponse"}}}},"ProjectMemberResponse":{"type":"object","description":"Response payload containing project member details","required":["member_id","member_role","member_email"],"properties":{"member_id":{"type":"string","description":"Unique identifier of the member user","format":"uuid"},"member_role":{"$ref":"#/components/schemas/ProjectRole"},"member_email":{"type":"string","format":"email","description":"Email address of the member user"}}},"ProjectRole":{"type":"string","description":"Role to be assigned to the member in the project","enum":["admin","member"]},"ErrorResponse":{"type":"object","description":"Standard error response containing an error message","required":["code","message"],"properties":{"code":{"type":"string","description":"A short, machine-readable error code."},"message":{"type":"string","description":"A descriptive error message."}}}}},"paths":{"/api/v1/orgs/{org_id}/projects/{project_id}/members":{"get":{"operationId":"listProjectMembers","summary":"List project members","description":"Retrieve all members of a project","tags":["Project Members"],"parameters":[{"name":"org_id","description":"Organization ID","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","description":"Project ID","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Project members retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectMemberListResponse"}}}},"400":{"description":"Invalid organization ID or project ID format.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Insufficient permissions to list project members.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Organization or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error occurred while retrieving project members.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Add project member

> Add a new member to a project

```json
{"openapi":"3.0.3","info":{"title":"Tenant API","version":"0.1.0"},"tags":[{"name":"Project Members","description":"Project member management endpoints"}],"servers":[{"url":"https://api.ai.neevcloud.com/tenant","description":"Consolidated public API gateway"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Use the **`access_token`** from `POST /api/v1/auth/login` (same credentials as the console). In **Authorize**, paste **only that token** — do not prepend `Bearer`, and do not use inference keys (`sk-nc-*`) here. The same token authenticates this API and AI Models / AI Runtime.\n"}},"schemas":{"AddProjectMemberRequest":{"type":"object","description":"Request payload for adding or updating a project member","required":["member_id","member_role"],"properties":{"member_id":{"type":"string","description":"Unique identifier of the user to be added as a project member","format":"uuid"},"member_role":{"$ref":"#/components/schemas/ProjectRole"}}},"ProjectRole":{"type":"string","description":"Role to be assigned to the member in the project","enum":["admin","member"]},"AddProjectMemberResponse":{"type":"object","description":"Response payload for adding or updating a project member","required":["member_id","member_role"],"properties":{"member_id":{"type":"string","description":"Unique identifier of the user to be added as a project member","format":"uuid"},"member_role":{"$ref":"#/components/schemas/ProjectRole"},"message":{"type":"string","description":"Confirmation message about the project member added successfully"}}},"ErrorResponse":{"type":"object","description":"Standard error response containing an error message","required":["code","message"],"properties":{"code":{"type":"string","description":"A short, machine-readable error code."},"message":{"type":"string","description":"A descriptive error message."}}}}},"paths":{"/api/v1/orgs/{org_id}/projects/{project_id}/members":{"post":{"operationId":"addProjectMember","summary":"Add project member","description":"Add a new member to a project","tags":["Project Members"],"parameters":[{"name":"org_id","description":"Organization ID","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","description":"Project ID","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddProjectMemberRequest"}}}},"responses":{"201":{"description":"Member added successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddProjectMemberResponse"}}}},"400":{"description":"Invalid member data format or missing required fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Insufficient permissions to add project member.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Organization, project, or user not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"User is already a member of the project.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error occurred while adding member.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Remove project member

> Remove a member from a project

```json
{"openapi":"3.0.3","info":{"title":"Tenant API","version":"0.1.0"},"tags":[{"name":"Project Members","description":"Project member management endpoints"}],"servers":[{"url":"https://api.ai.neevcloud.com/tenant","description":"Consolidated public API gateway"}],"security":[{"BearerAuth":[]}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Use the **`access_token`** from `POST /api/v1/auth/login` (same credentials as the console). In **Authorize**, paste **only that token** — do not prepend `Bearer`, and do not use inference keys (`sk-nc-*`) here. The same token authenticates this API and AI Models / AI Runtime.\n"}},"schemas":{"SuccessResponse":{"type":"object","description":"Generic success response containing a message","required":["message"],"properties":{"message":{"type":"string","description":"A descriptive success message"}}},"ErrorResponse":{"type":"object","description":"Standard error response containing an error message","required":["code","message"],"properties":{"code":{"type":"string","description":"A short, machine-readable error code."},"message":{"type":"string","description":"A descriptive error message."}}}}},"paths":{"/api/v1/orgs/{org_id}/projects/{project_id}/members/{member_id}":{"delete":{"operationId":"removeProjectMember","summary":"Remove project member","description":"Remove a member from a project","tags":["Project Members"],"parameters":[{"name":"org_id","description":"Organization ID","in":"path","required":true,"schema":{"type":"string"}},{"name":"project_id","description":"Project ID","in":"path","required":true,"schema":{"type":"string"}},{"name":"member_id","description":"Member User ID","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Member removed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Insufficient permissions to remove project member.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Organization, project, or member User not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error occurred while removing member User.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ai.neevcloud.com/api-reference/tenant/project-members.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
