> 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/users.md).

# Users

User management endpoints

## Get current user's details

> Retrieve current user's details

```json
{"openapi":"3.0.3","info":{"title":"Tenant API","version":"0.1.0"},"tags":[{"name":"Users","description":"User 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":{"UserResponse":{"type":"object","description":"Response payload containing user details","required":["id","email","first_name","last_name","status","email_verified","phone_verified","created_at","updated_at"],"properties":{"id":{"type":"string","description":"Unique identifier for the user","format":"uuid","readOnly":true},"email":{"type":"string","description":"User's email address","format":"email"},"first_name":{"type":"string","description":"User's first name","minLength":1,"maxLength":50},"middle_name":{"type":"string","description":"User's middle name","minLength":1,"maxLength":50},"last_name":{"type":"string","description":"User's last name","minLength":1,"maxLength":50},"phone_number":{"type":"string","description":"User's phone number in E.164 format","pattern":"^\\+?[1-9]\\d{1,14}$"},"status":{"$ref":"#/components/schemas/ResourceState"},"email_verified":{"type":"boolean","description":"Whether the user's email address has been verified"},"phone_verified":{"type":"boolean","description":"Whether the user's phone number has been verified"},"oauth_provider":{"type":"string","description":"OAuth provider used for authentication","enum":["google","github"]},"oauth_provider_id":{"type":"string","description":"OAuth provider user ID"},"email_verified_at":{"type":"string","description":"Timestamp when the email was verified","format":"date-time","nullable":true,"readOnly":true},"phone_verified_at":{"type":"string","description":"Timestamp when the phone was verified","format":"date-time","nullable":true,"readOnly":true},"created_at":{"type":"string","description":"Timestamp when the user was created","format":"date-time","readOnly":true},"updated_at":{"type":"string","description":"Timestamp when the user was last updated","format":"date-time","readOnly":true},"roles":{"type":"object","description":"User's organization and project roles","nullable":true,"properties":{"organizations":{"type":"array","description":"List of organization memberships with roles","items":{"$ref":"#/components/schemas/UserOrganizationRole"}},"projects":{"type":"array","description":"List of project memberships with roles","items":{"$ref":"#/components/schemas/UserProjectRole"}}}}}},"ResourceState":{"type":"string","description":"The lifecycle state of a resource (user/organization/project)","enum":["active","suspended","archived","inactive"],"default":"active"},"UserOrganizationRole":{"type":"object","description":"Organization membership with role","required":["org_id","role"],"properties":{"org_id":{"type":"string","description":"Organization ID"},"role":{"type":"string","description":"User's role in the organization","enum":["owner","admin","member"]}}},"UserProjectRole":{"type":"object","description":"Project membership with role","required":["org_id","project_id","role"],"properties":{"org_id":{"type":"string","description":"Organization ID (e.g., \"org-xxx\")"},"project_id":{"type":"string","description":"Project ID (e.g., \"prj-xxx\")"},"role":{"type":"string","description":"User's role 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/users/me":{"get":{"operationId":"getMe","summary":"Get current user's details","description":"Retrieve current user's details","tags":["Users"],"responses":{"200":{"description":"Profile retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserResponse"}}}},"401":{"description":"Missing or invalid authentication token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"User not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error occurred while retrieving user's details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Delete current user's account

> Delete current user's account

```json
{"openapi":"3.0.3","info":{"title":"Tenant API","version":"0.1.0"},"tags":[{"name":"Users","description":"User 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":{"DeleteMeRequest":{"type":"object","description":"Request payload for deleting current user's account","required":["password"],"properties":{"password":{"type":"string","description":"Password for verification","writeOnly":true}}},"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/users/me":{"delete":{"operationId":"deleteMe","summary":"Delete current user's account","description":"Delete current user's account","tags":["Users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteMeRequest"}}}},"responses":{"200":{"description":"Account deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Invalid password 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"}}}},"404":{"description":"User not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error occurred while deleting account.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## Change password

> Change current user's password (requires current password verification)

```json
{"openapi":"3.0.3","info":{"title":"Tenant API","version":"0.1.0"},"tags":[{"name":"Users","description":"User 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":{"ChangePasswordRequest":{"type":"object","description":"Request payload for changing user's password","required":["current_password","new_password"],"properties":{"current_password":{"type":"string","format":"password","description":"Current password for verification","writeOnly":true},"new_password":{"type":"string","format":"password","description":"New password for the user account. Must be at least 8 characters long, and contain at least one uppercase letter, one lowercase letter, one digit, and one special character.\n","minLength":8,"maxLength":50,"writeOnly":true}}},"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/users/me/change-password":{"put":{"operationId":"changePassword","summary":"Change password","description":"Change current user's password (requires current password verification)","tags":["Users"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordRequest"}}}},"responses":{"200":{"description":"Password changed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Invalid password format or missing required fields.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Missing or invalid authentication token, or current password is incorrect.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error occurred while changing password.","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/users.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.
