Timesheets
List Timesheets
Retrieve a list of timesheets for your company.
GET
/
api
/
public
/
v1
/
timesheets
List Timesheets
curl --request GET \
--url https://api.example.com/api/public/v1/timesheetsimport requests
url = "https://api.example.com/api/public/v1/timesheets"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/public/v1/timesheets', 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.example.com/api/public/v1/timesheets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/api/public/v1/timesheets"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/api/public/v1/timesheets")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/v1/timesheets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "clq123...",
"userId": "usr_789...",
"companyId": "comp_456...",
"periodStart": "2026-05-11T00:00:00.000Z",
"periodEnd": "2026-05-17T23:59:59.999Z",
"status": "APPROVED",
"entries": [
{
"id": "ent_111...",
"date": "2026-05-11T00:00:00.000Z",
"hoursWorked": 8,
"expectedHours": 8,
"notes": "Standard shift"
}
]
}
]
}
You can filter the results using query parameters to find timesheets for specific users, within date ranges, or by approval status.
Query Parameters
string
Filter timesheets by a specific employee’s unique User ID.
string
Filter timesheets by their approval status (e.g.,
DRAFT, SUBMITTED, APPROVED, REJECTED).string
Filter timesheets where the period start date is greater than or equal to this date (ISO 8601 format).
string
Filter timesheets where the period end date is less than or equal to this date (ISO 8601 format).
Response
{
"data": [
{
"id": "clq123...",
"userId": "usr_789...",
"companyId": "comp_456...",
"periodStart": "2026-05-11T00:00:00.000Z",
"periodEnd": "2026-05-17T23:59:59.999Z",
"status": "APPROVED",
"entries": [
{
"id": "ent_111...",
"date": "2026-05-11T00:00:00.000Z",
"hoursWorked": 8,
"expectedHours": 8,
"notes": "Standard shift"
}
]
}
]
}
⌘I
List Timesheets
curl --request GET \
--url https://api.example.com/api/public/v1/timesheetsimport requests
url = "https://api.example.com/api/public/v1/timesheets"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/api/public/v1/timesheets', 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.example.com/api/public/v1/timesheets",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.example.com/api/public/v1/timesheets"
req, _ := http.NewRequest("GET", url, nil)
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.example.com/api/public/v1/timesheets")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/public/v1/timesheets")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "clq123...",
"userId": "usr_789...",
"companyId": "comp_456...",
"periodStart": "2026-05-11T00:00:00.000Z",
"periodEnd": "2026-05-17T23:59:59.999Z",
"status": "APPROVED",
"entries": [
{
"id": "ent_111...",
"date": "2026-05-11T00:00:00.000Z",
"hoursWorked": 8,
"expectedHours": 8,
"notes": "Standard shift"
}
]
}
]
}