Projects are a key component of how time entries are categorized in Toggl Track. If you want to explore all the ways you can categorize your time entries, check our Toggl Track Categorization Guide.
Create a Project
Projects are specific to a workspace. You need to specify the workspace_id
in order to interact with projects.
curl -u <email>:<password> \ -H "Content-Type: application/json" \ -d '{"active":true,"auto_estimates":false,"billable":true,"color":"#FFFFFF","currency":"EUR","estimated_hours":10,"is_private":false,"name":"Your project","template":false}' \ -X POST https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects
The project parameters are similar to the project details that you have specified when creating a project in the Toggl Track web app.
All the project properties are returned in the successful response.
Get projects
You can get the full list of projects by workspace:
curl -u <email>:<password> \ -H "Content-Type: application/json" \ -X GET https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects
Or the specific project by ID:
curl -u <email>:<password> \ -H "Content-Type: application/json" \ -X GET https://api.track.toggl.com/api/v9/workspaces/{workspace_id}/projects/{project_id}
It is also possible to fetch all users’ projects:
curl -u <email>:<password> \ -H "Content-Type: application/json" \ -X GET https://api.track.toggl.com/api/v9/me/projects
The full list can be paginated by adding /paginated
to the endpoint. The request can also include start_project_id
as the query parameter in order to provide an offset.
Tracking for a project
As shown in the Tracking page, a time entry that has been created can be associated to a project by specifying the pid
parameter.
curl -u <email>:<password> \ -H "Content-Type: application/json" \ -d '{"time_entry":{"description":"Hello Toggl","tags":["billed"],"pid":123,"created_with":"curl"}}' \ -X POST https://api.track.toggl.com/api/v9/time_entries