GET [ training ]
Production Endpoint: https://app.complyflow.com.au/app/public/index.php/api/v1/training
Test Endpoint: https://test.complyflow.com.au/app/public/index.php/api/v1/training
Overview
This endpoint returns unified training records (online courses + offline sessions) for the current organisation. It returns session-level data — use this endpoint for browsing sessions and building dashboards/reports.
Authentication instructions
Refer to the Authentication method for Authentication Methods (for Login and Logout).
Permissions Required
The user requires the permissions below:
API User
User is Staff
Users have View Training Permission
Please also refer to the Permissions Overview guide.
Query parameters
FIELD | TYPE | DESCRIPTION | EXAMPLE | REQUIRED | DEFAULT | PATTERN |
|
| Filter by training type |
| No |
|
|
|
| Filter by status. Note: |
| No |
|
|
|
| Filter by project/site ID |
| No |
|
|
|
| Filter by training label ID |
| No |
|
|
|
| Filter by person (staff or worker) ID |
| No |
|
|
|
| Filter by entity |
| No |
|
|
|
| Start date filter |
| No |
|
|
|
| End date filter. Must be >= |
| No |
|
|
|
| Page number |
| No |
| min: 1 |
|
| Records per page |
| No |
| min: 1, max: 100 |
Request Example
curl --location 'https://test.complyflow.com.au/app/public/index.php/api/v1/training?type=offline&status=completed&project_id=10&date_from=2025-01-01&page=1&per_page=25' \
--header 'Authorization: Bearer [...]'
Response Example
The API request returns a paginated list of training records (online + offline) for the current organisation. The response is wrapped in a token / data envelope.
{
"token": "refreshed-jwt-token",
"data": {
"data": [
{
"id": "S1234",
"type": "offline",
"name": "Site Induction Training",
"description": "Mandatory safety induction for all new workers",
"status": "completed",
"date": "2025-06-15",
"venue": "Training Room A, Level 2",
"total_seats": 30,
"occupied_seats": 28,
"self_register": true,
"projects": ["Melbourne Rail Hub"],
"courses": ["WHS Induction", "Emergency Procedures"],
"labels": ["Safety", "Mandatory"]
},
{
"id": "C5678",
"type": "online",
"name": "Fire Safety Awareness",
"description": "Online fire safety training module",
"status": "completed",
"date": "2025-06-10",
"expiry_date": "2026-06-10",
"staff_id": null,
"employee_id": 456,
"projects": [],
"courses": [],
"labels": []
}
],
"pagination": {
"current_page": 1,
"per_page": 25,
"total": 142,
"has_more": true
}
}
}
Note: The token field is the refreshed JWT and is null for worker profiles. The offline date field is the latest session day. Online records use completed / expired for status.
Error Responses
HTTP Code | Scenario | Body |
401 | Missing or invalid JWT token |
|
422 | Validation error (e.g. invalid date format) |
|