GET
/api/public/v1/qa-corrective-actionsList QA corrective actions
What was done about an out-of-tolerance check or a process drift: the issue, the suspected cause, the action taken, who owns it, and whether it is closed. `category` is what the Pareto of recurring failure modes counts on the historical report, which is why an uncategorized action defaults to OTHER rather than being left null and dropping out of the tally.
Required scope
The access token must carry this scope. A token missing it gets 403 Forbidden. Grant them to an API client under Settings → Company → API, and to a teammate under Employee → Permissions.
quality:actions:read
Query Parameters
| Name | Type | Required | Description |
|---|---|---|---|
locationId | string | Required | Which plant. |
limit | number | Optional | Maximum number of items to return (1-100).Default: 20 |
offset | number | Optional | Number of items to skip before starting to collect the result set.Default: 0 |
sortBy | string | Optional | Field to sort by. Allowed values vary by endpoint.Default: createdAt |
sortOrder | string asc desc | Optional | Sort direction.Default: desc |
search | string | Optional | Free-text search across the resource’s primary fields. |
createdAfter | string | Optional | ISO 8601 timestamp — only return items created after this time. |
createdBefore | string | Optional | ISO 8601 timestamp — only return items created before this time. |
updatedAfter | string | Optional | ISO 8601 timestamp — only return items updated after this time. |
status | string OPEN CLOSED | Optional | |
category | string | Optional | The failure mode. |
checkId | string | Optional | Actions raised from one check. |
GETExample request
curl
curl -X GET "https://www.pxb.app/api/public/v1/qa-corrective-actions" \
-H "Authorization: Bearer your_access_token"200Example response
json
{
"message": "Corrective actions retrieved successfully!",
"content": {
"actions": [
{
"id": "qca_7710",
"locationId": "loc_abc123",
"shiftSessionId": "qss_3300",
"checkId": "qck_5522",
"issue": "Bags running 1 lb heavy after the hopper refill.",
"suspectedCause": "Auger calibration drifted.",
"actionTaken": "Recalibrated and re-ran three checks.",
"ownerEmployeeId": "emp_12ab",
"category": "EQUIPMENT",
"status": "CLOSED",
"openedAt": "2026-08-29T14:20:00.000Z",
"resolvedAt": "2026-08-29T15:02:00.000Z",
"resolutionNotes": "Back in band."
}
],
"pagination": {
"total": 42,
"limit": 20,
"offset": 0,
"hasMore": true
}
}
}In the console
The same thing done by hand, for anyone comparing the API against the screen they already use.
Quality → Corrective Actions
/quality/corrective-actions