GET [ Worker/{id}/training ]
Production Endpoint: https://app.complyflow.com.au/app/public/index.php/api/v1/employees/{id}/training
Test Endpoint: https://test.complyflow.com.au/app/public/index.php/api/v1/employees/{id}/training
Overview
This endpoint returns the complete training history (online + offline) for a specific employee (Contractor worker) assigned to the current organisation. It returns attendee-level records, identical in format to the Staff training endpoint, with the Contractor company name included in the person object.
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.
Path parameters
FIELD | TYPE | DESCRIPTION | EXAMPLE | REQUIRED |
|
| Worker ID (must be numeric) |
| Yes |
Query parameters
FIELD | TYPE | DESCRIPTION | EXAMPLE | REQUIRED | DEFAULT | PATTERN |
|
| Filter by training type |
| No |
|
|
|
| Filter by status |
| No |
|
|
|
| Filter by project/site ID |
| No |
|
|
|
| Filter by training label ID |
| No |
|
|
|
| Filter by contractor/company ID |
| 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/employees/456/training?status=completed' \
--header 'Authorization: Bearer [...]'
Response Example
The API request returns the unified training history for the specified Worker. Pagination metadata is returned under the meta key.
{
"data": [
{
"id": 7890,
"type": "offline",
"training_name": "Forklift Operation Refresher",
"training_type": "session",
"completed_at": "2025-07-01T00:00:00+00:00",
"status": "completed",
"result": "attended",
"valid_until": null,
"person": {
"id": 456,
"type": "employee",
"name": "John Doe",
"company": "ABC Contractors Pty Ltd"
},
"projects": ["Sydney Metro West"],
"labels": ["Plant Operations"],
"session": {
"id": 789,
"name": "Forklift Operation Refresher",
"venue": "Warehouse B",
"checked_in_at": "2025-07-01T07:30:00+00:00",
"check_in_method": "manual"
}
}
],
"meta": {
"current_page": 1,
"per_page": 50,
"total": 8,
"total_pages": 1
}
}Note: The Worker must be assigned to the authenticated user’s organisation via the Contractor relationship chain (Worker → OrganisationContractorWorker → OrganisationContractor → Organisation). If the Worker exists but is not linked to your organisation, a 404 is returned. The company field in the person object holds the Contractor company name.
Error Responses
HTTP Code | Scenario | Body |
401 | Missing JWT token |
|
401 | Invalid or malformed JWT |
|
401 | Expired JWT token |
|
403 | User not authorised to access Worker training |
|
404 | Worker not found or not in your organisation |
|
422 | Validation error |
|
429 | Rate limit exceeded (60 requests/minute per user) |
|