Toggl Track
App · Project Management · 15 actions
Start and stop timers, log and edit time entries, report hours by project, client or team member, and keep Toggl Track projects and clients up to date.
Actions
| Action | What it does |
|---|---|
| Create client | Add a client to group projects under. |
| Create project | Add a project, optionally for a client. |
| Create time entry | Log time you already spent, from a start time and either an end time or a duration. |
| Delete client | Permanently delete a client. |
| Delete project | Permanently delete a project. |
| Delete time entry | Permanently delete a time entry. |
| Get running timer | See what's being tracked right now, and for how long. |
| Get summary report | Total hours tracked in a workspace between two dates, by project, client or team member. |
| List clients | Your clients, optionally only those matching a name. |
| List projects | Your projects, optionally only those matching a name or a client. |
| List time entries | Your time entries between two dates, newest first, with project and client names and the total hours. |
| Start timer | Start tracking time now. |
| Stop timer | Stop the timer that's running. |
| Update project | Rename a project, change its client, or archive or restore it. |
| Update time entry | Change a time entry's description, project, times, tags or billable status. |
Create client
Add a client to group projects under.
Inputs
- Name
nametextRequired - The client's name.
- Workspace
workspace_idtext - Where to create the client. Leave empty for your default workspace.
Outputs
clientobject- The client that was created.
Example output
{
"client": {
"archived": false,
"id": 4012345701,
"name": "Initech",
"workspace_id": 7654321
}
}Create project
Add a project, optionally for a client.
Inputs
- Name
nametextRequired - The project's name.
- Client
client_idtext - The client the project is for.
- Workspace
workspace_idtext - Where to create the project. Leave empty to use the client's workspace, or your default one.
Outputs
projectobject- The project, as it is now.
Example output
{
"project": {
"archived": false,
"client_id": 61234567,
"client_name": "Acme Corp",
"id": 4012345701,
"name": "Mobile app",
"workspace_id": 7654321
}
}Create time entry
Log time you already spent, from a start time and either an end time or a duration.
Inputs
- Description
descriptiontext - What the time is for, as it shows in Toggl Track.
- Project
project_idtext - The project the time belongs to.
- Start
startdate and timeRequired - When the work started.
- End
enddate and time - When the work ended. Leave empty to give a duration instead.
- Duration (minutes)
duration_minutesnumber - How long the work took, in minutes. Use this or End.At least 1.
- Tags
tagslist - Tags to put on the time.
- Billable
billabletrue/false - Whether the time is billable. Billable time needs a paid Toggl Track plan.
Outputs
time_entryobject- The time entry that was created.
Example output
{
"time_entry": {
"billable": false,
"client_name": "Acme Corp",
"description": "Design review",
"duration_hours": 0.75,
"duration_seconds": 2700,
"duration_text": "0:45:00",
"end": "2026-09-25T13:45:00Z",
"id": 4012345701,
"project_id": 201234567,
"project_name": "Website redesign",
"running": false,
"start": "2026-09-25T13:00:00Z",
"tags": [
"meetings"
],
"workspace_id": 7654321
}
}Delete client
Permanently delete a client. Its projects are kept, without a client.
Inputs
- Client
client_idtextRequired - The client to delete.
Outputs
already_deletedtrue/false- True when it was already gone before this step.
client_idnumber- ID of the deleted client.
deletedtrue/false- Always true: the client no longer exists.
Example output
{
"already_deleted": false,
"client_id": 61234568,
"deleted": true
}Delete project
Permanently delete a project. Its time entries are kept, without a project.
Inputs
- Project
project_idtextRequired - The project to delete.
Outputs
already_deletedtrue/false- True when it was already gone before this step.
deletedtrue/false- Always true: the project no longer exists.
project_idnumber- ID of the deleted project.
Example output
{
"already_deleted": false,
"deleted": true,
"project_id": 201234568
}Delete time entry
Permanently delete a time entry. Deleting one that's already gone succeeds.
Inputs
- Time entry
time_entry_idtextRequired - The time entry's ID, from an earlier step such as Start timer, Create time entry or List time entries.
Outputs
already_deletedtrue/false- True when it was already gone before this step.
deletedtrue/false- Always true: the time entry no longer exists.
time_entry_idnumber- ID of the deleted time entry.
Example output
{
"already_deleted": false,
"deleted": true,
"time_entry_id": 4012345603
}Get running timer
See what's being tracked right now, and for how long.
Inputs
None.
Outputs
runningtrue/false- True when a timer is running right now.
time_entryobject- The running time entry, or null when none is running.
Example output
{
"running": true,
"time_entry": {
"billable": false,
"client_name": "Acme Corp",
"description": "Fixing the header",
"duration_hours": 0.75,
"duration_seconds": 2712,
"duration_text": "0:45:12",
"end": null,
"id": 4012345604,
"project_id": 201234567,
"project_name": "Website redesign",
"running": true,
"start": "2026-09-25T14:14:48Z",
"tags": [],
"workspace_id": 7654321
}
}Get summary report
Total hours tracked in a workspace between two dates, by project, client or team member. Covers any dates, not just recent ones.
Inputs
- From
from_datedateRequired - The first day to include.
- To
to_datedate - The last day to include. Leave empty for today.
- Group by
group_bytext - How to break the time down. Default: Project.One of:
projects(Project),clients(Client),users(Team member). - Workspace
workspace_idtext - The workspace to report on. Leave empty for your default workspace.
Outputs
from_datetext- The first day included (YYYY-MM-DD).
group_bytext- How the time is grouped: projects, clients or users.
groupslist- One row per project, client or team member, most time first.
to_datetext- The last day included (YYYY-MM-DD).
total_hoursnumber- All the time tracked, in hours to two decimal places.
total_secondsnumber- All the time tracked, in seconds.
workspace_idnumber- ID of the workspace the report covers.
Example output
{
"from_date": "2026-09-21",
"group_by": "projects",
"groups": [
{
"hours": 6.0,
"id": 201234567,
"name": "Website redesign",
"seconds": 21600
},
{
"hours": 0.5,
"id": null,
"name": "No project",
"seconds": 1800
}
],
"to_date": "2026-09-25",
"total_hours": 6.5,
"total_seconds": 23400,
"workspace_id": 7654321
}List clients
Your clients, optionally only those matching a name.
Inputs
- Name
nametext - Only clients whose name contains this. An exact match comes first.
Outputs
clientslist- The clients, an exact name match first, then by name.
countnumber- How many clients there are.
firstobject- The first client listed (the exact match, if there is one), or null.
Example output
{
"clients": [
{
"archived": false,
"id": 61234567,
"name": "Acme Corp",
"workspace_id": 7654321
},
{
"archived": false,
"id": 61234568,
"name": "Globex",
"workspace_id": 7654321
}
],
"count": 2,
"first": {
"archived": false,
"id": 61234567,
"name": "Acme Corp",
"workspace_id": 7654321
}
}List projects
Your projects, optionally only those matching a name or a client.
Inputs
- Name
nametext - Only projects whose name contains this. An exact match comes first.
- Client
client_idtext - Only this client's projects.
- Include archived
include_archivedtrue/false - Also list archived projects.
Outputs
countnumber- How many projects there are.
firstobject- The first project listed (the exact match, if there is one), or null.
projectslist- The projects, an exact name match first, then by name.
Example output
{
"count": 2,
"first": {
"archived": false,
"client_id": null,
"client_name": null,
"id": 201234568,
"name": "Internal",
"workspace_id": 7654321
},
"projects": [
{
"archived": false,
"client_id": null,
"client_name": null,
"id": 201234568,
"name": "Internal",
"workspace_id": 7654321
},
{
"archived": false,
"client_id": 61234567,
"client_name": "Acme Corp",
"id": 201234567,
"name": "Website redesign",
"workspace_id": 7654321
}
]
}List time entries
Your time entries between two dates, newest first, with project and client names and the total hours. Reaches back about three months, up to 1,000 entries.
Inputs
- From
from_datedateRequired - The first day to include.
- To
to_datedate - The last day to include. Leave empty for today.
- Project
project_idtext - Only time tracked to this project.
Outputs
countnumber- How many time entries there are. Toggl lists at most 1,000.
from_datetext- The first day included (YYYY-MM-DD).
time_entrieslist- The time entries, newest first.
to_datetext- The last day included (YYYY-MM-DD).
total_hoursnumber- Their combined duration in hours, to two decimal places.
total_secondsnumber- Their combined duration in seconds, counting a running timer so far.
Example output
{
"count": 3,
"from_date": "2026-09-24",
"time_entries": [
{
"billable": false,
"client_name": "Acme Corp",
"description": "Client call",
"duration_hours": 1.5,
"duration_seconds": 5400,
"duration_text": "1:30:00",
"end": "2026-09-25T10:30:00Z",
"id": 4012345601,
"project_id": 201234567,
"project_name": "Website redesign",
"running": false,
"start": "2026-09-25T09:00:00Z",
"tags": [
"meetings"
],
"workspace_id": 7654321
},
{
"billable": true,
"client_name": "Acme Corp",
"description": "Writing the proposal",
"duration_hours": 2.5,
"duration_seconds": 9000,
"duration_text": "2:30:00",
"end": "2026-09-24T15:30:00Z",
"id": 4012345602,
"project_id": 201234567,
"project_name": "Website redesign",
"running": false,
"start": "2026-09-24T13:00:00Z",
"tags": [
"writing"
],
"workspace_id": 7654321
},
{
"billable": false,
"client_name": null,
"description": "",
"duration_hours": 0.5,
"duration_seconds": 1800,
"duration_text": "0:30:00",
"end": "2026-09-24T09:00:00Z",
"id": 4012345603,
"project_id": null,
"project_name": null,
"running": false,
"start": "2026-09-24T08:30:00Z",
"tags": [],
"workspace_id": 7654321
}
],
"to_date": "2026-09-25",
"total_hours": 4.5,
"total_seconds": 16200
}Start timer
Start tracking time now. If a timer is already running, Toggl Track stops it first.
Inputs
- Description
descriptiontext - What the time is for, as it shows in Toggl Track.
- Project
project_idtext - The project the time belongs to.
- Tags
tagslist - Tags to put on the time.
- Billable
billabletrue/false - Whether the time is billable. Billable time needs a paid Toggl Track plan.
Outputs
time_entryobject- The running time entry that was started.
Example output
{
"time_entry": {
"billable": false,
"client_name": "Acme Corp",
"description": "Fixing the header",
"duration_hours": 0.0,
"duration_seconds": 0,
"duration_text": "0:00:00",
"end": null,
"id": 4012345701,
"project_id": 201234567,
"project_name": "Website redesign",
"running": true,
"start": "2026-09-25T15:00:00Z",
"tags": [
"writing"
],
"workspace_id": 7654321
}
}Stop timer
Stop the timer that's running. If none is, nothing changes.
Inputs
None.
Outputs
stoppedtrue/false- True when a timer was running and is now stopped; false when none was running.
time_entryobject- The time entry that was stopped, or null when none was running.
Example output
{
"stopped": true,
"time_entry": {
"billable": false,
"client_name": "Acme Corp",
"description": "Fixing the header",
"duration_hours": 0.75,
"duration_seconds": 2712,
"duration_text": "0:45:12",
"end": "2026-09-25T15:00:00Z",
"id": 4012345604,
"project_id": 201234567,
"project_name": "Website redesign",
"running": false,
"start": "2026-09-25T14:14:48Z",
"tags": [],
"workspace_id": 7654321
}
}Update project
Rename a project, change its client, or archive or restore it. Only what you fill in changes.
Inputs
- Project
project_idtextRequired - The project to change.
- New name
nametext - A new name for the project.
- Client
client_idtext - The client the project is for from now on.
- Archived
archivedtrue/false - Yes archives the project, so no new time goes to it. No restores it.
Outputs
projectobject- The project, as it is now.
Example output
{
"project": {
"archived": false,
"client_id": 61234568,
"client_name": "Globex",
"id": 201234569,
"name": "Old brochure",
"workspace_id": 7654321
}
}Update time entry
Change a time entry's description, project, times, tags or billable status. Only what you fill in changes.
Inputs
- Time entry
time_entry_idtextRequired - The time entry's ID, from an earlier step such as Start timer, Create time entry or List time entries.
- Description
descriptiontext - What the time is for, as it shows in Toggl Track.
- Project
project_idtext - The project the time belongs to.
- Start
startdate and time - A new start time.
- End
enddate and time - A new end time. Giving a running timer an end stops it.
- Add tags
add_tagslist - Tags to add. The entry keeps the tags it has.
- Billable
billabletrue/false - Whether the time is billable. Billable time needs a paid Toggl Track plan.
Outputs
time_entryobject- The time entry, as it is after the change.
Example output
{
"time_entry": {
"billable": false,
"client_name": "Acme Corp",
"description": "Kickoff call with Acme",
"duration_hours": 1.5,
"duration_seconds": 5400,
"duration_text": "1:30:00",
"end": "2026-09-25T10:30:00Z",
"id": 4012345601,
"project_id": 201234567,
"project_name": "Website redesign",
"running": false,
"start": "2026-09-25T09:00:00Z",
"tags": [
"meetings",
"invoiced"
],
"workspace_id": 7654321
}
}