Toggle Sidebar

TrackingTime API

The TrackingTime API allows you to integrate our features and your account data into your own applications. If you build something awesome with our API, find any issues or have any questions, please let us know.

Available Endpoints

Here's an overview of all resources and endpoints which are currently available in the TrackingTime API.

Endpoint URL Path Description
Customers /customers Retrieve and edit your customers.
Services /services Retrieve and edit your services.
Users /users Edit user profiles and invite people to join TrackingTime.
Teams /teams Retrieve and manage user teams.
Projects /projects Retrieve and edit your projects.
Task Lists /projects/:project_id/task_lists Retrieve and edit task lists within a certain project.
Tasks /tasks Retrieve and edit your tasks, task comments and to-dos.
Time Tracking /tasks Track time and sync time entries on-the-fly.
Timesheets /timesheets Manage timesheets to process billing, invoicing or payroll.
Time Entries /events Retrieve and edit your time entries.
Notifications /notifications Retrieve system notifications and mark them as read.
Dashboard Stats /dashboard Retrieve dashboard stats.
Reports /reports Create advanced reports through the API.
Webhooks /webhooks Create incoming and outgoing webhooks.
Bookmarks /bookmarks Save custom reports for easy future reference.

Making a Request

All request URLs start with this base URL. Requests must be sent via SSL. The path is prefixed with the API version. If we change the API in backward-incompatible ways, we'll bump the version marker and maintain stable support for the old URLs.

https://app.trackingtime.co/api/v3/

To list all your company tasks, you'd append the tasks' endpoint path to the base url to get this:

https://app.trackingtime.co/api/v3/tasks

Important: Since we added multi-account support, you must now include the account id of one of the user's teams in the endpoint path to retrieve the data associated to that account.

https://app.trackingtime.co/api/v3/:account_id/:endpoint_path, e.g.
https://app.trackingtime.co/api/v3/12345/tasks

You can retrieve all the teams you belong to using the Teams endpoints. If you don't specify an account id, the id of the original account will be used.

Authentication

To hit the ground running with the API, you can use HTTP Basic Authentication with your own email and password. You can provide your Bearer Token as your password. This is secure since all requests use SSL.

curl -u username:password https://app.trackingtime.co/api/v3/tasks

If you enter that URL in your browser you'll be asked to provide your user credentials.

Identifying your App

Your requests must include a User-Agent header with the name of your application and a link to your website or your email address so that we can reach out to you. You might also want to include your app's version.

User-Agent: 'MyApp, Inc. (http://myapp.com/contact)'

User-Agent: 'MyApp v1.2 (email@yourapp.com)'
                
curl -u username:password -H User-Agent: 'MyApp (yourname@example.com)' https://app.trackingtime.co/api/v3/tasks

Standard JSON Response

All API endpoints return a JSON object of this form:

{"response":{"status":200,"message":"Request completed successfully"},"data":{}}

The tasks endpoint will return something like this:

{"response":{"status":200,"message":"Request completed successfully"},"data":[
  {
    "name": "Management",
    "project_id": 5348,
    "project": "Tracking Time v2",
    "priority": 0,
    "estimated_time": 900.0,
    "accumulated_time": 708869,
    "is_archived": false,
    "start_date": "2013-07-19 13:21:16",
    "end_date": null,
    "due_date": null  
    },
...
}

If an error occurs the response status will be set to 500 and you'll get an error description in the response message. Callers should always check the value of the status parameter in the response.

{"response":{"status":500,"message":"There is already another client with the same name."},"data":{}}

Please refer to our API guidelines to know more about our response codes, the standards we're using and more.