Introduction
Welcome to the Algus Organization API. This API is designed to allow developers and system integrators to retrieve audits, create safety checklists, dispatch action items, and manage compliance files on behalf of your organization.
Think of it as a secure digital counter. Instead of a human clicking buttons in a browser, your other software sends structured messages to this counter to retrieve or post operations.
Your API base URL connects you directly to your workspace. The easiest way to find it is to take your organization's web login URL and append /api/ to it. All API requests must use the format below, where the organization's unique ID is included in the URL:
The {organization-uuid} segment refers to your organization's unique Organization UUID (e.g., f037a612-9486-4760-8d70-83a1e344427b). You can copy this UUID directly from the web application by navigating to Settings โ Organization โ API Key, or retrieve it directly from your web application URL.
Authentication & Keys
To keep your workplace details secure, the Algus API uses a Dual-Layer Authentication system. Every single request you send must verify two things:
X-Organization-Api-Key
This header identifies which organization is making the request. It is required for every single API call.
๐ Where to find it: Go to Settings โ Organization โ API Key
Authorization: Bearer {token}
This header identifies which user is performing the action. You get this token by calling the /login endpoint first.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
Request Parameters
Here is a guide explaining parameters and types used across our API endpoints:
| Label | What It Means |
|---|---|
| Required | You must include this value in your request body or parameters. |
| Optional | You can include it, but the request will still succeed without it. |
Response Formats
All success and error responses returned by the API conform to the following standard shapes:
Success Shape
{
"status": true,
"status_code": 200,
"message": "Task Successfully Created",
"data": null,
"now": "2026-08-15 12:00:00"
}Error Shape
{
"status": false,
"status_code": 401,
"message": "Invalid API key",
"description": null,
"data": null,
"now": "2026-08-15 12:00:00"
}Validation Error Shape
{
"status": false,
"status_code": 422,
"message": "The given data was invalid.",
"description": null,
"data": {
"title": ["The title field is required."]
},
"now": "2026-08-15 12:00:00"
}Error Codes
| Code | Name | What It Means | How to Fix |
|---|---|---|---|
| 200 | OK | Request was successful | No action needed |
| 201 | Created | New item was created | No action needed |
| 400 | Bad Request | The request was invalid or could not be processed | Check your request syntax or business logic constraints |
| 401 | Unauthorized | API key or token is missing or invalid | Check your X-Organization-Api-Key and Bearer token |
| 403 | Forbidden | User doesn't have permission for this action | Contact your admin to grant the required permissions |
| 404 | Not Found | The item you requested doesn't exist | Verify the ID or URL is correct |
| 422 | Validation Error | Your request body is missing required fields or has invalid data | Check the message and data fields for details |
| 500 | Server Error | An unexpected server error occurred | Try again later or contact support if the issue persists |
๐ Authentication
Endpoints for user login, logout, and token check actions.
Description
Authenticates a user and returns a Bearer token.
- Required before accessing any user-protected endpoint.
- API Key is passed in X-Organization-Api-Key header.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| string | Required | User account email. | |
| password | string | Required | User password. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"email": "user@example.com",
"password": "secret123"
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": {
"login": {
"id": 1,
"global_id": 1,
"name": "sample",
"email": "user@example.com",
"email_verified_at": "2026-08-15 12:00:00",
"google_id": 1,
"avatar": "sample",
"created_at": "2026-08-15 12:00:00",
"updated_at": "2026-08-15 12:00:00",
"apple_id": 1,
"deleted_at": "2026-08-15 12:00:00",
"label": "Label",
"key": "Key",
"temp_id": "Temp_id",
"type": "Type",
"file_url": "File_url"
}
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
data | object | The main payload wrapper. |
โlogin | object | The returned login data. |
โid | string | Unique identifier for the record. |
โglobal_id | string | Global primary identifier for the record. |
โname | string | The name or title of the record. |
โemail | string | The Email value. |
โemail_verified_at | datetime | Timestamp indicating when the email was verified. |
โgoogle_id | string | The Google id value. |
โavatar | string | The Avatar value. |
โcreated_at | datetime | ISO 8601 timestamp indicating when the record was created. |
โupdated_at | datetime | ISO 8601 timestamp indicating when the record was last updated. |
โfile_url | string | Url of profile picture of the logged in user. |
cURL Example
curl -X POST \
"https://your-org.algus.io/login" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"email": "user@example.com",
"password": "secret123"
}'Description
Logs out the current user and invalidates the token.
- Requires both API Key and Bearer token.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Logged out successfully",
"description": null,
"data": []
}cURL Example
curl -X POST \
"https://your-org.algus.io/logout" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Validates the Organization API Key.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| api_key | string | Required | The Organization API Key to validate. Must be passed as a query parameter. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Token is valid",
"description": null,
"data": []
}cURL Example
curl -X GET \
"https://your-org.algus.io/check-token" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Accept: application/json"Description
Retrieves details, sites, and user groups of the logged-in user.
- Requires both API Key and Bearer token.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": {
"user": {
"id": 1,
"global_id": "92238472-3c81-4ba2-92cf-18e3a241411c",
"name": "John Doe",
"email": "john@example.com",
"status": true,
"google_id": null,
"avatar": null,
"is_invited": false,
"is_impersonate_user": false,
"is_archived": false,
"email_verified_at": "2026-08-15 12:00:00",
"language_id": 1,
"saml_external_id": null,
"auth_type": "local",
"seat_type_id": 1,
"created_at": "2026-08-15 12:00:00",
"updated_at": "2026-08-15 12:00:00",
"file_url": null,
"roles": [
{
"id": 1,
"name": "Administrator",
"guard_name": "web"
}
],
"sites": [
{
"id": 1,
"name": "Main HQ",
"pivot": {
"user_id": 1,
"site_id": 1,
"is_admin": 1
}
}
],
"user_groups": [
{
"id": 1,
"name": "Safety Inspectors",
"pivot": {
"user_id": 1,
"user_group_id": 1,
"is_group_admin": 0
}
}
]
}
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
data | object | The main payload wrapper. |
โuser | object | The details of the logged-in user. |
โid | integer | Unique user ID. |
โglobal_id | string | Global unique ID of the user. |
โname | string | The user's name. |
โemail | string | The user's email address. |
โstatus | boolean | The user's active status. |
โroles | array | Roles assigned to the user. |
โsites | array | Sites assigned to the user. |
โuser_groups | array | User groups the user belongs to. |
cURL Example
curl -X GET \
"https://your-org.algus.io/user" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"๐ข Organization
Organization details and settings.
Description
Retrieves the current organization's details.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": {
"organization": {
"id": 1,
"name": "fnew",
"timezone": "Asia/Kolkata",
"date_format": "Y-m-d",
"time_format": "h:i A",
"api_key": "igSAAcrjY5q5SSURS6BvY20fYnh2m08WezlTE50o",
"created_at": "2026-08-13T13:55:49.000000Z",
"updated_at": "2026-08-15T09:24:08.000000Z"
}
},
"now": "2026-08-15 09:31:09"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The main payload wrapper. |
โorganization | object | The returned organization data. |
โid | integer | Unique identifier for the organization. |
โname | string | The name of the organization. |
โtimezone | string | The default timezone of the organization. |
โdate_format | string | The preferred date format. |
โtime_format | string | The preferred time format. |
โapi_key | string | The secret API key for integration. |
โcreated_at | datetime | ISO 8601 timestamp indicating when the record was created. |
โupdated_at | datetime | ISO 8601 timestamp indicating when the record was last updated. |
now | datetime | The current server time. |
cURL Example
curl -X GET \
"https://your-org.algus.io/organization" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"๐ฅ Users
Manage users within the organization.
Description
Retrieves a list of all active users, their assigned sites, and roles.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": {
"users": {
"current_page": 1,
"data": [
{
"id": 1,
"global_id": 1,
"name": "sample",
"email": "user@example.com",
"email_verified_at": "2026-08-15 12:00:00",
"google_id": 1,
"avatar": "sample",
"created_at": "2026-08-15 12:00:00",
"updated_at": "2026-08-15 12:00:00",
"apple_id": 1,
"deleted_at": "2026-08-15 12:00:00",
"label": "Label",
"key": "Key",
"temp_id": "Temp_id",
"type": "Type",
"file_url": "File_url"
},
{
"id": 1,
"global_id": 1,
"name": "sample",
"email": "user@example.com",
"email_verified_at": "2026-08-15 12:00:00",
"google_id": 1,
"avatar": "sample",
"created_at": "2026-08-15 12:00:00",
"updated_at": "2026-08-15 12:00:00",
"apple_id": 1,
"deleted_at": "2026-08-15 12:00:00",
"label": "Label",
"key": "Key",
"temp_id": "Temp_id",
"type": "Type",
"file_url": "File_url"
}
],
"total": 2,
"per_page": 15
}
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
data | object | The main payload wrapper. |
โusers | array | Array of records. |
โid | string | Unique identifier for the record. |
โglobal_id | string | Global primary identifier for the record. |
โname | string | The name or title of the record. |
โemail | string | The Email value. |
โemail_verified_at | datetime | Timestamp indicating when the email was verified. |
โgoogle_id | string | The Google id value. |
โavatar | string | The Avatar value. |
โcreated_at | datetime | ISO 8601 timestamp indicating when the record was created. |
โupdated_at | datetime | ISO 8601 timestamp indicating when the record was last updated. |
โapple_id | string | The Apple id value. |
โdeleted_at | datetime | ISO 8601 timestamp indicating when the record was soft deleted, or null if active. |
โfile_url | string | Url of profile picture of the user. |
cURL Example
curl -X GET \
"https://your-org.algus.io/users" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Creates a new user.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| name | string | Required | Full name of the user. |
| string | Required | Email address. | |
| role | array | Required | Array of role IDs (e.g., [1, 2]). Cannot mix Full and Guest seat types. |
| password | string | Optional | Optional password. If omitted, user will be invited to set one. |
| sites | array | Optional | Array of site IDs to assign to the user (e.g., [1, 2]). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"name": "Jane Smith",
"email": "jane@example.com",
"role": [
2
],
"sites": [
1,
2
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "User Successfully Created",
"user": {
"id": 1,
"global_id": "2c925a37-7c98-467b-89dc-30b502f089d0",
"name": "John Doe",
"email": "john@example.com",
"email_verified_at": "2026-08-15 12:00:00",
"google_id": null,
"avatar": null,
"created_at": "2026-08-15 12:00:00",
"updated_at": "2026-08-15 12:00:00",
"apple_id": null,
"deleted_at": null,
"label": "John Doe",
"key": 1,
"temp_id": "user_1",
"type": "user",
"file_url": null
}
},
"now": "2026-08-15 12:00:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The main payload wrapper. |
โmessage | string | Success confirmation message. |
โuser | object | The newly created user data. |
โid | integer | Unique identifier for the record. |
โglobal_id | string | Global primary identifier for the record. |
โname | string | The name or title of the record. |
โemail | string | The Email value. |
โemail_verified_at | datetime | Timestamp indicating when the email was verified. |
โgoogle_id | string | The Google id value. |
โavatar | string | The Avatar value. |
โcreated_at | datetime | ISO 8601 timestamp indicating when the record was created. |
โupdated_at | datetime | ISO 8601 timestamp indicating when the record was last updated. |
โapple_id | string | The Apple id value. |
โdeleted_at | datetime | ISO 8601 timestamp indicating when the record was soft deleted, or null if active. |
โlabel | string | Friendly display label for the user (defaults to their name), useful for UI select lists. |
โkey | integer | Unique key matching the numeric user ID, optimized for select options in UI component frameworks. |
โtemp_id | string|integer | Temporary ID dynamically generated for front-end rendering or client-side caching purposes. |
โtype | string | Entity model classification key (always 'user') to help frontend clients distinguish data structures. |
โfile_url | string | Url of profile picture of the user. |
now | datetime | The current server time. |
cURL Example
curl -X POST \
"https://your-org.algus.io/users" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Smith",
"email": "jane@example.com",
"role": [
2
],
"sites": [
1,
2
]
}'Description
Updates an existing user.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| id | integer | Required | ID of the user. |
| name | string | Required | Full name of the user. |
| string | Required | Email address. | |
| role | array | Required | Array of role IDs. |
| sites | array | Optional | Array of site IDs to assign to the user (e.g., [1, 2]). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"id": 1,
"name": "Jane Smith Updated",
"email": "jane.updated@example.com",
"role": [
2
],
"sites": [
1,
2
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": {
"user": {
"id": 1,
"global_id": 1,
"name": "sample",
"email": "user@example.com",
"email_verified_at": "2026-08-15 12:00:00",
"google_id": 1,
"avatar": "sample",
"created_at": "2026-08-15 12:00:00",
"updated_at": "2026-08-15 12:00:00",
"apple_id": 1,
"deleted_at": "2026-08-15 12:00:00",
"label": "Label",
"key": "Key",
"temp_id": "Temp_id",
"type": "Type",
"file_url": "File_url"
}
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
data | object | The main payload wrapper. |
โuser | object | The returned user data. |
โid | string | Unique identifier for the record. |
โglobal_id | string | Global primary identifier for the record. |
โname | string | The name or title of the record. |
โemail | string | The Email value. |
โemail_verified_at | datetime | Timestamp indicating when the email was verified. |
โgoogle_id | string | The Google id value. |
โavatar | string | The Avatar value. |
โcreated_at | datetime | ISO 8601 timestamp indicating when the record was created. |
โupdated_at | datetime | ISO 8601 timestamp indicating when the record was last updated. |
โapple_id | string | The Apple id value. |
โdeleted_at | datetime | ISO 8601 timestamp indicating when the record was soft deleted, or null if active. |
โlabel | string | Friendly display label for the user (defaults to their name), useful for UI select lists. |
โkey | integer | Unique key matching the numeric user ID, optimized for select options in UI component frameworks. |
โtemp_id | string|integer | Temporary ID dynamically generated for front-end rendering or client-side caching purposes. |
โtype | string | Entity model classification key (always 'user') to help frontend clients distinguish data structures. |
โfile_url | string | The complete web-accessible URL of the user's profile image or avatar. |
cURL Example
curl -X PUT \
"https://your-org.algus.io/users/{user}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"id": 1,
"name": "Jane Smith Updated",
"email": "jane.updated@example.com",
"role": [
2
],
"sites": [
1,
2
]
}'Description
Toggles the active/inactive status of a user.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Status Successfully Updated",
"data": []
}cURL Example
curl -X POST \
"https://your-org.algus.io/users/{user}/change-status" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Deletes a user.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "User Successfully Deleted"
},
"now": "2026-08-15 09:52:29"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The main payload wrapper. |
โmessage | string | Success confirmation message. |
now | datetime | The current server time. |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/users/{user}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
List all roles.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"data": {
"roles": [
{
"id": 1,
"name": "Super Admin",
"guard_name": "tenant-user",
"created_at": "2026-08-15T12:00:00.000000Z",
"updated_at": "2026-08-15T12:00:00.000000Z"
},
{
"id": 2,
"name": "Manager",
"guard_name": "tenant-user",
"created_at": "2026-08-15T12:01:00.000000Z",
"updated_at": "2026-08-15T12:01:00.000000Z"
}
]
}
}cURL Example
curl -X GET \
"https://your-org.algus.io/roles" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Get all sites assigned to a specific user.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "",
"data": {
"sites": [
{
"id": 1,
"name": "Headquarters",
"status": 1,
"pivot": {
"user_id": 1,
"site_id": 1,
"is_admin": 1
}
}
]
},
"now": "2026-08-15 12:00:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
โsites | array | List of sites |
โid | integer | Site ID |
โname | string | Site name |
โstatus | integer | 1 if active, 0 if inactive |
โpivot | object | Pivot table data |
โis_admin | integer | 1 if the user is an admin of this site, 0 otherwise |
cURL Example
curl -X GET \
"https://your-org.algus.io/users/{user}/sites" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Get all user groups that a specific user belongs to.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "",
"data": {
"user_groups": [
{
"id": 1,
"name": "Inspectors",
"status": 1,
"pivot": {
"user_id": 1,
"user_group_id": 1,
"is_group_admin": 1
}
}
]
},
"now": "2026-08-15 12:00:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
โuser_groups | array | List of user groups |
โid | integer | User group ID |
โname | string | User group name |
โstatus | integer | 1 if active, 0 if inactive |
โpivot | object | Pivot table data |
โis_group_admin | integer | 1 if the user is an admin of this group, 0 otherwise |
cURL Example
curl -X GET \
"https://your-org.algus.io/users/{user}/user-groups" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"๐ฅ User Groups
Manage user groups and their assigned sites.
Description
Retrieves all user groups, users, and available sites.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"user_groups": [
{
"id": 2,
"name": "Group 1",
"status": true,
"created_at": "2026-08-14T04:06:07.000000Z",
"updated_at": "2026-08-14T04:06:07.000000Z",
"user_group_users_count": 9,
"label": "Group 1",
"key": 2,
"type": "user_group",
"temp_id": "user_group_2",
"user_group_users": [
{
"id": 5,
"seat_type_id": 1,
"global_id": "2c925a37-7c98-467b-89dc-30b502f089d0",
"language_id": null,
"name": "ut2",
"email": "ut2@mail.com",
"email_verified_at": "2026-08-14T04:01:43.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-14T04:01:43.000000Z",
"updated_at": "2026-08-14T04:01:43.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "ut2",
"key": 5,
"temp_id": "user_5",
"type": "user",
"file_url": null,
"pivot": {
"user_group_id": 2,
"user_id": 5,
"is_group_admin": false
}
}
],
"sites": []
},
{
"id": 3,
"name": "Group 2",
"status": true
}
]
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The main payload wrapper. |
โuser_groups | array | Array of user groups. |
โid | integer | User group ID. |
โname | string | Name of the user group. |
โstatus | boolean | Whether the group is active. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last update timestamp. |
โuser_group_users_count | integer | Number of users in the group. |
โlabel | string | Display label for the group. |
โkey | integer | Unique key for lists. |
โtype | string | Entity type (user_group). |
โtemp_id | string | Temporary ID. |
โsites | array | Array of associated sites. |
โuser_group_users | array | Users belonging to the group. |
โid | integer | User ID. |
โseat_type_id | integer | Seat type ID. |
โglobal_id | string | Global UUID. |
โname | string | User name. |
โemail | string | User email address. |
โstatus | boolean | User active status. |
โpivot | object | Pivot table data. |
โis_group_admin | boolean | Whether the user is a group admin. |
cURL Example
curl -X GET \
"https://your-org.algus.io/user-groups" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Creates a new user group.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| name | string | Required | Name of the group. |
| selected_users | array | Optional | Array of objects with 'id' of users. |
| sites | array | Optional | Array of site IDs assigned to this user group (e.g., [1, 2]). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"name": "Site Inspectors",
"selected_users": [
{
"id": 1
}
],
"sites": [
1,
2
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "User Group Successfully Created",
"user_group": {
"name": "Maintenance Team",
"updated_at": "2026-08-15T09:58:53.000000Z",
"created_at": "2026-08-15T09:58:53.000000Z",
"id": 5,
"label": "Maintenance Team",
"key": 5,
"type": "user_group",
"temp_id": "user_group_5"
}
},
"now": "2026-08-15 09:58:53"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The main payload wrapper. |
โmessage | string | Success confirmation message. |
โuser_group | object | The newly created user group data. |
โid | integer | User group ID. |
โname | string | Name of the user group. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last update timestamp. |
โlabel | string | Display label for the group. |
โkey | integer | Unique key for lists. |
โtype | string | Entity type (user_group). |
โtemp_id | string | Temporary ID. |
now | datetime | The current server time. |
cURL Example
curl -X POST \
"https://your-org.algus.io/user-groups" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Site Inspectors",
"selected_users": [
{
"id": 1
}
],
"sites": [
1,
2
]
}'Description
Updates a user group.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| name | string | Required | Name of the group. |
| selected_users | array | Optional | Array of objects with 'id' of users. |
| sites | array | Optional | Array of site IDs assigned to this user group (e.g., [1, 2]). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"name": "Site Inspectors Updated",
"selected_users": [
{
"id": 1
}
],
"sites": [
1,
2
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "User Group Successfully Updated",
"user_group": {
"name": "Maintenance Team Updated",
"updated_at": "2026-08-15T10:00:00.000000Z",
"created_at": "2026-08-15T09:58:53.000000Z",
"id": 5,
"label": "Maintenance Team Updated",
"key": 5,
"type": "user_group",
"temp_id": "user_group_5"
}
},
"now": "2026-08-15 10:00:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The main payload wrapper. |
โmessage | string | Success confirmation message. |
โuser_group | object | The updated user group data. |
โid | integer | User group ID. |
โname | string | Name of the user group. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last update timestamp. |
โlabel | string | Display label for the group. |
โkey | integer | Unique key for lists. |
โtype | string | Entity type (user_group). |
โtemp_id | string | Temporary ID. |
now | datetime | The current server time. |
cURL Example
curl -X PUT \
"https://your-org.algus.io/user-groups/{user_group}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Site Inspectors Updated",
"selected_users": [
{
"id": 1
}
],
"sites": [
1,
2
]
}'Description
Toggles active/inactive status.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Status Successfully Updated",
"data": []
}cURL Example
curl -X POST \
"https://your-org.algus.io/user-groups/{user_group}/change-status" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Deletes a user group.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "User Group Successfully Deleted"
},
"now": "2026-08-15 10:04:30"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The main payload wrapper. |
โmessage | string | Success confirmation message. |
now | datetime | The current server time. |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/user-groups/{user_group}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Get all sites associated with a specific user group.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "",
"data": {
"sites": [
{
"id": 1,
"name": "Headquarters",
"status": 1,
"pivot": {
"user_group_id": 1,
"site_id": 1
}
}
]
},
"now": "2026-08-15 12:00:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
โsites | array | List of sites |
โid | integer | Site ID |
โname | string | Site name |
โstatus | integer | 1 if active, 0 if inactive |
โpivot | object | Pivot table data |
cURL Example
curl -X GET \
"https://your-org.algus.io/user-groups/{user_group}/sites" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"โ Tasks
Manage and track operational tasks.
Description
Retrieve all tasks matching filters.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| search | string | Optional | Search by task title or series number (partial match). |
| statuses | array | Optional | Filter by one or more task status IDs. Example: statuses[]=1&statuses[]=2 |
| priorities | array | Optional | Filter by one or more task type priority IDs. Example: priorities[]=1&priorities[]=3 |
| task_types | array | Optional | Filter by one or more task type IDs. Example: task_types[]=1&task_types[]=2 |
| labels | array | Optional | Filter by one or more task label IDs. Example: labels[]=1&labels[]=2 |
| site_ids | array | Optional | Filter by one or more site IDs. Example: site_ids[]=2&site_ids[]=3 |
| resource_ids | array | Optional | Filter by one or more resource IDs. Example: resource_ids[]=1 |
| users | array | Optional | Filter by one or more creator user IDs. Example: users[]=2 |
| assignees | array | Optional | Filter by assignees. Supports user IDs (e.g., `user_2`), user group IDs (e.g., `group_1`), or `unassigned`. Example: assignees[]=user_2&assignees[]=group_1 |
| resource_types | array | Optional | Filter by one or more resource type IDs. Example: resource_types[]=1 |
| due_date | object | Optional | Filter by due date. Pass as an object with `type` key. Allowed types: `today`, `next_7_days`, `past_due`, `overdue`, `no_due_date`, `before`, `after`, `custom`. For `before`/`after` pass `value[0]` as a date string. For `custom` pass `value[0]` and `value[1]` as start/end dates. Example: due_date[type]=today |
| created_at | array | Optional | Filter by created date range. Pass as array of two date strings [start, end]. Example: created_at[]=2026-08-01&created_at[]=2026-08-31 |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"tasks": [
{
"id": 4,
"creator_id": 2,
"task_status_id": 1,
"task_type_id": 2,
"task_type_priority_id": 1,
"site_id": null,
"title": "dsa",
"series_number": "CA-1",
"description": "sadsa",
"progress": 30,
"due_date": "2026-08-15 14:16:29",
"repeat_type": "does_not_repeat",
"created_date": "2026-08-14 08:46:27",
"auto_generated": false,
"is_clone_attachments": false,
"created_at": "2026-08-14T08:46:34.000000Z",
"updated_at": "2026-08-14T08:47:18.000000Z",
"parent_id": null,
"is_reccuring_task": false,
"resource_id": null,
"from_workflow": false,
"department_id": null,
"formatted_due_date": "15 Aug 2026 02:16 PM",
"formatted_repeat_type": "Does Not Repeat",
"iso_formatted_due_date": "2026-08-15T14:16:29+00:00",
"starting_time": "08:46:27",
"assigned_users": [],
"model_name": "task",
"departmental_investigation_id": null,
"feedback_response_id": null,
"related_to": null,
"department_path": null,
"site": null,
"resource": null,
"task_type_priority": {
"id": 1,
"task_type_id": 1,
"name": "Low",
"color": "#3498db",
"priority_days": "1",
"priority_type": "day",
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
},
"task_type": {
"id": 2,
"name": "CAPA",
"series_prefix": "CA",
"series_starts_with": "1",
"current_series_number": "1",
"is_inspection_required": false,
"status": true,
"settings": {
"show_progress": true
},
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T08:46:34.000000Z"
},
"creator": {
"id": 2,
"seat_type_id": 1,
"global_id": "02a3966c-9d67-47e0-954d-83d78cd3d84b",
"language_id": null,
"name": "New",
"email": "new@mail.com",
"email_verified_at": "2026-08-13T13:55:51.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-13T13:55:51.000000Z",
"updated_at": "2026-08-13T13:55:51.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "New",
"key": 2,
"temp_id": "user_2",
"type": "user",
"file_url": null
},
"task_status": {
"id": 1,
"name": "To do",
"is_note_required": false,
"is_media_required": false,
"is_open_status": true,
"status": true,
"color": "#3498db",
"access_type": "default",
"created_at": "2026-08-13T13:55:49.000000Z",
"updated_at": "2026-08-13T13:55:49.000000Z"
},
"task_label_items": [],
"assignee": {
"id": 10,
"assignees_type": null,
"role": null,
"group_name": null,
"admins_only": false,
"assignable_id": 4,
"assignable_type": "App\\Models\\Tenant\\Task\\Task",
"always_assign_site_members": false,
"include_parent_sites": false,
"created_at": "2026-08-14T08:46:34.000000Z",
"updated_at": "2026-08-14T08:46:34.000000Z",
"users": [],
"user_groups": []
},
"pin": null,
"attachments": [],
"task_links": [],
"department": null
}
]
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The main payload wrapper. |
โtasks | array | Array of task objects. |
โid | integer | Task ID. |
โtitle | string | Title of the task. |
โdescription | string | Description of the task. |
โprogress | integer | Task progress percentage. |
โdue_date | datetime | Task due date. |
โrepeat_type | string | Repeat behavior (e.g., does_not_repeat). |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last update timestamp. |
โformatted_due_date | string | Human-readable due date. |
โtask_type | object | Associated task type details. |
โtask_status | object | Current task status details. |
โtask_type_priority | object | Priority level details. |
โcreator | object | User who created the task. |
โassignee | object | Task assignment details. |
โattachments | array | Files attached to the task. |
โtask_links | array | Links associated with the task. |
โassigned_users | array | List of users directly assigned. |
cURL Example
curl -X GET \
"https://your-org.algus.io/tasks" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Creates a new task.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| title | string | Required | Title of the task. |
| description | string | Required | Detailed description of the task. |
| task_type | integer | Required | ID of the task type. Refer to GET /task-types in the Task Types section to fetch all active task types. |
| priority | object | Required | Object containing priority ID (e.g., {"id": 2}). Refer to GET /get-task-type-priorities-by-task-type/{task_type} in the Task Types section to fetch allowed priorities for the selected task type. |
| due_date | string | Required | Completion due date in Y-m-d H:i:s format (e.g., '2026-08-20 14:00:00'). |
| site | integer | Optional | Target site ID (e.g., 1). Refer to GET /sites in the Sites section to fetch available sites. |
| resource | integer | Optional | Target resource ID (e.g., 1). Refer to GET /resources in the Resources section to fetch available equipment and machinery. |
| assignees | array | Optional | Array of user and user group IDs assigned to the task (e.g., ['user_1', 'user_group_2']). Refer to GET /users (Users section) and GET /user-groups (User Groups section) to fetch users and user groups. |
| labels | array | Optional | Array of task label IDs (e.g., [1, 2]). Refer to GET /task-labels in the Task Labels section to fetch available task labels. |
| custom_fields | array | Optional | Array of custom field value objects for the task type (e.g., [{"id": 1, "value": "Sample Value"}]). Refer to GET /get-task-type-custom-fields-by-task-type/{task_type} in the Task Types section to fetch field definitions for the selected task type. |
| templates | array | Optional | Array of inspection template IDs (e.g., [3]). Only pass if inspection requirement is enabled for the selected task type (is_inspection_required is true). Refer to GET /get-task-type-templates-by-task-type/{task_type} in the Task Types section to fetch linked templates for the selected task type. |
| repeat | object | Optional | Recurrence configuration object. Available repeat options: {"name": "Does not Repeat", "value": "does_not_repeat"}, {"name": "Daily", "value": "daily"}, {"name": "Custom", "value": "custom"}. |
| department_id | integer|null | Optional | Optional department ID under the selected site. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"title": "Fix HVAC Unit",
"description": "HVAC unit on roof is leaking water",
"task_type": 1,
"priority": {
"id": 2
},
"due_date": "2026-08-20 14:00:00",
"site": 1,
"resource": 1,
"assignees": [],
"labels": [
1
],
"custom_fields": [
{
"id": 1,
"value": "High Floor"
}
],
"templates": [],
"repeat": {
"name": "Does not Repeat",
"value": "does_not_repeat"
}
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": "Task Successfully Created",
"now": "2026-08-15 10:19:12"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | string | The success confirmation message. |
now | datetime | The current server time. |
cURL Example
curl -X POST \
"https://your-org.algus.io/tasks" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"title": "Fix HVAC Unit",
"description": "HVAC unit on roof is leaking water",
"task_type": 1,
"priority": {
"id": 2
},
"due_date": "2026-08-20 14:00:00",
"site": 1,
"resource": 1,
"assignees": [],
"labels": [
1
],
"custom_fields": [
{
"id": 1,
"value": "High Floor"
}
],
"templates": [],
"repeat": {
"name": "Does not Repeat",
"value": "does_not_repeat"
}
}'Description
Updates an existing task.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| title | string | Required | Title of the task. |
| description | string | Required | Detailed description of the task. |
| priority | object | Required | Object containing priority ID (e.g., {"id": 2}). Refer to GET /get-task-type-priorities-by-task-type/{task_type} in the Task Types section to fetch allowed priorities for the selected task type. |
| due_date | string | Required | Completion due date in Y-m-d H:i:s format (e.g., '2026-08-20 14:00:00'). |
| site | integer | Optional | Target site ID (e.g., 1). Refer to GET /sites in the Sites section to fetch available sites. |
| resource | integer | Optional | Target resource ID (e.g., 1). Refer to GET /resources in the Resources section to fetch available equipment and machinery. |
| assignees | array | Optional | Array of user and user group IDs assigned to the task (e.g., ['user_1', 'user_group_2']). Refer to GET /users (Users section) and GET /user-groups (User Groups section) to fetch users and user groups. |
| labels | array | Optional | Array of task label IDs (e.g., [1, 2]). Refer to GET /task-labels in the Task Labels section to fetch available task labels. |
| custom_fields | array | Optional | Array of custom field value objects for the task type (e.g., [{"id": 1, "value": "Sample Value"}]). Refer to GET /get-task-type-custom-fields-by-task-type/{task_type} in the Task Types section to fetch field definitions for the selected task type. |
| templates | array | Optional | Array of inspection template IDs (e.g., [3]). Only pass if inspection requirement is enabled for the selected task type (is_inspection_required is true). Refer to GET /get-task-type-templates-by-task-type/{task_type} in the Task Types section to fetch linked templates for the selected task type. |
| repeat | object | Optional | Recurrence configuration object. Available repeat options: {"name": "Does not Repeat", "value": "does_not_repeat"}, {"name": "Daily", "value": "daily"}, {"name": "Custom", "value": "custom"}. |
| department_id | integer|null | Optional | Optional department ID under the selected site. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"title": "Fix HVAC Unit - Updated",
"description": "HVAC unit on roof is leaking water - Priority updated",
"priority": {
"id": 2
},
"due_date": "2026-08-22 14:00:00",
"site": 1,
"resource": 1,
"assignees": [],
"labels": [
1,
2
],
"custom_fields": [
{
"id": 1,
"value": "Roof Section B"
}
],
"repeat": {
"name": "Does not Repeat",
"value": "does_not_repeat"
}
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": "Task Successfully Updated",
"now": "2026-08-15 10:28:33"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | string | The success confirmation message. |
now | datetime | The current server time. |
cURL Example
curl -X PUT \
"https://your-org.algus.io/tasks/{task}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"title": "Fix HVAC Unit - Updated",
"description": "HVAC unit on roof is leaking water - Priority updated",
"priority": {
"id": 2
},
"due_date": "2026-08-22 14:00:00",
"site": 1,
"resource": 1,
"assignees": [],
"labels": [
1,
2
],
"custom_fields": [
{
"id": 1,
"value": "Roof Section B"
}
],
"repeat": {
"name": "Does not Repeat",
"value": "does_not_repeat"
}
}'Description
Get detailed task data including relationships.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"id": 8,
"creator_id": 2,
"task_status_id": 1,
"task_type_id": 1,
"task_type_priority_id": 2,
"site_id": null,
"title": "Fix HVAC Unit - Updated",
"series_number": "TA-4",
"description": "HVAC unit on roof is leaking water",
"progress": 0,
"due_date": "2026-08-20 14:00:00",
"repeat_type": "does_not_repeat",
"created_date": "2026-08-15 10:28:33",
"auto_generated": false,
"is_clone_attachments": false,
"created_at": "2026-08-15T10:21:29.000000Z",
"updated_at": "2026-08-15T10:28:33.000000Z",
"parent_id": null,
"is_reccuring_task": false,
"resource_id": null,
"from_workflow": false,
"department_id": null,
"formatted_due_date": "20 Aug 2026 02:00 PM",
"formatted_repeat_type": "Does Not Repeat",
"iso_formatted_due_date": "2026-08-20T14:00:00+00:00",
"starting_time": "10:28:33",
"assigned_users": [],
"model_name": "task",
"departmental_investigation_id": null,
"feedback_response_id": null,
"related_to": null,
"department_path": null,
"custom_fields": [],
"assignee": {
"id": 23,
"assignees_type": null,
"role": null,
"group_name": null,
"admins_only": false,
"assignable_id": 8,
"assignable_type": "App\\Models\\Tenant\\Task\\Task",
"always_assign_site_members": false,
"include_parent_sites": false,
"created_at": "2026-08-15T10:28:33.000000Z",
"updated_at": "2026-08-15T10:28:33.000000Z",
"users": [],
"user_groups": []
},
"task_label_items": [],
"templates": [],
"parent": null,
"task_repeat": null,
"task_type_priority": {
"id": 2,
"task_type_id": 1,
"name": "Medium",
"color": "#f89406",
"priority_days": "1",
"priority_type": "day",
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
},
"creator": {
"id": 2,
"seat_type_id": 1,
"global_id": "02a3966c-9d67-47e0-954d-83d78cd3d84b",
"language_id": null,
"name": "New",
"email": "new@mail.com",
"email_verified_at": "2026-08-13T13:55:51.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-13T13:55:51.000000Z",
"updated_at": "2026-08-13T13:55:51.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "New",
"key": 2,
"temp_id": "user_2",
"type": "user",
"file_url": null
},
"task_type": {
"id": 1,
"name": "Task",
"series_prefix": "TA",
"series_starts_with": "1",
"current_series_number": "4",
"is_inspection_required": false,
"status": true,
"settings": null,
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-15T10:21:29.000000Z"
},
"task_status": {
"id": 1,
"name": "To do",
"is_note_required": false,
"is_media_required": false,
"is_open_status": true,
"status": true,
"color": "#3498db",
"access_type": "default",
"created_at": "2026-08-13T13:55:49.000000Z",
"updated_at": "2026-08-13T13:55:49.000000Z"
},
"site": null,
"inspections": [],
"resource": null,
"task_links": [],
"department": null
},
"now": "2026-08-15 10:31:29"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The returned task object. |
โid | integer | Task ID. |
โtitle | string | Title of the task. |
โdescription | string | Description of the task. |
โprogress | integer | Task progress percentage. |
โdue_date | datetime | Task due date. |
โrepeat_type | string | Repeat behavior (e.g., does_not_repeat). |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last update timestamp. |
โformatted_due_date | string | Human-readable due date. |
โtask_type | object | Associated task type details. |
โtask_status | object | Current task status details. |
โtask_type_priority | object | Priority level details. |
โcreator | object | User who created the task. |
โassignee | object | Task assignment details. |
โinspections | array | Inspections attached to the task. |
โtask_links | array | Links associated with the task. |
โassigned_users | array | List of users directly assigned. |
โcustom_fields | array | Custom fields associated with the task. |
now | datetime | The current server time. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-task-by-id/{task}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Updates the status of a task.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| status | integer | Required | ID of new Task Status. |
| notes | string | Optional | Required only if the new status has `is_note_required` set to true. (Refer to the GET /task-statuses API) |
| attachments[0][file] | file | Optional | Required only if the new status has `is_media_required` set to true. (Refer to the GET /task-statuses API). Attach multiple files using attachments[1][file], etc. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"status": 3
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "Task Status Upadted Successfully"
},
"now": "2026-08-15 10:34:01"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The main payload wrapper. |
โmessage | string | Success confirmation message. |
now | datetime | The current server time. |
cURL Example
curl -X POST \
"https://your-org.algus.io/update-task-status/{task}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"status": 3
}'Description
Deletes a task.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "Task Deleted Successfully"
},
"now": "2026-08-15 10:34:28"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
description | string | Additional description, if any. |
data | object | The main payload wrapper. |
โmessage | string | Success confirmation message. |
now | datetime | The current server time. |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/tasks/{task}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Performs quick inline updates to specific task attributes (priority, due date, or assignees).
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| task | integer | Required | Database ID of the task to update. |
| type | string | Required | Attribute type to update. Allowed values: 'priority', 'due_date', 'assignee'. |
| priority | object | Optional | Required when type is 'priority'. Object containing priority ID (e.g., {"id": 2}). Refer to GET /get-task-type-priorities-by-task-type/{task_type} in the Task Types section. |
| due_date | string | Optional | Required when type is 'due_date'. New due date in Y-m-d H:i:s format (e.g., '2026-08-25 14:00:00'). |
| assignees | array | Optional | Required when type is 'assignee'. Array of assigned user or group IDs (e.g., ['user_1', 'user_group_2']). Refer to GET /users (Users section) and GET /user-groups (User Groups section). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"type": "priority",
"priority": {
"id": 2
}
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "Task Updated Successfully"
},
"now": "2026-08-15 13:38:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the request was successful. |
status_code | integer | HTTP status code (200 OK). |
โmessage | string | Confirmation text ('Task Updated Successfully'). |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/update-task-data/{task}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"type": "priority",
"priority": {
"id": 2
}
}'Description
Uploads an attachment for a task (requires multipart/form-data).
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| file | binary | Required | The attachment file to upload. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"attachment": {
"id": 15,
"file": "task_attachments/leak_photo_1.jpg",
"file_name": "leak_photo_1.jpg",
"type": "image/jpeg",
"size": 2048500,
"created_at": "2026-08-17T07:27:00.000000Z",
"updated_at": "2026-08-17T07:27:00.000000Z"
}
},
"now": "2026-08-17 07:27:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | object | Response data payload wrapper. |
โattachment | object | The uploaded attachment details. |
โid | integer | Unique attachment identifier. |
โfile | string | Stored file path reference. |
โfile_name | string | Original file name. |
โtype | string | File MIME type. |
โsize | integer | File size in bytes. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last updated timestamp. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/tasks/{task}/attachments" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Deletes an attachment associated with a task.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| id | integer | Required | Unique identifier of the attachment to delete. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"id": 15
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Attachment Deleted Successfully",
"description": null,
"data": null,
"now": "2026-08-17 07:27:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message confirming deletion ('Attachment Deleted Successfully'). |
description | string|null | Optional description metadata. |
data | null | Response data payload (always null). |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/tasks/{task}/delete-attachments" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"id": 15
}'Description
Updates the progress percentage for a task.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| progress | integer | Required | The new progress percentage of the task (0 to 100). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"progress": 75
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "Task Progress Updated Successfully",
"task": {
"id": 13,
"creator_id": 2,
"task_status_id": 1,
"task_type_id": 1,
"task_type_priority_id": 2,
"site_id": 2,
"title": "Fix HVAC Unit",
"series_number": "TA-6",
"description": "HVAC unit on roof is leaking",
"due_date": "2026-08-20 14:00:00",
"progress": 75,
"status": true,
"created_at": "2026-08-15T12:00:00.000000Z",
"updated_at": "2026-08-17T07:27:00.000000Z"
}
},
"now": "2026-08-17 07:27:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message (null when returning data wrap). |
description | string|null | Optional description metadata. |
data | object | Response data payload wrapper. |
โmessage | string | Confirmation message ('Task Progress Updated Successfully'). |
โtask | object | The updated task details. |
โid | integer | Unique task identifier. |
โprogress | integer | The updated progress percentage. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/update-task-progress/{task}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"progress": 75
}'Description
Retrieves a list of all task statuses configured in the organization. Use this to populate status dropdowns or map status IDs to their display names and colors.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"task_statuses": [
{
"id": 1,
"name": "To do",
"is_note_required": false,
"is_media_required": false,
"is_open_status": true,
"status": true,
"color": "#3498db",
"access_type": "default",
"created_at": "2026-08-13T13:55:49.000000Z",
"updated_at": "2026-08-13T13:55:49.000000Z"
},
{
"id": 2,
"name": "In Progress",
"is_note_required": false,
"is_media_required": false,
"is_open_status": true,
"status": true,
"color": "#f89406",
"access_type": "default",
"created_at": "2026-08-13T13:55:49.000000Z",
"updated_at": "2026-08-13T13:55:49.000000Z"
},
{
"id": 3,
"name": "Complete",
"is_note_required": true,
"is_media_required": false,
"is_open_status": false,
"status": true,
"color": "#2ecc71",
"access_type": "default",
"created_at": "2026-08-13T13:55:49.000000Z",
"updated_at": "2026-08-13T13:55:49.000000Z"
}
]
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the API request completed successfully. |
status_code | integer | HTTP status code of the response. |
message | string | Human-readable summary of the result. |
description | string | Additional context or explanation, if available. |
data | object | The main response payload. |
โtask_statuses | array | List of all task statuses available in the organization. |
โid | integer | Unique identifier of the task status. |
โname | string | Display name of the status (e.g., 'To do', 'In Progress'). |
โis_note_required | boolean | Whether a note is mandatory when transitioning a task to this status. |
โis_media_required | boolean | Whether a media attachment is mandatory when transitioning a task to this status. |
โis_open_status | boolean | Whether this status indicates the task is still open (not yet resolved). |
โstatus | boolean | Whether this task status is currently active and available for use. |
โcolor | string | Hex color code used to visually represent this status in the UI. |
โaccess_type | string | Access control level โ 'default' (available to all) or 'restricted'. |
โcreated_at | datetime | ISO 8601 timestamp when the status was created. |
โupdated_at | datetime | ISO 8601 timestamp when the status was last modified. |
cURL Example
curl -X GET \
"https://your-org.algus.io/task-statuses" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves all task labels configured in the organization. Labels are used to categorize or tag tasks for easier filtering and organization.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"task_labels": [
{
"id": 1,
"name": "Urgent",
"status": true,
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
},
{
"id": 2,
"name": "Safety",
"status": true,
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
}
]
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the API request completed successfully. |
status_code | integer | HTTP status code of the response. |
message | string | Human-readable summary of the result. |
description | string | Additional context or explanation, if available. |
data | object | The main response payload. |
โtask_labels | array | List of all task labels available in the organization. |
โid | integer | Unique identifier of the task label. |
โname | string | Display name of the label (e.g., 'Urgent', 'Safety'). |
โstatus | boolean | Whether this label is currently active and can be assigned to tasks. |
โcreated_at | datetime | ISO 8601 timestamp when the label was created. |
โupdated_at | datetime | ISO 8601 timestamp when the label was last modified. |
cURL Example
curl -X GET \
"https://your-org.algus.io/task-labels" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Fetch allowed priority levels and SLA due-date calculation rules for a specific task type.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| task_type | integer | Required | ID of the target task type. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"task_type_priorites": [
{
"id": 1,
"task_type_id": 1,
"name": "High",
"color": "#e74c3c",
"priority_days": "1",
"priority_type": "day",
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
}
]
},
"now": "2026-08-15 13:30:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether request was successful. |
status_code | integer | HTTP status code (200 OK). |
โtask_type_priorites | array | Array of priority objects configured for this task type. |
โid | integer | Priority database ID. |
โname | string | Priority level label (e.g. 'High', 'Medium'). |
โcolor | string | Hex color code associated with priority. |
โpriority_days | string | Time unit quantity for due date calculation. |
โpriority_type | string | Time unit type ('day', 'week', 'month'). |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-task-type-priorities-by-task-type/{task_type}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Fetch custom field definitions configured for a specific task type.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| task_type | integer | Required | ID of the target task type. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"task_type_custom_fields": [
{
"id": 1,
"task_type_id": 2,
"sort_id": 1,
"title": "What needs to be done ?",
"type": "Text",
"is_required": true,
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
}
]
},
"now": "2026-08-15 13:30:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether request was successful. |
status_code | integer | HTTP status code (200 OK). |
โtask_type_custom_fields | array | Array of custom field definitions configured for this task type. |
โid | integer | Custom field record ID. |
โtitle | string | The title or prompt of the custom field. |
โtype | string | Field input type (e.g. 'Text', 'Number', 'Date'). |
โis_required | boolean | Whether a value is required for this field when creating a task. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-task-type-custom-fields-by-task-type/{task_type}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Fetch linked active inspection templates for a specific task type.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| task_type | integer | Required | ID of the target task type. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"task_type_templates": [
{
"id": 3,
"title": "Daily Warehouse Checklist",
"status": true,
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
}
]
},
"now": "2026-08-15 13:30:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether request was successful. |
status_code | integer | HTTP status code (200 OK). |
โtask_type_templates | array | Array of active inspection templates linked to this task type. |
โid | integer | Template record ID. |
โtitle | string | The title of the inspection template. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-task-type-templates-by-task-type/{task_type}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves all task types configured in the organization. Task types define categories like 'Task', 'CAPA', or 'Maintenance' โ each with its own series prefix and numbering.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"task_types": [
{
"id": 1,
"name": "Task",
"series_prefix": "TA",
"series_starts_with": "1",
"current_series_number": "4",
"is_inspection_required": false,
"status": true,
"settings": null,
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-15T10:21:29.000000Z"
},
{
"id": 2,
"name": "CAPA",
"series_prefix": "CA",
"series_starts_with": "1",
"current_series_number": "1",
"is_inspection_required": false,
"status": true,
"settings": {
"show_progress": true
},
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T08:46:34.000000Z"
}
]
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the API request completed successfully. |
status_code | integer | HTTP status code of the response. |
โtask_types | array | List of task types. |
โid | integer | Unique ID of the task type. |
โname | string | Name of the task type. |
โseries_prefix | string | Prefix used for task numbering. |
โstatus | boolean | Active status of the task type. |
cURL Example
curl -X GET \
"https://your-org.algus.io/task-types" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"โ ๏ธ Issues
Manage operational issues.
Description
Fetches all configured issue categories along with their series prefix and settings.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"issue_categories": [
{
"id": 1,
"name": "Safety & Hazard",
"series_prefix": "SF",
"series_starts_with": 1,
"current_series_number": 5,
"status": true,
"settings": null,
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
}
]
},
"now": "2026-08-15 13:40:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether request was successful. |
status_code | integer | HTTP status code (200 OK). |
โissue_categories | array | Array of issue category records. |
โid | integer | Issue category database ID. |
โname | string | Issue category display name. |
โseries_prefix | string | Prefix string used for issue tracking numbers. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-issue-categories" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Fetches all global priority levels available for workplace issues.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"priorities": [
{
"id": 1,
"name": "Low",
"color": "#3498db",
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
},
{
"id": 2,
"name": "Medium",
"color": "#f1c40f",
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
},
{
"id": 3,
"name": "High",
"color": "#e74c3c",
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
}
]
},
"now": "2026-08-15 13:42:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether request was successful. |
status_code | integer | HTTP status code (200 OK). |
โpriorities | array | Array of global priority records. |
โid | integer | Priority database ID. |
โname | string | Priority level display name. |
โcolor | string | Hex color code for the priority level. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-issue-priorities" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Fetches all issue statuses configured in the organization (such as Open, In Progress, Resolved).
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"issue_statuses": [
{
"id": 1,
"name": "Open",
"is_note_required": false,
"is_media_required": false,
"is_open_status": true,
"status": true,
"color": "#3498db",
"access_type": "default",
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
},
{
"id": 2,
"name": "Resolved",
"is_note_required": true,
"is_media_required": false,
"is_open_status": false,
"status": true,
"color": "#2ecc71",
"access_type": "default",
"created_at": "2026-08-14T06:11:12.000000Z",
"updated_at": "2026-08-14T06:11:12.000000Z"
}
]
},
"now": "2026-08-15 13:42:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether request was successful. |
status_code | integer | HTTP status code (200 OK). |
โissue_statuses | array | Array of issue status definitions. |
โid | integer | Status record ID. |
โname | string | The name of the status (e.g. 'Open', 'In Progress', 'Resolved'). |
โis_note_required | boolean | Whether a resolution note is required when transitioning an issue to this status. |
โis_media_required | boolean | Whether photo/media attachments are required when transitioning an issue to this status. |
โis_open_status | boolean | Indicates if the status keeps the issue open (true) or acts as a closed/resolved state (false). |
โstatus | boolean | Indicates if the status definition is active and visible. |
โcolor | string | Hex color code associated with the status. |
โaccess_type | string | Access rules constraint type ('default' or 'restricted'). |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-issue-statuses" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves a paginated list of all issues matching optional filters. This returns lightweight issue records designed for list views and dashboards.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| search | string | Optional | Search by issue title or series number (partial match). |
| statuses | array | Optional | Filter by one or more issue status IDs. Example: statuses[]=1&statuses[]=2 |
| priorities | array | Optional | Filter by one or more priority IDs. Example: priorities[]=1&priorities[]=3 |
| categories | array | Optional | Filter by one or more issue category IDs. Example: categories[]=1&categories[]=2 |
| site_ids | array | Optional | Filter by one or more site IDs. Example: site_ids[]=2&site_ids[]=3 |
| resource_ids | array | Optional | Filter by one or more resource IDs. Example: resource_ids[]=1 |
| users | array | Optional | Filter by one or more creator user IDs. Example: users[]=2 |
| assignees | array | Optional | Filter by assignees. Supports user IDs (e.g., `user_2`), user group IDs (e.g., `group_1`), or `unassigned`. Example: assignees[]=user_2&assignees[]=group_1 |
| due_date | object | Optional | Filter by due date. Pass as an object with `type` key. Allowed types: `today`, `next_7_days`, `past_due`, `overdue`, `no_due_date`, `before`, `after`, `custom`. For `before`/`after` pass `value[0]` as a date string. For `custom` pass `value[0]` and `value[1]` as start/end dates. Example: due_date[type]=overdue |
| date_created | array | Optional | Filter by created date range. Pass as array of two date strings [start, end]. Example: date_created[]=2026-08-01&date_created[]=2026-08-31 |
| date_occurred | array | Optional | Filter by date occurred range. Pass as array of two date strings [start, end]. Example: date_occurred[]=2026-08-01&date_occurred[]=2026-08-15 |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"issues": {
"current_page": 1,
"data": [
{
"id": 101,
"series_number": "ISS-101",
"issue_category_id": 2,
"priority_id": 1,
"issue_status_id": 1,
"creator_id": 5,
"site_id": 12,
"resource_id": 4,
"title": "Hydraulic Pump Water Leak",
"description": "Water leaking near secondary pump line on B2 floor.",
"is_anonymous": false,
"date_occurred": "2026-08-15 08:30:00",
"due_date": "2026-08-18 17:00:00",
"progress": 25,
"created_at": "2026-08-15T08:45:12.000000Z",
"updated_at": "2026-08-15T09:10:00.000000Z",
"formatted_date_occurred": "15 Aug 2026 08:30 AM",
"assigned_users": "John Doe, Facilities Maintenance",
"model_name": "issue",
"feedback_response_id": null,
"related_to": {
"id": 45,
"type": "App\\Models\\Tenant\\Inspection\\Inspection",
"model_name": "inspection",
"series_number": "INS-2026-0089",
"title": "Daily HVAC & Plumbing Checklist"
},
"department_path": "Building A > Basement 2 > Mechanical Room",
"issue_category": {
"id": 2,
"name": "Plumbing & Hydraulics",
"settings": {
"anonymous_reporting": false
}
},
"site": {
"id": 12,
"name": "Building A - Operations Facility",
"type": "site",
"label": "Building A",
"key": "site_12",
"has_project_ancestor": true,
"full_path": "Corporate Campus > Building A",
"short_path": "Building A"
},
"creator": {
"id": 5,
"name": "Alex Morgan"
},
"issue_status": {
"id": 1,
"name": "Open",
"color": "#EF4444",
"is_open_status": true
},
"priority": {
"id": 1,
"name": "High",
"color": "#DC2626"
},
"resource": {
"id": 4,
"title": "Secondary Hydraulic Pump #2",
"site_id": 12
},
"assignee": {
"id": 34,
"assignable_id": 101,
"assignable_type": "App\\Models\\Tenant\\Issue\\Issue",
"users": [
{
"id": 8,
"name": "John Doe"
}
],
"user_groups": [
{
"id": 2,
"name": "Facilities Maintenance"
}
]
},
"attachments": [
{
"id": 14,
"attachable_id": 101,
"attachable_type": "App\\Models\\Tenant\\Issue\\Issue",
"file_name": "leak_photo_1.jpg",
"file": "issue_attachments/leak_photo_1.jpg",
"thumbnail": "attachments/thumbnails/leak_photo_1_thumb.jpg",
"type": "image/jpeg",
"size": 2048500
}
],
"pin": {
"id": 3,
"pinnable_id": 101,
"pinnable_type": "App\\Models\\Tenant\\Issue\\Issue",
"site_plan_version_id": 8,
"x_percent": "42.50",
"y_percent": "68.10",
"zoom_level": "1.20"
}
}
],
"first_page_url": "https://api.example.com/api/v1/issues?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "https://api.example.com/api/v1/issues?page=1",
"next_page_url": null,
"path": "https://api.example.com/api/v1/issues",
"per_page": 15,
"prev_page_url": null,
"to": 1,
"total": 1
}
},
"now": "2026-08-15 16:42:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the request was successful. |
status_code | integer | HTTP status code (200 OK). |
โcurrent_page | integer | Current page number in pagination. |
โdata | array | List of issues matching the search/filter criteria. |
โid | integer | Unique database identifier for the issue. |
โseries_number | string | Unique sequential reference code (e.g. ISS-101). |
โtitle | string | Title or short summary of the issue. |
โdescription | string | Detailed description of the issue. |
โformatted_date_occurred | string | Human-readable timestamp of when the issue occurred. |
โassigned_users | string | Comma-separated list of assigned users and groups for quick display. |
โrelated_to | object | Details of linked inspection, feedback submission, or resource if applicable. |
โdepartment_path | string | Full hierarchical path of the department or location. |
โissue_category | object | Associated category information. |
โsite | object | Location or site details including full path. |
โcreator | object | User who created the issue. |
โissue_status | object | Current status details including display color and open/closed state. |
โpriority | object | Priority level details including display color. |
โresource | object | Associated equipment or asset resource. |
โassignee | object | Detailed breakdown of assigned users and user groups. |
โattachments | array | Photos, videos, or documents uploaded with the issue. |
โpin | object | Floor plan or site plan pin coordinates (x, y percentages). |
cURL Example
curl -X GET \
"https://your-org.algus.io/issues" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Creates a new issue. Issues are heavily driven by dynamic fields configured on their Issue Category. You must provide the issue_fields array to populate the dynamic form data.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| issue_category | integer | Required | The ID of the issue category being used. Refer to GET /issue-categories to fetch all active issue categories. |
| date | string | Required | The date the issue is being logged (YYYY-MM-DD). |
| title | string | Optional | Issue title. If omitted, the system will attempt to extract it from an issue field named 'Title'. |
| is_anonymous | boolean | Optional | Set to true to hide the reporter's identity (if category allows it). |
| issue_fields | array | Required | Array of dynamic field responses. Each object must contain 'id', 'name', 'global_name', and 'value'. Location, description, and other details should only be passed here if they exist as configured fields for this category. Refer to GET /issue-category-datas/{issue_category} to fetch the fields layout. |
| custom_fields | array | Required | Array of category-specific custom field responses. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"issue_category": 2,
"date": "2026-08-15",
"title": "Broken AC Unit",
"is_anonymous": false,
"issue_fields": [
{
"id": 10,
"name": "Site",
"global_name": "Site",
"value": null
},
{
"id": 11,
"name": "Date Occurred",
"global_name": "Date Occurred",
"value": "2026-08-15 09:30:00"
},
{
"id": 12,
"name": "Description",
"global_name": "Description",
"value": "AC unit is leaking water."
}
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Issue created successfully",
"data": {
"id": 5,
"issue_category_id": 2,
"title": "Broken AC Unit",
"date": "2026-08-15",
"priority_id": 2,
"due_date": "2026-08-20 14:00:00",
"progress": 0,
"assignee": {
"users": [
{
"id": 2,
"name": "John Doe"
}
],
"userGroups": [
{
"id": 1,
"name": "Maintenance Team"
}
]
}
},
"now": "2026-08-15 16:42:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the issue was created successfully. |
status_code | integer | HTTP status code (200 OK). |
message | string | Success confirmation text ('Issue created successfully'). |
data | object | The newly created issue object, containing full details, relationships, and dynamic field responses. See GET /issues/{issue} for the complete structure. |
now | datetime | Current server timestamp. |
cURL Example
curl -X POST \
"https://your-org.algus.io/issues" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"issue_category": 2,
"date": "2026-08-15",
"title": "Broken AC Unit",
"is_anonymous": false,
"issue_fields": [
{
"id": 10,
"name": "Site",
"global_name": "Site",
"value": null
},
{
"id": 11,
"name": "Date Occurred",
"global_name": "Date Occurred",
"value": "2026-08-15 09:30:00"
},
{
"id": 12,
"name": "Description",
"global_name": "Description",
"value": "AC unit is leaking water."
}
]
}'Description
Retrieves the full, detailed record of a specific issue. This includes all dynamic form responses (issueDetails), attached media, task links, inspection links, and complete assignee data.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"issue": {
"id": 5,
"issue_category_id": 2,
"site_id": null,
"resource_id": null,
"creator_id": null,
"date": "2026-08-15",
"title": "Broken AC Unit",
"description": null,
"progress": 0,
"location": null,
"lat": null,
"lng": null,
"date_occurred": "2026-08-15 09:30:00",
"auto_generated": false,
"is_anonymous": false,
"is_clone_attachments": false,
"field_settings_snapshot": {
"issue_fields": [
{
"id": 8,
"name": "Title",
"global_name": "Title",
"type": "title",
"choices": null,
"is_multiple": false,
"status": true,
"is_required": true,
"logic_rules": null
},
{
"id": 9,
"name": "Description",
"global_name": "Description",
"type": "description",
"choices": null,
"is_multiple": false,
"status": true,
"is_required": false,
"logic_rules": null
},
{
"id": 10,
"name": "Site",
"global_name": "Site",
"type": "site",
"choices": null,
"is_multiple": false,
"status": true,
"is_required": false,
"logic_rules": null
},
{
"id": 11,
"name": "Resource",
"global_name": "Resource",
"type": "resource",
"choices": null,
"is_multiple": false,
"status": true,
"is_required": false,
"logic_rules": null
},
{
"id": 12,
"name": "Image and video",
"global_name": "Image and video",
"type": "image",
"choices": null,
"is_multiple": false,
"status": true,
"is_required": false,
"logic_rules": null
},
{
"id": 13,
"name": "Location",
"global_name": "Location",
"type": "location",
"choices": null,
"is_multiple": false,
"status": true,
"is_required": false,
"logic_rules": null
},
{
"id": 14,
"name": "Date Occurred",
"global_name": "Date Occurred",
"type": "date_occurred",
"choices": null,
"is_multiple": false,
"status": true,
"is_required": true,
"logic_rules": null
}
]
},
"created_at": "2026-08-15T11:13:40.000000Z",
"updated_at": "2026-08-15T11:13:40.000000Z",
"priority_id": 1,
"series_number": "IN-1",
"due_date": null,
"issue_status_id": 1,
"department_id": null,
"formatted_date_occurred": "15 Aug 2026 09:30 AM",
"assigned_users": [],
"model_name": "issue",
"feedback_response_id": null,
"related_to": null,
"department_path": null,
"issue_category": {
"id": 2,
"name": "Incident",
"status": true,
"settings": null,
"series_prefix": "IN",
"series_starts_with": "1",
"current_series_number": "1",
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-15T11:13:40.000000Z",
"assignee": null,
"issue_fields": [
{
"id": 8,
"issue_category_id": 2,
"sort_id": "1",
"name": "Title",
"status": true,
"is_required": true,
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z",
"issue_global_field_id": 1,
"type": "title",
"choices": null,
"is_multiple": false,
"logic_rules": null
}
],
"custom_fields": [
{
"id": 3,
"issue_category_id": 2,
"sort_id": null,
"name": "What needs to be done ?",
"type": "Text",
"choices": [
{
"name": "Yes"
},
{
"name": "No"
}
],
"is_required": false,
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z",
"show_multi_choice_options": false
}
]
},
"priority": {
"id": 1,
"name": "Low",
"color": "#3498db",
"created_at": "2026-08-13T13:55:49.000000Z",
"updated_at": "2026-08-13T13:55:49.000000Z"
},
"site": null,
"resource": null,
"issue_details": [],
"attachments": [],
"inspections": [],
"assignee": null,
"issue_status": {
"id": 1,
"name": "Open",
"is_note_required": false,
"is_media_required": false,
"is_open_status": true,
"status": true,
"color": "#3498db",
"access_type": "default",
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z"
},
"tasks": [],
"issue_links": [],
"department": null
}
},
"now": "2026-08-15 11:15:02"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the API request was executed successfully. |
status_code | integer | HTTP status code returned by the server (200 OK). |
message | string | Optional notification or error message. |
description | string | Optional detailed description of the response status. |
now | datetime | Current timestamp of the server when response was generated. |
โid | integer | Unique database identifier for this issue. |
โissue_category_id | integer | Foreign key ID pointing to the issue's category. |
โsite_id | integer|null | Foreign key ID pointing to the associated site/building. |
โresource_id | integer|null | Foreign key ID pointing to the associated asset/equipment resource. |
โcreator_id | integer|null | Foreign key ID pointing to the user who logged this issue. |
โdate | string | The reporting date of the issue (YYYY-MM-DD). |
โtitle | string | Title or headline of the issue. |
โdescription | string|null | Detailed explanation of the issue. |
โprogress | integer | Resolution progress percentage (0 to 100). |
โlocation | string|null | Physical text location description. |
โlat | string|null | GPS Latitude coordinate. |
โlng | string|null | GPS Longitude coordinate. |
โdate_occurred | datetime | Exact date and time when the issue took place. |
โauto_generated | boolean | Flag indicating if created automatically by system triggers. |
โis_anonymous | boolean | Flag indicating if reporter identity is hidden. |
โis_clone_attachments | boolean | Flag indicating if attachments were cloned from a source inspection/feedback. |
โcreated_at | datetime | ISO timestamp when the issue record was created. |
โupdated_at | datetime | ISO timestamp when the issue record was last modified. |
โpriority_id | integer | Foreign key ID for priority level. |
โseries_number | string | Auto-generated reference serial number (e.g. IN-1). |
โdue_date | datetime|null | Target completion deadline. |
โissue_status_id | integer | Foreign key ID for current status. |
โdepartment_id | integer|null | Foreign key ID for assigned department. |
โformatted_date_occurred | string | Formatted human-readable occurrence date. |
โassigned_users | array | List of assigned user objects or IDs. |
โmodel_name | string | Internal entity type name ('issue'). |
โfeedback_response_id | integer|null | ID of linked feedback response if created from customer feedback. |
โrelated_to | object|null | Summary of parent source object (inspection/feedback) that triggered this issue. |
โdepartment_path | string|null | Full breadcrumb string of department hierarchy. |
โfield_settings_snapshot | object | Snapshot of form field configurations at creation time. |
โissue_fields | array | List of field definitions stored in the snapshot. |
โid | integer | Field definition ID. |
โname | string | Field label shown to user. |
โglobal_name | string | Standardized system global field key. |
โtype | string | UI component type (title, description, site, resource, image, location, date_occurred). |
โchoices | array|null | Dropdown or radio choices if applicable. |
โis_multiple | boolean | Whether multiple options can be selected. |
โstatus | boolean | Whether field was active at creation time. |
โis_required | boolean | Whether field was mandatory at creation time. |
โlogic_rules | object|null | Conditional rules for rendering field. |
โissue_category | object | Category metadata. |
โid | integer | Category ID. |
โname | string | Category display name (e.g. Incident). |
โstatus | boolean | Whether category is active. |
โsettings | object|null | Category-specific configuration settings. |
โseries_prefix | string | Prefix string used for serial numbers (e.g. IN). |
โseries_starts_with | string | Initial counter number for serial generation. |
โcurrent_series_number | string | Current counter value for serial generation. |
โcreated_at | datetime | Category creation timestamp. |
โupdated_at | datetime | Category update timestamp. |
โassignee | object|null | Default category assignee config. |
โissue_fields | array | Current system fields attached to this category. |
โid | integer | Issue field record ID. |
โissue_category_id | integer | Belongs to category ID. |
โsort_id | string | Sort order position index. |
โname | string | Field display name. |
โstatus | boolean | Field active status. |
โis_required | boolean | Field mandatory flag. |
โissue_global_field_id | integer | ID of linked global field definition. |
โtype | string | Field input type. |
โchoices | array|null | Option choices list. |
โis_multiple | boolean | Multiple selection flag. |
โlogic_rules | object|null | Display logic rules object. |
โcustom_fields | array | Custom fields configured for this category. |
โid | integer | Custom field ID. |
โissue_category_id | integer | Parent category ID. |
โname | string | Question/field prompt text. |
โtype | string | Custom field data type (e.g. Text, Select). |
โchoices | array | List of predefined answer choices. |
โname | string | Individual choice option label (e.g. 'Yes', 'No'). |
โis_required | boolean | Mandatory question flag. |
โshow_multi_choice_options | boolean | UI display style toggle for multiple choices. |
โpriority | object | Priority object. |
โid | integer | Priority ID. |
โname | string | Priority name (e.g. Low, Medium, High). |
โcolor | string | Hex color representation (#3498db). |
โcreated_at | datetime | Priority creation timestamp. |
โupdated_at | datetime | Priority last update timestamp. |
โissue_status | object | Current status object. |
โid | integer | Status ID. |
โname | string | Status name (e.g. Open, Closed). |
โis_note_required | boolean | Whether notes are mandatory when switching to this status. |
โis_media_required | boolean | Whether photo/video attachments are mandatory when switching to this status. |
โis_open_status | boolean | Whether this status represents an active/open issue state. |
โstatus | boolean | Status active toggle flag. |
โcolor | string | Hex color string (#3498db). |
โaccess_type | string | Access level control string ('default'). |
โsite | object|null | Site object when attached. |
โresource | object|null | Resource object when attached. |
โissue_details | array | List of saved user answers to custom fields. |
โattachments | array | List of media attachments. |
โinspections | array | List of linked inspection records. |
โassignee | object|null | Assignee details object. |
โtasks | array | List of corrective action tasks. |
โissue_links | array | Polymorphic links to related system entities. |
โdepartment | object|null | Department object when attached. |
cURL Example
curl -X GET \
"https://your-org.algus.io/issues/{issue}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Updates an existing issue record. Matches the exact Web UI form structure. Re-evaluates category fields, updates custom questions, recalculates location/GPS coordinates, syncs floor plan pins, and replaces attachments.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| issue_category | integer | Required | ID of the issue category. |
| date | string | Required | Issue date formatted as YYYY-MM-DD. |
| issue_fields | array | Required | Array of category system field responses. Each object includes id, name, global_name, type, and value. Title, description, location, and other system details must be passed here within this array rather than directly at the root level. |
| custom_fields | array | Required | Array of custom category question responses. Each object includes id, name, and value. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"issue_category": 2,
"date": "2026-08-15",
"issue_fields": [
{
"id": 8,
"name": "Title",
"global_name": "Title",
"type": "title",
"value": "Broken AC Unit - Fixed"
},
{
"id": 9,
"name": "Description",
"global_name": "Description",
"type": "description",
"value": "Replaced faulty fan belt and cleaned condenser coils."
},
{
"id": 10,
"name": "Site",
"global_name": "Site",
"type": "site",
"value": null
},
{
"id": 11,
"name": "Resource",
"global_name": "Resource",
"type": "resource",
"value": null
},
{
"id": 13,
"name": "Location",
"global_name": "Location",
"type": "location",
"value": "Roof Mech Room B2",
"full_value": {
"address": "Roof Mech Room B2",
"lat": "37.7749",
"lng": "-122.4194"
}
},
{
"id": 14,
"name": "Date Occurred",
"global_name": "Date Occurred",
"type": "date_occurred",
"value": "2026-08-15 09:30:00"
}
],
"custom_fields": [
{
"id": 3,
"name": "What needs to be done ?",
"value": "Replace AC Filter"
},
{
"id": 4,
"name": "What Caused it ?",
"value": "Overheating due to clogged filter"
}
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": "Issue Updated Successfully",
"now": "2026-08-15 16:58:30"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the update request was successful. |
status_code | integer | HTTP status code (200 OK). |
data | string | Confirmation text message ('Issue Updated Successfully'). |
now | datetime | Current server timestamp. |
cURL Example
curl -X PUT \
"https://your-org.algus.io/issues/{issue}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"issue_category": 2,
"date": "2026-08-15",
"issue_fields": [
{
"id": 8,
"name": "Title",
"global_name": "Title",
"type": "title",
"value": "Broken AC Unit - Fixed"
},
{
"id": 9,
"name": "Description",
"global_name": "Description",
"type": "description",
"value": "Replaced faulty fan belt and cleaned condenser coils."
},
{
"id": 10,
"name": "Site",
"global_name": "Site",
"type": "site",
"value": null
},
{
"id": 11,
"name": "Resource",
"global_name": "Resource",
"type": "resource",
"value": null
},
{
"id": 13,
"name": "Location",
"global_name": "Location",
"type": "location",
"value": "Roof Mech Room B2",
"full_value": {
"address": "Roof Mech Room B2",
"lat": "37.7749",
"lng": "-122.4194"
}
},
{
"id": 14,
"name": "Date Occurred",
"global_name": "Date Occurred",
"type": "date_occurred",
"value": "2026-08-15 09:30:00"
}
],
"custom_fields": [
{
"id": 3,
"name": "What needs to be done ?",
"value": "Replace AC Filter"
},
{
"id": 4,
"name": "What Caused it ?",
"value": "Overheating due to clogged filter"
}
]
}'Description
Permanently deletes an issue and all its associated dynamic responses (issueDetails).
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": "Issue Deleted Successfully",
"now": "2026-08-15 16:42:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the deletion was successful. |
status_code | integer | HTTP status code (200 OK). |
data | string | Confirmation text ('Issue Deleted Successfully'). |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/issues/{issue}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves the structural schema for a specific issue category. This is crucial for rendering the dynamic issue creation form in the UI. It returns all configured global fields, custom fields, choice lists, and display logic rules.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"id": 1,
"name": "Hazard",
"status": true,
"settings": null,
"series_prefix": "HA",
"series_starts_with": "1",
"current_series_number": "1",
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-14T06:11:53.000000Z",
"custom_fields": [
{
"id": 1,
"issue_category_id": 1,
"sort_id": null,
"name": "What needs to be done ?",
"type": "Text",
"choices": [
{
"name": "Yes"
},
{
"name": "No"
}
],
"is_required": false,
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z",
"show_multi_choice_options": false
},
{
"id": 2,
"issue_category_id": 1,
"sort_id": null,
"name": "What Caused it ?",
"type": "Text",
"choices": [
{
"name": "Yes"
},
{
"name": "No"
}
],
"is_required": false,
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z",
"show_multi_choice_options": false
}
],
"issue_fields": [
{
"id": 1,
"issue_global_field_id": 1,
"name": "Title",
"global_name": "Title",
"status": true,
"is_required": true,
"type": "title",
"choices": null,
"is_multiple": false,
"logic_rules": null,
"sort_id": "1"
},
{
"id": 2,
"issue_global_field_id": 2,
"name": "Description",
"global_name": "Description",
"status": true,
"is_required": false,
"type": "description",
"choices": null,
"is_multiple": false,
"logic_rules": null,
"sort_id": "2"
},
{
"id": 3,
"issue_global_field_id": 3,
"name": "Site",
"global_name": "Site",
"status": true,
"is_required": false,
"type": "site",
"choices": null,
"is_multiple": false,
"logic_rules": null,
"sort_id": "3"
},
{
"id": 4,
"issue_global_field_id": 4,
"name": "Resource",
"global_name": "Resource",
"status": true,
"is_required": false,
"type": "resource",
"choices": null,
"is_multiple": false,
"logic_rules": null,
"sort_id": "4"
},
{
"id": 5,
"issue_global_field_id": 5,
"name": "Image and video",
"global_name": "Image and video",
"status": true,
"is_required": false,
"type": "image",
"choices": null,
"is_multiple": false,
"logic_rules": null,
"sort_id": "5"
},
{
"id": 6,
"issue_global_field_id": 6,
"name": "Location",
"global_name": "Location",
"status": true,
"is_required": false,
"type": "location",
"choices": null,
"is_multiple": false,
"logic_rules": null,
"sort_id": "6"
},
{
"id": 7,
"issue_global_field_id": 7,
"name": "Date Occurred",
"global_name": "Date Occurred",
"status": true,
"is_required": true,
"type": "date_occurred",
"choices": null,
"is_multiple": false,
"logic_rules": null,
"sort_id": "7"
}
]
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
id | integer | Category unique identifier. |
name | string | Name of the issue category. |
status | boolean | Indicates whether the category is active. |
settings | object|null | Settings snapshot of category config (such as anonymous reporting flag). |
series_prefix | string | Prefix used when auto-generating issue serial numbers. |
series_starts_with | string | The initial index where issue series numbering begins. |
current_series_number | string | The current index counter of issues created in this category. |
created_at | datetime | Category creation timestamp. |
updated_at | datetime | Category last update timestamp. |
custom_fields | array | Array of category-specific custom question fields. |
โid | integer | Unique identifier for the custom field. |
โissue_category_id | integer | Foreign key ID pointing to the issue category this custom field belongs to. |
โsort_id | integer|null | Sorting order index position. |
โname | string | The text label/prompt of the custom question. |
โtype | string | Custom field component input type (e.g. Text, Select). |
โchoices | array | Predefined options for the custom question choices. |
โname | string | Indicates choice option name (e.g., 'Yes', 'No'). |
โis_required | boolean | Indicates whether answering this custom question is mandatory. |
โcreated_at | datetime | Custom field creation timestamp. |
โupdated_at | datetime | Custom field last update timestamp. |
โshow_multi_choice_options | boolean | Flag to control layout rendering of multi-choice select options directly in UI. |
issue_fields | array | Array of dynamic global fields mapped to this category. |
โid | integer | Unique mapping ID of this field configuration. |
โissue_global_field_id | integer | Foreign key ID referencing the system global field configuration. |
โname | string | Custom display label name for this field. |
โglobal_name | string | Standardized system name for mapping values (e.g., Title, Description, Site, Resource). |
โstatus | boolean | Active status indicating whether the field is rendered. |
โis_required | boolean | Whether the field is mandatory. |
โtype | string | Field component input type (e.g., title, description, site, resource, image, location, date_occurred). |
โchoices | array|null | List of predefined choice options if field type is select-based. |
โis_multiple | boolean | Whether multiple selections are supported. |
โlogic_rules | object|null | JSON object defining dynamic visibility/dependency logic rules. |
โsort_id | string | Sorting order index position. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-issue-category-datas/{issue_category}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Advances or regresses the issue through its workflow. This updates the issue's status, records the change in the history log, and handles any mandatory notes or media required by the new status.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| status | integer | Required | The ID of the new Issue Status. |
| notes | string | Optional | Text note explaining the status change. Mandatory if the status has is_note_required=true. |
| attachments | array | Optional | Array of media files (images/video) proving the status change. Mandatory if the status has is_media_required=true. |
| attachments[0][file] | file | Optional | Required only if the new status has `is_media_required` set to true. (Refer to the relevant issue statuses API). Attach multiple files using attachments[1][file], etc. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"status": 3,
"notes": "Parts arrived, repairing now."
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "Issue Status Updated Successfully"
},
"now": "2026-08-15 16:42:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the status change was recorded. |
status_code | integer | HTTP status code (200 OK). |
โmessage | string | Confirmation message ('Issue Status Updated Successfully'). |
cURL Example
curl -X POST \
"https://your-org.algus.io/update-issue-status/{issue}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"status": 3,
"notes": "Parts arrived, repairing now."
}'Description
Quickly updates the core operational metadata of an issue without replacing the entire dynamic form payload. Useful for assigning users, changing deadlines, or updating priorities.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| location | string | Optional | Text description of the physical location. |
| lat | string | Optional | GPS Latitude. |
| lng | string | Optional | GPS Longitude. |
| due_date | datetime | Optional | The deadline for resolving the issue. |
| priority | integer | Optional | The ID of the new priority level. |
| assignees | array | Optional | Array of assignee identifiers (e.g., ['user_1', 'group_2', 'unassigned']). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"due_date": "2026-08-25 17:00:00",
"priority": 3,
"assignees": [
"group_1"
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "Issue Details Updated Successfully"
},
"now": "2026-08-15 16:42:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the details were updated. |
status_code | integer | HTTP status code (200 OK). |
โmessage | string | Confirmation message ('Issue Details Updated Successfully'). |
cURL Example
curl -X POST \
"https://your-org.algus.io/update-issue-details/{issue}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"due_date": "2026-08-25 17:00:00",
"priority": 3,
"assignees": [
"group_1"
]
}'Description
Uploads an attachment for an issue (requires multipart/form-data).
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| file | binary | Required | The attachment file to upload. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"attachment": {
"id": 16,
"file": "issue_attachments/leak_photo_1.jpg",
"file_name": "leak_photo_1.jpg",
"type": "image/jpeg",
"size": 2048500,
"created_at": "2026-08-17T07:27:00.000000Z",
"updated_at": "2026-08-17T07:27:00.000000Z"
}
},
"now": "2026-08-17 07:27:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | object | Response data payload wrapper. |
โattachment | object | The uploaded attachment details. |
โid | integer | Unique attachment identifier. |
โfile | string | Stored file path reference. |
โfile_name | string | Original file name. |
โtype | string | File MIME type. |
โsize | integer | File size in bytes. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last updated timestamp. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/issues/{issue}/attachments" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Deletes an attachment associated with an issue.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| id | integer | Required | Unique identifier of the attachment to delete. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"id": 16
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Attachment Deleted Successfully",
"description": null,
"data": null,
"now": "2026-08-17 07:27:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message confirming deletion ('Attachment Deleted Successfully'). |
description | string|null | Optional description metadata. |
data | null | Response data payload (always null). |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/issues/{issue}/delete-attachments" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"id": 16
}'Description
Updates the progress percentage for an issue.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| progress | integer | Required | The new progress percentage of the issue (0 to 100). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"progress": 50
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "Issue Progress Updated Successfully",
"issue": {
"id": 5,
"issue_category_id": 2,
"priority_id": 1,
"site_id": 1,
"resource_id": 3,
"title": "Water Leak",
"progress": 50,
"status": true,
"created_at": "2026-08-15T12:00:00.000000Z",
"updated_at": "2026-08-17T07:27:00.000000Z"
}
},
"now": "2026-08-17 07:27:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message (null when returning data wrap). |
description | string|null | Optional description metadata. |
data | object | Response data payload wrapper. |
โmessage | string | Confirmation message ('Issue Progress Updated Successfully'). |
โissue | object | The updated issue details. |
โid | integer | Unique issue identifier. |
โprogress | integer | The updated progress percentage. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/update-issue-progress/{issue}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"progress": 50
}'๐ Inspections
Manage and perform template-based inspections.
Description
Retrieves active inspections belonging to or assigned to the current user (my_inspections). Returns inspection scoring, template metadata, user details, and flagged response counts.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| sites | array | Optional | Filter by one or more site IDs. Example: sites[]=2&sites[]=3 |
| users | array | Optional | Filter by one or more user IDs. Example: users[]=2&users[]=4 |
| resources | array | Optional | Filter by one or more resource IDs. Example: resources[]=1 |
| templates | array | Optional | Filter by one or more template IDs. Example: templates[]=1 |
| date | array | Optional | Filter by scheduled/inspection date range. Pass as array of two date strings [start, end]. Example: date[]=2026-08-01&date[]=2026-08-31 |
| completed_at | array | Optional | Filter by completed date range. Pass as array of two date strings [start, end]. Example: completed_at[]=2026-08-01&completed_at[]=2026-08-31 |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"my_inspections": [
{
"id": 3,
"uuid": "7bb4cb4b-20f4-4b2d-ae0d-eb85f20f7146",
"template_id": 3,
"document_number": "000001",
"date_of_inspection": "2026-08-15 11:30:16",
"created_user_id": "2",
"site_id": 1,
"user_id": 2,
"inspection_date": "2026-08-15 00:00:00",
"location": "Building A, Floor 2",
"location_details": {
"address": "123 Innovation Way",
"lat": "37.7749",
"lng": "-122.4194"
},
"total_score": "85",
"template_total_score": "100",
"score_percentage": "85",
"is_drafted": false,
"has_site_question": true,
"created_at": "2026-08-15T11:30:16.000000Z",
"updated_at": "2026-08-15T11:30:16.000000Z",
"scheduled_inspection_id": null,
"assigned_site_id": null,
"assigned_resource_id": null,
"assigned_user_id": null,
"resource_id": 4,
"completed_on": "2026-08-15 11:45:00",
"template_owner_id": 2,
"last_editor_id": 2,
"duration": "00:14:44",
"is_archived": false,
"issue_id": null,
"task_id": null,
"approval_id": null,
"approval_user_id": null,
"inspection_invitation_id": null,
"invited_user_id": null,
"qr_code_item_id": null,
"template_qr_code_id": null,
"formated_inspection_date": "15 Aug 2026 11:30 AM",
"formated_completed_on": "15 Aug 2026 11:45 AM",
"flagged_count": 1,
"model_name": "inspection",
"related_to": null,
"template": {
"id": 3,
"title": "Daily Safety & Maintenance Audit",
"document_number_format": "{number}",
"description": "Standard daily operational checklist for facility safety.",
"image": null,
"total_score": "100",
"is_draft": false,
"report_template": {
"header": null,
"show_inspector": true,
"show_site": true,
"show_resource": true,
"show_location": true,
"show_conducted_on": true,
"show_completed_on": true,
"show_template_author": true,
"show_last_published_by": true,
"show_total_score": true,
"overview_background_color": "#f3f4f6",
"title_background_color": "#1e3a8a",
"score_background_color": "#10b981",
"inspector_label": "Inspector",
"site_label": "Site",
"resource_label": "Resource",
"location_label": "Location"
},
"created_at": "2026-08-15T11:30:08.000000Z",
"updated_at": "2026-08-15T11:30:08.000000Z",
"initial_template_id": 3,
"uuid": "01e0f32e-bb8e-4fc7-8f50-cb75b18faccc",
"template_owner_id": 2,
"is_initial_template": true,
"from_workflow": true,
"is_archived": false,
"is_public": true,
"image_url": null,
"template_owner": {
"id": 2,
"name": "John Admin",
"email": "admin@example.com",
"status": true
}
},
"user": {
"id": 2,
"name": "John Inspector",
"email": "inspector@example.com",
"status": true
},
"site": {
"id": 1,
"name": "Main Operations Facility"
},
"resource": {
"id": 4,
"title": "HVAC Unit #3"
}
}
]
},
"now": "2026-08-15 11:30:22"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the request was successful. |
status_code | integer | HTTP status code (200 OK). |
โmy_inspections | array | List of inspection records. |
โid | integer | Unique database identifier for the inspection. |
โuuid | string | Globally unique UUID string. |
โdocument_number | string | Sequential reference number (e.g. '000001'). |
โdate_of_inspection | datetime | Timestamp when the audit was started. |
โcompleted_on | datetime|null | Timestamp when the audit was marked complete. |
โtotal_score | string | Points earned by inspector. |
โtemplate_total_score | string | Maximum possible score for the audit. |
โscore_percentage | string | Calculated score percentage. |
โis_drafted | boolean | True if inspection is currently in progress. |
โformated_inspection_date | string | User-friendly formatted start date. |
โformated_completed_on | string | User-friendly formatted completion date. |
โflagged_count | integer | Count of failed or non-compliant questions. |
โtemplate | object | Parent template metadata object. |
โtitle | string | Title of the inspection template. |
โuser | object | Assigned inspector user details. |
โsite | object|null | Site or facility details where inspection was conducted. |
โresource | object|null | Machinery or asset resource details. |
cURL Example
curl -X GET \
"https://your-org.algus.io/inspections" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves a list of completed inspections that have been submitted and scored.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| sites | array | Optional | Filter by one or more site IDs. Example: sites[]=2&sites[]=3 |
| users | array | Optional | Filter by one or more user IDs. Example: users[]=2&users[]=4 |
| resources | array | Optional | Filter by one or more resource IDs. Example: resources[]=1 |
| templates | array | Optional | Filter by one or more template IDs. Example: templates[]=1 |
| date | array | Optional | Filter by scheduled/inspection date range. Pass as array of two date strings [start, end]. Example: date[]=2026-08-01&date[]=2026-08-31 |
| completed_at | array | Optional | Filter by completed date range. Pass as array of two date strings [start, end]. Example: completed_at[]=2026-08-01&completed_at[]=2026-08-31 |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"completed_inspections": [
{
"id": 3,
"uuid": "7bb4cb4b-20f4-4b2d-ae0d-eb85f20f7146",
"template_id": 3,
"document_number": "000001",
"date_of_inspection": "2026-08-15 11:30:16",
"created_user_id": "2",
"site_id": 1,
"user_id": 2,
"inspection_date": "2026-08-15 00:00:00",
"location": "Building A, Floor 2",
"location_details": {
"address": "123 Innovation Way",
"lat": "37.7749",
"lng": "-122.4194"
},
"total_score": "85",
"template_total_score": "100",
"score_percentage": "85",
"is_drafted": false,
"has_site_question": true,
"created_at": "2026-08-15T11:30:16.000000Z",
"updated_at": "2026-08-15T11:30:16.000000Z",
"scheduled_inspection_id": null,
"assigned_site_id": null,
"assigned_resource_id": null,
"assigned_user_id": null,
"resource_id": 4,
"completed_on": "2026-08-15 11:45:00",
"template_owner_id": 2,
"last_editor_id": 2,
"duration": "00:14:44",
"is_archived": false,
"issue_id": null,
"task_id": null,
"approval_id": null,
"approval_user_id": null,
"inspection_invitation_id": null,
"invited_user_id": null,
"qr_code_item_id": null,
"template_qr_code_id": null,
"formated_inspection_date": "15 Aug 2026 11:30 AM",
"formated_completed_on": "15 Aug 2026 11:45 AM",
"flagged_count": 1,
"model_name": "inspection",
"related_to": null,
"template": {
"id": 3,
"title": "Daily Safety & Maintenance Audit",
"document_number_format": "{number}",
"description": "Standard daily operational checklist for facility safety.",
"image": null,
"total_score": "100",
"is_draft": false,
"report_template": {
"header": null,
"show_inspector": true,
"show_site": true,
"show_resource": true,
"show_location": true,
"show_conducted_on": true,
"show_completed_on": true,
"show_template_author": true,
"show_last_published_by": true,
"show_total_score": true,
"overview_background_color": "#f3f4f6",
"title_background_color": "#1e3a8a",
"score_background_color": "#10b981",
"inspector_label": "Inspector",
"site_label": "Site",
"resource_label": "Resource",
"location_label": "Location"
},
"created_at": "2026-08-15T11:30:08.000000Z",
"updated_at": "2026-08-15T11:30:08.000000Z",
"initial_template_id": 3,
"uuid": "01e0f32e-bb8e-4fc7-8f50-cb75b18faccc",
"template_owner_id": 2,
"is_initial_template": true,
"from_workflow": true,
"is_archived": false,
"is_public": true,
"image_url": null,
"template_owner": {
"id": 2,
"name": "John Admin",
"email": "admin@example.com",
"status": true
}
},
"user": {
"id": 2,
"name": "John Inspector",
"email": "inspector@example.com",
"status": true
},
"site": {
"id": 1,
"name": "Main Operations Facility"
},
"resource": {
"id": 4,
"title": "HVAC Unit #3"
}
}
]
},
"now": "2026-08-15 11:30:22"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the request was successful. |
status_code | integer | HTTP status code (200 OK). |
โcompleted_inspections | array | List of inspection records. |
โid | integer | Unique database identifier for the inspection. |
โuuid | string | Globally unique UUID string. |
โdocument_number | string | Sequential reference number (e.g. '000001'). |
โdate_of_inspection | datetime | Timestamp when the audit was started. |
โcompleted_on | datetime|null | Timestamp when the audit was marked complete. |
โtotal_score | string | Points earned by inspector. |
โtemplate_total_score | string | Maximum possible score for the audit. |
โscore_percentage | string | Calculated score percentage. |
โis_drafted | boolean | True if inspection is currently in progress. |
โformated_inspection_date | string | User-friendly formatted start date. |
โformated_completed_on | string | User-friendly formatted completion date. |
โflagged_count | integer | Count of failed or non-compliant questions. |
โtemplate | object | Parent template metadata object. |
โtitle | string | Title of the inspection template. |
โuser | object | Assigned inspector user details. |
โsite | object|null | Site or facility details where inspection was conducted. |
โresource | object|null | Machinery or asset resource details. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-completed-inspections" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves scheduled inspections that missed their target completion deadline.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| sites | array | Optional | Filter by one or more site IDs. Example: sites[]=2&sites[]=3 |
| users | array | Optional | Filter by one or more user IDs. Example: users[]=2&users[]=4 |
| resources | array | Optional | Filter by one or more resource IDs. Example: resources[]=1 |
| templates | array | Optional | Filter by one or more template IDs. Example: templates[]=1 |
| date | array | Optional | Filter by scheduled/inspection date range. Pass as array of two date strings [start, end]. Example: date[]=2026-08-01&date[]=2026-08-31 |
| completed_at | array | Optional | Filter by completed date range. Pass as array of two date strings [start, end]. Example: completed_at[]=2026-08-01&completed_at[]=2026-08-31 |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"missed_inspections": [
{
"id": 3,
"uuid": "7bb4cb4b-20f4-4b2d-ae0d-eb85f20f7146",
"template_id": 3,
"document_number": "000001",
"date_of_inspection": "2026-08-15 11:30:16",
"created_user_id": "2",
"site_id": 1,
"user_id": 2,
"inspection_date": "2026-08-15 00:00:00",
"location": "Building A, Floor 2",
"location_details": {
"address": "123 Innovation Way",
"lat": "37.7749",
"lng": "-122.4194"
},
"total_score": "85",
"template_total_score": "100",
"score_percentage": "85",
"is_drafted": true,
"has_site_question": true,
"created_at": "2026-08-15T11:30:16.000000Z",
"updated_at": "2026-08-15T11:30:16.000000Z",
"scheduled_inspection_id": null,
"assigned_site_id": null,
"assigned_resource_id": null,
"assigned_user_id": null,
"resource_id": 4,
"completed_on": null,
"template_owner_id": 2,
"last_editor_id": 2,
"duration": "00:14:44",
"is_archived": false,
"issue_id": null,
"task_id": null,
"approval_id": null,
"approval_user_id": null,
"inspection_invitation_id": null,
"invited_user_id": null,
"qr_code_item_id": null,
"template_qr_code_id": null,
"formated_inspection_date": "15 Aug 2026 11:30 AM",
"formated_completed_on": "15 Aug 2026 11:45 AM",
"flagged_count": 1,
"model_name": "inspection",
"related_to": null,
"template": {
"id": 3,
"title": "Daily Safety & Maintenance Audit",
"document_number_format": "{number}",
"description": "Standard daily operational checklist for facility safety.",
"image": null,
"total_score": "100",
"is_draft": false,
"report_template": {
"header": null,
"show_inspector": true,
"show_site": true,
"show_resource": true,
"show_location": true,
"show_conducted_on": true,
"show_completed_on": true,
"show_template_author": true,
"show_last_published_by": true,
"show_total_score": true,
"overview_background_color": "#f3f4f6",
"title_background_color": "#1e3a8a",
"score_background_color": "#10b981",
"inspector_label": "Inspector",
"site_label": "Site",
"resource_label": "Resource",
"location_label": "Location"
},
"created_at": "2026-08-15T11:30:08.000000Z",
"updated_at": "2026-08-15T11:30:08.000000Z",
"initial_template_id": 3,
"uuid": "01e0f32e-bb8e-4fc7-8f50-cb75b18faccc",
"template_owner_id": 2,
"is_initial_template": true,
"from_workflow": true,
"is_archived": false,
"is_public": true,
"image_url": null,
"template_owner": {
"id": 2,
"name": "John Admin",
"email": "admin@example.com",
"status": true
}
},
"user": {
"id": 2,
"name": "John Inspector",
"email": "inspector@example.com",
"status": true
},
"site": {
"id": 1,
"name": "Main Operations Facility"
},
"resource": {
"id": 4,
"title": "HVAC Unit #3"
}
}
]
},
"now": "2026-08-15 11:30:22"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the request was successful. |
status_code | integer | HTTP status code (200 OK). |
โmissed_inspections | array | List of inspection records. |
โid | integer | Unique database identifier for the inspection. |
โuuid | string | Globally unique UUID string. |
โdocument_number | string | Sequential reference number (e.g. '000001'). |
โdate_of_inspection | datetime | Timestamp when the audit was started. |
โcompleted_on | datetime|null | Timestamp when the audit was marked complete. |
โtotal_score | string | Points earned by inspector. |
โtemplate_total_score | string | Maximum possible score for the audit. |
โscore_percentage | string | Calculated score percentage. |
โis_drafted | boolean | True if inspection is currently in progress. |
โformated_inspection_date | string | User-friendly formatted start date. |
โformated_completed_on | string | User-friendly formatted completion date. |
โflagged_count | integer | Count of failed or non-compliant questions. |
โtemplate | object | Parent template metadata object. |
โtitle | string | Title of the inspection template. |
โuser | object | Assigned inspector user details. |
โsite | object|null | Site or facility details where inspection was conducted. |
โresource | object|null | Machinery or asset resource details. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-missed-inspections" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves inspections that have been archived by administrative staff.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| sites | array | Optional | Filter by one or more site IDs. Example: sites[]=2&sites[]=3 |
| users | array | Optional | Filter by one or more user IDs. Example: users[]=2&users[]=4 |
| resources | array | Optional | Filter by one or more resource IDs. Example: resources[]=1 |
| templates | array | Optional | Filter by one or more template IDs. Example: templates[]=1 |
| date | array | Optional | Filter by scheduled/inspection date range. Pass as array of two date strings [start, end]. Example: date[]=2026-08-01&date[]=2026-08-31 |
| completed_at | array | Optional | Filter by completed date range. Pass as array of two date strings [start, end]. Example: completed_at[]=2026-08-01&completed_at[]=2026-08-31 |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"archived_inspections": [
{
"id": 3,
"uuid": "7bb4cb4b-20f4-4b2d-ae0d-eb85f20f7146",
"template_id": 3,
"document_number": "000001",
"date_of_inspection": "2026-08-15 11:30:16",
"created_user_id": "2",
"site_id": 1,
"user_id": 2,
"inspection_date": "2026-08-15 00:00:00",
"location": "Building A, Floor 2",
"location_details": {
"address": "123 Innovation Way",
"lat": "37.7749",
"lng": "-122.4194"
},
"total_score": "85",
"template_total_score": "100",
"score_percentage": "85",
"is_drafted": false,
"has_site_question": true,
"created_at": "2026-08-15T11:30:16.000000Z",
"updated_at": "2026-08-15T11:30:16.000000Z",
"scheduled_inspection_id": null,
"assigned_site_id": null,
"assigned_resource_id": null,
"assigned_user_id": null,
"resource_id": 4,
"completed_on": "2026-08-15 11:45:00",
"template_owner_id": 2,
"last_editor_id": 2,
"duration": "00:14:44",
"is_archived": true,
"issue_id": null,
"task_id": null,
"approval_id": null,
"approval_user_id": null,
"inspection_invitation_id": null,
"invited_user_id": null,
"qr_code_item_id": null,
"template_qr_code_id": null,
"formated_inspection_date": "15 Aug 2026 11:30 AM",
"formated_completed_on": "15 Aug 2026 11:45 AM",
"flagged_count": 1,
"model_name": "inspection",
"related_to": null,
"template": {
"id": 3,
"title": "Daily Safety & Maintenance Audit",
"document_number_format": "{number}",
"description": "Standard daily operational checklist for facility safety.",
"image": null,
"total_score": "100",
"is_draft": false,
"report_template": {
"header": null,
"show_inspector": true,
"show_site": true,
"show_resource": true,
"show_location": true,
"show_conducted_on": true,
"show_completed_on": true,
"show_template_author": true,
"show_last_published_by": true,
"show_total_score": true,
"overview_background_color": "#f3f4f6",
"title_background_color": "#1e3a8a",
"score_background_color": "#10b981",
"inspector_label": "Inspector",
"site_label": "Site",
"resource_label": "Resource",
"location_label": "Location"
},
"created_at": "2026-08-15T11:30:08.000000Z",
"updated_at": "2026-08-15T11:30:08.000000Z",
"initial_template_id": 3,
"uuid": "01e0f32e-bb8e-4fc7-8f50-cb75b18faccc",
"template_owner_id": 2,
"is_initial_template": true,
"from_workflow": true,
"is_archived": false,
"is_public": true,
"image_url": null,
"template_owner": {
"id": 2,
"name": "John Admin",
"email": "admin@example.com",
"status": true
}
},
"user": {
"id": 2,
"name": "John Inspector",
"email": "inspector@example.com",
"status": true
},
"site": {
"id": 1,
"name": "Main Operations Facility"
},
"resource": {
"id": 4,
"title": "HVAC Unit #3"
}
}
]
},
"now": "2026-08-15 11:30:22"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the request was successful. |
status_code | integer | HTTP status code (200 OK). |
โarchived_inspections | array | List of inspection records. |
โid | integer | Unique database identifier for the inspection. |
โuuid | string | Globally unique UUID string. |
โdocument_number | string | Sequential reference number (e.g. '000001'). |
โdate_of_inspection | datetime | Timestamp when the audit was started. |
โcompleted_on | datetime|null | Timestamp when the audit was marked complete. |
โtotal_score | string | Points earned by inspector. |
โtemplate_total_score | string | Maximum possible score for the audit. |
โscore_percentage | string | Calculated score percentage. |
โis_drafted | boolean | True if inspection is currently in progress. |
โformated_inspection_date | string | User-friendly formatted start date. |
โformated_completed_on | string | User-friendly formatted completion date. |
โflagged_count | integer | Count of failed or non-compliant questions. |
โtemplate | object | Parent template metadata object. |
โtitle | string | Title of the inspection template. |
โuser | object | Assigned inspector user details. |
โsite | object|null | Site or facility details where inspection was conducted. |
โresource | object|null | Machinery or asset resource details. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-archived-inspections" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Creates or initiates a new inspection from a template.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| template_id | integer | Required | ID of the template to start an inspection from. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"template_id": 2,
"approval_id": null,
"approval_user_id": null,
"issue_id": null,
"resource_id": null,
"scheduled_inspection_id": null,
"task_id": null
}Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"uuid": "d56980ed-57e0-43e6-947f-6268a3e23fe5",
"template_id": 3,
"approval_user_id": null,
"approval_id": null,
"template_owner_id": 2,
"scheduled_inspection_id": null,
"task_id": null,
"issue_id": null,
"resource_id": null,
"is_drafted": true,
"created_user_id": 2,
"last_editor_id": 2,
"inspection_invitation_id": null,
"date_of_inspection": "2026-08-15T12:11:40.519202Z",
"invited_user_id": null,
"template_total_score": "0",
"qr_code_item_id": null,
"template_qr_code_id": null,
"updated_at": "2026-08-15T12:11:40.000000Z",
"created_at": "2026-08-15T12:11:40.000000Z",
"id": 6,
"document_number": "000003",
"has_site_question": true,
"formated_inspection_date": "15 Aug 2026 12:11 PM",
"formated_completed_on": "15 Aug 2026 12:11 PM",
"flagged_count": 0,
"model_name": "inspection",
"related_to": null,
"template": {
"id": 3,
"title": "Template 2",
"document_number_format": "{number}",
"description": null,
"image": null,
"total_score": "0",
"is_draft": false,
"report_template": {
"header": null,
"show_inspector": true,
"show_site": true,
"show_resource": true,
"show_location": true,
"show_conducted_on": true,
"show_completed_on": true,
"show_template_author": true,
"show_last_published_by": true,
"show_total_score": true,
"overview_background_color": "#f3f4f6",
"title_background_color": "#1e3a8a",
"score_background_color": "#10b981",
"page_header_background_color": "#2563eb",
"section_header_background_color": "#475569",
"show_page_score": true,
"show_page_percentage": true,
"show_section_score": true,
"show_section_percentage": true,
"show_flagged": true,
"flagged_position": "top",
"show_tasks": true,
"tasks_position": "top",
"show_attachments": true,
"attachments_position": "bottom",
"attachments_items_per_row": "3",
"question_attachments_items_per_row": "3",
"show_overview": true,
"image_orientation": "normal",
"attachments_orientation": "normal",
"question_attachments_orientation": "normal",
"inspector_label": "Inspector",
"site_label": "Site",
"resource_label": "Resource",
"location_label": "Location",
"conducted_on_label": "Conducted On",
"completed_on_label": "Completed On",
"template_author_label": "Template Author",
"last_published_by_label": "Last Published By"
},
"created_at": "2026-08-15T11:30:08.000000Z",
"updated_at": "2026-08-15T11:30:08.000000Z",
"deleted_at": null,
"initial_template_id": 3,
"uuid": "01e0f32e-bb8e-4fc7-8f50-cb75b18faccc",
"template_owner_id": 2,
"is_initial_template": true,
"last_edited_user_id": 2,
"last_edited_at": "2026-08-15 11:30:08",
"last_published_user_id": 2,
"last_published_at": "2026-08-15 11:30:08",
"created_date": "2026-08-15 11:30:08",
"from_workflow": true,
"is_archived": false,
"is_public": true,
"image_url": null
}
},
"now": "2026-08-15 12:11:40"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the request was successful. |
status_code | integer | HTTP status code (200 OK). |
โid | integer | Unique database ID of the newly created inspection. |
โuuid | string | Globally unique UUID assigned to the inspection. |
โdocument_number | string | Auto-generated document reference number (e.g. '000003'). |
โtemplate_id | integer | ID of the template used to start the inspection. |
โis_drafted | boolean | True if the inspection is initiated in draft mode. |
โhas_site_question | boolean | True if template requires a site selection step. |
โdate_of_inspection | datetime | ISO timestamp when the inspection was created. |
โformated_inspection_date | string | Human-readable formatted start date. |
โformated_completed_on | string | Human-readable formatted completion date. |
โflagged_count | integer | Initial count of non-compliant questions. |
โmodel_name | string | Model entity type discriminator ('inspection'). |
โtemplate | object | Embedded template object. |
โid | integer | Template database ID. |
โtitle | string | Title of the template. |
โdocument_number_format | string | Document numbering pattern format. |
โreport_template | object | PDF report styling and field configuration. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/inspections" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"template_id": 2,
"approval_id": null,
"approval_user_id": null,
"issue_id": null,
"resource_id": null,
"scheduled_inspection_id": null,
"task_id": null
}'Description
Permanently deletes an inspection record and all associated media answers.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": "Inspection Deleted Successfully",
"now": "2026-08-15 11:30:22"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates deletion success. |
data | string | Confirmation text message ('Inspection Deleted Successfully'). |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/inspections/{inspection}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves audit activity trail logs showing who changed answers, added files, or altered responses.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"id": 3,
"document_number": "000001",
"activity_logs": [
{
"id": 1,
"inspection_id": 3,
"user_id": 2,
"log_type": "answer_updated",
"created_at": "2026-08-15T11:32:00.000000Z",
"user": {
"id": 2,
"name": "John Inspector"
},
"question": {
"id": 12,
"title": "Check hydraulic fluid level"
}
}
]
},
"now": "2026-08-15 11:30:22"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates request success. |
โactivity_logs | array | Chronological list of change logs. |
โlog_type | string | Type of activity recorded (e.g. 'answer_updated'). |
โuser | object | User who made the modification. |
โquestion | object | Question that was modified. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-inspection-activity-log/{inspection}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"๐ Templates
Manage inspection templates.
Description
Retrieve all templates accessible by the user.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"templates": [
{
"id": 2,
"title": "Template 1",
"document_number_format": "{number}",
"description": null,
"image": null,
"total_score": "0",
"is_draft": false,
"report_template": {
"header": null,
"show_inspector": true,
"show_site": true,
"show_resource": true,
"show_location": true,
"show_conducted_on": true,
"show_completed_on": true,
"show_template_author": true,
"show_last_published_by": true,
"show_total_score": true,
"overview_background_color": "#f3f4f6",
"title_background_color": "#1e3a8a",
"score_background_color": "#10b981",
"page_header_background_color": "#2563eb",
"section_header_background_color": "#475569",
"show_page_score": true,
"show_page_percentage": true,
"show_section_score": true,
"show_section_percentage": true,
"show_flagged": true,
"flagged_position": "top",
"show_tasks": true,
"tasks_position": "top",
"show_attachments": true,
"attachments_position": "bottom",
"attachments_items_per_row": "3",
"question_attachments_items_per_row": "3",
"show_overview": true,
"image_orientation": "normal",
"attachments_orientation": "normal",
"question_attachments_orientation": "normal",
"inspector_label": "Inspector",
"site_label": "Site",
"resource_label": "Resource",
"location_label": "Location",
"conducted_on_label": "Conducted On",
"completed_on_label": "Completed On",
"template_author_label": "Template Author",
"last_published_by_label": "Last Published By"
},
"created_at": "2026-08-15T11:29:39.000000Z",
"updated_at": "2026-08-15T11:29:39.000000Z",
"deleted_at": null,
"initial_template_id": 2,
"uuid": "3bd070a5-73b6-485a-96f7-448f5f1238c1",
"template_owner_id": 2,
"is_initial_template": true,
"last_edited_user_id": 2,
"last_edited_at": "2026-08-15 11:29:39",
"last_published_user_id": 2,
"last_published_at": "2026-08-15 11:29:39",
"created_date": "2026-08-15 11:29:39",
"from_workflow": true,
"is_archived": false,
"is_public": true,
"image_url": null,
"template_owner": {
"id": 2,
"seat_type_id": 1,
"global_id": "02a3966c-9d67-47e0-954d-83d78cd3d84b",
"language_id": null,
"name": "New",
"email": "new@mail.com",
"email_verified_at": "2026-08-13T13:55:51.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-13T13:55:51.000000Z",
"updated_at": "2026-08-13T13:55:51.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "New",
"key": 2,
"temp_id": "user_2",
"type": "user",
"file_url": null
},
"last_edited_user": {
"id": 2,
"name": "New",
"email": "new@mail.com"
},
"last_published_user": {
"id": 2,
"name": "New",
"email": "new@mail.com"
}
}
]
},
"now": "2026-08-15 12:19:52"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the API request was successful. |
status_code | integer | HTTP status code (200 OK). |
โtemplates | array | Array of template records accessible by the user. |
โid | integer | Unique template database ID. |
โtitle | string | Display title of the inspection template. |
โdocument_number_format | string | Formatting pattern used for generated document serial numbers. |
โdescription | string|null | Template description or notes. |
โtotal_score | string | Maximum total points achievable. |
โis_draft | boolean | True if template is an unpublished draft. |
โuuid | string | Globally unique UUID assigned to the template. |
โinitial_template_id | integer | Root parent template ID. |
โis_initial_template | boolean | True if original master template. |
โfrom_workflow | boolean | True if created automatically by a workflow. |
โis_archived | boolean | True if template has been archived. |
โis_public | boolean | True if available globally to all staff in tenant. |
โreport_template | object | PDF report styling and field display settings. |
โtemplate_owner | object | User object of the template author. |
โlast_edited_user | object | User object of the last person who edited the template. |
โlast_published_user | object | User object of the last person who published the template. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X GET \
"https://your-org.algus.io/templates" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Deletes a template.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "Template Successfully Deleted"
},
"now": "2026-08-15 12:21:03"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates whether the API request was successful. |
status_code | integer | HTTP status code (200 OK). |
โmessage | string | Confirmation text message ('Template Successfully Deleted'). |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/templates/{template}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"๐ข Sites
Manage sites and locations.
Description
Retrieve all sites in a hierarchical structure.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"sites": [
{
"id": 2,
"name": "Site 1",
"path": [
{
"id": 2,
"name": "Site 1"
}
],
"status": true,
"is_project": false,
"sort_order": 0,
"created_at": "2026-08-14T04:02:42.000000Z",
"updated_at": "2026-08-14T04:02:42.000000Z",
"parent_id": null,
"department_id": null,
"type": "site",
"label": "Site 1",
"key": 2,
"has_project_ancestor": false,
"full_path": "Site 1",
"short_path": "Site 1"
},
{
"id": 3,
"name": "Site 11",
"path": [
{
"id": 2,
"name": "Site 1"
},
{
"id": 3,
"name": "Site 11"
}
],
"status": true,
"is_project": false,
"sort_order": 0,
"created_at": "2026-08-14T04:02:50.000000Z",
"updated_at": "2026-08-14T04:02:50.000000Z",
"parent_id": 2,
"department_id": null,
"type": "site",
"label": "Site 11",
"key": 3,
"has_project_ancestor": false,
"full_path": "Site 1 > Site 11",
"short_path": "Site 1 > Site 11"
}
]
},
"now": "2026-08-17 05:48:32"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | object | The main payload wrapper. |
โsites | array | List of site records in flat hierarchy format. |
โid | integer | Unique identifier of the site. |
โname | string | Name of the site. |
โpath | array | Ordered path ancestors hierarchy. |
โid | integer | ID of ancestor site in the hierarchy. |
โname | string | Name of ancestor site in the hierarchy. |
โstatus | boolean | Active state of the site. |
โis_project | boolean | Indicates if site is a project scope parent. |
โsort_order | integer | Sorting order priority. |
โcreated_at | datetime | Site record creation timestamp. |
โupdated_at | datetime | Site record last updated timestamp. |
โparent_id | integer|null | Parent site ID. |
โdepartment_id | integer|null | Associated department ID. |
โtype | string | Entity model classification key (always 'site') to help frontend clients identify the resource type. |
โlabel | string | Friendly display label for the site (defaults to the site name) used for UI dropdowns or lists. |
โkey | integer | Unique identifier key (matching the numeric site ID) formatted for select options in UI component frameworks. |
โhas_project_ancestor | boolean | Flag indicating whether this site is nested under a parent site flagged as a project (is_project=true). |
โfull_path | string | The complete breadcrumb hierarchy path from the root site down to this site, separated by ' > '. |
โshort_path | string | A shortened breadcrumb path showing only the direct parent site and this site, separated by ' > '. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X GET \
"https://your-org.algus.io/sites" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieve all sites formatted as a hierarchical tree structure.
- This endpoint constructs a nested tree of sites using the parent_id mapping, filtering out nodes that the authenticated user does not have permission to view.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": [
{
"id": 2,
"key": 2,
"label": "Site 1",
"name": "Site 1",
"title": "Site 1",
"parent_id": null,
"is_project": false,
"status": true,
"type": "site",
"isDisabled": false,
"children": [
{
"id": 3,
"key": 3,
"label": "Site 11",
"name": "Site 11",
"title": "Site 11",
"parent_id": 2,
"is_project": false,
"status": true,
"type": "site",
"isDisabled": false
}
]
}
]
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | array | Array of root-level site nodes forming the base of the hierarchical tree. |
โid | integer | Unique site record identifier. |
โkey | integer | Unique selection identifier key matching the site ID, formatted for UI select selectors. |
โlabel | string | Friendly display name of the site for UI dropdowns or lists. |
โname | string | The official name of the site. |
โtitle | string | Display title representing the site name (matching the label/name). |
โparent_id | integer|null | Parent site record identifier, or null if it is a root-level site. |
โis_project | boolean | Flag indicating whether this site scope is configured as a project. |
โstatus | boolean | Active state of the site. |
โtype | string | Entity model type key (always 'site') to help frontend clients distinguish data structures. |
โisDisabled | boolean | UI helper flag indicating whether the user is restricted from selecting this node (e.g. if the node is only displayed as a parent placeholder to navigate to allowed descendants). |
โchildren | array | List of nested child site nodes, recursively following the same site node schema structure. |
cURL Example
curl -X GET \
"https://your-org.algus.io/get-sites-with-groups" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Get a specific site along with its users and user groups.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "",
"data": {
"site": {
"id": 1,
"name": "Headquarters",
"status": 1,
"users": [
{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"pivot": {
"site_id": 1,
"user_id": 1,
"is_admin": 1
}
}
],
"userGroups": [
{
"id": 1,
"name": "Inspectors",
"pivot": {
"site_id": 1,
"user_group_id": 1
}
}
]
}
},
"now": "2026-08-15 12:00:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
โsite | object | The site object |
โid | integer | Site ID |
โname | string | Site name |
โstatus | integer | 1 if active, 0 if inactive |
โusers | array | List of users associated with the site |
โid | integer | User ID |
โfirst_name | string | User first name |
โlast_name | string | User last name |
โpivot | object | Pivot table data |
โis_admin | integer | 1 if the user is a site admin, 0 otherwise |
โuserGroups | array | List of user groups associated with the site |
cURL Example
curl -X GET \
"https://your-org.algus.io/sites/{site}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Get all users attached to a specific site.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "",
"data": {
"users": [
{
"id": 1,
"first_name": "John",
"last_name": "Doe",
"pivot": {
"site_id": 1,
"user_id": 1,
"is_admin": 1
}
}
]
},
"now": "2026-08-15 12:00:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
โusers | array | List of users |
โid | integer | User ID |
โfirst_name | string | User first name |
โlast_name | string | User last name |
โpivot | object | Pivot table data |
โis_admin | integer | 1 if the user is a site admin, 0 otherwise |
cURL Example
curl -X GET \
"https://your-org.algus.io/sites/{site}/users" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Get all user groups attached to a specific site.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "",
"data": {
"user_groups": [
{
"id": 1,
"name": "Inspectors",
"status": 1,
"pivot": {
"site_id": 1,
"user_group_id": 1
}
}
]
},
"now": "2026-08-15 12:00:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
โuser_groups | array | List of user groups |
โid | integer | User group ID |
โname | string | User group name |
โstatus | integer | 1 if active, 0 if inactive |
โpivot | object | Pivot table data |
cURL Example
curl -X GET \
"https://your-org.algus.io/sites/{site}/user-groups" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"๐ Resources
Manage equipment, vehicles, and other physical assets.
Description
Retrieve all resources matching filters.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| search | string | Optional | Search by resource title (partial match). |
| site_ids | array | Optional | Filter by one or more site IDs. Example: site_ids[]=2&site_ids[]=3 |
| resource_types | array | Optional | Filter by one or more resource type IDs. Example: resource_types[]=1&resource_types[]=2 |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
[
{
"id": 2,
"resource_type_id": 2,
"site_id": null,
"title": "sd",
"unique_id": "sd",
"image": null,
"status": true,
"created_at": "2026-08-15T13:22:19.000000Z",
"updated_at": "2026-08-15T13:22:21.000000Z",
"image_url": null,
"model_name": "resource",
"site": null,
"resource_type": {
"id": 2,
"name": "Type 1",
"created_at": "2026-08-15T13:22:07.000000Z",
"updated_at": "2026-08-15T13:22:07.000000Z"
},
"fields": []
}
]Response Fields Explained
| Field | Type | Description |
|---|---|---|
โid | integer | Unique record identifier for the resource. |
โresource_type_id | integer | The associated resource type identifier. |
โsite_id | integer|null | The associated site identifier, or null. |
โtitle | string | The title or display label of the resource. |
โunique_id | string | Unique display code or asset tag identifier. |
โimage | string|null | Stored image file reference, or null. |
โstatus | boolean | Resource active status indicator. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last updated timestamp. |
โimage_url | string|null | Fully resolved web-accessible URL to view the resource image asset. |
โmodel_name | string | Database model entity key (always 'resource'). |
โsite | object|null | The associated site object details, or null. |
โresource_type | object | The associated resource type details. |
โid | integer | Unique resource type identifier. |
โname | string | Name of the resource type. |
โcreated_at | datetime | Resource type creation timestamp. |
โupdated_at | datetime | Resource type last updated timestamp. |
โfields | array | List of resource custom fields and values. |
cURL Example
curl -X GET \
"https://your-org.algus.io/resources" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Creates a new resource (requires multipart/form-data).
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| title | string | Required | Resource title. |
| unique_id | string | Required | Unique display code or asset tag identifier. |
| image | binary | Optional | Resource image asset file. |
| site | string | Optional | ID of the associated site, prefixed with 'site_' (e.g. 'site_9'). |
| resource_type | integer | Required | ID of the resource type (refer to Resource Types API). |
| status | integer|boolean | Optional | Active status indicator (1 for active, 0 for inactive). |
| resource_type_fields | array | Optional | Custom fields list matching the resource type schema definition. Passed as array elements like 'resource_type_fields[X][id]'. |
| resource_type_fields[].id | integer | Required | Custom field schema identifier. |
| resource_type_fields[].title | string | Required | Custom field title. |
| resource_type_fields[].type | string | Required | Custom field type classification ('text', 'date', 'currency', 'select'). |
| resource_type_fields[].is_required | boolean | Optional | Flag indicating if the field is mandatory. |
| resource_type_fields[].is_multiple_selection | boolean | Optional | Flag indicating if multiple item selections are supported (for select type). |
| resource_type_fields[].value | string | Optional | Field value (required if field is required and type is not 'date' or multiple 'select'). |
| resource_type_fields[].date | string | Optional | Field date value (required if field is required and type is 'date'). |
| resource_type_fields[].options_value | array | Optional | Field option selections (required if field is required, type is 'select', and multiple selection is enabled). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
Form-data payload:
- title: w
- unique_id: w
- image: (binary file)
- site: site_9
- resource_type: 3
- status: 1
- resource_type_fields[0][id]: 1
- resource_type_fields[0][title]: Serial Number
- resource_type_fields[0][type]: text
- resource_type_fields[0][value]: 123456Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"message": "Resource Created Successfully",
"resource": {
"id": 3,
"title": "w",
"unique_id": "w",
"site_id": 9,
"resource_type_id": 3,
"image": "uploads/ResourceImages/sample.jpg",
"status": true,
"qr_code": "<svg>...</svg>",
"created_at": "2026-08-17T07:15:00.000000Z",
"updated_at": "2026-08-17T07:15:00.000000Z",
"image_url": "http://localhost/storage/uploads/ResourceImages/sample.jpg",
"model_name": "resource"
}
},
"now": "2026-08-17 07:15:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | object | Response data payload wrapper. |
โmessage | string | Success message confirmation ('Resource Created Successfully'). |
โresource | object | The newly created resource details. |
โid | integer | Unique record identifier. |
โtitle | string | Name or display label. |
โunique_id | string | Unique display code or asset tag identifier. |
โsite_id | integer|null | Associated site identifier. |
โresource_type_id | integer | Associated resource type identifier. |
โimage | string|null | Stored image path reference. |
โstatus | boolean | Resource status indicator. |
โqr_code | string | Resource SVG QR code representation. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last updated timestamp. |
โimage_url | string|null | Fully resolved web-accessible URL to view the resource image asset. |
โmodel_name | string | Database model entity key (always 'resource'). |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/resources" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d 'Form-data payload:
- title: w
- unique_id: w
- image: (binary file)
- site: site_9
- resource_type: 3
- status: 1
- resource_type_fields[0][id]: 1
- resource_type_fields[0][title]: Serial Number
- resource_type_fields[0][type]: text
- resource_type_fields[0][value]: 123456'Description
Updates an existing resource (requires multipart/form-data; use POST with _method=PUT if uploading a new image).
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| _method | string | Optional | Must be set to 'PUT' when submitting as a POST request for multipart image uploads. |
| title | string | Required | Resource title. |
| unique_id | string | Required | Unique display code or asset tag identifier. |
| image | binary | Optional | New resource image asset file. |
| site | object | Optional | Optional site details object containing '{ id: "site_9" }'. |
| resource_type | object | Required | Resource type details object containing '{ id: 3 }' (refer to Resource Types API). |
| status | integer|boolean | Optional | Active status indicator. |
| resource_type_fields | array | Optional | List of resource custom fields and values. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
Form-data payload (or raw JSON if not uploading image):
- _method: PUT
- title: w updated
- unique_id: w
- site[id]: site_9
- resource_type[id]: 3
- status: 1Sample Response
{
"status": true,
"status_code": 200,
"message": "Resource Updated Successfully",
"description": null,
"data": null,
"now": "2026-08-17 07:15:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message confirming the update ('Resource Updated Successfully'). |
description | string|null | Optional description metadata. |
data | null | Payload data wrapper (always null for update response). |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X PUT \
"https://your-org.algus.io/resources/{resource}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d 'Form-data payload (or raw JSON if not uploading image):
- _method: PUT
- title: w updated
- unique_id: w
- site[id]: site_9
- resource_type[id]: 3
- status: 1'Description
Get detailed resource data including relationships.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"resource": {
"id": 2,
"resource_type_id": 2,
"site_id": null,
"title": "sd",
"unique_id": "sd",
"image": null,
"status": true,
"created_at": "2026-08-15T13:22:19.000000Z",
"updated_at": "2026-08-15T13:22:21.000000Z",
"image_url": null,
"model_name": "resource",
"resource_type": {
"id": 2,
"name": "Type 1",
"created_at": "2026-08-15T13:22:07.000000Z",
"updated_at": "2026-08-15T13:22:07.000000Z"
},
"site": null,
"fields": [],
"attachments": [],
"linked_documents": [],
"tasks": [
{
"id": 13,
"creator_id": 2,
"task_status_id": 1,
"task_type_id": 1,
"task_type_priority_id": 2,
"site_id": 2,
"title": "Fix HVAC Unit",
"series_number": "TA-6",
"description": "HVAC unit on roof is leaking water",
"progress": 0,
"due_date": "2026-08-20 14:00:00",
"repeat_type": "does_not_repeat",
"created_date": "2026-08-15 13:27:33",
"auto_generated": false,
"is_clone_attachments": false,
"created_at": "2026-08-15T13:27:33.000000Z",
"updated_at": "2026-08-15T13:27:33.000000Z",
"parent_id": null,
"is_reccuring_task": false,
"resource_id": 2,
"from_workflow": false,
"department_id": null,
"formatted_due_date": "20 Aug 2026 02:00 PM",
"formatted_repeat_type": "Does Not Repeat",
"iso_formatted_due_date": "2026-08-20T14:00:00+00:00",
"starting_time": "13:27:33",
"assigned_users": [
"New",
"ut2"
],
"model_name": "task",
"departmental_investigation_id": null,
"feedback_response_id": null,
"related_to": {
"id": 2,
"type": "App\\Models\\Tenant\\Resource\\Resource",
"model_name": "resource",
"series_number": "sd",
"title": "sd"
},
"department_path": null,
"taskstatus": {
"id": 1,
"name": "To do",
"is_note_required": false,
"is_media_required": false,
"is_open_status": true,
"status": true,
"color": "#3498db",
"access_type": "default",
"created_at": "2026-08-13T13:55:49.000000Z",
"updated_at": "2026-08-13T13:55:49.000000Z"
},
"assignee": {
"id": 27,
"assignees_type": null,
"role": null,
"group_name": null,
"admins_only": false,
"assignable_id": 13,
"assignable_type": "App\\Models\\Tenant\\Task\\Task",
"always_assign_site_members": false,
"include_parent_sites": false,
"created_at": "2026-08-15T13:27:33.000000Z",
"updated_at": "2026-08-15T13:27:33.000000Z",
"user_groups": [
{
"id": 2,
"name": "Group 1",
"status": true,
"created_at": "2026-08-14T04:06:07.000000Z",
"updated_at": "2026-08-14T04:06:07.000000Z",
"label": "Group 1",
"key": 2,
"type": "user_group",
"temp_id": "user_group_2",
"pivot": {
"assignee_id": 27,
"user_group_id": 2
}
}
]
},
"task_links": [],
"department": null
}
],
"inspections": [],
"resource_answers": []
}
},
"now": "2026-08-17 07:04:18"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | object | Response data payload wrapper. |
โresource | object | The returned resource details object. |
โid | integer | Unique record identifier for the resource. |
โresource_type_id | integer | Associated resource type ID. |
โsite_id | integer|null | Associated site ID, or null. |
โtitle | string | The name or display title of the resource. |
โunique_id | string | Unique asset tag or code identifier. |
โimage | string|null | Image file reference, or null. |
โstatus | boolean | Resource active status indicator. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last updated timestamp. |
โimage_url | string|null | Fully resolved web-accessible URL to view the resource image asset. |
โmodel_name | string | Database model entity key (always 'resource'). |
โresource_type | object | Associated resource type details. |
โsite | object|null | Associated site details, or null. |
โfields | array | Resource custom field values list. |
โattachments | array | List of attachments linked to this resource. |
โlinked_documents | array | List of documents linked to this resource. |
โtasks | array | List of tasks associated with this resource. |
โinspections | array | List of inspections linked to this resource. |
โresource_answers | array | Recorded checklist answers / readings for this resource. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X GET \
"https://your-org.algus.io/resources/{resource}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Deletes a resource.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": "Resource Deleted Successfully",
"now": "2026-08-17 07:24:41"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | string | Confirmation message payload confirming deletion ('Resource Deleted Successfully'). |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/resources/{resource}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Uploads an attachment for a resource (requires multipart/form-data).
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| file | binary | Required | The attachment file to upload. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"attachment": {
"id": 14,
"file": "resource_attachments/leak_photo_1.jpg",
"file_name": "leak_photo_1.jpg",
"type": "image/jpeg",
"size": 2048500,
"created_at": "2026-08-17T07:27:00.000000Z",
"updated_at": "2026-08-17T07:27:00.000000Z"
}
},
"now": "2026-08-17 07:27:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | object | Response data payload wrapper. |
โattachment | object | The uploaded attachment details. |
โid | integer | Unique attachment identifier. |
โfile | string | Stored file path reference. |
โfile_name | string | Original file name. |
โtype | string | File MIME type. |
โsize | integer | File size in bytes. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last updated timestamp. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/resources/{resource}/attachments" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Deletes an attachment associated with a resource.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| id | integer | Required | Unique identifier of the attachment to delete. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"id": 14
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Attachment Deleted Successfully",
"description": null,
"data": null,
"now": "2026-08-17 07:27:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message confirming deletion ('Attachment Deleted Successfully'). |
description | string|null | Optional description metadata. |
data | null | Response data payload (always null). |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X POST \
"https://your-org.algus.io/resources/{resource}/delete-attachments" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"id": 14
}'Description
Retrieve all resource types.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"resource_types": [
{
"id": 1,
"name": "Heavy Machinery",
"created_at": "2026-08-17T06:40:02.000000Z",
"updated_at": "2026-08-17T06:40:02.000000Z",
"fields": [
{
"id": 1,
"sort": 1,
"title": "Serial Number",
"type": "text",
"options": null,
"is_predefined": true,
"is_multiple_selection": false,
"show_action_icons": true,
"created_at": "2026-08-15T12:00:00.000000Z",
"updated_at": "2026-08-15T12:00:00.000000Z",
"pivot": {
"resource_type_id": 1,
"resource_type_field_id": 1,
"is_required": true,
"created_at": "2026-08-17T06:40:02.000000Z",
"updated_at": "2026-08-17T06:40:02.000000Z"
}
}
]
}
]
},
"now": "2026-08-17 06:40:02"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | object | Response data payload wrapper. |
โresource_types | array | List of resource types. |
โid | integer | Unique record identifier. |
โname | string | Name of the resource type. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last updated timestamp. |
โfields | array | Associated custom fields schemas for the resource type. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X GET \
"https://your-org.algus.io/resource-types" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieve details of a single resource type.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"resource_type": {
"id": 1,
"name": "Heavy Machinery",
"created_at": "2026-08-17T06:40:02.000000Z",
"updated_at": "2026-08-17T06:40:02.000000Z",
"fields": [
{
"id": 1,
"sort": 1,
"title": "Serial Number",
"type": "text",
"options": null,
"is_predefined": true,
"is_multiple_selection": false,
"show_action_icons": true,
"created_at": "2026-08-15T12:00:00.000000Z",
"updated_at": "2026-08-15T12:00:00.000000Z",
"pivot": {
"resource_type_id": 1,
"resource_type_field_id": 1,
"is_required": true,
"created_at": "2026-08-17T06:40:02.000000Z",
"updated_at": "2026-08-17T06:40:02.000000Z"
}
}
]
}
},
"now": "2026-08-17 06:40:02"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | object | Response data payload wrapper. |
โresource_type | object | Resource type details object. |
โid | integer | Unique record identifier. |
โname | string | Name of the resource type. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last updated timestamp. |
โfields | array | Associated custom fields schemas for the resource type. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X GET \
"https://your-org.algus.io/resource-types/{resource_type}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieve fields associated with a resource type.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"fields": [
{
"id": 1,
"sort": 1,
"title": "Serial Number",
"type": "text",
"options": null,
"is_predefined": true,
"is_multiple_selection": false,
"show_action_icons": true,
"created_at": "2026-08-15T12:00:00.000000Z",
"updated_at": "2026-08-15T12:00:00.000000Z",
"pivot": {
"resource_type_id": 1,
"resource_type_field_id": 1,
"is_required": true,
"created_at": "2026-08-17T06:40:02.000000Z",
"updated_at": "2026-08-17T06:40:02.000000Z"
}
}
]
},
"now": "2026-08-17 06:40:02"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | object | Response data payload wrapper. |
โfields | array | List of associated fields. |
now | datetime | Server timestamp when response was generated. |
cURL Example
curl -X GET \
"https://your-org.algus.io/resource-types/{resource_type}/fields" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieve all resource type fields.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"fields": [
{
"id": 1,
"sort": 1,
"title": "Serial Number",
"type": "Text",
"options": null,
"is_predefined": false,
"is_multiple_selection": false,
"is_required": false,
"show_action_icons": true,
"created_at": "2026-08-15T12:00:00.000000Z",
"updated_at": "2026-08-15T12:00:00.000000Z"
}
]
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the API request was successful. |
status_code | integer | HTTP status code. |
message | string|null | Human-readable response message. |
description | string|null | Optional description metadata. |
data | object | The main response data payload wrapper. |
โfields | array | List of resource type fields. |
โid | integer | Unique record identifier for the resource type field. |
โsort | integer|null | The sorting order of the field. |
โtitle | string | The label or display title of the field. |
โtype | string | Field input control classification type (e.g. 'Text', 'Number', 'Date'). |
โoptions | array|null | Optional array of selections for choices-type inputs, or null. |
โis_predefined | boolean | Flag indicating if the field is built-in (predefined) or user-created. |
โis_multiple_selection | boolean | Flag indicating if multiple item selections are supported by the field. |
โis_required | boolean | Flag indicating if this field is required to be filled. |
โshow_action_icons | boolean | UI layout helper flag indicating whether modification action buttons (edit/delete) should be rendered next to this field. |
โcreated_at | datetime | Creation timestamp. |
โupdated_at | datetime | Last updated timestamp. |
cURL Example
curl -X GET \
"https://your-org.algus.io/resource-type-fields" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Get a list of all active sites along with their associated resources.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "",
"data": {
"sites": [
{
"id": 1,
"name": "Headquarters",
"status": 1,
"resources": [
{
"id": 1,
"name": "Heavy Machinery",
"resource_type_id": 2
}
]
}
]
},
"now": "2026-08-15 12:00:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
โsites | array | List of sites |
โid | integer | Site ID |
โname | string | Site name |
โresources | array | List of resources associated with the site |
โid | integer | Resource ID |
โname | string | Resource name |
cURL Example
curl -X GET \
"https://your-org.algus.io/resources/site-wise" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"๐ Documents
Manage files, folders, versions, and metadata in the document library.
Description
Retrieve the folder structure and files inside a specified parent folder, or at the root level if no parent ID is provided.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| parent_id | integer | Optional | The unique ID of the parent folder. If omitted or null, returns root-level documents and folders. |
| search | string | Optional | Optional search term to filter folders or files by name or description within the current location. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Documents retrieved successfully",
"description": null,
"data": {
"documents": [
{
"id": 2,
"type": "file",
"parent_id": null,
"name": "download",
"document_number": null,
"description": null,
"color": "#3B82F6",
"icon": null,
"order": 0,
"file_type": "image/png",
"current_version": {
"id": 2,
"document_id": 2,
"version_number": 1,
"version_label": "v1",
"attachment_id": 2,
"file_name": "download.png",
"file_type": "image/png",
"file_size": 1020,
"change_notes": "Initial version",
"expires_at": null,
"published_at": null,
"approval_status": "published",
"rejection_notes": null,
"approved_by": null,
"approved_at": null,
"uploaded_by": 2,
"is_current": true,
"created_at": "2026-08-17T12:19:09.000000Z",
"updated_at": "2026-08-17T12:19:09.000000Z",
"download_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/documents/version/2/download",
"attachment": {
"id": 2,
"file_name": "download.png",
"file": "documents/PkHEDT0WCcH1DSfGhRGAq5vkgEwpRHAYVfPUuaDD.png",
"thumbnail": null,
"converted_file": null,
"width": null,
"height": null,
"type": "image/png",
"size": "1020",
"attachable_type": "App\\Models\\Tenant\\Document\\DocumentVersion",
"attachable_id": null,
"comments": null,
"created_at": "2026-08-17T12:19:09.000000Z",
"updated_at": "2026-08-17T12:19:09.000000Z",
"file_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/tenancy/assets/documents/PkHEDT0WCcH1DSfGhRGAq5vkgEwpRHAYVfPUuaDD.png",
"thumbnail_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/tenancy/assets/documents/PkHEDT0WCcH1DSfGhRGAq5vkgEwpRHAYVfPUuaDD.png",
"converted_file_url": null,
"temp_file_url": null
}
},
"version_label": "v1",
"status": "published",
"is_locked": false,
"locked_by": null,
"locked_at": null,
"is_active": true,
"is_public": true,
"is_expiry_enabled": false,
"is_publish_date_enabled": false,
"approval_enabled": false,
"created_by": 2,
"updated_by": 2,
"created_at": "2026-08-17T12:19:08.000000Z",
"updated_at": "2026-08-17T12:19:09.000000Z",
"deleted_at": null,
"children_count": 0,
"created_by_name": "New",
"is_expired": false,
"creator": {
"id": 2,
"seat_type_id": 1,
"global_id": "02a3966c-9d67-47e0-954d-83d78cd3d84b",
"language_id": null,
"name": "New",
"email": "new@mail.com",
"email_verified_at": "2026-08-13T13:55:51.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-13T13:55:51.000000Z",
"updated_at": "2026-08-13T13:55:51.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "New",
"key": 2,
"temp_id": "user_2",
"type": "user",
"file_url": null
},
"parent": null,
"document_links": []
},
{
"id": 3,
"type": "file",
"parent_id": null,
"name": "download",
"document_number": null,
"description": null,
"color": "#3B82F6",
"icon": null,
"order": 0,
"file_type": "image/png",
"current_version": {
"id": 3,
"document_id": 3,
"version_number": 1,
"version_label": "v1",
"attachment_id": 3,
"file_name": "download.png",
"file_type": "image/png",
"file_size": 1020,
"change_notes": "Initial version",
"expires_at": null,
"published_at": null,
"approval_status": "published",
"rejection_notes": null,
"approved_by": null,
"approved_at": null,
"uploaded_by": 2,
"is_current": true,
"created_at": "2026-08-17T12:19:34.000000Z",
"updated_at": "2026-08-17T12:19:34.000000Z",
"download_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/documents/version/3/download",
"attachment": {
"id": 3,
"file_name": "download.png",
"file": "documents/Agumy4o4fg1K24WajGTl5oFXFELjEah7WHuAxUip.png",
"thumbnail": null,
"converted_file": null,
"width": null,
"height": null,
"type": "image/png",
"size": "1020",
"attachable_type": "App\\Models\\Tenant\\Document\\DocumentVersion",
"attachable_id": null,
"comments": null,
"created_at": "2026-08-17T12:19:34.000000Z",
"updated_at": "2026-08-17T12:19:34.000000Z",
"file_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/tenancy/assets/documents/Agumy4o4fg1K24WajGTl5oFXFELjEah7WHuAxUip.png",
"thumbnail_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/tenancy/assets/documents/Agumy4o4fg1K24WajGTl5oFXFELjEah7WHuAxUip.png",
"converted_file_url": null,
"temp_file_url": null
}
},
"version_label": "v1",
"status": "published",
"is_locked": false,
"locked_by": null,
"locked_at": null,
"is_active": true,
"is_public": true,
"is_expiry_enabled": false,
"is_publish_date_enabled": false,
"approval_enabled": false,
"created_by": 2,
"updated_by": 2,
"created_at": "2026-08-17T12:19:34.000000Z",
"updated_at": "2026-08-17T12:19:34.000000Z",
"deleted_at": null,
"children_count": 0,
"created_by_name": "New",
"is_expired": false,
"creator": {
"id": 2,
"seat_type_id": 1,
"global_id": "02a3966c-9d67-47e0-954d-83d78cd3d84b",
"language_id": null,
"name": "New",
"email": "new@mail.com",
"email_verified_at": "2026-08-13T13:55:51.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-13T13:55:51.000000Z",
"updated_at": "2026-08-13T13:55:51.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "New",
"key": 2,
"temp_id": "user_2",
"type": "user",
"file_url": null
},
"parent": null,
"document_links": []
},
{
"id": 4,
"type": "folder",
"parent_id": null,
"name": "dasd",
"document_number": null,
"description": "sadsad",
"color": "#3B82F6",
"icon": "pi pi-folder",
"order": 0,
"file_type": null,
"current_version": null,
"version_label": "v1",
"status": "published",
"is_locked": false,
"locked_by": null,
"locked_at": null,
"is_active": true,
"is_public": true,
"is_expiry_enabled": false,
"is_publish_date_enabled": false,
"approval_enabled": false,
"created_by": 2,
"updated_by": 2,
"created_at": "2026-08-17T12:30:16.000000Z",
"updated_at": "2026-08-17T12:30:16.000000Z",
"deleted_at": null,
"children_count": 0,
"created_by_name": "New",
"is_expired": false,
"creator": {
"id": 2,
"seat_type_id": 1,
"global_id": "02a3966c-9d67-47e0-954d-83d78cd3d84b",
"language_id": null,
"name": "New",
"email": "new@mail.com",
"email_verified_at": "2026-08-13T13:55:51.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-13T13:55:51.000000Z",
"updated_at": "2026-08-13T13:55:51.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "New",
"key": 2,
"temp_id": "user_2",
"type": "user",
"file_url": null
},
"parent": null,
"document_links": []
},
{
"id": 5,
"type": "folder",
"parent_id": null,
"name": "sad",
"document_number": null,
"description": "asda",
"color": "#3B82F6",
"icon": "pi pi-folder",
"order": 0,
"file_type": null,
"current_version": null,
"version_label": "v1",
"status": "published",
"is_locked": false,
"locked_by": null,
"locked_at": null,
"is_active": true,
"is_public": true,
"is_expiry_enabled": false,
"is_publish_date_enabled": false,
"approval_enabled": false,
"created_by": 2,
"updated_by": 2,
"created_at": "2026-08-17T12:30:22.000000Z",
"updated_at": "2026-08-17T12:30:22.000000Z",
"deleted_at": null,
"children_count": 1,
"created_by_name": "New",
"is_expired": false,
"creator": {
"id": 2,
"seat_type_id": 1,
"global_id": "02a3966c-9d67-47e0-954d-83d78cd3d84b",
"language_id": null,
"name": "New",
"email": "new@mail.com",
"email_verified_at": "2026-08-13T13:55:51.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-13T13:55:51.000000Z",
"updated_at": "2026-08-13T13:55:51.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "New",
"key": 2,
"temp_id": "user_2",
"type": "user",
"file_url": null
},
"parent": null,
"document_links": []
}
],
"breadcrumbs": []
},
"now": "2026-08-17 12:32:45"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code of the response. |
message | string | A user-friendly confirmation message. |
data | object | The response payload wrapper. |
โdocuments | array | List of folder and file items in the current directory. |
โid | integer | Unique database ID of the folder or file. |
โtype | string | Item type: either 'folder' or 'file'. |
โname | string | Display name of the folder or file. |
โdescription | string | Brief description of the item contents. |
โparent_id | integer | ID of the folder containing this item. Returns null for root level. |
โcolor | string | The display color code associated with the folder (folders only). |
โicon | string | CSS icon class name for UI rendering (folders only). |
โstatus | string | Lifecycle state of the file ('draft', 'published', or 'archived'). |
โdocument_number | string | Unique company tracking number (files only). |
โchildren_count | integer | Total count of immediate sub-items within this folder (folders only). |
โcurrent_version | object | Object detailing the active version properties (files only). |
โbreadcrumbs | array | An ordered array of parent folder objects detailing the navigation path. |
cURL Example
curl -X GET \
"https://your-org.algus.io/documents" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Create a new folder or upload a new file. Note: If the 'type' parameter is set to 'file', the request Content-Type must be 'multipart/form-data' (FormData) to allow the binary file payload to be uploaded. If 'type' is 'folder', you can send standard application/json.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| type | string | Required | The item type to create. Must be 'folder' or 'file'. |
| name | string | Required | Display name of the file or folder. |
| description | string | Optional | Optional description text. |
| parent_id | integer | Optional | The ID of the parent folder in which to create this item. Leaves at root if null. |
| color | string | Optional | Hex color code string (folders only, e.g. '#EF4444'). |
| file | file | Optional | The binary file payload to upload (files only, required if type='file'). Max size is 50MB. |
| change_notes | string | Optional | Initial version revision notes summary comments (files only). |
| is_expiry_enabled | boolean | Optional | Enables compliance expiration tracking on the document. |
| expires_at | string | Optional | Expiration date-time (ISO format, e.g. '2027-12-31'). Required if is_expiry_enabled is true. |
| is_publish_date_enabled | boolean | Optional | Enables scheduled publication release control. |
| published_at | string | Optional | Target publication date-time (ISO format). If set, file will remain hidden from standard users until this time. |
| approval_enabled | boolean | Optional | Toggle to enforce document review/approval workflow (non-free plans only). |
| approvers | array | Optional | Array of reviewer entity strings. Supports users or groups (e.g. ['user_1', 'user_group_3']). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"type": "folder",
"name": "SOPs",
"description": "Standard Operating Procedures folder",
"color": "#3B82F6"
}Sample Response
{
"status": true,
"status_code": 201,
"message": "Folder created successfully",
"description": null,
"data": {
"document": {
"id": 12,
"type": "folder",
"name": "SOPs",
"description": "Standard Operating Procedures folder",
"parent_id": null,
"color": "#3B82F6",
"icon": "pi pi-folder",
"created_by": 1,
"updated_by": 1
}
},
"now": "2026-08-17 17:55:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code of the response. |
message | string | A user-friendly confirmation message. |
description | string | Additional error details or description (null on success). |
data | object | The response payload wrapper. |
โdocument | object | The details of the newly created folder or file. |
โid | integer | Unique database ID of the created item. |
โtype | string | Item type: either 'folder' or 'file'. |
โname | string | Display name of the created folder or file. |
โdescription | string | Brief description of the item contents. |
โparent_id | integer | ID of the folder containing this item. Returns null for root level. |
โcolor | string | The display color code associated with the folder (folders only). |
โicon | string | CSS icon class name for UI rendering (folders only). |
โcreated_by | integer | ID of the user who created the document. |
โupdated_by | integer | ID of the user who last updated the document. |
now | string | Server timestamp of the response. |
cURL Example
curl -X POST \
"https://your-org.algus.io/documents" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"type": "folder",
"name": "SOPs",
"description": "Standard Operating Procedures folder",
"color": "#3B82F6"
}'Description
Retrieve full details, current version attachment, and version history of a specific document or folder.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Document retrieved successfully",
"description": null,
"data": {
"document": {
"id": 7,
"type": "file",
"parent_id": 6,
"name": "istockphoto-517818547-612x612",
"document_number": null,
"description": null,
"color": "#3B82F6",
"icon": null,
"order": 0,
"file_type": "image/jpeg",
"current_version": {
"id": 4,
"document_id": 7,
"version_number": 1,
"version_label": "v1",
"attachment_id": 4,
"file_name": "istockphoto-517818547-612x612.jpg",
"file_type": "image/jpeg",
"file_size": 37640,
"change_notes": "Initial version",
"expires_at": null,
"published_at": null,
"approval_status": "published",
"rejection_notes": null,
"approved_by": null,
"approved_at": null,
"uploaded_by": 2,
"is_current": true,
"created_at": "2026-08-17T12:31:28.000000Z",
"updated_at": "2026-08-17T12:31:28.000000Z",
"download_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/documents/version/4/download",
"attachment": {
"id": 4,
"file_name": "istockphoto-517818547-612x612.jpg",
"file": "documents/JEAlJQMQyRqtRIzC6ar8bPQa7JJcsEiSUMRq2oMP.jpg",
"thumbnail": null,
"converted_file": null,
"width": null,
"height": null,
"type": "image/jpeg",
"size": "37640",
"attachable_type": "App\Models\Tenant\Document\DocumentVersion",
"attachable_id": null,
"comments": null,
"created_at": "2026-08-17T12:31:28.000000Z",
"updated_at": "2026-08-17T12:31:28.000000Z",
"file_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/tenancy/assets/documents/JEAlJQMQyRqtRIzC6ar8bPQa7JJcsEiSUMRq2oMP.jpg",
"thumbnail_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/tenancy/assets/documents/JEAlJQMQyRqtRIzC6ar8bPQa7JJcsEiSUMRq2oMP.jpg",
"converted_file_url": null,
"temp_file_url": null
}
},
"version_label": "v1",
"status": "published",
"is_locked": false,
"locked_by": null,
"locked_at": null,
"is_active": true,
"is_public": true,
"is_expiry_enabled": false,
"is_publish_date_enabled": false,
"approval_enabled": false,
"created_by": 2,
"updated_by": 2,
"created_at": "2026-08-17T12:31:28.000000Z",
"updated_at": "2026-08-17T12:31:28.000000Z",
"deleted_at": null,
"created_by_name": "New",
"is_expired": false,
"creator": {
"id": 2,
"seat_type_id": 1,
"global_id": "02a3966c-9d67-47e0-954d-83d78cd3d84b",
"language_id": null,
"name": "New",
"email": "new@mail.com",
"email_verified_at": "2026-08-13T13:55:51.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-13T13:55:51.000000Z",
"updated_at": "2026-08-13T13:55:51.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "New",
"key": 2,
"temp_id": "user_2",
"type": "user",
"file_url": null
}
}
},
"now": "2026-08-17 12:57:32"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code of the response. |
message | string | A user-friendly confirmation message. |
description | string | Additional error details or description (null on success). |
data | object | The response payload wrapper. |
โdocument | object | The detailed document record details. |
โid | integer | Unique database ID of the document. |
โtype | string | The item type: 'file' or 'folder'. |
โparent_id | integer | ID of the parent folder containing this item. |
โname | string | Display name of the document. |
โdocument_number | string | Unique tracking number (if assigned, otherwise null). |
โdescription | string | Description comments of the document. |
โcolor | string | Hex color string associated with the document. |
โicon | string | CSS icon class (if any). |
โorder | integer | Sort order placement index. |
โfile_type | string | MIME file type (for files only, null for folders). |
โcurrent_version | object | Active file version details (files only). |
โid | integer | Unique database ID of this version log. |
โdocument_id | integer | Foreign key pointing to the document. |
โversion_number | integer | Sequential version number counter (e.g. 1). |
โversion_label | string | User-facing label for the version (e.g. 'v1'). |
โattachment_id | integer | Database ID of the attachment record. |
โfile_name | string | Original file name. |
โfile_type | string | MIME type of the uploaded file. |
โfile_size | integer | File size in bytes. |
โchange_notes | string | Revision summary notes. |
โexpires_at | string | Compliance expiration date-time (ISO format, if enabled). |
โpublished_at | string | Target publication date-time (ISO format, if scheduled). |
โapproval_status | string | Review state: e.g. 'published'. |
โrejection_notes | string | Feedback notes if version was rejected. |
โapproved_by | integer | User ID of the approver (if applicable). |
โapproved_at | string | Date-time when version was approved. |
โuploaded_by | integer | User ID of the uploader. |
โis_current | boolean | Flag indicating if this is the active document version. |
โcreated_at | string | Creation timestamp of the version. |
โupdated_at | string | Last update timestamp of the version. |
โdownload_url | string | Direct URL endpoint to download the version payload. |
โattachment | object | Underlying storage attachment record wrapper. |
โid | integer | ID of the attachment record. |
โfile_name | string | The name of the stored file. |
โfile | string | Storage path location of the file. |
โthumbnail | string | Thumbnail preview location path (if generated). |
โconverted_file | string | Converted view payload path (e.g. PDF converter output). |
โwidth | integer | Width dimensions in pixels (if image). |
โheight | integer | Height dimensions in pixels (if image). |
โtype | string | Attachment file category. |
โsize | string | Attachment file size in bytes. |
โattachable_type | string | Polymorphic class model mapping pointer. |
โattachable_id | integer | Polymorphic ID matching attachable_type model. |
โcomments | string | Comments regarding attachment. |
โcreated_at | string | Creation timestamp of attachment. |
โupdated_at | string | Last update timestamp of attachment. |
โfile_url | string | Full asset URL to retrieve the original file. |
โthumbnail_url | string | Full URL to retrieve thumbnail preview. |
โconverted_file_url | string | Full URL to retrieve converted file version. |
โtemp_file_url | string | Temporary signed download link. |
โversion_label | string | Current active version display string. |
โstatus | string | Workflow lifecycle state ('draft', 'published', or 'archived'). |
โis_locked | boolean | Indicates if the document is checked out / locked from editing. |
โlocked_by | integer | User ID of who locked the document. |
โlocked_at | string | Date-time when the document was locked. |
โis_active | boolean | Indicates if document is active. |
โis_public | boolean | True if document is visible to standard central users. |
โis_expiry_enabled | boolean | True if expiration limits tracking is enabled. |
โis_publish_date_enabled | boolean | True if scheduled release timing control is enabled. |
โapproval_enabled | boolean | True if reviews/approvals workflow is enforced. |
โcreated_by | integer | User ID of creator. |
โupdated_by | integer | User ID of last modifier. |
โcreated_at | string | Record creation date-time. |
โupdated_at | string | Record last modification date-time. |
โdeleted_at | string | Record soft deletion date-time (null if active). |
โcreated_by_name | string | Name of the creator user. |
โis_expired | boolean | Indicates if the active document version has expired. |
โcreator | object | Creator user account information. |
โid | integer | Unique database ID of creator user. |
โseat_type_id | integer | Seat type index. |
โglobal_id | string | Unique global ID of creator user. |
โlanguage_id | integer | Assigned language preference ID. |
โname | string | Display name of the user. |
โemail | string | User email address. |
โemail_verified_at | string | Verification date-time. |
โis_impersonate_user | boolean | Indicates if the user is impersonated. |
โcreated_at | string | User account creation date-time. |
โupdated_at | string | User account last modification date-time. |
โstatus | boolean | Indicates if user status is active. |
โis_invited | boolean | True if user was invited. |
โtimezone | string | Timezone setting preference. |
โdate_format | string | Preferred date display template. |
โtime_format | string | Preferred time display template. |
โavatar | string | Avatar image filename pointer. |
โis_archived | boolean | True if user account is archived. |
โsaml_external_id | string | External authentication identifier. |
โauth_type | string | Credential type used (e.g. 'password'). |
โlabel | string | Alias label matching username. |
โkey | integer | Unique key code index. |
โtemp_id | string | Temporary workspace session identifier. |
โtype | string | Role classification descriptor. |
โfile_url | string | Avatar storage retrieval URL. |
now | string | Server time of retrieval. |
cURL Example
curl -X GET \
"https://your-org.algus.io/documents/{document}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Download the active file payload binary stream for the specified document file ID.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
Binary File StreamcURL Example
curl -X GET \
"https://your-org.algus.io/documents/{document}/download" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Update the workflow/lifecycle status of an existing document file. Only document creators or system administrators can change document statuses.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| status | string | Required | The new lifecycle state. Allowed values: 'draft', 'published', or 'archived'. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"status": "published"
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Document status changed successfully",
"description": null,
"data": {
"document": {
"id": 2,
"type": "file",
"parent_id": null,
"name": "download",
"document_number": null,
"description": null,
"color": "#3B82F6",
"icon": null,
"order": 0,
"file_type": "image/png",
"current_version": {
"id": 2,
"document_id": 2,
"version_number": 1,
"version_label": "v1",
"attachment_id": 2,
"file_name": "download.png",
"file_type": "image/png",
"file_size": 1020,
"change_notes": "Initial version",
"expires_at": null,
"published_at": null,
"approval_status": "published",
"rejection_notes": null,
"approved_by": null,
"approved_at": null,
"uploaded_by": 2,
"is_current": true,
"created_at": "2026-08-17T12:19:09.000000Z",
"updated_at": "2026-08-17T12:19:09.000000Z",
"download_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/documents/version/2/download",
"attachment": {
"id": 2,
"file_name": "download.png",
"file": "documents/PkHEDT0WCcH1DSfGhRGAq5vkgEwpRHAYVfPUuaDD.png",
"thumbnail": null,
"converted_file": null,
"width": null,
"height": null,
"type": "image/png",
"size": "1020",
"attachable_type": "App\Models\Tenant\Document\DocumentVersion",
"attachable_id": null,
"comments": null,
"created_at": "2026-08-17T12:19:09.000000Z",
"updated_at": "2026-08-17T12:19:09.000000Z",
"file_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/tenancy/assets/documents/PkHEDT0WCcH1DSfGhRGAq5vkgEwpRHAYVfPUuaDD.png",
"thumbnail_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/tenancy/assets/documents/PkHEDT0WCcH1DSfGhRGAq5vkgEwpRHAYVfPUuaDD.png",
"converted_file_url": null,
"temp_file_url": null
}
},
"version_label": "v1",
"status": "published",
"is_locked": false,
"locked_by": null,
"locked_at": null,
"is_active": true,
"is_public": true,
"is_expiry_enabled": false,
"is_publish_date_enabled": false,
"approval_enabled": false,
"created_by": 2,
"updated_by": 2,
"created_at": "2026-08-17T12:19:08.000000Z",
"updated_at": "2026-08-17T12:19:09.000000Z",
"deleted_at": null,
"created_by_name": "New",
"is_expired": false,
"creator": {
"id": 2,
"seat_type_id": 1,
"global_id": "02a3966c-9d67-47e0-954d-83d78cd3d84b",
"language_id": null,
"name": "New",
"email": "new@mail.com",
"email_verified_at": "2026-08-13T13:55:51.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-13T13:55:51.000000Z",
"updated_at": "2026-08-13T13:55:51.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "New",
"key": 2,
"temp_id": "user_2",
"type": "user",
"file_url": null
}
},
"old_status": "published",
"new_status": "published"
},
"now": "2026-08-17 13:03:20"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code of the response. |
message | string | A user-friendly confirmation message. |
description | string | Additional error details or description (null on success). |
data | object | The response payload wrapper. |
โdocument | object | The detailed document record details. |
โid | integer | Unique database ID of the document. |
โtype | string | The item type: 'file' or 'folder'. |
โparent_id | integer | ID of the parent folder containing this item. |
โname | string | Display name of the document. |
โdocument_number | string | Unique tracking number (if assigned, otherwise null). |
โdescription | string | Description comments of the document. |
โcolor | string | Hex color string associated with the document. |
โicon | string | CSS icon class (if any). |
โorder | integer | Sort order placement index. |
โfile_type | string | MIME file type (for files only, null for folders). |
โcurrent_version | object | Active file version details (files only). |
โid | integer | Unique database ID of this version log. |
โdocument_id | integer | Foreign key pointing to the document. |
โversion_number | integer | Sequential version number counter (e.g. 1). |
โversion_label | string | User-facing label for the version (e.g. 'v1'). |
โattachment_id | integer | Database ID of the attachment record. |
โfile_name | string | Original file name. |
โfile_type | string | MIME type of the uploaded file. |
โfile_size | integer | File size in bytes. |
โchange_notes | string | Revision summary notes. |
โexpires_at | string | Compliance expiration date-time (ISO format, if enabled). |
โpublished_at | string | Target publication date-time (ISO format, if scheduled). |
โapproval_status | string | Review state: e.g. 'published'. |
โrejection_notes | string | Feedback notes if version was rejected. |
โapproved_by | integer | User ID of the approver (if applicable). |
โapproved_at | string | Date-time when version was approved. |
โuploaded_by | integer | User ID of the uploader. |
โis_current | boolean | Flag indicating if this is the active document version. |
โcreated_at | string | Creation timestamp of the version. |
โupdated_at | string | Last update timestamp of the version. |
โdownload_url | string | Direct URL endpoint to download the version payload. |
โattachment | object | Underlying storage attachment record wrapper. |
โid | integer | ID of the attachment record. |
โfile_name | string | The name of the stored file. |
โfile | string | Storage path location of the file. |
โthumbnail | string | Thumbnail preview location path (if generated). |
โconverted_file | string | Converted view payload path (e.g. PDF converter output). |
โwidth | integer | Width dimensions in pixels (if image). |
โheight | integer | Height dimensions in pixels (if image). |
โtype | string | Attachment file category. |
โsize | string | Attachment file size in bytes. |
โattachable_type | string | Polymorphic class model mapping pointer. |
โattachable_id | integer | Polymorphic ID matching attachable_type model. |
โcomments | string | Comments regarding attachment. |
โcreated_at | string | Creation timestamp of attachment. |
โupdated_at | string | Last update timestamp of attachment. |
โfile_url | string | Full asset URL to retrieve the original file. |
โthumbnail_url | string | Full URL to retrieve thumbnail preview. |
โconverted_file_url | string | Full URL to retrieve converted file version. |
โtemp_file_url | string | Temporary signed download link. |
โversion_label | string | Current active version display string. |
โstatus | string | Workflow lifecycle state ('draft', 'published', or 'archived'). |
โis_locked | boolean | Indicates if the document is checked out / locked from editing. |
โlocked_by | integer | User ID of who locked the document. |
โlocked_at | string | Date-time when the document was locked. |
โis_active | boolean | Indicates if document is active. |
โis_public | boolean | True if document is visible to standard central users. |
โis_expiry_enabled | boolean | True if expiration limits tracking is enabled. |
โis_publish_date_enabled | boolean | True if scheduled release timing control is enabled. |
โapproval_enabled | boolean | True if reviews/approvals workflow is enforced. |
โcreated_by | integer | User ID of creator. |
โupdated_by | integer | User ID of last modifier. |
โcreated_at | string | Record creation date-time. |
โupdated_at | string | Record last modification date-time. |
โdeleted_at | string | Record soft deletion date-time (null if active). |
โcreated_by_name | string | Name of the creator user. |
โis_expired | boolean | Indicates if the active document version has expired. |
โcreator | object | Creator user account information. |
โid | integer | Unique database ID of creator user. |
โseat_type_id | integer | Seat type index. |
โglobal_id | string | Unique global ID of creator user. |
โlanguage_id | integer | Assigned language preference ID. |
โname | string | Display name of the user. |
โemail | string | User email address. |
โemail_verified_at | string | Verification date-time. |
โis_impersonate_user | boolean | Indicates if the user is impersonated. |
โcreated_at | string | User account creation date-time. |
โupdated_at | string | User account last modification date-time. |
โstatus | boolean | Indicates if user status is active. |
โis_invited | boolean | True if user was invited. |
โtimezone | string | Timezone setting preference. |
โdate_format | string | Preferred date display template. |
โtime_format | string | Preferred time display template. |
โavatar | string | Avatar image filename pointer. |
โis_archived | boolean | True if user account is archived. |
โsaml_external_id | string | External authentication identifier. |
โauth_type | string | Credential type used (e.g. 'password'). |
โlabel | string | Alias label matching username. |
โkey | integer | Unique key code index. |
โtemp_id | string | Temporary workspace session identifier. |
โtype | string | Role classification descriptor. |
โfile_url | string | Avatar storage retrieval URL. |
โold_status | string | The previous lifecycle state of the document. |
โnew_status | string | The updated lifecycle state of the document. |
now | string | Server time of status change. |
cURL Example
curl -X PUT \
"https://your-org.algus.io/documents/{document}/status" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"status": "published"
}'Description
Update metadata parameters of an existing document or folder file. Requires Edit permissions.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| name | string | Required | Display name of the file or folder. |
| description | string | Optional | Description text comments. |
| parent_id | integer | Optional | Parent folder ID to relocate the document. Must exist in database. |
| color | string | Optional | Hex color string (folders only). |
| expires_at | string | Optional | Compliance expiration date-time (ISO format). Only applicable when compliance expiry tracking is turned on for this document. |
| published_at | string | Optional | Target publication date-time (ISO format). Only applicable when scheduled publication control is turned on for this document. |
| approval_enabled | boolean | Optional | Toggle to enforce review/approval steps. |
| approvers | array | Optional | List of user or group entity strings responsible for reviewing releases. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"name": "Emergency Response Manual v1.2",
"description": "Evacuation procedures with corrected Site B exit maps.",
"expires_at": "2027-12-31"
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Document updated successfully",
"description": null,
"data": {
"document": {
"id": 15,
"type": "file",
"name": "Emergency Response Manual v1.2",
"description": "Evacuation procedures with corrected Site B exit maps.",
"parent_id": null,
"status": "published",
"is_expiry_enabled": true
}
},
"now": "2026-08-17 17:55:00"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code of the response. |
message | string | A user-friendly confirmation message. |
description | string | Additional error details or description (null on success). |
data | object | The response payload wrapper. |
โdocument | object | The updated document metadata details. |
โid | integer | Unique database ID of the document. |
โtype | string | The item type: 'file' or 'folder'. |
โname | string | Updated display name. |
โdescription | string | Updated description text. |
โparent_id | integer | Parent folder ID containing this item. |
โstatus | string | Workflow state. |
โis_expiry_enabled | boolean | True if compliance expiry tracking is active. |
now | string | Server time of metadata update. |
cURL Example
curl -X PUT \
"https://your-org.algus.io/documents/{document}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Emergency Response Manual v1.2",
"description": "Evacuation procedures with corrected Site B exit maps.",
"expires_at": "2027-12-31"
}'Description
Delete a folder or file. When a folder is deleted, all contained child subfolders and files are recursively deleted. Associated physical storage files and version logs are permanently wiped.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Document deleted successfully",
"description": null,
"data": {
"deleted_id": "7"
},
"now": "2026-08-17 13:02:02"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code of the response. |
message | string | A user-friendly confirmation message. |
description | string | Additional error details or description (null on success). |
data | object | The response payload wrapper. |
โdeleted_id | string | Unique database ID of the deleted file or folder. |
now | string | Server time of deletion. |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/documents/{document}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Upload a new version file for an existing document, incrementing the active version number and resetting pending user acknowledgments. Enforced via multipart/form-data payload.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| file | file | Required | The new binary file attachment payload. Max size is 50MB. |
| change_notes | string | Optional | Revision summary notes explaining what has changed in this version release. |
| expires_at | string | Optional | Specific compliance expiration date-time (ISO format) for this version. Only applicable when compliance expiry tracking is turned on for this document. |
| published_at | string | Optional | Scheduled release date-time (ISO format) when this version becomes visible to standard users. Only applicable when scheduled publication control is turned on for this document. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "New version uploaded successfully",
"description": null,
"data": {
"document": {
"id": 2,
"type": "file",
"parent_id": null,
"name": "download",
"document_number": null,
"description": null,
"color": "#3B82F6",
"icon": null,
"order": 0,
"file_type": "image/jpeg",
"current_version": {
"id": 5,
"document_id": 2,
"version_number": 2,
"version_label": "v2",
"attachment_id": 5,
"file_name": "images (1).jpeg",
"file_type": "image/jpeg",
"file_size": 10620,
"change_notes": "sadsadc",
"expires_at": null,
"published_at": null,
"approval_status": "published",
"rejection_notes": null,
"approved_by": null,
"approved_at": null,
"uploaded_by": 2,
"is_current": true,
"created_at": "2026-08-17T13:05:04.000000Z",
"updated_at": "2026-08-17T13:05:04.000000Z",
"download_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/documents/version/5/download",
"attachment": {
"id": 5,
"file_name": "images (1).jpeg",
"file": "documents/9QbsNL1q1XPfjpOHuKKFWQuExbGswmZK9aHVOHWq.jpg",
"thumbnail": null,
"converted_file": null,
"width": null,
"height": null,
"type": "image/jpeg",
"size": "10620",
"attachable_type": "App\Models\Tenant\Document\DocumentVersion",
"attachable_id": null,
"comments": null,
"created_at": "2026-08-17T13:05:04.000000Z",
"updated_at": "2026-08-17T13:05:04.000000Z",
"file_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/tenancy/assets/documents/9QbsNL1q1XPfjpOHuKKFWQuExbGswmZK9aHVOHWq.jpg",
"thumbnail_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/tenancy/assets/documents/9QbsNL1q1XPfjpOHuKKFWQuExbGswmZK9aHVOHWq.jpg",
"converted_file_url": null,
"temp_file_url": null
}
},
"version_label": "v2",
"status": "published",
"is_locked": false,
"locked_by": null,
"locked_at": null,
"is_active": true,
"is_public": true,
"is_expiry_enabled": false,
"is_publish_date_enabled": false,
"approval_enabled": false,
"created_by": 2,
"updated_by": 2,
"created_at": "2026-08-17T12:19:08.000000Z",
"updated_at": "2026-08-17T13:05:04.000000Z",
"deleted_at": null,
"created_by_name": "New",
"is_expired": false,
"creator": {
"id": 2,
"seat_type_id": 1,
"global_id": "02a3966c-9d67-47e0-954d-83d78cd3d84b",
"language_id": null,
"name": "New",
"email": "new@mail.com",
"email_verified_at": "2026-08-13T13:55:51.000000Z",
"is_impersonate_user": false,
"created_at": "2026-08-13T13:55:51.000000Z",
"updated_at": "2026-08-13T13:55:51.000000Z",
"status": true,
"is_invited": false,
"timezone": null,
"date_format": null,
"time_format": null,
"avatar": null,
"is_archived": false,
"saml_external_id": null,
"auth_type": "password",
"label": "New",
"key": 2,
"temp_id": "user_2",
"type": "user",
"file_url": null
}
},
"version": {
"document_id": 2,
"attachment_id": 5,
"version_number": 2,
"version_label": "v2",
"file_name": "images (1).jpeg",
"file_type": "image/jpeg",
"file_size": 10620,
"change_notes": "sadsadc",
"uploaded_by": 2,
"is_current": true,
"approval_status": "published",
"expires_at": null,
"published_at": null,
"updated_at": "2026-08-17T13:05:04.000000Z",
"created_at": "2026-08-17T13:05:04.000000Z",
"id": 5,
"download_url": "http://localhost:8000/f037a612-9486-4760-8d70-83a1e344427b/documents/version/5/download"
}
},
"now": "2026-08-17 13:05:04"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code of the response. |
message | string | A user-friendly confirmation message. |
description | string | Additional error details or description (null on success). |
data | object | The response payload wrapper. |
โdocument | object | The detailed document record details. |
โid | integer | Unique database ID of the document. |
โtype | string | The item type: 'file' or 'folder'. |
โparent_id | integer | ID of the parent folder containing this item. |
โname | string | Display name of the document. |
โdocument_number | string | Unique tracking number (if assigned, otherwise null). |
โdescription | string | Description comments of the document. |
โcolor | string | Hex color string associated with the document. |
โicon | string | CSS icon class (if any). |
โorder | integer | Sort order placement index. |
โfile_type | string | MIME file type (for files only, null for folders). |
โcurrent_version | object | Active file version details (files only). |
โid | integer | Unique database ID of this version log. |
โdocument_id | integer | Foreign key pointing to the document. |
โversion_number | integer | Sequential version number counter (e.g. 1). |
โversion_label | string | User-facing label for the version (e.g. 'v1'). |
โattachment_id | integer | Database ID of the attachment record. |
โfile_name | string | Original file name. |
โfile_type | string | MIME type of the uploaded file. |
โfile_size | integer | File size in bytes. |
โchange_notes | string | Revision summary notes. |
โexpires_at | string | Compliance expiration date-time (ISO format, if enabled). |
โpublished_at | string | Target publication date-time (ISO format, if scheduled). |
โapproval_status | string | Review state: e.g. 'published'. |
โrejection_notes | string | Feedback notes if version was rejected. |
โapproved_by | integer | User ID of the approver (if applicable). |
โapproved_at | string | Date-time when version was approved. |
โuploaded_by | integer | User ID of the uploader. |
โis_current | boolean | Flag indicating if this is the active document version. |
โcreated_at | string | Creation timestamp of the version. |
โupdated_at | string | Last update timestamp of the version. |
โdownload_url | string | Direct URL endpoint to download the version payload. |
โattachment | object | Underlying storage attachment record wrapper. |
โid | integer | ID of the attachment record. |
โfile_name | string | The name of the stored file. |
โfile | string | Storage path location of the file. |
โthumbnail | string | Thumbnail preview location path (if generated). |
โconverted_file | string | Converted view payload path (e.g. PDF converter output). |
โwidth | integer | Width dimensions in pixels (if image). |
โheight | integer | Height dimensions in pixels (if image). |
โtype | string | Attachment file category. |
โsize | string | Attachment file size in bytes. |
โattachable_type | string | Polymorphic class model mapping pointer. |
โattachable_id | integer | Polymorphic ID matching attachable_type model. |
โcomments | string | Comments regarding attachment. |
โcreated_at | string | Creation timestamp of attachment. |
โupdated_at | string | Last update timestamp of attachment. |
โfile_url | string | Full asset URL to retrieve the original file. |
โthumbnail_url | string | Full URL to retrieve thumbnail preview. |
โconverted_file_url | string | Full URL to retrieve converted file version. |
โtemp_file_url | string | Temporary signed download link. |
โversion_label | string | Current active version display string. |
โstatus | string | Workflow lifecycle state ('draft', 'published', or 'archived'). |
โis_locked | boolean | Indicates if the document is checked out / locked from editing. |
โlocked_by | integer | User ID of who locked the document. |
โlocked_at | string | Date-time when the document was locked. |
โis_active | boolean | Indicates if document is active. |
โis_public | boolean | True if document is visible to standard central users. |
โis_expiry_enabled | boolean | True if expiration limits tracking is enabled. |
โis_publish_date_enabled | boolean | True if scheduled release timing control is enabled. |
โapproval_enabled | boolean | True if reviews/approvals workflow is enforced. |
โcreated_by | integer | User ID of creator. |
โupdated_by | integer | User ID of last modifier. |
โcreated_at | string | Record creation date-time. |
โupdated_at | string | Record last modification date-time. |
โdeleted_at | string | Record soft deletion date-time (null if active). |
โcreated_by_name | string | Name of the creator user. |
โis_expired | boolean | Indicates if the active document version has expired. |
โcreator | object | Creator user account information. |
โid | integer | Unique database ID of creator user. |
โseat_type_id | integer | Seat type index. |
โglobal_id | string | Unique global ID of creator user. |
โlanguage_id | integer | Assigned language preference ID. |
โname | string | Display name of the user. |
โemail | string | User email address. |
โemail_verified_at | string | Verification date-time. |
โis_impersonate_user | boolean | Indicates if the user is impersonated. |
โcreated_at | string | User account creation date-time. |
โupdated_at | string | User account last modification date-time. |
โstatus | boolean | Indicates if user status is active. |
โis_invited | boolean | True if user was invited. |
โtimezone | string | Timezone setting preference. |
โdate_format | string | Preferred date display template. |
โtime_format | string | Preferred time display template. |
โavatar | string | Avatar image filename pointer. |
โis_archived | boolean | True if user account is archived. |
โsaml_external_id | string | External authentication identifier. |
โauth_type | string | Credential type used (e.g. 'password'). |
โlabel | string | Alias label matching username. |
โkey | integer | Unique key code index. |
โtemp_id | string | Temporary workspace session identifier. |
โtype | string | Role classification descriptor. |
โfile_url | string | Avatar storage retrieval URL. |
โversion | object | Details of the newly created version entry. |
โdocument_id | integer | ID of the associated document. |
โattachment_id | integer | ID of the new attachment record. |
โversion_number | integer | Incremented version counter (e.g. 2). |
โversion_label | string | System-generated display label corresponding to the version. |
โfile_name | string | The uploaded file's original name. |
โfile_type | string | MIME type of the uploaded file. |
โfile_size | integer | File size in bytes. |
โchange_notes | string | Uploader's notes regarding the revision. |
โuploaded_by | integer | User ID of the uploader. |
โis_current | boolean | Indicates if this is now the active version. |
โapproval_status | string | Workflow review state. |
โexpires_at | string | Expiration timestamp. |
โpublished_at | string | Publication timestamp. |
โupdated_at | string | Last modification timestamp. |
โcreated_at | string | Creation timestamp. |
โid | integer | Unique database ID of the version log. |
โdownload_url | string | Download endpoint URL for this specific version. |
now | string | Server time of version upload. |
cURL Example
curl -X POST \
"https://your-org.algus.io/documents/{document}/version" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"๐ฌ Feedback
Manage feedback forms, submissions, and responses in the feedback module.
Description
Retrieve a paginated list of feedback submissions across forms with dynamic query filters.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| forms | array | Optional | Filter by one or more feedback form IDs (e.g. `forms[]=1&forms[]=2`). |
| form_id | integer | Optional | Alternative parameter to filter by a single feedback form ID. |
| statuses | array | Optional | Filter by one or more submission statuses (e.g., `pending`, `in_progress`, `completed`). |
| status | string | Optional | Alternative parameter to filter by a single submission status (e.g., `pending`, `in_progress`, `completed`). |
| date | array | Optional | Filter by date range. Pass as array of start and end dates (e.g. `date[0]=2026-08-01&date[1]=2026-08-31`). |
| start_date | string | Optional | Alternative parameter to filter by submissions on or after this date (ISO format). |
| end_date | string | Optional | Alternative parameter to filter by submissions on or before this date (ISO format). |
| score_min | number | Optional | Filter submissions with a score percentage greater than or equal to this value. |
| score_max | number | Optional | Filter submissions with a score percentage less than or equal to this value. |
| nps_types | array | Optional | Filter by NPS classifications. Allowed values: `promoter`, `passive`, `detractor` (e.g., `nps_types[]=promoter`). |
| nps_type | string | Optional | Alternative parameter to filter by a single NPS classification value. |
| sites | array | Optional | Filter by one or more site IDs. Can pass values as `site_X` or integers. |
| site_id | integer | Optional | Alternative parameter to filter by a single site ID. |
| resources | array | Optional | Filter by one or more resource IDs. Can pass values as `resource-X` or integers. |
| resource_id | integer | Optional | Alternative parameter to filter by a single resource ID. |
| search | string | Optional | Search keyword matching submission series_number or feedback form title. |
| per_page | integer | Optional | Number of items to return per page. Default is 15. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Feedback submissions retrieved successfully",
"description": null,
"data": {
"current_page": 1,
"data": [
{
"id": 3,
"series_number": "FB-0003",
"feedback_form_id": 2,
"feedback_version_id": 12,
"date": "2026-08-17",
"created_at": "2026-08-17T13:05:04.000000Z",
"completed_at": "2026-08-17T13:08:00.000000Z",
"status": "completed",
"score_percentage": 95,
"total_score": 19,
"form_total_score": 20,
"site_id": 4,
"resource_id": null,
"form": {
"id": 2,
"title": "Customer Satisfaction Survey"
},
"version": {
"id": 12,
"feedback_form_id": 2,
"version_number": 1
},
"site": {
"id": 4,
"name": "Site Alpha"
},
"resource": null
}
],
"first_page_url": "http://localhost:8000/api/feedback-submissions?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "http://localhost:8000/api/feedback-submissions?page=1",
"next_page_url": null,
"path": "http://localhost:8000/api/feedback-submissions",
"per_page": 15,
"prev_page_url": null,
"to": 1,
"total": 1
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code of the response. |
message | string | A user-friendly confirmation message. |
description | string | Additional error details or description (null on success). |
data | object | Standard Laravel pagination wrapper object. |
โcurrent_page | integer | Current page index. |
โdata | array | List of matching feedback submissions. |
โid | integer | Unique database ID of submission. |
โseries_number | string | Formatted tracking reference code. |
โfeedback_form_id | integer | ID of associated feedback form. |
โfeedback_version_id | integer | ID of associated form design version. |
โdate | string | Submission date. |
โcreated_at | string | Creation date-time. |
โcompleted_at | string | Completion date-time. |
โstatus | string | Current status ('completed' or 'draft'). |
โscore_percentage | number | Percentage score calculated for responses. |
โtotal_score | number | Points score sum achieved. |
โform_total_score | number | Max possible points score for form layout. |
โsite_id | integer | ID of the associated site locations. |
โresource_id | integer | ID of the associated resource item. |
โform | object | Feedback form summary details. |
โversion | object | Feedback version summary details. |
โsite | object | Site location details. |
โresource | object | Resource item details. |
โtotal | integer | Total count of records matching filters. |
cURL Example
curl -X GET \
"https://your-org.algus.io/feedback-submissions" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieve complete details, questions, answers, and calculated NPS evaluation for a single feedback submission.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Feedback submission retrieved successfully",
"description": null,
"data": {
"submission": {
"id": 2,
"uuid": "300e79e5-d945-4f9d-985c-ff7692114a03",
"site_id": null,
"qr_site_id": null,
"qr_code_token": "77986e21-6d75-4463-bcae-070eb6a9ff36",
"resource_id": null,
"series_number": "S-1",
"date": "2026-08-18T11:44:57.000000Z",
"completed_at": "2026-08-18T11:45:06.000000Z",
"feedback_form_id": 2,
"feedback_version_id": 2,
"user_id": null,
"status": "completed",
"reference_id": null,
"total_score": 4,
"score_percentage": "80.00",
"form_total_score": 5,
"metadata": {
"ip": "127.0.0.1",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36 Edg/151.0.0.0"
},
"created_at": "2026-08-18T11:44:57.000000Z",
"updated_at": "2026-08-18T11:45:06.000000Z",
"submitter_name": "N/A",
"submitter_email": "N/A",
"submitter_phone": "N/A",
"form": {
"id": 2,
"uuid": "ed509b91-797e-46ba-b745-1ea75919b9b7",
"title": "sad",
"is_active": true,
"views": 2,
"series_prefix": "S-",
"next_series_number": 3,
"qr_code_path": null,
"created_at": "2026-08-18T11:42:03.000000Z",
"updated_at": "2026-08-18T11:45:12.000000Z",
"qr_code_url": null
},
"version": {
"id": 2,
"feedback_form_id": 2,
"version_number": 1,
"status": "published",
"welcome_screen_title": null,
"description": null,
"layout": [],
"settings": {}
},
"site": null,
"resource": null,
"responses": [
{
"id": 4,
"feedback_submission_id": 2,
"feedback_question_id": 4,
"answer_text": "Yes",
"answer_json": null,
"score": 0,
"total_score": 0,
"created_at": "2026-08-18T11:44:57.000000Z",
"updated_at": "2026-08-18T11:44:57.000000Z",
"question": {
"id": 4,
"feedback_version_id": 2,
"global_question_id": 5,
"question_key": "752140d5-7f79-4cd4-9995-cc5fe1797b03",
"type": "dichotomous",
"label": "Would you recommend our product to others?",
"placeholder": null,
"is_required": true,
"has_scoring": false,
"min": null,
"max": "5.00",
"score": "5.00",
"plain_label": "Would you recommend our product to others?",
"options": []
},
"attachments": [],
"tasks": [],
"issues": [],
"incidents": []
}
],
"tasks": [],
"issues": [],
"incidents": []
},
"nps_type": "promoter"
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code of the response. |
message | string | Response status message. |
description | string | Additional error details or description (null on success). |
data | object | The response payload wrapper. |
โsubmission | object | Complete submission details. |
โid | integer | Unique database ID of the submission. |
โuuid | string | Unique UUID of the submission. |
โsite_id | integer | Associated site ID. |
โqr_site_id | integer | Site ID pre-filled from QR code scan. |
โqr_code_token | string | The scan token of the QR code used for the submission. |
โresource_id | integer | ID of the associated resource item. |
โseries_number | string | Formatted tracking reference code (e.g. S-1). |
โdate | string | Start date-time of the submission. |
โcompleted_at | string | Completion date-time. |
โfeedback_form_id | integer | ID of associated feedback form. |
โfeedback_version_id | integer | ID of associated form design version. |
โuser_id | integer | ID of the user who submitted the form (null for anonymous). |
โstatus | string | Current status ('pending', 'in_progress', 'completed'). |
โreference_id | string | External reference identifier. |
โtotal_score | number | Sum of points achieved in the submission. |
โscore_percentage | string | Percentage score calculated for the responses (e.g. '80.00'). |
โform_total_score | number | Maximum possible score for the form version. |
โmetadata | object | Client metadata wrapper. |
โip | string | IP address of the submitter. |
โuser_agent | string | User Agent of the submitter's browser. |
โsubmitter_name | string | Name of the submitter. |
โsubmitter_email | string | Email address of the submitter. |
โsubmitter_phone | string | Phone number of the submitter. |
โform | object | Associated feedback form details. |
โid | integer | ID of the feedback form. |
โuuid | string | UUID of the feedback form. |
โtitle | string | Title of the feedback form. |
โis_active | boolean | Whether the form is active. |
โviews | integer | Number of times the form has been viewed. |
โversion | object | Form layout version details. |
โsite | object | Site details (null if not associated). |
โresource | object | Resource details (null if not associated). |
โresponses | array | List of responses for each question. |
โid | integer | Unique response ID. |
โanswer_text | string | The textual answer value provided. |
โanswer_json | object | The JSON formatted answer values (for complex types). |
โscore | number | Score achieved for this response. |
โquestion | object | Question definition details. |
โid | integer | Question ID. |
โtype | string | Question type (e.g., dichotomous, rating, short_text, email). |
โplain_label | string | Plain text question label. |
โtasks | array | Follow-up tasks triggered by this submission. |
โissues | array | Follow-up issues triggered by this submission. |
โincidents | array | Follow-up incidents triggered by this submission. |
โnps_type | string | Calculated NPS classification category: promoter, passive, or detractor. |
cURL Example
curl -X GET \
"https://your-org.algus.io/feedback-submissions/{feedback_submission}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieve a list of feedback forms available in the system, along with version indicators and QR code links.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Feedback forms retrieved successfully",
"description": null,
"data": {
"forms": [
{
"id": 2,
"title": "Customer Satisfaction Survey",
"uuid": "cf991cae-7440-410a-8bf8-2c2be95fa501",
"qr_code_path": "qrcodes/feedback_2.png",
"series_prefix": "FB",
"next_series_number": 4,
"is_active": true,
"views": 120,
"created_at": "2026-08-15T10:00:00.000000Z",
"updated_at": "2026-08-17T13:05:04.000000Z",
"qr_code_url": "http://localhost:8000/storage/qrcodes/feedback_2.png",
"latest_published_version": {
"id": 12,
"feedback_form_id": 2,
"version_number": 1,
"status": "published"
},
"draft_version": null,
"qr_codes": []
}
]
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code of the response. |
message | string | A user-friendly confirmation message. |
description | string | Additional error details or description (null on success). |
data | object | The response payload wrapper. |
โforms | array | List of feedback forms. |
โid | integer | Unique database ID of form. |
โtitle | string | Form display title. |
โuuid | string | Unique UUID reference. |
โqr_code_path | string | Filepath of the QR Code image. |
โseries_prefix | string | Prefix for submission naming series. |
โnext_series_number | integer | Index value for the next submission reference. |
โis_active | boolean | True if form is active and accepting responses. |
โviews | integer | Form total views count. |
โcreated_at | string | Creation date-time. |
โupdated_at | string | Last modification date-time. |
โqr_code_url | string | Asset URL to retrieve form QR Code. |
โlatest_published_version | object | Active published form design version details. |
โdraft_version | object | Current draft form design version details. |
โqr_codes | array | List of assigned QR Code configurations. |
cURL Example
curl -X GET \
"https://your-org.algus.io/feedback-forms" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"โ Approvals & Acknowledgments
Endpoints to fetch pending approvals, submit approval outcomes, and view or acknowledge escalations.
Description
Lists pending, approved, and denied approvals for the authenticated user.
- Only users with the 'View Approvals' permission can access this endpoint.
- Response is grouped by approval status: pending, approved, and denied.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| types | array | Optional | Filter by item types. Supported values: inspections, document_versions, feedback, tasks, issues, incidents. |
| statuses | array | Optional | Filter by approval status. Supported values: pending, approved, denied. |
| users | array | Optional | Filter by designated user IDs. These IDs can be retrieved from GET /users. |
| sites | array | Optional | Filter by site IDs. These IDs can be retrieved from GET /sites. |
| resources | array | Optional | Filter by resource IDs. These IDs can be retrieved from GET /resources. |
| date | array | Optional | Filter by range: `[startDate, endDate]` (format: YYYY-MM-DD). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"pending_approvals": [
{
"id": 9,
"submitted_at": null,
"approval_id": 8,
"user_id": 2,
"selected_outcome": null,
"created_at": "2026-08-18T10:30:07.000000Z",
"updated_at": "2026-08-18T10:30:07.000000Z",
"model_name": "approval",
"user": {
"id": 2,
"name": "New",
"email": "new@mail.com",
"status": true
},
"approval": {
"id": 8,
"date": "2026-08-18 10:30:07",
"workflow_id": 15,
"label": "New Approval",
"approvable_id": 17,
"approvable_type": "App\\Models\\Tenant\\Incident\\Incident",
"outcomes": [
{
"template": null,
"label": "Approve",
"value": "approve"
},
{
"template": null,
"label": "Deny",
"value": "deny"
}
],
"condition": {
"completion_rule": "require_response_from_one_person",
"completion_rule_number": null
},
"type": "incidents",
"approvable": {
"id": 17,
"incident_type_id": 2,
"series_number": "ASD-16",
"title": "Chemical Spill Incident",
"description": "<p>Chemical spill in laboratory</p>",
"incident_date": "2026-08-18T10:29:53.000000Z",
"incident_status_id": 1,
"reporter_name": "New",
"model_name": "incident"
}
}
}
],
"approved_approvals": [],
"denied_approvals": [
{
"id": 2,
"submitted_at": "2026-08-17 14:06:12",
"approval_id": 2,
"user_id": 2,
"selected_outcome": {
"label": "Deny",
"value": "deny"
},
"created_at": "2026-08-17T13:58:32.000000Z",
"updated_at": "2026-08-17T14:06:12.000000Z",
"model_name": "approval",
"user": {
"id": 2,
"name": "New",
"email": "new@mail.com",
"status": true
},
"approval": {
"id": 2,
"date": "2026-08-17 13:58:32",
"workflow_id": 3,
"label": "New Approval",
"approvable_id": 17,
"approvable_type": "App\\Models\\Tenant\\Task\\Task",
"outcomes": [
{
"label": "Approve",
"value": "approve"
},
{
"label": "Deny",
"value": "deny"
}
],
"condition": {
"completion_rule": "require_response_from_one_person",
"completion_rule_number": null
},
"type": "tasks",
"approvable": {
"id": 17,
"creator_id": 2,
"task_status_id": 1,
"title": "Safety Check Task",
"series_number": "CA-3",
"model_name": "task"
}
}
}
],
"current_user_id": 2
},
"now": "2026-08-18 11:51:59"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Response status message. |
description | string | Additional error details or description (null on success). |
data | object | The response payload wrapper. |
โpending_approvals | array | List of pending approvals that require action from the current user. |
โid | integer | Unique ID of the ApprovalUser record (use this ID to submit decisions). |
โsubmitted_at | string | Timestamp when the decision was submitted. |
โapproval_id | integer | Parent approval model ID. |
โuser_id | integer | Designated approver user ID. |
โselected_outcome | object | The selected outcome decision (null if pending). |
โuser | object | Designated approver details. |
โapproval | object | Parent approval node and workflow definitions. |
โid | integer | Parent approval record ID. |
โlabel | string | Name/label of the approval stage. |
โapprovable_type | string | Polymorphic item class name (e.g. App\Models\Tenant\Incident\Incident). |
โapprovable_id | integer | ID of polymorphic target item. |
โoutcomes | array | List of possible outcome decisions. |
โcondition | object | Completion rule configuration wrapper. |
โtype | string | Category type key (e.g., tasks, incidents, issues, feedback, inspections, document_versions). |
โapprovable | object | Polymorphic target record instance details (task, incident, issue, document_version, feedback). |
โapproved_approvals | array | List of approvals previously approved by the user. |
โdenied_approvals | array | List of approvals previously denied by the user. |
โcurrent_user_id | integer | ID of the authenticated tenant user. |
cURL Example
curl -X GET \
"https://your-org.algus.io/approvals" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Returns detailed information about a specific approval workflow instance, including all auxiliary context and lookup data (incidents, issues, or documents).
- Requires 'Manage Approvals' permission.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| id | integer | Required | The unique database ID of the ApprovalUser record (not the parent Approval ID). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": null,
"description": null,
"data": {
"approval": {
"id": 3,
"date": "2026-08-17 13:58:45",
"workflow_id": 5,
"parent_workflow_id": 4,
"label": "New Approval",
"node_id": 3,
"approvable_id": 18,
"approvable_type": "App\\Models\\Tenant\\Task\\Task",
"outcomes": [
{
"template": null,
"label": "Approve",
"value": "approve"
},
{
"template": null,
"label": "Deny",
"value": "deny"
}
],
"condition": {
"completion_rule": "require_response_from_one_person",
"completion_rule_number": null
},
"created_at": "2026-08-17T13:58:45.000000Z",
"updated_at": "2026-08-17T13:58:45.000000Z",
"type": "tasks",
"approvable": {
"id": 18,
"creator_id": 2,
"task_status_id": 1,
"task_type_id": 3,
"task_type_priority_id": 1,
"site_id": null,
"title": "Safety Checklist Task",
"series_number": "CA-4",
"description": "Routine security walk details",
"progress": 0,
"due_date": "2026-08-18 19:28:35",
"repeat_type": "does_not_repeat",
"created_date": "2026-08-17 13:58:17",
"auto_generated": false,
"is_clone_attachments": false,
"created_at": "2026-08-17T13:58:43.000000Z",
"updated_at": "2026-08-17T13:58:43.000000Z",
"parent_id": null,
"is_reccuring_task": false,
"resource_id": null,
"from_workflow": false,
"exact_location": null,
"formatted_due_date": "18 Aug 2026 07:28 PM",
"formatted_repeat_type": "Does Not Repeat",
"iso_formatted_due_date": "2026-08-18T19:28:35+00:00",
"assigned_users": [],
"model_name": "task"
}
},
"approval_user": {
"id": 3,
"submitted_at": null,
"approval_id": 3,
"user_id": 2,
"selected_outcome": null,
"created_at": "2026-08-17T13:58:45.000000Z",
"updated_at": "2026-08-17T13:58:45.000000Z",
"model_name": "approval"
},
"previous_approvals": [],
"is_assigned_user": true,
"current_user_id": 2,
"approval_type": "task"
},
"now": "2026-08-17 14:02:56"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the API request was successful. |
status_code | integer | HTTP status code. |
message | string | Response status message. |
โapproval | object | The parent approval record. |
โapprovable | object | The polymorphic model instance being approved (e.g. Task, Incident, Issue, Document Version, or Feedback Submission). |
โapproval_user | object | The user-specific approval mapping record. |
โprevious_approvals | array | Array of past approval actions in this workflow chain. |
โis_assigned_user | boolean | True if the authenticated user is the designated approver for this node. |
โcurrent_user_id | integer | ID of the authenticated user. |
โapproval_type | string | The category of the approvable model (e.g. 'inspections', 'issues', 'incidents', 'document_versions', 'feedback', or 'task'). |
cURL Example
curl -X GET \
"https://your-org.algus.io/approvals/{id}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Submits the approval outcome (approve/deny) for a pending approval request.
- Requires 'Manage Approvals' permission.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| approval_user_id | integer | Required | The ID of the ApprovalUser record being acted upon. |
| outcome | object/string | Required | Outcome details. Can be a string like 'approve' or an object: { 'value': 'approve', 'label': 'Approve', 'rejection_notes': 'notes' }. |
| rejection_notes | string | Optional | Optional comments describing the reason for rejection/denial. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"approval_user_id": 1,
"outcome": {
"value": "deny",
"label": "Deny",
"rejection_notes": "Missing detailed safety log files."
}
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Approval submitted successfully",
"description": null,
"data": null
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates if the outcome was submitted successfully. |
cURL Example
curl -X POST \
"https://your-org.algus.io/approvals/submit" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"approval_user_id": 1,
"outcome": {
"value": "deny",
"label": "Deny",
"rejection_notes": "Missing detailed safety log files."
}
}'Description
Retrieves escalations and policy acknowledgments assigned to the authenticated user.
- Includes escalation workflows, related incident details, and document titles.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| types | array | Optional | Filter by item types. Supported values: Incident, Task, Issue, Inspection, Document. |
| statuses | array | Optional | Filter by escalation status. Supported values: pending, acknowledged, denied. |
| users | array | Optional | Filter by assigned user IDs. These IDs can be retrieved from GET /users. |
| sites | array | Optional | Filter by site IDs. These IDs can be retrieved from GET /sites. |
| resources | array | Optional | Filter by resource IDs. These IDs can be retrieved from GET /resources. |
| date | array | Optional | Filter by range: `[startDate, endDate]` (format: YYYY-MM-DD). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": {
"acknowledgments": [
{
"id": 4,
"escalation_id": 2,
"user_id": 2,
"acknowledged_at": null,
"denied_at": null,
"is_active": true,
"escalation": {
"id": 2,
"escalatable_type": "App\\Models\\Tenant\\Incident\\Incident",
"escalatable_id": 15,
"escalatable": {
"id": 15,
"title": "Chemical Spill Incident"
}
}
}
],
"current_user_id": 2
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
โacknowledgments | array | List of active or historical acknowledgment requests. |
โis_active | boolean | Indicates whether the acknowledgment request is still active and open for submission. |
cURL Example
curl -X GET \
"https://your-org.algus.io/acknowledgments" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Acknowledges an active escalation workflow node.
- Must be the designated acknowledger of the escalation request.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| acknowledgmentId | integer | Required | The unique database ID of the EscalationAcknowledgment record. |
| notes | string | Optional | Optional notes or comments regarding the acknowledgment. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"notes": "I have reviewed the incident logs and confirm our team is resolving it."
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Acknowledgment submitted successfully",
"description": null,
"data": {
"acknowledgment": {
"id": 4,
"acknowledged_at": "2026-08-17 18:00:00"
}
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates success of the acknowledgment submission. |
cURL Example
curl -X POST \
"https://your-org.algus.io/acknowledgments/{acknowledgmentId}/acknowledge" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"notes": "I have reviewed the incident logs and confirm our team is resolving it."
}'Description
Denies or rejects an active acknowledgment request.
- Denying is only permitted for incident and document acknowledgments. Notes are required when denying.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| acknowledgmentId | integer | Required | The unique database ID of the EscalationAcknowledgment record. |
| notes | string | Required | Required comments explaining the reason for the denial. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"notes": "Denying this request because the accompanying report is incomplete."
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Acknowledgment denied successfully",
"description": null,
"data": {
"acknowledgment": {
"id": 4,
"denied_at": "2026-08-17 18:05:00"
}
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Indicates success of the denial action. |
cURL Example
curl -X POST \
"https://your-org.algus.io/acknowledgments/{acknowledgmentId}/deny" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"notes": "Denying this request because the accompanying report is incomplete."
}'๐จ Incidents
Manage incidents, incident metadata, coordinators, dynamic custom fields, attachments, linking, and department investigations.
Description
Retrieves a list of all active incident types available in the organization.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident_type_group_id | integer | Optional | Filter types by a specific incident type group ID. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": [
{
"id": 2,
"name": "Type 1",
"status": true,
"series_prefix": "ASD",
"series_starts_with": "1",
"current_series_number": 13,
"severity_type": "simple",
"enforce_linear_progression": false,
"allow_edit_previous_status_fields": true,
"settings": {
"assignment_type": "under_investigation",
"assignment_method": "direct",
"investigation_manager_assignment_method": "acknowledgement",
"can_create_capa_task_for_departments": true,
"capa_task_is_department_wise": false,
"closure_request_allowed_status": "remediation",
"enable_departments": true,
"open_fields_position": "below_description",
"default_severity": null,
"default_likelihood": null,
"default_consequence": null,
"severity_readonly": false,
"ask_severity_on_reporting": false,
"departmental_investigation_scope": "both",
"allow_department_closure_approvers": false,
"enable_location": true,
"enable_map_location": false,
"ask_exact_location": true
},
"created_at": "2026-08-14T06:12:24.000000Z",
"updated_at": "2026-08-17T13:59:41.000000Z",
"fields": [
{
"id": 5,
"name": "Root cause analysis",
"type": "textarea",
"choices": [],
"predefined_values": null,
"default_value": "Describe the underlying issues that ultimately led to the incident.",
"logic_rules": null,
"sort": 1,
"status": true,
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z",
"show_action_icons": false,
"pivot": {
"incident_type_id": 2,
"incident_type_field_id": 5,
"incident_status_id": 2,
"sort": 1,
"is_required": false,
"is_editable_after_status_change": true,
"predefined_values": null,
"default_value": null,
"logic_rules": null,
"position": "below_description",
"created_at": "2026-08-17T13:59:32.000000Z",
"updated_at": "2026-08-17T13:59:32.000000Z"
}
}
],
"department_investigators": [
{
"id": 46,
"assignees_type": null,
"role": "department_investigator",
"group_name": "General",
"admins_only": false,
"assignable_id": 2,
"assignable_type": "App\\Models\\Tenant\\Incident\\IncidentType",
"always_assign_site_members": false,
"include_parent_sites": false,
"created_at": "2026-08-17T13:59:32.000000Z",
"updated_at": "2026-08-17T13:59:32.000000Z"
}
]
}
],
"now": "2026-08-18 04:36:45"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
data | array | List of incident types. |
โid | integer | Unique ID of the incident type. |
โname | string | Name of the incident type. |
โstatus | boolean | Active status of the incident type. |
โseries_prefix | string | Code prefix used in formatting series numbers (e.g. INC). |
โseries_starts_with | string | Starting sequence number for series prefix. |
โcurrent_series_number | integer | The last incremented series number for tracking. |
โseverity_type | string | Method of classifying severities (e.g. simple, risk_matrix). |
โenforce_linear_progression | boolean | Enforce progressing statuses sequentially (Open -> Under Investigation -> Remediation -> Closed). |
โallow_edit_previous_status_fields | boolean | Allow editing of custom fields corresponding to previously cleared statuses. |
โsettings | object | Global workflow and configuration details. |
โassignment_type | string | Status at which investigators are assigned (e.g., under_investigation, open). |
โassignment_method | string | Assignee allocation protocol (e.g., direct, acknowledgement). |
โenable_departments | boolean | Enable departmental divisions for individual investigations. |
โfields | array | Snapshotted custom fields required for the incident type. |
โname | string | The label name of the custom field. |
โtype | string | HTML/input field type (e.g., text, textarea, signature). |
โpivot | object | Meta relations linking the field to this incident type. |
โis_required | boolean | Whether the field is required before changing the status. |
โincident_status_id | integer | The status ID at which this field is populated. |
โdepartment_investigators | array | Configured investigator groups and roles. |
cURL Example
curl -X GET \
"https://your-org.algus.io/incident-types" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves detailed configuration for a specific incident type, including dynamic fields, sort ordering, templates, task types, department investigators, and investigation managers.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| type | integer | Required | The ID of the incident type to fetch. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"data": {
"id": 2,
"name": "Type 1",
"status": true,
"series_prefix": "ASD",
"series_starts_with": "1",
"current_series_number": 13,
"severity_type": "simple",
"enforce_linear_progression": false,
"allow_edit_previous_status_fields": true,
"settings": {
"assignment_type": "under_investigation",
"assignment_method": "direct",
"investigation_manager_assignment_method": "acknowledgement",
"can_create_capa_task_for_departments": true,
"capa_task_is_department_wise": false,
"closure_request_allowed_status": "remediation",
"enable_departments": true,
"open_fields_position": "below_description",
"default_severity": null,
"default_likelihood": null,
"default_consequence": null,
"severity_readonly": false,
"ask_severity_on_reporting": false,
"departmental_investigation_scope": "both",
"allow_department_closure_approvers": false,
"enable_location": true,
"enable_map_location": false,
"ask_exact_location": true
},
"created_at": "2026-08-14T06:12:24.000000Z",
"updated_at": "2026-08-17T13:59:41.000000Z",
"fields": [
{
"id": 1,
"name": "Timeline of events",
"type": "textarea",
"choices": [],
"predefined_values": null,
"default_value": null,
"is_hidden": false,
"logic_rules": null,
"is_required": false,
"is_editable_after_status_change": true,
"sort_id": 1,
"pivot": {
"incident_type_id": 2,
"incident_type_field_id": 1,
"sort": 1
}
}
],
"linked_templates": [],
"linked_task_types": [],
"department_investigators": [
{
"id": 5,
"assignable_id": 2,
"assignable_type": "App\\Models\\Tenant\\Incident\\IncidentType",
"type": "department_investigator",
"user_id": 3,
"user_group_id": null,
"users": [
{
"id": 3,
"name": "John Doe",
"email": "john@mail.com"
}
],
"user_groups": [],
"assignee_sites": []
}
],
"investigation_manager": [],
"incident_type_groups": []
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable success message. |
data | object | The detailed incident type configuration object. |
โid | integer | Unique incident type ID. |
โname | string | Name of the incident type. |
โstatus | boolean | Active status indicator for the incident type. |
โseries_prefix | string | Serial number string prefix (e.g. ASD). |
โseries_starts_with | string | Starting sequence number string. |
โcurrent_series_number | integer | Current running sequence counter. |
โseverity_type | string | Severity classification style ('simple' or 'risk_matrix'). |
โenforce_linear_progression | boolean | Forces sequential status transitions. |
โallow_edit_previous_status_fields | boolean | Override settings to edit fields belonging to earlier workflow steps. |
โsettings | object | Settings configurations schema for the incident type. |
โassignment_type | string | Stage where assignment is triggered. |
โassignment_method | string | Method of assignment (e.g. direct). |
โinvestigation_manager_assignment_method | string | Method of investigation manager assignment. |
โcan_create_capa_task_for_departments | boolean | Flags if CAPA tasks can be created for departments. |
โcapa_task_is_department_wise | boolean | Whether CAPA tasks are scoped departmental-wise. |
โclosure_request_allowed_status | string | Status code where closure requests are permitted (e.g. remediation). |
โenable_departments | boolean | Flags if departmental investigation workflows are enabled. |
โopen_fields_position | string | Layout position of open custom fields (e.g. below_description). |
โdefault_severity | integer | Default severity ID if preselected. |
โdefault_likelihood | integer | Default likelihood ID if preselected. |
โdefault_consequence | integer | Default consequence ID if preselected. |
โseverity_readonly | boolean | Locks severity field as read-only on reporting. |
โask_severity_on_reporting | boolean | Prompts user to select severity when reporting. |
โdepartmental_investigation_scope | string | Scoping scope (e.g. both, single). |
โallow_department_closure_approvers | boolean | Flags if department investigation closure requires approvers. |
โenable_location | boolean | Enables standard location field. |
โenable_map_location | boolean | Enables GPS map pins and coordinate fields. |
โask_exact_location | boolean | Prompts for detailed text exact location descriptions. |
โcreated_at | string | Record creation timestamp. |
โupdated_at | string | Record last updated timestamp. |
โfields | array | Dynamic field schema arrays configured for the incident type. |
โid | integer | Unique dynamic field ID. |
โname | string | Label name of the field. |
โtype | string | Field type classification (e.g. textarea, signature). |
โchoices | array | Selectable options if type is dropdown/multiselect. |
โpredefined_values | array | Predefined system configurations. |
โdefault_value | string | Default value for the field. |
โis_hidden | boolean | Flags if the field is hidden in the reporting view. |
โlogic_rules | object | Dynamic conditional visibility logic rules. |
โis_required | boolean | Flags if the field is mandatory. |
โis_editable_after_status_change | boolean | Allows modifications post status transitions. |
โsort_id | integer | Sorting order weight index. |
โpivot | object | Pivot relationship linking metadata. |
โincident_type_id | integer | Parent incident type ID. |
โincident_type_field_id | integer | Linked field ID. |
โsort | integer | Pivot sorting position index. |
โlinked_templates | array | Templates linked to this incident type. |
โlinked_task_types | array | Task types linked to this incident type. |
โdepartment_investigators | array | List of department investigators for assignment. |
โid | integer | Unique assignee record ID. |
โassignable_id | integer | Linked target model ID. |
โassignable_type | string | Linked target model class string. |
โtype | string | Assignee role type ('department_investigator'). |
โuser_id | integer | User ID if directly assigned. |
โuser_group_id | integer | User Group ID if group assigned. |
โusers | array | List of direct users belonging to assignment. |
โuser_groups | array | List of user groups belonging to assignment. |
โassignee_sites | array | Site restriction rules linked to assignment. |
โinvestigation_manager | array | List of investigation managers for assignment (same fields as department_investigators). |
โincident_type_groups | array | Groups this incident type belongs to. |
cURL Example
curl -X GET \
"https://your-org.algus.io/incident-types/{type}/details" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves a list of all incident type groups and their associated incident types.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"data": [
{
"id": 1,
"name": "Safety & Health",
"incident_types": [
{
"id": 1,
"name": "Safety Hazard"
}
]
}
]
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
data | array | List of incident type groups. |
โid | integer | Unique ID of the incident type group. |
โname | string | Name of the incident type group. |
โincident_types | array | List of associated incident types within the group. |
cURL Example
curl -X GET \
"https://your-org.algus.io/incident-type-groups" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves global incident settings, such as whether type groups or department-based assignments are enabled.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": {
"id": 2,
"settings": {
"enable_department_based_assignment": true,
"enable_incident_type_groups": false
},
"created_at": "2026-08-14T06:12:37.000000Z",
"updated_at": "2026-08-14T06:12:39.000000Z"
},
"now": "2026-08-18 04:45:10"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
data | object | The settings data payload. |
โid | integer | Unique ID of the global incident settings record. |
โsettings | object | Object containing specific setting feature flags. |
โenable_department_based_assignment | boolean | Determines if incident investigations are divided and assigned to separate user departments. |
โenable_incident_type_groups | boolean | Determines if incident types are organized into groups within the workspace. |
โcreated_at | string | Creation timestamp of the settings record. |
โupdated_at | string | Last updated timestamp of the settings record. |
now | string | The current server time. |
cURL Example
curl -X GET \
"https://your-org.algus.io/incident-settings" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves available status options for incidents.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": [
{
"id": 1,
"name": "Open",
"color": "#d11b38",
"sort_order": 1,
"is_default": true,
"is_closed": false,
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z"
},
{
"id": 2,
"name": "Under Investigation",
"color": "#f89406",
"sort_order": 2,
"is_default": false,
"is_closed": false,
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z"
}
],
"now": "2026-08-18 04:47:04"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
data | array | List of available incident statuses. |
โid | integer | Unique ID of the incident status. |
โname | string | The displayed name of the status (e.g. Open, Remediation, Closed). |
โcolor | string | Hex color code associated with the status for frontend UI rendering. |
โsort_order | integer | Sorting rank of the status in the user interface lists. |
โis_default | boolean | Specifies if this is the default status assigned to newly created incidents. |
โis_closed | boolean | Indicates if this status represents a closed/resolved state. |
โcreated_at | string | Timestamp indicating when the status was configured. |
โupdated_at | string | Timestamp indicating when the status configuration was last modified. |
now | string | The current server time. |
cURL Example
curl -X GET \
"https://your-org.algus.io/incident-statuses" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves simple severities and risk matrix configurations available in the system.
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": {
"simple_severities": [
{
"id": 1,
"incident_type_id": null,
"label": "No Harm/Near Miss",
"key": "no harm/near miss",
"color": "#13855f",
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z"
},
{
"id": 2,
"incident_type_id": null,
"label": "Minor",
"key": "minor",
"color": "#3498db",
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z"
}
],
"risk_matrix_severities": [
{
"id": 1,
"incident_type_id": null,
"min": 1,
"max": 4,
"label": "Low",
"key": "low",
"color": "#3498db",
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z"
}
]
},
"now": "2026-08-18 04:51:45"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
data | object | The severities wrapper object. |
โsimple_severities | array | List of simple severity labels used when no risk scoring is enabled. |
โid | integer | Unique ID of the simple severity rating. |
โincident_type_id | integer | Null if global default, or linked to specific incident type. |
โlabel | string | Display label (e.g. Minor, Critical). |
โkey | string | Normalized slug matching the label. |
โcolor | string | Hex color code for severity label. |
โcreated_at | string | Creation timestamp. |
โupdated_at | string | Last updated timestamp. |
โrisk_matrix_severities | array | List of risk matrix classifications based on calculated score thresholds. |
โid | integer | Unique ID of the risk matrix severity rating. |
โmin | integer | Minimum score boundary of the calculated risk value (likelihood ร consequence) for this rating class. |
โmax | integer | Maximum score boundary of the calculated risk value for this rating class. |
โlabel | string | Display label (e.g. Low, High, Extreme). |
โkey | string | Normalized slug matching the label. |
โcolor | string | Hex color code for risk label. |
โcreated_at | string | Creation timestamp. |
โupdated_at | string | Last updated timestamp. |
now | string | The current server time. |
cURL Example
curl -X GET \
"https://your-org.algus.io/incident-severities" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves a paginated list of incidents with optional filtering.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| search | string | Optional | Search by title or series number. |
| incident_status_id | integer | Optional | Filter by status ID. |
| site_id | integer | Optional | Filter by site ID. |
| resource_id | integer | Optional | Filter by resource ID. |
| department_id | integer | Optional | Filter by department ID. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": {
"incidents": {
"current_page": 1,
"data": [
{
"id": 14,
"title": "asd",
"series_number": "ASD-13",
"incident_date": "2026-08-17T13:59:35.000000Z",
"created_at": "2026-08-17T13:59:41.000000Z",
"is_anonymous": false,
"risk_score": null,
"severity": null,
"severity_id": null,
"incident_type_id": 2,
"incident_status_id": 1,
"site_id": null,
"resource_id": null,
"created_by": 2,
"reporter_id": 2,
"formatted_incident_date": "17 Aug 2026 01:59 PM",
"risk_level_label": "",
"reporter_name": "New",
"formatted_series_number": "ASD-13",
"model_name": "incident",
"severity_relation": null,
"related_to": null,
"department_path": null,
"site": null,
"resource": null,
"incident_status": {
"id": 1,
"name": "Open",
"color": "#d11b38"
},
"incident_links": [],
"incident_type": {
"id": 2,
"name": "Type 1",
"status": true,
"series_prefix": "ASD",
"series_starts_with": "1",
"current_series_number": 13,
"severity_type": "simple",
"enforce_linear_progression": false,
"allow_edit_previous_status_fields": true,
"settings": {
"assignment_type": "under_investigation",
"assignment_method": "direct",
"investigation_manager_assignment_method": "acknowledgement",
"can_create_capa_task_for_departments": true,
"capa_task_is_department_wise": false,
"closure_request_allowed_status": "remediation",
"enable_departments": true,
"open_fields_position": "below_description",
"default_severity": null,
"default_likelihood": null,
"default_consequence": null,
"severity_readonly": false,
"ask_severity_on_reporting": false,
"departmental_investigation_scope": "both",
"allow_department_closure_approvers": false,
"enable_location": true,
"enable_map_location": false,
"ask_exact_location": true
},
"created_at": "2026-08-14T06:12:24.000000Z",
"updated_at": "2026-08-17T13:59:41.000000Z"
},
"incident_severity": null,
"reporter": {
"id": 2,
"name": "New",
"email": "new@mail.com"
},
"department": null
}
],
"first_page_url": "http://localhost:8000/api/incidents?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "http://localhost:8000/api/incidents?page=1",
"next_page_url": null,
"path": "http://localhost:8000/api/incidents",
"per_page": 20,
"prev_page_url": null,
"to": 13,
"total": 13
}
},
"now": "2026-08-18 04:52:39"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable response message. |
data | object | The response payload wrapper. |
โincidents | object | Paginated collection of incidents. |
โcurrent_page | integer | The current pagination page index. |
โdata | array | List of incident objects for the current page. |
โid | integer | Unique ID of the incident. |
โtitle | string | Title/Headline describing the reported incident. |
โseries_number | string | System-generated reference serial number. |
โincident_date | string | Actual date/time the incident took place. |
โrisk_score | integer | Calculated risk scoring based on matrix parameters. |
โseverity | string | Determined severity category string. |
โincident_status | object | Current incident status details. |
โincident_type | object | The incident classification model details. |
โreporter | object | User details of the person who reported the incident. |
โdepartment | object | Department details if department-based scope is enabled. |
โtotal | integer | Total count of incidents matching the filter criteria. |
cURL Example
curl -X GET \
"https://your-org.algus.io/incidents" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Reports a new incident in the system. Triggers automatic notification mailings to assigned investigators, sets up default departmental investigation workflows, calculates risk matrix severities, and parses and clones files/relationships from linked entities.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| title | string | Required | Short descriptive title of the incident (max: 255). |
| incident_type | integer | Required | Unique ID of the incident type. Must match an ID from GET /incident-types. |
| incident_date | string | Required | Date and time the incident occurred (Format: YYYY-MM-DD HH:MM). |
| description | string | Required | Detailed HTML-formatted description of what occurred. Cannot be empty or consist solely of empty HTML tags. |
| incident_type_group_id | integer | Optional | Optional ID of the incident type group mapping this classification. Must match an ID from GET /incident-type-groups. |
| is_anonymous | boolean | Optional | If set to true, the reported by/created by details will be hidden/nullified from public view. Defaults to false. |
| site_id | string|integer | Optional | ID or prefix string of the site where the incident happened (e.g. '12', 'site_12'). Must match an ID from GET /sites. |
| resource | string|integer | Optional | ID or prefix string of the asset/resource affected (e.g. '15', 'resource-15'). Must match an ID from GET /resources. |
| location | string | Optional | General descriptive location or address of the occurrence. |
| exact_location | string | Optional | Highly specific exact location coordinates or room identifier. |
| lat | string | Optional | GPS latitude coordinates of the incident site. |
| lng | string | Optional | GPS longitude coordinates of the incident site. |
| severity | string | Optional | For simple severity types. Selected key level value matching keys from GET /incident-severities. |
| likelihood | integer | Optional | Multiplier likelihood rating (1 to 5) for risk matrix configurations. Defaults to default settings of the type. |
| consequence | integer | Optional | Multiplier consequence rating (1 to 5) for risk matrix configurations. Defaults to default settings of the type. |
| issue_id | integer | Optional | Unique ID of a related issue to link this incident to. Must match an ID from GET /issues. If provided, copies attachments from the issue and records activity log linking. |
| feedback_response_id | integer | Optional | Unique ID of a feedback question response. Must match a response ID from GET /feedback-submissions/{feedback_submission} (from feedback submissions). Auto-clones response media assets. |
| feedback_submission_id | integer | Optional | Unique ID of a parent feedback submission. Must match an ID from GET /feedback-submissions. Auto-clones all answers containing media files. |
| incident_fields | array | Optional | Collection of dynamic field snapshots matching custom incident type definitions. Can be fetched from GET /incident-types/{type}/details. Mandatory if fields are marked required under the 'Open' status. Structure: `[ { "id": 1, "value": "Answer text" } ]`. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"title": "Broken Ladder",
"incident_type": 1,
"incident_date": "2026-08-15 10:30",
"description": "<p>A safety hazard occurred near the warehouse gate.</p>",
"incident_fields": [
{
"id": 1,
"value": "Warehouse door area"
}
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Incident Created Successfully",
"data": {
"incident": {
"id": 11,
"title": "Broken Ladder",
"series_number": "ASD-10",
"incident_status": {
"id": 1,
"name": "Open",
"color": "#d11b38"
}
}
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Success confirmation message. |
โincident | object | The newly created incident object. |
โid | integer | Unique database ID of the created incident. |
โtitle | string | Descriptive title of the incident. |
โseries_number | string | Automatically generated unique serial sequence code (e.g. ASD-10). |
โincident_status | object | Current workflow status details (defaults to 'Open'). |
โid | integer | Unique status ID. |
โname | string | Name of the status (Open). |
โcolor | string | Hex color code associated with the status. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"title": "Broken Ladder",
"incident_type": 1,
"incident_date": "2026-08-15 10:30",
"description": "<p>A safety hazard occurred near the warehouse gate.</p>",
"incident_fields": [
{
"id": 1,
"value": "Warehouse door area"
}
]
}'Description
Fetches complete details of a specific incident, including custom fields, linked items, attachments, departmental investigations, pending coordinators, closure requests, and user permissions.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident to fetch. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Success",
"description": null,
"data": {
"incident": {
"id": 14,
"incident_type_id": 2,
"series_number": "ASD-13",
"title": "asd",
"description": "<p>asdsad</p>",
"incident_date": "2026-08-17T13:59:35.000000Z",
"site_id": null,
"resource_id": null,
"location": null,
"lat": null,
"lng": null,
"severity": null,
"severity_id": null,
"likelihood": null,
"consequence": null,
"risk_score": null,
"incident_status_id": 1,
"date_closed": null,
"is_anonymous": false,
"reporter_id": 2,
"created_by": 2,
"is_reopened": false,
"allow_edit_previous_status_fields": true,
"enforce_linear_progression": false,
"departmental_investigation_scope": "both",
"is_public": true,
"created_at": "2026-08-17T13:59:41.000000Z",
"updated_at": "2026-08-17T13:59:41.000000Z",
"incident_type_group_id": null,
"department_id": null,
"exact_location": null,
"formatted_incident_date": "17 Aug 2026 01:59 PM",
"risk_level_label": "",
"reporter_name": "New",
"formatted_series_number": "ASD-13",
"model_name": "incident",
"severity_relation": null,
"related_to": null,
"department_path": null,
"incident_type_group": null,
"incident_type": {
"id": 2,
"name": "Type 1",
"status": true,
"series_prefix": "ASD",
"series_starts_with": "1",
"current_series_number": 13,
"severity_type": "simple",
"enforce_linear_progression": false,
"allow_edit_previous_status_fields": true,
"settings": {
"assignment_type": "under_investigation",
"assignment_method": "direct",
"investigation_manager_assignment_method": "acknowledgement",
"can_create_capa_task_for_departments": true,
"capa_task_is_department_wise": false,
"closure_request_allowed_status": "remediation",
"enable_departments": true,
"open_fields_position": "below_description",
"default_severity": null,
"default_likelihood": null,
"default_consequence": null,
"severity_readonly": false,
"ask_severity_on_reporting": false,
"departmental_investigation_scope": "both",
"allow_department_closure_approvers": false,
"enable_location": true,
"enable_map_location": false,
"ask_exact_location": true
},
"created_at": "2026-08-14T06:12:24.000000Z",
"updated_at": "2026-08-17T13:59:41.000000Z",
"linked_task_types": [],
"linked_templates": []
},
"site": null,
"department": null,
"resource": null,
"incident_status": {
"id": 1,
"name": "Open",
"color": "#d11b38",
"sort_order": 1,
"is_default": true,
"is_closed": false,
"created_at": "2026-08-13T13:55:50.000000Z",
"updated_at": "2026-08-13T13:55:50.000000Z"
},
"incident_details": [],
"incident_attachments": [],
"creator": {
"id": 2,
"name": "New",
"email": "new@mail.com"
},
"reporter": {
"id": 2,
"name": "New",
"email": "new@mail.com"
},
"linked_items": [],
"status_histories": [],
"incident_links": [],
"tasks": [],
"incident_stakeholders": [],
"feedback_submission_links": [],
"incident_severity": null
},
"pending_coordinators": [],
"departmental_investigations": [],
"closure_requests": [],
"fields_by_status": {},
"activity_logs": [],
"isCreator": true,
"isInvestigationManager": false,
"isDepartmentUser": false,
"userDepartmentIds": [],
"resourcePermissions": {
"can_view": true,
"can_edit": true,
"can_reopen": false,
"can_delete": false
}
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Human-readable success message. |
โincident | object | The detailed incident record. |
โid | integer | Unique incident ID. |
โincident_type_id | integer | Linked incident type ID. |
โseries_number | string | Unique serial number code of the incident. |
โtitle | string | Title of the incident. |
โdescription | string | Detailed description of the incident (HTML formatted). |
โincident_date | string | Date and time the incident occurred in ISO 8601 format. |
โsite_id | integer | Linked site ID if applicable. |
โresource_id | integer | Linked resource ID if applicable. |
โlocation | string | General location details. |
โlat | string | GPS latitude coordinate. |
โlng | string | GPS longitude coordinate. |
โseverity | string | Determined severity level string (e.g. Major). |
โseverity_id | integer | Linked severity configuration ID. |
โlikelihood | string | Likelihood level classification from risk scoring. |
โconsequence | string | Consequence classification from risk scoring. |
โrisk_score | integer | Calculated risk score value. |
โincident_status_id | integer | Linked current status ID. |
โdate_closed | string | Timestamp indicating when the incident was marked closed. |
โis_anonymous | boolean | Flags if the reporter details are hidden. |
โreporter_id | integer | ID of the user who reported the incident. |
โcreated_by | integer | ID of the user who created the incident record. |
โis_reopened | boolean | Flags if the incident was previously closed and subsequently reopened. |
โallow_edit_previous_status_fields | boolean | Override settings to edit fields belonging to earlier workflow steps. |
โenforce_linear_progression | boolean | Forces sequential status transitions. |
โdepartmental_investigation_scope | string | Scoping level for departments (e.g. both, single). |
โis_public | boolean | Flags if the incident is visible to all organization members. |
โcreated_at | string | Record creation timestamp. |
โupdated_at | string | Record last updated timestamp. |
โincident_type_group_id | integer | Linked type group ID if applicable. |
โdepartment_id | integer | ID of the linked primary department. |
โexact_location | string | Specific exact location description. |
โformatted_incident_date | string | Human-readable formatted incident date (e.g. 17 Aug 2026 01:59 PM). |
โrisk_level_label | string | Calculated risk category label (e.g., Low, Medium, High). |
โreporter_name | string | Display name of the reporter user. |
โformatted_series_number | string | Formatted series reference code. |
โmodel_name | string | Internal model type classification ('incident'). |
โseverity_relation | object | Detailed configuration of the simple severity classification if applicable. |
โrelated_to | object | Parent linking relation reference if linked to another record. |
โdepartment_path | string | Full breadcrumb string representing department hierarchy. |
โincident_type_group | object | The associated type group details. |
โincident_type | object | Eager-loaded type details. |
โid | integer | Unique incident type ID. |
โname | string | Name of the type. |
โstatus | boolean | Active status indicator. |
โseries_prefix | string | Serial number string prefix. |
โsettings | object | Global type settings configurations. |
โsite | object | Site location relation Details. |
โdepartment | object | Department relation details. |
โresource | object | Asset/Resource relation details. |
โincident_status | object | Status relation details. |
โid | integer | Unique ID of the incident status. |
โname | string | The displayed name of the status (e.g. Open, Remediation, Closed). |
โcolor | string | Hex color code associated with the status for frontend UI rendering. |
โincident_details | array | Dynamic field values captured for this incident. |
โid | integer | Unique record ID of the dynamic field value. |
โname | string | Field label name. |
โtype | string | HTML/input field type (e.g., text, textarea, signature). |
โvalue | string | User entered value for the field. |
โincident_attachments | array | List of uploaded files and media linked to the incident. |
โcreator | object | Creator user account details. |
โid | integer | User ID. |
โname | string | User name. |
โemail | string | User email. |
โreporter | object | Reporter user account details. |
โid | integer | User ID. |
โname | string | User name. |
โemail | string | User email. |
โlinked_items | array | Polymorphic checklist, issue, or inspection linked references. |
โstatus_histories | array | State history logs tracing transitions and notes. |
โid | integer | Unique status history log ID. |
โstatus_id | integer | Target status ID during transition. |
โnotes | string | Remarks entered during the transition. |
โincident_links | array | List of general incident links. |
โtasks | array | Remediation and CAPA tasks created for this incident. |
โincident_stakeholders | array | Assigned stakeholders and their acknowledgement workflows. |
โid | integer | Unique stakeholder record ID. |
โtype | string | Role type assigned (e.g. quality_manager, coordinator). |
โacknowledged_at | string | Timestamp indicating when the stakeholder acknowledged the incident. |
โuser | object | User profile of the stakeholder. |
โescalation | object | Triggered escalation details linking this assignment. |
โfeedback_submission_links | array | Polymorphic links mapping user satisfaction feedback forms. |
โincident_severity | object | Active severity config linked to this incident. |
โpending_coordinators | array | Coordinators who have pending manual/acknowledgement assignments. |
โid | integer | Unique ID of the escalation acknowledgment entry. |
โuser_id | integer | User ID of the coordinator. |
โuser_group_id | integer | User group ID assigned to the coordinator escalation step. |
โuser_group_name | string | Group name assigned to the coordinator escalation step. |
โis_quality_manager | boolean | Flags if the coordinator behaves as the Quality Manager role. |
โuser | object | Assigned coordinator user profile summary. |
โid | integer | User ID. |
โname | string | User name. |
โdepartmental_investigations | array | Departmental investigation workflow status and pending user acknowledgements. |
โid | integer | Unique ID of the departmental investigation group. |
โincident_id | integer | ID of the parent incident. |
โname | string | Name of the department group (e.g. General, Engineering). |
โincident_status_id | integer | Current status ID of the departmental investigation. |
โpending_acknowledgments | array | List of acknowledgments awaiting response from department members. |
โid | integer | Acknowledgment ID. |
โuser | object | Details of the user pending acknowledgment. |
โid | integer | User ID. |
โname | string | User name. |
โclosure_requests | array | Pending requests submitted to transition the incident to closed status. |
โid | integer | Unique ID of the closure request. |
โincident_id | integer | ID of the parent incident. |
โrequested_by | integer | ID of the user who initiated the closure request. |
โstatus | string | Current workflow status of the closure request (e.g., pending, approved, rejected). |
โrequested_by_user | object | User details of the requester. |
โid | integer | User ID. |
โname | string | User name. |
โfields_by_status | object | Map of required custom fields grouped by their status ID or name. |
โstatus | object | Status definition metadata. |
โfields | object | Lists of editable and readonly fields for the stage. |
โeditable | array | Field detail records that can be populated or updated in the current status. |
โreadonly | array | Field detail records that are locked as read-only. |
โactivity_logs | array | Audit history logs showing state transitions and user edits. |
โid | integer | Log item ID. |
โdescription | string | Text summary of the action taken (e.g., status changed from Open to Under Investigation). |
โcreated_at | string | Activity timestamp. |
โcauser | object | Profile summary of the user who carried out the change. |
โid | integer | User ID. |
โname | string | User name. |
โisCreator | boolean | Flags if the authenticated user is the reporter or creator of the incident. |
โisInvestigationManager | boolean | Flags if the authenticated user has investigation manager authority. |
โisDepartmentUser | boolean | Flags if the authenticated user belongs to an assigned investigation department. |
โuserDepartmentIds | array | IDs of departments the authenticated user belongs to for this investigation. |
โresourcePermissions | object | Direct action permissions computed for the current user. |
โcan_view | boolean | Indicates if the user has read permissions for this incident. |
โcan_edit | boolean | Indicates if the user has edit permissions for this incident. |
โcan_reopen | boolean | Indicates if the user has reopening permissions for this closed incident. |
โcan_delete | boolean | Indicates if the user has deletion permissions for this incident. |
cURL Example
curl -X GET \
"https://your-org.algus.io/incidents/{incident}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Updates standard details of an incident. Allows updating basic details, site location, resource/asset mapping, GPS coordinates, simple severity keys, or risk matrix multipliers.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident to update. |
| title | string | Optional | Updated title of the incident. |
| incident_date | string | Optional | Updated date and time of the incident (Format: YYYY-MM-DD HH:MM). |
| description | string | Optional | Updated HTML-formatted description of the incident. |
| site_id | string|integer | Optional | Updated ID or prefix string of the site where the incident happened (e.g. '12', 'site_12'). Must match an ID from GET /sites. |
| resource | string|integer | Optional | Updated ID or prefix string of the asset/resource affected (e.g. '15', 'resource-15'). Must match an ID from GET /resources. |
| location | string | Optional | Updated general location or address string of the occurrence. |
| exact_location | string | Optional | Updated exact room or specific coordinate marker description. |
| lat | string | Optional | Updated GPS latitude coordinate. |
| lng | string | Optional | Updated GPS longitude coordinate. |
| severity | string | Optional | For simple severity types. Selected key level value matching keys from GET /incident-severities. |
| likelihood | integer | Optional | Multiplier likelihood rating (1 to 5) for risk matrix configurations. |
| consequence | integer | Optional | Multiplier consequence rating (1 to 5) for risk matrix configurations. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"title": "Updated Broken Ladder Title",
"site_id": null,
"severity": "moderate"
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Incident Updated Successfully",
"data": {
"incident": {
"id": 11,
"title": "Updated Broken Ladder Title",
"site_id": 12,
"severity": "moderate"
}
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Success confirmation message. |
โincident | object | The updated incident record. |
โid | integer | Unique database ID of the incident. |
โtitle | string | Updated title of the incident. |
โsite_id | integer | Updated raw site ID. |
โseverity | string | Updated severity level key. |
cURL Example
curl -X PUT \
"https://your-org.algus.io/incidents/{incident}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"title": "Updated Broken Ladder Title",
"site_id": null,
"severity": "moderate"
}'Description
Transitions the incident to a new status (e.g., Open to Closed).
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident_status_id | integer | Required | The ID of the new status. |
| remarks | string | Optional | Optional audit remarks for the transition. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"incident_status_id": 3,
"remarks": "Transitioning to Remediation"
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Status Updated Successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
message | string | Success confirmation message. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents/{incident}/status" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"incident_status_id": 3,
"remarks": "Transitioning to Remediation"
}'Description
Updates values for dynamic custom fields on the incident.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| fields | array | Required | Array of custom fields containing 'detail_id' and 'value'. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"fields": [
{
"detail_id": 5,
"value": "Root cause analysis text"
}
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Fields Updated Successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
message | string | Success confirmation message. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents/{incident}/fields" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"fields": [
{
"detail_id": 5,
"value": "Root cause analysis text"
}
]
}'Description
Assigns one or more users as coordinators to manage the incident, with optional role flags, site scopes, and administrative filters.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident to assign coordinators to. |
| recipients | array | Optional | Array of recipients to assign. Can contain raw user IDs matching GET /users, user strings matching user IDs (e.g. 'user_4' for GET /users), or group strings matching user group IDs (e.g. 'user_group_3' for GET /user-groups). This parameter is not required if `assign_to_site_department_users` is set to `true`. |
| assign_directly | boolean | Optional | Bypass standard assignment workflow and assign immediately. Defaults to false. |
| is_quality_manager | boolean | Optional | Flags if the assigned coordinator acts as the Quality Manager role. |
| is_group_admin_only | boolean | Optional | Filters and restricts assignment to only group administrators. |
| assign_to_site_department_users | boolean | Optional | Scopes assignment eligibility strictly to users matching the selected sites. If set to `true`, the `recipients` array is ignored/not required, and users matching the provided `site_ids` list are automatically assigned. |
| site_ids | array | Optional | Array of site IDs to restrict the assignment scope or automatically fetch users from. Must match IDs from GET /sites. |
| is_site_admin_only | boolean | Optional | If true, only site administrators within the selected sites are assigned. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"assign_to_site_department_users": true,
"site_ids": [
12
],
"assign_directly": true,
"is_quality_manager": false
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Coordinators Assigned Successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Success confirmation message. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents/{incident}/assign-coordinators" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"assign_to_site_department_users": true,
"site_ids": [
12
],
"assign_directly": true,
"is_quality_manager": false
}'Description
Removes a coordinator stakeholder from the incident.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| stakeholder_id | integer | Required | ID of the stakeholder record to remove. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"stakeholder_id": 15
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Coordinator Removed Successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
message | string | Success confirmation message. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents/{incident}/remove-coordinator" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"stakeholder_id": 15
}'Description
Creates a departmental investigation group for this incident. This allows dividing the investigation workflow amongst different departments or teams, assigning investigators directly, or initiating acknowledgement flows.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident to create a department for. |
| name | string | Required | Name of the departmental investigation group (max: 255). |
| user_ids | array | Optional | Array of investigators to assign. Can contain raw user IDs matching GET /users, user strings matching user IDs (e.g. 'user_4' for GET /users), or group strings matching user group IDs (e.g. 'user_group_3' for GET /user-groups). This parameter is not required if `assign_to_site_department_users` is set to `true`. |
| assignment_method | string | Optional | Method of investigator assignment. Allowed values: `direct`, `acknowledgement`. Defaults to `direct`. |
| is_group_admin_only | boolean | Optional | Filters and restricts assignment to only group administrators of the selected user groups. |
| assign_to_site_department_users | boolean | Optional | Scopes assignment eligibility strictly to users matching the selected sites. If set to `true`, the `user_ids` array is ignored/not required, and users matching the provided `site_ids` list are automatically assigned. |
| site_ids | array | Optional | Array of site IDs to restrict the assignment scope. Must match IDs from GET /sites. |
| is_site_admin_only | boolean | Optional | If true, only site administrators within the selected sites are assigned. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"name": "Engineering",
"user_ids": [],
"assignment_method": "direct"
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Department Created Successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Success confirmation message. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents/{incident}/departments" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Engineering",
"user_ids": [],
"assignment_method": "direct"
}'Description
Updates configurations and membership for a departmental investigation group.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident. |
| department | integer | Required | The ID of the departmental investigation group to update. |
| name | string | Required | Updated name of the departmental investigation group (max: 255). |
| user_ids | array | Optional | Updated array of investigators. Can contain raw user IDs matching GET /users, user strings matching user IDs (e.g. 'user_4' for GET /users), or group strings matching user group IDs (e.g. 'user_group_3' for GET /user-groups). This parameter is not required if `assign_to_site_department_users` is set to `true`. |
| assignment_method | string | Optional | Method of investigator assignment. Allowed values: `direct`, `acknowledgement`. |
| is_group_admin_only | boolean | Optional | Filters and restricts assignment to only group administrators of the selected user groups. |
| assign_to_site_department_users | boolean | Optional | Scopes assignment eligibility strictly to users matching the selected sites. If set to `true`, the `user_ids` array is ignored/not required, and users matching the provided `site_ids` list are automatically assigned. |
| site_ids | array | Optional | Array of site IDs to restrict the assignment scope. Must match IDs from GET /sites. |
| is_site_admin_only | boolean | Optional | If true, only site administrators within the selected sites are assigned. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"name": "Engineering Updated",
"user_ids": [],
"assignment_method": "direct"
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Department Updated Successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Success confirmation message. |
cURL Example
curl -X PUT \
"https://your-org.algus.io/incidents/{incident}/departments/{department}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Engineering Updated",
"user_ids": [],
"assignment_method": "direct"
}'Description
Links items like tasks, issues, or inspections to this incident for cross-referencing and traceability.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident. |
| items | array | Required | Array of items to link to this incident. |
| items.*.linkable_type | string | Required | The type of item to link. User-friendly short names are resolved automatically: `issue` (must match an ID from GET /issues), `task` (must match an ID from GET /tasks), or `inspection` (must match an ID from GET /inspections). Full model namespace strings are also accepted. |
| items.*.linkable_id | integer | Required | The unique database ID of the linked item. |
| items.*.link_type | string | Optional | Optional relationship type mapping. Allowed values: `related`, `cause_by`. Defaults to `related`. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"items": [
{
"linkable_type": "issue",
"linkable_id": 25,
"link_type": "related"
}
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": "1 items linked successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Success confirmation message. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents/{incident}/links" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"linkable_type": "issue",
"linkable_id": 25,
"link_type": "related"
}
]
}'Description
Unlinks an item from the incident.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| link_id | integer | Required | The ID of the link relationship to remove. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Item Unlinked Successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
message | string | Success confirmation message. |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/incidents/{incident}/links/{link_id}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Retrieves all departmental closure requests submitted for this incident, detailing their current approval status, notes, and reviewers.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
[
{
"id": 1,
"incident_id": 11,
"departmental_investigation_id": 2,
"status": "pending",
"request_notes": "All tasks resolved",
"created_at": "2026-08-18T11:00:00.000000Z"
}
]Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Success confirmation message. |
cURL Example
curl -X GET \
"https://your-org.algus.io/incidents/{incident}/closure-requests" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Submits a new closure request for a departmental investigation, requesting sign-off from specified user groups or managers.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident. |
| departmental_investigation_id | integer | Required | The ID of the departmental investigation group. Must match a department group ID. |
| request_notes | string | Optional | Optional notes explaining the closure justification (max: 1000). |
| selected_approvers | array | Optional | Optional array of specific user IDs authorized to approve this closure request. Must match IDs from GET /users. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"departmental_investigation_id": 2,
"request_notes": "All corrective actions verified.",
"selected_approvers": [
3,
4
]
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Closure request submitted successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Success confirmation message. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents/{incident}/closure-requests" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"departmental_investigation_id": 2,
"request_notes": "All corrective actions verified.",
"selected_approvers": [
3,
4
]
}'Description
Approves a pending departmental closure request, moving it to an approved status.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident. |
| requestId | integer | Required | The ID of the pending closure request. |
| review_notes | string | Optional | Optional review comments from the approver (max: 1000). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"review_notes": "Approving request. Looks good."
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Closure request approved successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Success confirmation message. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents/{incident}/closure-requests/{requestId}/approve" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"review_notes": "Approving request. Looks good."
}'Description
Rejects a pending departmental closure request, returning the department group investigation to active status.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident. |
| requestId | integer | Required | The ID of the pending closure request. |
| review_notes | string | Optional | Optional review comments justifying the rejection (max: 1000). |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Request Body
{
"review_notes": "Rejection notes: outstanding actions remain."
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Closure request rejected successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
status | boolean | Whether the request was successful. |
status_code | integer | HTTP status code. |
message | string | Success confirmation message. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents/{incident}/closure-requests/{requestId}/reject" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"review_notes": "Rejection notes: outstanding actions remain."
}'Description
Uploads a media or document file attachment to the incident.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| file | file | Required | The physical file being uploaded (max 10MB). |
| departmental_investigation_id | integer | Optional | The departmental investigation context ID for scoping the attachment. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Content-Type | application/json | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Attachment Uploaded Successfully",
"data": {
"attachment": {
"id": 99,
"file_name": "ladder_photo.jpg"
}
}
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
message | string | Success confirmation message. |
โattachment | object | The uploaded attachment metadata. |
cURL Example
curl -X POST \
"https://your-org.algus.io/incidents/{incident}/attachments" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Deletes a specific attachment file from the incident record.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| attachment | integer | Required | The ID of the attachment to delete. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Sample Response
{
"status": true,
"status_code": 200,
"message": "Attachment Deleted Successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
message | string | Success confirmation message. |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/incidents/{incident}/attachments/{attachment}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json"Description
Deletes an incident from the system. If it has active approvals or acknowledgments, force_delete option is required.
Request Parameters
| Parameter | Type | Required | Description & Use |
|---|---|---|---|
| incident | integer | Required | The ID of the incident to delete. |
| force_delete | boolean | Optional | Bypass checks for approvals or escalations. |
Request Headers
| NAME | VALUE | TYPE |
|---|---|---|
| X-Organization-Api-Key | your_organization_api_key | text |
| Authorization | Bearer your_bearer_token | text |
| Accept | application/json | text |
Request Body
{
"force_delete": true
}Sample Response
{
"status": true,
"status_code": 200,
"message": "Incident Deleted Successfully"
}Response Fields Explained
| Field | Type | Description |
|---|---|---|
message | string | Success confirmation message. |
cURL Example
curl -X DELETE \
"https://your-org.algus.io/incidents/{incident}" \
-H "X-Organization-Api-Key: your_api_key" \
-H "Authorization: Bearer your_token" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"force_delete": true
}'