Users
User administration and API keys.
9 endpoints · Plakar Control Plane v0.18 · Base URL, authentication and errors
Set the password of a user
/api/v1/account/organizations/{id}/users/{user_id}/password
Path parameters
-
idstring<uuid> requiredOrganization ID, at or below the caller’s. -
user_idstring required
Request body application/json required
-
passwordstring required
Response 200 OK application/json
-
tokenstring -
updated_atstring<date-time>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X PUT 'https://pcp.example.com/api/v1/account/organizations/{id}/users/{user_id}/password' \
-H 'Authorization: Bearer <badge>' \
-H 'Content-Type: application/json' \
-d '{
"password": "string"
}'Response 200
{
"token": "string",
"updated_at": "2026-01-01T00:00:00Z"
}List the users
/api/v1/users
Query parameters
-
offsetintegerNumber of items to skip.Default: 0 -
limitintegerMaximum number of items to return.Default: 100 Min: 1 Max: 100 -
searchstringFree-text search on users. -
isServicebooleanOnly service accounts, or only people.
Response 200 OK application/json
-
itemsarray[object]-
emailstring -
idstring<uuid> -
is_serviceboolean -
membershipsarray[object] nullable-
organization_idstring<uuid> -
organization_namestring
-
-
namestring
-
-
totalinteger
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/users' \
-H 'Authorization: Bearer <badge>'Response 200
{
"items": [
{
"email": "string",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"is_service": true,
"memberships": [
{
"organization_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"organization_name": "string"
}
],
"name": "string"
}
],
"total": 0
}Create a user
/api/v1/users
This endpoint is deprecated.
Request body application/json required
-
emailstring nullable -
is_serviceboolean -
namestring -
passwordstring nullable
Response 200 OK application/json
-
emailstring -
idstring<uuid> -
is_serviceboolean -
namestring -
passwordstring nullable
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/users' \
-H 'Authorization: Bearer <badge>' \
-H 'Content-Type: application/json' \
-d '{
"email": "string",
"is_service": true,
"name": "string",
"password": "string"
}'Response 200
{
"email": "string",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"is_service": true,
"name": "string",
"password": "string"
}Get a user
/api/v1/users/{user_id}
Path parameters
-
user_idstring required
Response 200 OK application/json
-
emailstring -
idstring<uuid> -
is_serviceboolean -
membershipsarray[object] nullable-
organization_idstring<uuid> -
organization_namestring
-
-
namestring
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/users/{user_id}' \
-H 'Authorization: Bearer <badge>'Response 200
{
"email": "string",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"is_service": true,
"memberships": [
{
"organization_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"organization_name": "string"
}
],
"name": "string"
}Update a user
/api/v1/users/{user_id}
Path parameters
-
user_idstring required
Request body application/json required
-
namestring required
Response 200 OK application/json
-
emailstring -
idstring<uuid> -
is_serviceboolean -
membershipsarray[object] nullable-
organization_idstring<uuid> -
organization_namestring
-
-
namestring
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X PUT 'https://pcp.example.com/api/v1/users/{user_id}' \
-H 'Authorization: Bearer <badge>' \
-H 'Content-Type: application/json' \
-d '{
"name": "string"
}'Response 200
{
"email": "string",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"is_service": true,
"memberships": [
{
"organization_id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90",
"organization_name": "string"
}
],
"name": "string"
}Delete a user
/api/v1/users/{user_id}
This endpoint is deprecated.
Path parameters
-
user_idstring required
Response 200 OK application/json
-
deleted_atstring<date-time>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X DELETE 'https://pcp.example.com/api/v1/users/{user_id}' \
-H 'Authorization: Bearer <badge>'Response 200
{
"deleted_at": "2026-01-01T00:00:00Z"
}List the API keys of a user
/api/v1/users/{user_id}/api-keys
Path parameters
-
user_idstring required
Response 200 OK application/json
-
api_keysarray[object]-
created_atstring<date-time> -
descriptionstring -
expires_atstring<date-time> nullable -
idstring<uuid>
-
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl 'https://pcp.example.com/api/v1/users/{user_id}/api-keys' \
-H 'Authorization: Bearer <badge>'Response 200
{
"api_keys": [
{
"created_at": "2026-01-01T00:00:00Z",
"description": "string",
"expires_at": "2026-01-01T00:00:00Z",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}
]
}Create an API key
/api/v1/users/{user_id}/api-keys
Path parameters
-
user_idstring required
Request body application/json required
-
descriptionstring nullable
Response 200 OK application/json
-
api_keystring -
idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X POST 'https://pcp.example.com/api/v1/users/{user_id}/api-keys' \
-H 'Authorization: Bearer <badge>' \
-H 'Content-Type: application/json' \
-d '{
"description": "string"
}'Response 200
{
"api_key": "string",
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}Revoke an API key
/api/v1/users/{user_id}/api-keys/{key_id}
Path parameters
-
user_idstring required -
key_idstring required
Response 200 OK application/json
-
idstring<uuid>
Errors
- 400 Bad Request (validation or deserialization error)
- 401 Missing, invalid or expired credentials
- 403 The caller may not do this
- 500 Internal Server Error (panics)
Every error returns the standard error body.
Request
curl -X DELETE 'https://pcp.example.com/api/v1/users/{user_id}/api-keys/{key_id}' \
-H 'Authorization: Bearer <badge>'Response 200
{
"id": "3f1e4a2c-9b7d-4e0f-8a11-2c5d6e7f8a90"
}