https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/timesheets
Get timesheets applying various filters.
- cURL
- Go
- Ruby
- JavaScript
- Python
- Rust
extern crate tokio;extern crate serde_json;use reqwest::{Client};use reqwest::header::{CONTENT_TYPE};#[tokio::main]async fn main() -> Result<(), reqwest::Error> { let client = Client::new().basic_auth("<email>", "<password>"); let json = client.request(Method::GET, "https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/timesheets".to_string()) .header(CONTENT_TYPE, "application/json") .send() .await? .json() .await?; println!("{:#?}", json); Ok(())}
Parameters​
name |
type |
required |
description |
workspace_id |
integer |
true |
Numeric ID of the workspace |
name |
type |
required |
description |
member_ids |
integer |
false |
Numeric ID of the members, comma-separated |
approver_ids |
integer |
false |
Numeric ID of the approvers, comma-separated |
timesheet_setup_ids |
integer |
false |
Numeric ID for timesheet setup, comma-separated. |
statuses |
integer |
false |
Timesheet status, comma-separated. |
before |
integer |
false |
Timesheets starting before this date (YYYY-MM-DD). |
after |
integer |
false |
Timesheets starting after this date (YYYY-MM-DD). |
page |
integer |
false |
Page number, default 1. |
per_page |
integer |
false |
Number of items per page, default 20. Also defaults to 20 if provided an greater than 1000. |
sort_field |
string |
false |
Field used for sorting, default start_date. |
sort_order |
string |
false |
Sort order. |
Response​
Name |
Type |
Description |
items |
Array of object |
- |
Name |
Type |
Description |
data |
Array of object |
- |
page |
integer |
- |
per_page |
integer |
- |
total_count |
integer |
- |
Name |
Type |
Description |
approved_or_rejected_at |
string |
- |
approved_or_rejected_id |
integer |
- |
approved_or_rejected_name |
string |
- |
approver_id |
integer |
- |
approver_name |
string |
- |
approvers |
Array of object |
- |
end_date |
string |
- |
errors |
Array of object |
- |
member_id |
integer |
- |
member_name |
string |
- |
period_editable |
boolean |
- |
period_end |
string |
- |
period_locked |
boolean |
- |
period_start |
string |
- |
periodicity |
string |
- |
permissions |
string |
- |
rejection_comment |
string |
- |
reminder_day |
string |
- |
reminder_sent_at |
string |
- |
reminder_time |
string |
- |
reviews |
Array of object |
- |
start_date |
string |
- |
status |
string |
- |
submitted_at |
string |
- |
timesheet_setup_id |
integer |
- |
working_hours_in_minutes |
integer |
- |
workspace_id |
integer |
- |
approvers​
Name |
Type |
Description |
name |
string |
- |
user_id |
integer |
- |
Name |
Type |
Description |
code |
string |
- |
message |
string |
- |
reviews​
Name |
Type |
Description |
approved |
boolean |
- |
name |
string |
- |
rejection_comment |
string |
- |
user_id |
integer |
- |
Possible error messages:
- Workspace not found
- Invalid ID
- Invalid date
- Invalid status
Approvals are a premium feature
User does not have access to this resource
Internal Server Error
pbales
2
I’m not receiving the working hours in minutes as part of my response, please assist.
Support
3
Hello! Is the time being returned at all?
1 Like
pbales
4
Not at all, would you like the list of what I’m receiving?
pbales
5
List of attributes I’m receiving
Attribute |
per_page |
page |
total_count |
data.timesheet_setup_id |
data.workspace_id |
data.member_id |
data.member_name |
data.approver_id |
data.approver_name |
data.approvers |
data.approvers_layers |
data.review_layer |
data.reviews |
data.start_date |
data.end_date |
data.periodicity |
data.status |
data.submitted_at |
data.approved_or_rejected_at |
data.approved_or_rejected_id |
data.approved_or_rejected_name |
data.timezone |
data.reminder_day |
data.reminder_time |
data.period_locked |
data.period_editable |
data.period_start |
data.period_end |
data.permissions.0 |
Support
7
Let us speak to the team and get back to you 
Hi @pbales
We sent you a DM requesting some extra information - did you receive it?
Thanks!