curl --request GET \
--url https://api.getbreezyapp.com/v1/timesheets/{team_member_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getbreezyapp.com/v1/timesheets/{team_member_id}"
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/{team_member_id}', 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
}
]
},
"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": []
}
}Read one member’s configured-period timesheet
Derived representation identified by team member and resolved period dates. Required period_date is a local calendar date. Includes a zero total when the member has no entries. Returns 400 for missing or unusable configuration and 404 for a missing or foreign member.
curl --request GET \
--url https://api.getbreezyapp.com/v1/timesheets/{team_member_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getbreezyapp.com/v1/timesheets/{team_member_id}"
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/{team_member_id}', 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
}
]
},
"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.
Path Parameters
Query Parameters
Required 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.
Response
Successful read. Clients ignore unrecognized response fields.
A derived member-period representation, identified by member ID and resolved period dates. No persisted ID or modification timestamp. Includes inactive and zero-entry current company members of every role.
Show child attributes
Show child attributes
Generation time and company timezone. generated_at is not a snapshot or synchronization token.
Show child attributes
Show child attributes