List punches and their attest status
List punches of a unit in a date range with employee and manager attest status.
GET https://cotlet.dev/api/v1/quinyx/groups/{group_id}/timesheet-approvals
read
Returns one row per punch with the start and end, the original start and end, employee_attested, manager_attested and any warnings. The four status values match the attest filters of the Schedule view. Absences are included in the range with the same flags.
Parameters
| Name | Type | Description |
|---|---|---|
| group_id string required | string | Unit or section id from list_groups. |
| from string required | string | First day, YYYY-MM-DD. |
| to string required | string | Last day, YYYY-MM-DD. |
| employee_id string | string | Only this employee. |
| status string | string | One of employee_missing_approval, manager_approval_missing, has_employee_approval, has_manager_approval. |
Request
curl "https://cotlet.dev/api/v1/quinyx/groups/group_8c41d2/timesheet-approvals?from=from&to=to" \
-H "Authorization: Bearer $COTLET_API_KEY" result = client.call("quinyx", "list_timesheet_approvals", {"group_id":"group_8c41d2","from":"from","to":"to"}) const result = await cotlet.call('quinyx', 'list_timesheet_approvals', {"group_id":"group_8c41d2","from":"from","to":"to"}); cotlet call quinyx list_timesheet_approvals --data '{"group_id":"group_8c41d2","from":"from","to":"to"}' Example response
{
"punches": [
{
"employee_id": "3011",
"employee": "Tom Becker",
"date": "2026-10-14",
"start": "06:02",
"end": "14:05",
"original_start": "06:02",
"original_end": "14:05",
"employee_attested": true,
"manager_attested": false,
"warnings": []
},
{
"employee_id": "3027",
"employee": "Maria Silva",
"date": "2026-10-15",
"start": "06:00",
"end": "14:00",
"original_start": "06:00",
"original_end": "13:48",
"employee_attested": false,
"manager_attested": false,
"warnings": [
"Automatic punch-out needs a time change before approval"
]
}
]
}