curl --request GET \
--url https://api.getbreezyapp.com/v1/timesheets \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getbreezyapp.com/v1/timesheets"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getbreezyapp.com/v1/timesheets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"team_member": {
"id": "11111111-1111-4111-8111-000000000401",
"name": "Alex Example"
},
"period": {
"start_date": "2026-09-07",
"end_date_exclusive": "2026-09-14"
},
"entry_count": 1,
"open_entry_count": 0,
"unknown_activity_entry_count": 0,
"payable_minutes": 60,
"days": [
{
"date": "2026-09-07",
"payable_minutes": 0
},
{
"date": "2026-09-08",
"payable_minutes": 60
},
{
"date": "2026-09-09",
"payable_minutes": 0
},
{
"date": "2026-09-10",
"payable_minutes": 0
},
{
"date": "2026-09-11",
"payable_minutes": 0
},
{
"date": "2026-09-12",
"payable_minutes": 0
},
{
"date": "2026-09-13",
"payable_minutes": 0
}
]
}
],
"pagination": {
"next_cursor": null
},
"meta": {
"request_id": "11111111-1111-4111-8111-000000009999",
"generated_at": "2026-09-08T19:00:00Z",
"timezone": "America/Los_Angeles"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "end_date must be later than start_date",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "A valid API key is required",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "METHOD_NOT_ALLOWED",
"message": "This resource supports GET",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Request limit exceeded",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Unable to complete request",
"request_id": "example-request",
"details": []
}
}Page members in a configured timesheet period
Required period_date selects a current configured company-local period. All current company members, including inactive and zero-entry members, ordered by member ID. Effective-start-in-period entries contribute; open, deleted, nonpayable and unknown-activity entries do not contribute payable minutes. Existing server timesheet rules use wall-clock minutes, cap days at 1439, and stop overnight spans at the end of their starting day. No payroll or costing calculation. Current configuration applies to historical dates. Cursor scope includes resolved boundaries.
curl --request GET \
--url https://api.getbreezyapp.com/v1/timesheets \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getbreezyapp.com/v1/timesheets"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getbreezyapp.com/v1/timesheets', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"team_member": {
"id": "11111111-1111-4111-8111-000000000401",
"name": "Alex Example"
},
"period": {
"start_date": "2026-09-07",
"end_date_exclusive": "2026-09-14"
},
"entry_count": 1,
"open_entry_count": 0,
"unknown_activity_entry_count": 0,
"payable_minutes": 60,
"days": [
{
"date": "2026-09-07",
"payable_minutes": 0
},
{
"date": "2026-09-08",
"payable_minutes": 60
},
{
"date": "2026-09-09",
"payable_minutes": 0
},
{
"date": "2026-09-10",
"payable_minutes": 0
},
{
"date": "2026-09-11",
"payable_minutes": 0
},
{
"date": "2026-09-12",
"payable_minutes": 0
},
{
"date": "2026-09-13",
"payable_minutes": 0
}
]
}
],
"pagination": {
"next_cursor": null
},
"meta": {
"request_id": "11111111-1111-4111-8111-000000009999",
"generated_at": "2026-09-08T19:00:00Z",
"timezone": "America/Los_Angeles"
}
}{
"error": {
"code": "INVALID_REQUEST",
"message": "end_date must be later than start_date",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "UNAUTHENTICATED",
"message": "A valid API key is required",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Resource not found",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "METHOD_NOT_ALLOWED",
"message": "This resource supports GET",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "Request limit exceeded",
"request_id": "example-request",
"details": []
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Unable to complete request",
"request_id": "example-request",
"details": []
}
}Authorizations
Existing Breezy API key. Grants all published reads in its associated company. No app permission scopes.
Query Parameters
Maximum parent records or report rows. Complete children are always included.
1 <= x <= 100Repeat the original filters; any valid page size may continue. Foreign-company, tampered or mismatched cursors return INVALID_CURSOR.
1Required company-local date within the desired configured period. Uses current company settings, even when time tracking is disabled. Returns 400 if no usable period configuration exists.