Profile
The signed-in admin's own profile.
4 endpoints
GET /api/profile
Get Profile
my profile
Any admin
Response 200 Successful Response · Profile
Response fields
| Field | Type | Description |
|---|---|---|
username | string | |
role | string | |
display_name | string | |
bio | string | |
contact | string | |
avatar | string | |
created_at | string (date-time) | |
updated_at | string (date-time) | |
users | integer | |
users_limit | integer | |
traffic_limit | integer | |
traffic_used | integer | |
expire_date | string (date-time) |
json
{
"username": "string",
"role": "string",
"display_name": "",
"bio": "",
"contact": "",
"avatar": "string",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"users": 0,
"users_limit": 0,
"traffic_limit": 0,
"traffic_used": 0,
"expire_date": "2026-01-01T00:00:00Z"
}Errors: 401 Unauthorized
bash
curl -X GET 'https://YOUR-PANEL/api/profile' \
-H 'Authorization: Bearer $TOKEN'PUT /api/profile
Edit Profile
change my picture, name, bio or contact (a field left out stays as it is)
Any admin
Request body application/json · ProfileEdit
| Field | Type | Required | Description |
|---|---|---|---|
display_name | string | no | |
bio | string | no | |
contact | string | no | |
avatar | string | no |
json
{
"display_name": "string",
"bio": "string",
"contact": "string",
"avatar": "string"
}Response 200 Successful Response · Profile
Response fields
| Field | Type | Description |
|---|---|---|
username | string | |
role | string | |
display_name | string | |
bio | string | |
contact | string | |
avatar | string | |
created_at | string (date-time) | |
updated_at | string (date-time) | |
users | integer | |
users_limit | integer | |
traffic_limit | integer | |
traffic_used | integer | |
expire_date | string (date-time) |
json
{
"username": "string",
"role": "string",
"display_name": "",
"bio": "",
"contact": "",
"avatar": "string",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-01T00:00:00Z",
"users": 0,
"users_limit": 0,
"traffic_limit": 0,
"traffic_used": 0,
"expire_date": "2026-01-01T00:00:00Z"
}Errors: 401 Unauthorized
bash
curl -X PUT 'https://YOUR-PANEL/api/profile' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{"display_name": "string", "bio": "string", "contact": "string", "avatar": "string"}'POST /api/profile/password
Change Password
my own password: the current one first; my other sessions end, this one goes on
Any admin
Request body application/json · PasswordChange
| Field | Type | Required | Description |
|---|---|---|---|
current | string | yes | |
new | string | yes |
json
{
"current": "string",
"new": "string"
}Response 200 Successful Response
Errors: 401 Unauthorized
bash
curl -X POST 'https://YOUR-PANEL/api/profile/password' \
-H 'Authorization: Bearer $TOKEN' \
-H 'Content-Type: application/json' \
-d '{"current": "string", "new": "string"}'GET /api/profiles
List Profiles
the admins' names and pictures, for the admins list (the ones this admin may see)
Sudo admin only
Response 200 Successful Response · object
json
{
"key": {
"display_name": "",
"avatar": "string"
}
}Errors: 401 Unauthorized
bash
curl -X GET 'https://YOUR-PANEL/api/profiles' \
-H 'Authorization: Bearer $TOKEN'