https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects
Get projects for given workspace.
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}/projects".to_string()) .header(CONTENT_TYPE, "application/json") .send() .await? .json() .await?; println!("{:#?}", json); Ok(())}
Parameters
Path
name
type
required
description
workspace_id
integer
true
Numeric ID of the workspace
Query
name
type
required
description
sort_pinned
boolean
true
Place pinned projects at top of response
Query
name
type
required
description
active
boolean
false
Return active or inactive project. You can pass ‘both’ to get both active and inactive projects.
since
integer
false
Retrieve projects created/modified/deleted since this date using UNIX timestamp.
billable
boolean
false
billable
user_ids
array
false
user_ids
client_ids
array
false
client_ids
group_ids
array
false
group_ids
statuses
array
false
statuses
name
string
true
name
page
integer
true
page
sort_field
string
true
sort_field
sort_order
string
true
sort_order
only_templates
boolean
true
only_templates
only_me
boolean
false
get only projects assigned to the current user
per_page
integer
false
Number of items per page, default 151. Cannot exceed 200.
Response
200
Name
Type
Description
items
Array of object
-
items
Name
Type
Description
active
boolean
Whether the project is active or archived
actual_hours
integer
null
actual_seconds
integer
null
at
string
Last updated date
auto_estimates
boolean
null
billable
boolean
null
can_track_time
boolean
-
cid
integer
Client ID legacy field
client_id
integer
null
color
string
Color
created_at
string
Creation date
currency
string
null
current_period
object
Current project period, premium feature
end_date
string
End date
estimated_hours
integer
null
estimated_seconds
integer
null
fixed_fee
number
Fixed fee, premium feature
id
integer
Project ID
integration_ext_id
string
The external ID of the linked entity in the external system (e.g. JIRA/SalesForce)
integration_ext_type
string
The external type of the linked entity in the external system (e.g. JIRA/SalesForce)
integration_provider
string
The provider (e.g. JIRA/SalesForce) that has an entity linked to this Toggl Track entity
is_private
boolean
Whether the project is private
is_shared
boolean
Shared Project
name
string
Name
permissions
string
-
pinned
boolean
-
rate
number
Hourly rate
rate_last_updated
string
null
recurring
boolean
Whether the project is recurring, premium feature
recurring_parameters
Array of object
Project recurring parameters, premium feature
shared_at
string
-
shared_hash
string
-
start_date
string
Start date
status
string
Status of the project (upcoming, active, ended, archived, deleted)
tasks_count
integer
-
template
boolean
null
template_id
integer
null
wid
integer
Workspace ID legacy field
workspace_id
integer
Workspace ID
current_period
Name
Type
Description
end_date
string
-
start_date
string
-
recurring_parameters
Name
Type
Description
custom_period
integer
Custom period, used when “period” field is “custom”
estimated_seconds
integer
Estimated seconds
parameter_end_date
string
null
parameter_start_date
string
Recurring start date
period
string
Period
project_start_date
string
Project start date
403
User does not have access to this resource.
500
Internal Server Error
FiBu
June 11, 2025, 2:40pm
2
On your API page
you have an external_reference field. If I use the GET projects request i dont get this field.
Also on the post Reference I cant find if it is allowed to use zje integration_XYZ fields.
I would like to pass a reference to my manually synced JIRA projects.
Also I would like to pass a reference to the TASKS Api. is there an external reference field?
@FiBu Hi
For the external_reference field to be returned, it needs to be set first. Sending external_reference in the payload should put that reference in the project. Can you confirm you did that and still can’t get the external_reference back with a GET call?
Those 3 fields (integration_ext_id, integration_ext_type, and integration_provider) are managed by the Asana/JIRA/SalesForce integrations internally, they cannot be manipulated through the public API and will only be delivered through the API when they actually have data.
If those fields are absent from the API, it’s because there is no link between that Track Entity and the Asana/JIRA/SF entity.
Currently, the external_reference field can only be used with Projects and Clients. I’ll share the ability to use it with Tasks as a feature request on your behalf with our product team.
1 Like