Time Punches
Get Worker Time Punches
Returns a paginated list of time punches for a worker.
GET
/
workers
/
{id}
/
time-punches
Get Worker Time Punches
curl --request GET \
--url https://api.roostedhr.com/api/1_12/workers/{id}/time-punches \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.roostedhr.com/api/1_12/workers/{id}/time-punches"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.roostedhr.com/api/1_12/workers/{id}/time-punches', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roostedhr.com/api/1_12/workers/{id}/time-punches",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.roostedhr.com/api/1_12/workers/{id}/time-punches"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.roostedhr.com/api/1_12/workers/{id}/time-punches")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roostedhr.com/api/1_12/workers/{id}/time-punches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"time_punches": [
{
"id": "QNPdD",
"p_id": "3158",
"erf_id": "2205477",
"ern_id": "1442591",
"manager_id": "3158",
"events_roles_placeholders_id": "<string>",
"latitude": "<string>",
"longitude": "<string>",
"source": "Manager",
"punch_datetime": "2024-05-03 20:00:00",
"converted_punch_datetime": "2024-05-03 15:00:00",
"status": "approved",
"clock_picture_location": "<string>",
"insert_date": "2024-04-30 13:57:28",
"override_max_shift_time": "N",
"original_datetime": "<string>",
"time_change_request": "<string>",
"time_change_request_submitted": "<string>",
"client_sign_datetime": "<string>",
"delete_requested": "0",
"open": "0",
"bad_location": "0",
"client_name": "Test Client #1",
"client_invoice_customer_id": "0123007",
"event_name": "Hello World",
"location_id": "1503",
"location": "Arrowhead Stadium",
"addy_city": "Kansas City",
"timezone_name": "America/Chicago",
"jobs_id": "677421",
"custom_event_id": "<string>",
"areas": "<string>",
"client_id": "hAjwQ",
"ern_start": "2024-05-03 14:00:00",
"ern_date": "2024-05-03 14:00:00",
"ern_start_date": "2024-05-03",
"nice_ern_start": "2:00 PM",
"role_title": "Bartender",
"ern_end": "2024-05-23 00:00:00",
"payroll_groups_id": "gDrT7",
"payroll_groups_name": "<string>",
"rate_cards_id": "<string>",
"rate_cards_name": "<string>",
"signature_datetime": "<string>",
"signature_name": "<string>",
"signature_notes": "<string>",
"signature_location": "<string>",
"worker_signature_location": "<string>",
"worker_signature_comments": "<string>",
"worker_signature_datetime": "<string>",
"worker_signature_missing": true,
"travel_hours_before": "0.00",
"travel_hours_after": "0.00",
"timezone_data": "CDT",
"nice_shiftedPunch": "15:00 CDT May 3rd",
"nice_shiftedPunch_ampm": "3:00 pm CDT May 3rd",
"punchDate": "2024-05-03",
"shiftedPunch": "2024-05-03 15:00:00",
"nicePunch": "3:00 pm",
"scheduledHours": 466,
"clockType": "OUT",
"in_punch": "2024-05-03 10:00:00",
"spot_wage": "<string>",
"shift_wage": "<string>",
"personnel_pay_rate": "<string>",
"client_pay_rate": "<string>",
"role_pay_rate": "<string>",
"spot_billing_rate": "<string>",
"shift_billing": "<string>",
"personnel_billing_rate": "<string>",
"client_billing_rate": "<string>",
"role_billing_rate": "<string>",
"possibleDuplicate": true
}
],
"total": 32
}This endpoint supports pagination via
items_per_page and page query parameters.Use the
date parameter to filter punches for a specific date. When date is provided, it takes priority over start_date and end_date. Use shift_id to filter punches for a specific shift assignment.Authorizations
Path Parameters
Worker ID
Query Parameters
Filter punches for a specific date. Takes priority over start_date and end_date when provided.
Example:
"2026-03-17"
Filter punches on or after this date. Ignored if date is provided.
Example:
"2026-01-01"
Filter punches on or before this date. Ignored if date is provided.
Example:
"2026-12-31"
Filter punches for a specific shift assignment.
Number of items per page.
Required range:
1 <= x <= 100Page number.
Required range:
x >= 1⌘I
Get Worker Time Punches
curl --request GET \
--url https://api.roostedhr.com/api/1_12/workers/{id}/time-punches \
--header 'X-API-KEY: <api-key>'import requests
url = "https://api.roostedhr.com/api/1_12/workers/{id}/time-punches"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://api.roostedhr.com/api/1_12/workers/{id}/time-punches', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roostedhr.com/api/1_12/workers/{id}/time-punches",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.roostedhr.com/api/1_12/workers/{id}/time-punches"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.roostedhr.com/api/1_12/workers/{id}/time-punches")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roostedhr.com/api/1_12/workers/{id}/time-punches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"time_punches": [
{
"id": "QNPdD",
"p_id": "3158",
"erf_id": "2205477",
"ern_id": "1442591",
"manager_id": "3158",
"events_roles_placeholders_id": "<string>",
"latitude": "<string>",
"longitude": "<string>",
"source": "Manager",
"punch_datetime": "2024-05-03 20:00:00",
"converted_punch_datetime": "2024-05-03 15:00:00",
"status": "approved",
"clock_picture_location": "<string>",
"insert_date": "2024-04-30 13:57:28",
"override_max_shift_time": "N",
"original_datetime": "<string>",
"time_change_request": "<string>",
"time_change_request_submitted": "<string>",
"client_sign_datetime": "<string>",
"delete_requested": "0",
"open": "0",
"bad_location": "0",
"client_name": "Test Client #1",
"client_invoice_customer_id": "0123007",
"event_name": "Hello World",
"location_id": "1503",
"location": "Arrowhead Stadium",
"addy_city": "Kansas City",
"timezone_name": "America/Chicago",
"jobs_id": "677421",
"custom_event_id": "<string>",
"areas": "<string>",
"client_id": "hAjwQ",
"ern_start": "2024-05-03 14:00:00",
"ern_date": "2024-05-03 14:00:00",
"ern_start_date": "2024-05-03",
"nice_ern_start": "2:00 PM",
"role_title": "Bartender",
"ern_end": "2024-05-23 00:00:00",
"payroll_groups_id": "gDrT7",
"payroll_groups_name": "<string>",
"rate_cards_id": "<string>",
"rate_cards_name": "<string>",
"signature_datetime": "<string>",
"signature_name": "<string>",
"signature_notes": "<string>",
"signature_location": "<string>",
"worker_signature_location": "<string>",
"worker_signature_comments": "<string>",
"worker_signature_datetime": "<string>",
"worker_signature_missing": true,
"travel_hours_before": "0.00",
"travel_hours_after": "0.00",
"timezone_data": "CDT",
"nice_shiftedPunch": "15:00 CDT May 3rd",
"nice_shiftedPunch_ampm": "3:00 pm CDT May 3rd",
"punchDate": "2024-05-03",
"shiftedPunch": "2024-05-03 15:00:00",
"nicePunch": "3:00 pm",
"scheduledHours": 466,
"clockType": "OUT",
"in_punch": "2024-05-03 10:00:00",
"spot_wage": "<string>",
"shift_wage": "<string>",
"personnel_pay_rate": "<string>",
"client_pay_rate": "<string>",
"role_pay_rate": "<string>",
"spot_billing_rate": "<string>",
"shift_billing": "<string>",
"personnel_billing_rate": "<string>",
"client_billing_rate": "<string>",
"role_billing_rate": "<string>",
"possibleDuplicate": true
}
],
"total": 32
}