Create a client
Type: object
{
"client" : {
"wid" : "workspace ID",
"notes" : "notes for the client",
"at" : "timestamp that is sent in the response",
"name" : "name of the client"
}
}
Create a group
Type: object
{
"group" : {
"wid" : "workspace ID",
"at" : "timestamp that is sent in the response",
"name" : "name of the group"
}
}
Create a project
Type: object
{
"project" : {
"is_private" : "whether project is accessible for only project users or for all workspace users",
"template" : "whether the project can be used as a template",
"color" : "id of the color selected for the project",
"active" : "whether the project is archived or not",
"billable" : "whether the project is billable or not, available only for pro workspaces",
"auto_estimates" : "whether the estimated hours are automatically calculated based on task estimations or manually fixed based on the value of 'estimated_hours', premium functionality",
"wid" : "workspace ID",
"at" : "timestamp indicating when the project was created (UTC time), read-only",
"rate" : "hourly rate of the project, premium functionality",
"name" : "name of the project",
"estimated_hours" : "if auto_estimates is true then the sum of task estimations is returned, otherwise user inserted hours, premium functionality",
"template_id" : "id of the template project used on current project's creation",
"cid" : "client ID"
}
}
Create tag
Type: object
{
"tag" : {
"wid" : "workspace ID, where the tag will be used",
"name" : "The name of the tag, unique in workspace"
}
}
Create a task
Type: object
{
"task" : {
"uid" : "user ID, to whom the task is assigned to",
"wid" : "workspace ID",
"at" : "timestamp that is sent in the response for PUT, indicates the time task was last updated",
"estimated_seconds" : "estimated duration of task in seconds",
"name" : "The name of the task",
"active" : "whether the task is done or not",
"pid" : "project ID for the task",
"tracked_seconds" : "total time tracked (in seconds) for the task"
}
}
Create a time entry
Type: object
{
"time_entry" : {
"duration" : "time entry duration in seconds. If the time entry is currently running, the duration attribute contains a negative value, denoting the start of the time entry in seconds since epoch (Jan 1 1970). The correct duration can be calculated as current_time + duration, where current_time is the current time in seconds since epoch.",
"wid" : "workspace ID",
"at" : "timestamp that is sent in the response, indicates the time item was last updated",
"stop" : "time entry stop time, ISO 8601 date and time",
"start" : "time entry start time, ISO 8601 date and time",
"description" : "description",
"pid" : "project ID",
"created_with" : "the name of your client app",
"billable" : "available for pro workspaces",
"duronly" : "should Toggl show the start and stop time of this time entry?",
"tid" : "task ID",
"tags" : [ "string" ]
}
}
Create a project user. To create multiple project users for a single project, you must add multiple user ids separated with a comma with the uid parameter.
Type: object
{
"project_user" : {
"uid" : { },
"wid" : "workspace ID",
"at" : "timestamp that is sent in the response, indicates when the project user was last updated",
"manager" : "admin rights for this project",
"rate" : "hourly rate for the project user (only for pro workspaces) in the currency of the project's client or in workspace default currency.",
"pid" : "project ID",
"fields" : "fullname: full name of the user, who is added to the project"
}
}
Delete a client
Delete a group
Delete multiple projects
Delete multiple project users
Delete a project
Delete a tag
Delete a task
Delete a time entry
Delete a project user
Delete workspace user.
Get client details
Get current user data
retrieve objects which have changed after certain time. The value should be a unix timestamp.
Type: string
whether to get all the workspaces, clients, projects, tasks, time entries and tags which the user can see
Type: boolean
Get dashboard data. Dashboard's main purpose is to give an overview of what users in the workspace are doing and have been doing.
The detailed report returns the time entries for the requested parameters/filters.
The name of your application or your email address so we can get in touch in case you're doing something wrong.
Type: string
The workspace whose data you want to access.
Type: integer
Type: string
Potential values: yes, no, both
A list of client IDs separated by a comma. Use "0" if you want to filter out time entries without a client.
Type: object
{ }
Matches against time entry descriptions.
Type: string
Determines whether to display hours as a decimal number or with minutes.
Type: string
Potential values: decimal, minutes
Type: string
Potential values: on, off
A list of group IDs separated by a comma. This limits provided user_ids to the members of the given groups.
Type: array
[ "group ID" ]
A list of group IDs separated by a comma. This extends provided user_ids with the members of the given groups.
Type: array
[ "GroupId" ]
"on" for descending, or "off" for ascending order.
Type: string
Potential values: on, off
Type: string
Potential values: date, description, duration, user
Type: integer
A list of project IDs separated by a comma. Use "0" if you want to filter out time entries without a project.
Type: object
{ }
Rounds time according to workspace settings.
Type: string
Potential values: on, off
ISO 8601 date (YYYY-MM-DD) format. Defaults to today - 6 days.
Type: string
A list of tag IDs separated by a comma. Use "0" if you want to filter out time entries without a tag.
Type: object
{ }
A list of task IDs separated by a comma. Use "0" if you want to filter out time entries without a task.
Type: object
{ }
A list of time entry IDs separated by a comma.
Type: array
[ "GroupId" ]
ISO 8601 date (YYYY-MM-DD) format. Note: Maximum date span (until - since) is one year. Defaults to today, unless since is in future or more than year ago, in this case until is since + 6 days.
Type: string
A list of user IDs separated by a comma.
Type: array
[ "user ID" ]
Filters out the time entries which do not have a description (literally "(no description)").
Type: boolean
Get project data
Get workspace project users
Get client projects
client ID
Type: integer
By default true. If false, only archived projects are returned.
Type: string
Potential values: true, false, both
This operation has no parameters
Summary report returns the aggregated time entries data. time entries for the requested
The name of your application or your email address so we can get in touch in case you're doing something wrong.
Type: string
The workspace whose data you want to access.
Type: integer
Type: string
Potential values: yes, no, both
A list of client IDs separated by a comma. Use "0" if you want to filter out time entries without a client.
Type: object
{ }
Matches against time entry descriptions.
Type: string
Determines whether to display hours as a decimal number or with minutes.
Type: string
Potential values: decimal, minutes
Type: string
Potential values: on, off
Type: boolean
Type: string
Potential values: projects, clients, users
A list of group IDs separated by a comma. This limits provided user_ids to the members of the given groups.
Type: array
[ "group ID" ]
A list of group IDs separated by a comma. This extends provided user_ids with the members of the given groups.
Type: array
[ "GroupId" ]
"on" for descending, or "off" for ascending order.
Type: string
Potential values: on, off
Type: string
Potential values: title, duration, amount
A list of project IDs separated by a comma. Use "0" if you want to filter out time entries without a project.
Type: object
{ }
Rounds time according to workspace settings.
Type: string
Potential values: on, off
ISO 8601 date (YYYY-MM-DD) format. Defaults to today - 6 days.
Type: string
Type: string
Potential values: time_entries, tasks, users, projects, clients
Type: boolean
A list of tag IDs separated by a comma. Use "0" if you want to filter out time entries without a tag.
Type: object
{ }
A list of task IDs separated by a comma. Use "0" if you want to filter out time entries without a task.
Type: object
{ }
A list of time entry IDs separated by a comma.
Type: array
[ "GroupId" ]
ISO 8601 date (YYYY-MM-DD) format. Note: Maximum date span (until - since) is one year. Defaults to today, unless since is in future or more than year ago, in this case until is since + 6 days.
Type: string
A list of user IDs separated by a comma.
Type: array
[ "user ID" ]
Filters out the time entries which do not have a description (literally "(no description)").
Type: boolean
Get task details
Get time entry details
The weekly report gives aggregated 7 day durations or earnings grouped by users and projects.
The name of your application or your email address so we can get in touch in case you're doing something wrong.
Type: string
The workspace whose data you want to access.
Type: integer
Type: string
Potential values: yes, no, both
Type: string
Potential values: time, earnings
A list of client IDs separated by a comma. Use "0" if you want to filter out time entries without a client.
Type: object
{ }
Matches against time entry descriptions.
Type: string
Determines whether to display hours as a decimal number or with minutes.
Type: string
Potential values: decimal, minutes
Type: string
Potential values: on, off
Type: string
Potential values: users, projects
A list of group IDs separated by a comma. This limits provided user_ids to the members of the given groups.
Type: array
[ "group ID" ]
A list of group IDs separated by a comma. This extends provided user_ids with the members of the given groups.
Type: array
[ "GroupId" ]
"on" for descending, or "off" for ascending order.
Type: string
Potential values: on, off
Type: string
Potential values: title, day1, day2, day3, day4, day5, day6, day7, week_total
A list of project IDs separated by a comma. Use "0" if you want to filter out time entries without a project.
Type: object
{ }
Rounds time according to workspace settings.
Type: string
Potential values: on, off
ISO 8601 date (YYYY-MM-DD) format. Defaults to today - 6 days.
Type: string
A list of tag IDs separated by a comma. Use "0" if you want to filter out time entries without a tag.
Type: object
{ }
A list of task IDs separated by a comma. Use "0" if you want to filter out time entries without a task.
Type: object
{ }
A list of time entry IDs separated by a comma.
Type: array
[ "GroupId" ]
A list of user IDs separated by a comma.
Type: array
[ "user ID" ]
Filters out the time entries which do not have a description (literally "(no description)").
Type: boolean
Get single workspace
Invite users to workspace
workspace ID
Type: integer
Type: object
{
"emails" : [ "string" ]
}
This operation has no parameters
Get workspace clients
Get workspace groups
Get workspace projects
Get workspace tags
List project tasks
Get workspace tasks
Get time entries started in a specific time range. Default is last 9 days.
List project users
Get workspace users
Get workspace users. This request returns not the user objects, but the workspace_user objects (the connection between user and workspace)
This operation has no parameters
This operation has no parameters
Sign up new user
Type: object
{
"user" : {
"image_url" : "url with the user's profile picture",
"timezone" : "timezone user has set on the \"My profile\" page ( IANA TZ timezones )",
"api_token" : "API token",
"timeofday_format" : "string",
"beginning_of_week" : "(integer 0-6, Sunday=0)",
"jquery_date_format" : "string",
"send_weekly_report" : "if user receives weekly report",
"language" : "user's language",
"default_wid" : "default workspace id",
"store_start_and_stop_time" : "whether start and stop time are saved on time entry",
"password" : "password at least 6 characters long",
"at" : "timestamp of last changes",
"new_blog_post" : { },
"openid_enabled" : "google signin enabled",
"jquery_timeofday_format" : "string",
"date_format" : "string",
"send_timer_notifications" : "email user about long-running (more than 8 hours) tasks",
"fullname" : "Full name of user",
"email" : "Email address",
"sidebar_piechart" : "should a piechart be shown on the sidebar",
"send_product_emails" : "Toggl can send newsletters over e-mail to the user",
"current_password" : "password at least 6 characters long"
}
}
Start a time entry
Type: object
{
"time_entry" : {
"duration" : "time entry duration in seconds. If the time entry is currently running, the duration attribute contains a negative value, denoting the start of the time entry in seconds since epoch (Jan 1 1970). The correct duration can be calculated as current_time + duration, where current_time is the current time in seconds since epoch.",
"wid" : "workspace ID",
"at" : "timestamp that is sent in the response, indicates the time item was last updated",
"stop" : "time entry stop time, ISO 8601 date and time",
"start" : "time entry start time, ISO 8601 date and time",
"description" : "description",
"pid" : "project ID",
"created_with" : "the name of your client app",
"billable" : "available for pro workspaces",
"duronly" : "should Toggl show the start and stop time of this time entry?",
"tid" : "task ID",
"tags" : [ "string" ]
}
}
Stop a time entry
Update a client
client ID
Type: integer
Type: object
{
"client" : {
"wid" : "workspace ID",
"notes" : "notes for the client",
"at" : "timestamp that is sent in the response",
"name" : "name of the client"
}
}
Update a group
group ID
Type: integer
Type: object
{
"group" : {
"wid" : "workspace ID",
"at" : "timestamp that is sent in the response",
"name" : "name of the group"
}
}
Update multiple project users
multiple project user IDs
Type: array
[ "project user ID" ]
Type: object
{
"project_user" : {
"uid" : { },
"wid" : "workspace ID",
"at" : "timestamp that is sent in the response, indicates when the project user was last updated",
"manager" : "admin rights for this project",
"rate" : "hourly rate for the project user (only for pro workspaces) in the currency of the project's client or in workspace default currency.",
"pid" : "project ID",
"fields" : "fullname: full name of the user, who is added to the project"
}
}
Update project data
project ID
Type: integer
Type: object
{
"project" : {
"is_private" : "whether project is accessible for only project users or for all workspace users",
"template" : "whether the project can be used as a template",
"color" : "id of the color selected for the project",
"active" : "whether the project is archived or not",
"billable" : "whether the project is billable or not, available only for pro workspaces",
"auto_estimates" : "whether the estimated hours are automatically calculated based on task estimations or manually fixed based on the value of 'estimated_hours', premium functionality",
"wid" : "workspace ID",
"at" : "timestamp indicating when the project was created (UTC time), read-only",
"rate" : "hourly rate of the project, premium functionality",
"name" : "name of the project",
"estimated_hours" : "if auto_estimates is true then the sum of task estimations is returned, otherwise user inserted hours, premium functionality",
"template_id" : "id of the template project used on current project's creation",
"cid" : "client ID"
}
}
Update a tag
tag ID
Type: integer
Type: object
{
"tag" : {
"wid" : "workspace ID, where the tag will be used",
"name" : "The name of the tag, unique in workspace"
}
}
Update one or more tasks
multiple task IDs
Type: object
{ }
Type: object
{
"task" : {
"uid" : "user ID, to whom the task is assigned to",
"wid" : "workspace ID",
"at" : "timestamp that is sent in the response for PUT, indicates the time task was last updated",
"estimated_seconds" : "estimated duration of task in seconds",
"name" : "The name of the task",
"active" : "whether the task is done or not",
"pid" : "project ID for the task",
"tracked_seconds" : "total time tracked (in seconds) for the task"
}
}
Update a time entry (or multiple time entries)
one or more time entry IDs
Type: object
{ }
Type: object
{
"time_entry" : {
"duration" : "time entry duration in seconds. If the time entry is currently running, the duration attribute contains a negative value, denoting the start of the time entry in seconds since epoch (Jan 1 1970). The correct duration can be calculated as current_time + duration, where current_time is the current time in seconds since epoch.",
"wid" : "workspace ID",
"at" : "timestamp that is sent in the response, indicates the time item was last updated",
"stop" : "time entry stop time, ISO 8601 date and time",
"start" : "time entry start time, ISO 8601 date and time",
"description" : "description",
"pid" : "project ID",
"created_with" : "the name of your client app",
"billable" : "available for pro workspaces",
"duronly" : "should Toggl show the start and stop time of this time entry?",
"tid" : "task ID",
"tags" : [ "string" ]
}
}
Update user data
Type: object
{
"user" : {
"image_url" : "url with the user's profile picture",
"timezone" : "timezone user has set on the \"My profile\" page ( IANA TZ timezones )",
"api_token" : "API token",
"timeofday_format" : "string",
"beginning_of_week" : "(integer 0-6, Sunday=0)",
"jquery_date_format" : "string",
"send_weekly_report" : "if user receives weekly report",
"language" : "user's language",
"default_wid" : "default workspace id",
"store_start_and_stop_time" : "whether start and stop time are saved on time entry",
"password" : "password at least 6 characters long",
"at" : "timestamp of last changes",
"new_blog_post" : { },
"openid_enabled" : "google signin enabled",
"jquery_timeofday_format" : "string",
"date_format" : "string",
"send_timer_notifications" : "email user about long-running (more than 8 hours) tasks",
"fullname" : "Full name of user",
"email" : "Email address",
"sidebar_piechart" : "should a piechart be shown on the sidebar",
"send_product_emails" : "Toggl can send newsletters over e-mail to the user",
"current_password" : "password at least 6 characters long"
}
}
Update a project user
project user ID
Type: integer
Type: object
{
"project_user" : {
"uid" : { },
"wid" : "workspace ID",
"at" : "timestamp that is sent in the response, indicates when the project user was last updated",
"manager" : "admin rights for this project",
"rate" : "hourly rate for the project user (only for pro workspaces) in the currency of the project's client or in workspace default currency.",
"pid" : "project ID",
"fields" : "fullname: full name of the user, who is added to the project"
}
}
Update workspace
workspace ID
Type: integer
Type: object
{
"workspace" : {
"premium" : "If it's a pro workspace or not. Shows if someone is paying for the workspace or not",
"at" : "timestamp that indicates the time workspace was last updated",
"only_admins_may_create_projects" : "whether only the admins can create projects or everybody",
"logo_url" : "URL pointing to the logo (if set, otherwise omitted)",
"rounding_minutes" : "round up to nearest minute",
"name" : "the name of the workspace",
"admin" : "shows whether currently requesting user has admin access to the workspace",
"rounding" : "type of rounding: -1 = round down, 0 = nearest, 1 = round up",
"only_admins_see_billable_rates" : "whether only the admins can see billable rates or everybody",
"default_hourly_rate" : "default hourly rate for workspace, won't be shown to non-admins if the only_admins_see_billable_rates flag is set to true",
"default_currency" : "default currency for workspace"
}
}
Update workspace user. Only the admin flag can be changed.
workspace user ID
Type: integer
Type: object
{
"workspace_user" : {
"uid" : "user id of the workspace user",
"invite_url" : "if user has not accepted the invitation the url for accepting his/her invitation is sent when the request is made by workspace_admin",
"admin" : "if user is workspace admin",
"active" : "if the workspace user has accepted the invitation to this workspace",
"id" : "workspace user id"
}
}