Contributor Management
GET /admin-contributors
Returns a paginated list of contributors for administrative management, including lock information when a contributor is currently being edited by another user.
This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
Required Permission: view-contributors
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| order | string | No | name-asc |
Sorting order |
| limit | number | No | Number.MAX_SAFE_INTEGER |
Maximum number of results |
| offset | number | No | 0 |
Pagination offset |
| search | string | No | undefined |
Search term applied to contributor names |
| client | number | Yes | — | Client identifier |
order
name-ascname-desc
200 OK
Returned when contributors are successfully retrieved.
{
"contributors": [
{
"id": "number",
"first_name": "string",
"last_name": "string",
"slug": "string",
"image": "string",
"locked_by": {
"id": "number",
"username": "string"
}
}
],
"max": 5,
"from": 1,
"to": 20
}
Models used
Contributor Model
400 Bad Request
Returned when required parameters are missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
GET /admin-contributors/id/:id
Returns detailed contributor information for administrative management, including aliases, descriptions, relations, and external links.
This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
Required Permission: view-contributors
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | number | Yes | Contributor identifier |
200 OK
Returned when the contributor is found and the admin has sufficient permissions.
{
"id": "number",
"first_name": "string",
"last_name": "string",
"slug": "string",
"image": "string",
"gender": "string",
"links": [
{
"url": "string",
"domain": "string"
}
],
"aliases": [],
"descriptions": [],
"relations": []
}
Models used
Contributor Model
400 Bad Request
Returned when required parameters are missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when the contributor does not exist.
{
"data": "Contributor not found",
"code": 404
}
Models used
Response Model
POST /admin-contributors/add
Creates a new contributor entry in the system.
This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
Required Permission: add-contributors
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| first_name | string | Yes | — | Contributor’s first name |
| last_name | string / null | No | null |
Contributor’s last name |
200 OK
Returned when the contributor was successfully created.
{
"data": "Contributor added successfully",
"code": 200
}
Models used
Response Model
400 Bad Request
Returned when required parameters are missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
409 Conflict
Returned when a contributor with the same name already exists.
{
"data": "Contributor with this Name exists already.",
"code": 409
}
Models used
Response Model
500 Internal Server Error
Returned when contributor creation fails unexpectedly.
{
"data": "An error occurred while adding the contributor",
"code": 500
}
Models used
Response Model
POST /admin-contributors/edit/:id
Updates an existing contributor and its related data such as aliases, descriptions, and relations.
This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
Required Permission: edit-contributors
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | number | Yes | Contributor identifier |
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
| first_name | string | Yes | — | Contributor’s first name |
| last_name | string | null | No | null |
Contributor’s last name |
| gender | string | null | No | null |
Contributor gender |
| type | string | null | No | null |
Contributor type/role classification |
| links | string[] | null | No | null |
List of external links |
| public | boolean | No | false |
Visibility flag |
| added_aliases | array | No | [] |
Aliases to add |
| removed_aliases | array | No | [] |
Aliases to remove |
| added_descriptions | array | No | [] |
Descriptions to add |
| removed_descriptions | array | No | [] |
Descriptions to remove |
| modified_descriptions | array | No | [] |
Descriptions to update |
| added_relations | array | No | [] |
Relations to add |
| removed_relations | array | No | [] |
Relations to remove |
| modified_relations | array | No | [] |
Relations to update |
200 OK
Returned when the contributor was successfully updated.
{
"data": "Contributor updated successfully",
"code": 200
}
Models used
Response Model
400 Bad Request
Returned when required parameters are missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when the contributor does not exist.
{
"data": "Contributor not found",
"code": 404
}
Models used
Response Model
409 Conflict
Returned when another contributor with the same name already exists.
{
"data": "Contributor with this Name exists already.",
"code": 409
}
Models used
Response Model
500 Internal Server Error
Returned when contributor update fails unexpectedly.
{
"data": "An error occurred while updating the contributor",
"code": 500
}
Models used
Response Model
DELETE /admin-contributors/delete/:id
Deletes a contributor and all associated data, including aliases, descriptions, relations, series associations, and avatar image.
This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
Required Permission: delete-contributors
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | number | Yes | Contributor identifier |
200 OK
Returned when the contributor was successfully deleted.
{
"data": "Contributor deleted successfully",
"code": 200
}
Models used
Response Model
400 Bad Request
Returned when required parameters are missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when the contributor does not exist.
{
"data": "Contributor not found",
"code": 404
}
Models used
Response Model
500 Internal Server Error
Returned when deletion fails unexpectedly.
{
"data": "An error occurred while deleting the contributor",
"code": 500
}
Models used
Response Model
POST /admin-contributors/update-avatar/:id
Updates the avatar image of a contributor. The image is uploaded, compressed, scaled, and stored, while any previously stored avatar image is removed.
This endpoint is only available when the service is configured as a file service.
This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
Required Permission: edit-contributors
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | number | Yes | Contributor identifier |
| Parameter | Type | Required | Description |
|---|---|---|---|
| image | string | Yes | Base64-encoded image including data URI prefix |
200 OK
Returned when the contributor avatar was successfully updated.
{
"data": "Contributor avatar updated successfully",
"code": 200
}
Models used
Response Model
400 Bad Request
Returned when required parameters are missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when the contributor does not exist.
{
"data": "Contributor not found",
"code": 404
}
Models used
Response Model
500 Internal Server Error
Returned when avatar processing or saving fails.
{
"data": "An error occurred while updating the contributor avatar",
"code": 500
}
Models used
Response Model
503 Service Unavailable
Returned when the current service instance does not handle file uploads.
{
"data": "This service is not handling file uploads.",
"code": 503
}
Models used
Response Model
DELETE /admin-contributors/delete-avatar/:id
Deletes the avatar image of a contributor. The stored image and its scaled version are removed, and the contributor’s avatar reference is cleared.
This endpoint is only available when the service is configured as a file service.
This endpoint requires authentication via a refresh token stored in cookies and the appropriate permission.
| Cookie Name | Required | Description |
|---|---|---|
| refreshToken | Yes | Refresh token used to authenticate |
Required Permission: edit-contributors
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | number | Yes | Contributor identifier |
200 OK
Returned when the contributor avatar was successfully deleted.
{
"data": "Contributor avatar deleted successfully",
"code": 200
}
Models used
Response Model
400 Bad Request
Returned when required parameters are missing.
{
"data": "Required parameters missing",
"code": 400
}
Models used
Response Model
404 Not Found
Returned when the contributor does not exist.
{
"data": "Contributor not found",
"code": 404
}
Models used
Response Model
500 Internal Server Error
Returned when avatar deletion fails or when no avatar exists to delete.
{
"data": "An error occurred while deleting the contributor avatar",
"code": 500
}
Models used
Response Model
503 Service Unavailable
Returned when the current service instance does not handle file uploads.
{
"data": "This service is not handling file uploads.",
"code": 503
}
Models used
Response Model