The Reporting API supplies a number of HTTP endpoints that expose ways to export data from users, groups, activities, journeys, programmes, skills and training times.
This documentation is written for developers who will be implementing an API connection for extracting data from the TinQwise learning platform for reporting purposes.
For user provisioning instead of reporting, see Web API v3 for user management. For an overview of both, see APIs within the learning platform.
Interactive documentation
To explore the available endpoints, use the interactive documentation.
It can be accessed at https://<platform name>.platform.co.nl/api/v2/public/docs/, for example https://tinqwise.platform.co.nl/api/v2/public/docs/.
Authentication
To connect with the Reporting API in a secure way we support OAuth2 with the Client Credentials Grant flow.
A client_id, client_secret and scope are needed to request an access token that can be used for authentication.
To request a client_id and client_secret, contact Quinn or email service@tinqwise.com. Please specify which scopes you require.
Using your client_id and client_secret, request an authorization token using the Token URL. Click the Authorize button in your interactive documentation to see your token URL. This token is necessary when you send a request to our API.
🚧 Be careful
The scope for which the token is provided should match the scope for the API you are trying to use. Tokens are only active for a limited amount of time.
There is only one scope for each endpoint, the read scope required for GET requests.
The available scopes are:
read.user.reportsread.group.reportsread.modules.reportsread.journey.reportsread.programmes.reportsread.skills.reportsread.trainingtime.reports
Users
List users using the /api/v2/reports/users/ GET endpoint. You can filter on a specific user by id in /api/v2/reports/users/{id}.
You can use a number of filters to find users within a certain timeframe based on contract_start_date, contract_end_date, last_seen or registration_date, filter on a specific user by email, uuid or employee_id, or filter on certain groups by group_name.
Field | Description |
| Users are uniquely identified by their id. Other endpoints in API v2 refer to users through this identifier, where it is called |
| An automatically generated code, created with the user. |
| The username of a user. |
| The unique email address of a user. |
| Used to refer to a user on the platform. |
| The date a user registered on the platform. |
| The date of the last login of the user on the platform. |
| The dates of a user's start and end of their contract. Optional data. |
| Can be any user profile field that is custom made on your platform. |
| Whether a user is active, pending or suspended on the platform. |
| A customer-specific (unique) identifier, which can be used to disambiguate users. |
| The username used with a saml2 SSO. |
Groups
Use the GET /api/v2/reports/groups/ endpoint to retrieve a list of groups. You can filter on a specific group by id in /api/v2/reports/groups/{id}.
In other endpoints you can use group_name to filter on specific groups.
Field | Description |
| The unique identifier for this group. |
| The group type of this group. |
| The internationalized (i18n) or translated name for this group. |
| The name of the parent of this group. Matches the |
| The optional id or name which the group is known by at the customer. |
| Optional, and set to |
| A JSON dictionary containing the information within the custom group fields of the platform. |
Activities
Use the GET /api/v2/reports/modules/ endpoint to retrieve data on the progress of activities in the platform. You can filter on a specific activity by id in /api/v2/reports/modules/{id}.
You can filter activities within a certain timeframe on completed_at, expires_at, failed_at, modified_at or started_at, or filter on certain groups by group_name.
Field | Description |
| The unique identifier of an activity invite in combination with a specific user. |
| Matches the user |
| The unique identifier of an activity. |
| The name of the activity. |
| The internal label of an activity. |
| Type of activity, such as learning-bite, exam or session. |
| Theoretical duration of the activity. |
| Percentage between 0 and 100 indicating how far along the user is with the specific activity. |
| Datetime stamp from the moment the activity was started by the user. |
| Datetime stamp from the moment the activity was completed by the user. |
| Datetime stamp for the moment the activity will expire in the future. |
| Datetime stamp for the moment the activity expired in the past. |
| Datetime stamp for when the activity was graded by a manager or teacher. |
| Datetime stamp for the moment the activity was failed. |
| Datetime stamp for when this activity was last updated. |
| Defaults to |
| The grade of an activity, such as good or excellent. |
| The score of an activity, such as 5 out of 6 questions right. |
| Defaults to |
| Number of the current attempt of the activity. |
| Number of the accredited points for the activity. |
Journeys
Use the GET /api/v2/reports/journeys/ endpoint to retrieve data on the progress of journeys in the platform. You can filter on a specific journey by id in /api/v2/reports/journeys/{id}.
You can filter journeys within a certain timeframe on created_at, modified_at and completed_at, or filter on certain groups by group_name.
Field | Description |
| The unique identifier of the journey in combination with a specific user. |
| Matches the user |
| The unique identifier of the journey. When the result is a section, this field contains the uuid of the journey the section is part of. |
| The name of the journey. When the result is a section, this field contains the name of the journey the section is part of. |
| The unique identifier of the section. Empty when the result is a journey. |
| The name of the section. Empty when the result is a journey. |
| Percentage between 0 and 100 indicating how far along the user is with the specific journey or section. |
| Datetime stamp from the moment the journey was created. |
| Datetime stamp for when this journey was last updated. |
| Datetime stamp from the moment the journey was completed by the user. |
Programmes
Use the GET /api/v2/reports/programmes/ endpoint to retrieve data on the progress of programmes in the platform. You can filter on a specific programme by id in /api/v2/reports/programmes/{id}.
You can filter programmes within a certain timeframe on completed_at, or on programme ids.
Field | Description |
| The unique identifier of the programme. |
| The name of the programme. |
| Matches the user |
| Percentage between 0 and 100 indicating how far along the user is with the specific programme. |
| Datetime stamp from the moment the programme was completed by the user. |
Skills
Use the GET /api/v2/reports/skills/ endpoint to retrieve data on the progress of skills and badges users are working on in the platform. You can filter on a specific skill by id in /api/v2/reports/skills/{id}.
You can filter skills within a certain timeframe on completed_at, expires_at, failed_at or modified_at, or filter on certain skill or user ids.
Field | Description |
| The unique identifier of the badge in combination with a specific user. |
| Matches the user |
| The unique identifier of the skill the badge represents. |
| The name of the skill the badge represents. |
| Percentage between 0 and 100 indicating how far along the user is with the specific skill. |
| Datetime stamp from the moment the user saw the badge. |
| Defaults to |
| Datetime stamp for the moment the badge will expire in the future. |
| Datetime stamp from the moment the badge was completed by the user. |
| Datetime stamp from the moment a manager nudged the skill for a user to complete it. |
| Datetime stamp for when this skill was last updated. |
Training times
Use the GET /api/v2/reports/training_time/ endpoint to retrieve data on the time spent on completed activities in the platform. You can filter on a specific user_id in /api/v2/reports/training_time/{user_id}.
Activities counting towards the training time must have been completed within the timeframe you filter on, using reporting_period_start and reporting_period_end. You can also filter on certain users or groups by user_id or group_name.
Field | Description |
| Matches the user |
| Number of minutes the user has spent on activities on the platform, based on the duration of completed activities. |
When the Training Type feature is enabled on the platform, this endpoint also returns:
Field | Description |
| Number of minutes the user has spent on informal activities. |
| Number of minutes the user has spent on formal activities. |
| Measured time spent, in seconds, on the platform for completed informal activities. |
| Measured time spent, in seconds, on the platform for completed formal activities. |
Good to know
Measured training time only reflects time spent since 13 February 2025.
The ids returned for an activity, journey or skill badge are unique for the attempt. For example, when the activity is reset, the endpoint will return a new id.
