NAV Navbar
cURL

Introduction

Welcome! Timely API helps you integrate your application with Timely. Following are the list of API’s available. For any help or support email [email protected]

Authentication

OAuth2 Authentication: http://tools.ietf.org/html/rfc6749

Create a OAuth Application (only available to the Admin User): https://timelyapp.com/:account_id/oauth_applications

Enter your application name and the redirect_url to your application.

Acquire the Application Id and Secret.

Base URL for all API's is: https://api.timelyapp.com/1.1

Authorization

OAuth Code

Example Request: (try this in web browser)
https://api.timelyapp.com/1.1/oauth/authorize?response_type=code
&redirect_uri=your_redirect_uri&client_id=your_client_id

Users are redirected to request their Timely identity.

HTTP Request

GET /oauth/authorize

Compulsory Parameters

Parameter Description
response_type code
redirect_uri http://your-redirect-url/
client_id your_application_id

If the user accepts your request, Timely will redirect back with the code parameter, which you need to use to get the token.

OAuth Token

Example Request:
curl -X POST --data "redirect_uri=https://your-redirect_url/&code=your_response_code
&client_id=application_id&client_secret=application_secret&grant_type=authorization_code"
https://api.timelyapp.com/1.1/oauth/token
{
  "access_token":"1886f011cd72eabc88d087eabd741b51a9059f5ba57c7bc439285fe86a4e465a",
  "token_type":"bearer",
  "refresh_token":"9db4d1a5d87c707b8125d8f93ad08091fb3ff8b93be901dbeaba968cf532ed9b"
}
200 OK

Users are redirected to request their Timely identity.

HTTP Request

POST /oauth/token

Compulsory Parameters

Parameter Description
redirect_uri http://your-redirect-url/
code your_response_code
client_id your_application_id
client_secret your_application_secret
grant_type authorization_code

The response will be a token with a refresh token. Use the token to use the following API.

Use Timely API to integrate with your apps

Timely API helps you integrate your application with Timely. Following are the list of API’s available. For any help or support email [email protected]

Accounts

List all account

Returns all accounts created within one email address.

Request

curl -g "https://api.timelyapp.com/1.1/accounts" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 7864ed478a4c072da0340e7f071009894fd00024fae49f5508201ad8135783e3" \
    -H "Cookie: "

Endpoint

GET /1.1/accounts

GET /1.1/accounts
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7864ed478a4c072da0340e7f071009894fd00024fae49f5508201ad8135783e3

Parameters

None known.

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 24573,
    "name": "Timely",
    "from": "Web",
    "max_users": 0,
    "max_projects": 0,
    "num_users": 1,
    "num_projects": 0,
    "plan_id": 1,
    "plan_name": "Free",
    "next_charge": "2019-04-10",
    "currency": {
      "id": "usd",
      "name": "United States Dollar",
      "iso_code": "USD",
      "symbol": "$",
      "symbol_first": true
    },
    "start_of_week": 0,
    "beta": false,
    "created_at": 1552304537,
    "payment_mode": "web",
    "paid": true,
    "company_size": "10-49",
    "color": "44505e",
    "logo": {
      "large_retina": "/assets/account_thumbs/account_large_retina.png",
      "medium_retina": "/assets/account_thumbs/account_medium_retina.png",
      "small_retina": "/assets/account_thumbs/account_small_retina.png"
    },
    "capacity": {
      "hours": 40.0,
      "minutes": 0.0,
      "seconds": 0.0,
      "formatted": "40:00",
      "total_hours": 40.0,
      "total_seconds": 144000.0,
      "total_minutes": 2400.0
    },
    "plan_code": "free",
    "appstore_transaction_id": null,
    "expired": false,
    "trial": false,
    "days_to_end_trial": 0,
    "features": [
      {
        "name": "memories",
        "days": 365
      },
      {
        "name": "billing",
        "days": -1
      },
      {
        "name": "control",
        "days": -1
      },
      {
        "name": "project_labels",
        "days": -1
      },
      {
        "name": "teams",
        "days": -1
      },
      {
        "name": "recurring_budget",
        "days": -1
      }
    ]
  }
]

Retrieve an account

Returns one account object related to one company and one subscription plan.

Request

curl -g "https://api.timelyapp.com/1.1/accounts/24572" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer d1a8a730596c54680b62bc5709d5433b4636efb6589f155a804275d3044e37aa" \
    -H "Cookie: "

Endpoint

GET /1.1/accounts/:id

GET /1.1/accounts/24572
Accept: application/json
Content-Type: application/json
Authorization: Bearer d1a8a730596c54680b62bc5709d5433b4636efb6589f155a804275d3044e37aa

Parameters

Name Description
id The id of the account to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 24572,
  "name": "Timely",
  "from": "Web",
  "max_users": 0,
  "max_projects": 0,
  "num_users": 1,
  "num_projects": 0,
  "plan_id": 1,
  "plan_name": "Free",
  "next_charge": "2019-04-10",
  "currency": {
    "id": "usd",
    "name": "United States Dollar",
    "iso_code": "USD",
    "symbol": "$",
    "symbol_first": true
  },
  "start_of_week": 0,
  "beta": false,
  "created_at": 1552304537,
  "payment_mode": "web",
  "paid": true,
  "company_size": "10-49",
  "color": "44505e",
  "logo": {
    "large_retina": "/assets/account_thumbs/account_large_retina.png",
    "medium_retina": "/assets/account_thumbs/account_medium_retina.png",
    "small_retina": "/assets/account_thumbs/account_small_retina.png"
  },
  "capacity": {
    "hours": 40.0,
    "minutes": 0.0,
    "seconds": 0.0,
    "formatted": "40:00",
    "total_hours": 40.0,
    "total_seconds": 144000.0,
    "total_minutes": 2400.0
  },
  "plan_code": "free",
  "appstore_transaction_id": null,
  "expired": false,
  "trial": false,
  "days_to_end_trial": 0,
  "features": [
    {
      "name": "memories",
      "days": 365
    },
    {
      "name": "billing",
      "days": -1
    },
    {
      "name": "control",
      "days": -1
    },
    {
      "name": "project_labels",
      "days": -1
    },
    {
      "name": "teams",
      "days": -1
    },
    {
      "name": "recurring_budget",
      "days": -1
    }
  ]
}

Retrieve the activities

This endpoint shows you all activities done by you and/or the members that you have permission to see upon, such as: logging hours, create a report, share a report and similar activities.

Request

curl -g "https://api.timelyapp.com/1.1/24571/activities" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 1351726b920b9b3f97280f9065a08f3586b0d7e49186e925e21a7a54715ea4da" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/activities

GET /1.1/24571/activities
Accept: application/json
Content-Type: application/json
Authorization: Bearer 1351726b920b9b3f97280f9065a08f3586b0d7e49186e925e21a7a54715ea4da

Parameters

Name Description
account_id The id of the account to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
[

]

Clients

A client can be a company which user works for. User can have multiple companies/clients.

Create a client

This api allows you to create a client for an account.

Request

curl "https://api.timelyapp.com/1.1/24590/clients" -d '{"client":{"name":"Timely","active":true}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer b472550ecdcf132d02a5cbf53568d7ac127673e8425f27ea57aedd0a868d0912" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/clients

POST /1.1/24590/clients
Accept: application/json
Content-Type: application/json
Authorization: Bearer b472550ecdcf132d02a5cbf53568d7ac127673e8425f27ea57aedd0a868d0912

Parameters

{"client":{"name":"Timely","active":true}}
Name Description
name required Specifies the client name
active Change the client state to archived if set to true. Example values: true or false
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 15515,
  "name": "Timely",
  "active": true,
  "external_id": null,
  "updated_at": "2019-03-11T12:42:22+01:00"
}

List all clients

This api will return the list of all clients details created for one account.

NOTE: Client list will return recently updated 10 clients.

Request

curl -g "https://api.timelyapp.com/1.1/24591/clients" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer e476660b2e903f8e3325d4b906c96e45b8e728fdb3d5e0eead3da242586657b2" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/clients

GET /1.1/24591/clients
Accept: application/json
Content-Type: application/json
Authorization: Bearer e476660b2e903f8e3325d4b906c96e45b8e728fdb3d5e0eead3da242586657b2

Parameters

Name Description
account_id Account id for which clients to be retrieved
show Specifies which records to retrieve, default is current accounts active clients (show=active). Example: "show=all" or "show=active" or "show=archived"

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 15516,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-03-11T12:42:22+01:00"
  }
]

Update a client

Using a client's id one can update client details.

Request

curl "https://api.timelyapp.com/1.1/24592/clients/15517" -d '{"client":{"name":"Updated name","active":true}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer e12b3b3bfb8407f5af75899a9c5874a06814c9e408d78dc253427c478a6b0c92" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/clients/:id

PUT /1.1/24592/clients/15517
Accept: application/json
Content-Type: application/json
Authorization: Bearer e12b3b3bfb8407f5af75899a9c5874a06814c9e408d78dc253427c478a6b0c92

Parameters

{"client":{"name":"Updated name","active":true}}
Name Description
id required Client id
name required Specifies the client name
active Change the client state to archived if set to true. Example values: true or false
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 15517,
  "name": "Updated name",
  "active": true,
  "external_id": null,
  "updated_at": "2019-03-11T12:42:23+01:00"
}

Events

Evens represent all entries made by user. A user can add, delete and edit all entries. Limited users might have less privileges.

Create an event

Logged in user creating an event for self.

Note: By default the event is created for user’s last hour project or the first active project.

Request

curl "https://api.timelyapp.com/1.1/24609/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-11T12:42:27.890+01:00","to":"2019-03-11T16:12:27.890+01:00","day":"2019-03-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-11T12:42:27.890+01:00","uid":"947bdd9f-1c41-4601-b660-2f35eb49f905","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":20433}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 516934655d36f28874e8d3e7b4f823b60aa44ccc3b78f222a38b5fac2b219cdc" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/events

POST /1.1/24609/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 516934655d36f28874e8d3e7b4f823b60aa44ccc3b78f222a38b5fac2b219cdc

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-11T12:42:27.890+01:00","to":"2019-03-11T16:12:27.890+01:00","day":"2019-03-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-11T12:42:27.890+01:00","uid":"947bdd9f-1c41-4601-b660-2f35eb49f905","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":20433}}
Name Description
day required Event day
hours required Event hours
minutes required Event minutes
estimated_minutes Specifies the event estimated minutes. Example Values: 0-60
estimated_hours Specifies the event estimated hours. Example Values: 0-12
note Specifies the event notes.
from Specifies the from time. Example Values: from: "2017-05-26T10:00:00+05:30"
to Specifies the to time. Example Values: to: "2017-05-26T12:00:00+05:30"
label_ids Specifies the label ids. Example Values: label_ids:[2,3,4]
project_id Specifies the project id
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
201 Created
{
  "id": 21258,
  "uid": "",
  "user": {
    "id": 57966,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "avatar": {
      "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
      "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
    },
    "updated_at": "2019-03-11T12:42:27+01:00"
  },
  "project": {
    "id": 20433,
    "active": true,
    "account_id": 24609,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1552304547,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 15523,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-11T12:42:27+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 3,
    "minutes": 30,
    "seconds": 0,
    "formatted": "03:30",
    "total_hours": 3.5,
    "total_seconds": 12600,
    "total_minutes": 210
  },
  "estimated_duration": {
    "hours": 4,
    "minutes": 0,
    "seconds": 0,
    "formatted": "04:00",
    "total_hours": 4.0,
    "total_seconds": 14400,
    "total_minutes": 240
  },
  "cost": {
    "fractional": 17500,
    "formatted": "$175.00",
    "amount": 175.0
  },
  "estimated_cost": {
    "fractional": 20000,
    "formatted": "$200.00",
    "amount": 200.0
  },
  "day": "2019-03-11",
  "note": "Notes for testing with some random #hash in it.",
  "sequence": 1,
  "estimated": false,
  "timer_state": "default",
  "timer_started_on": 0,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1552304547,
  "created_at": 1552304547,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-11T16:12:27+01:00",
  "from": "2019-03-11T12:42:27+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 57966,
  "updater_id": 57966,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Create an event for a project

Note: Normal user can add hours to existing projects from account. Limited user can add hours to only his projects.

Request

curl "https://api.timelyapp.com/1.1/24608/projects/20432/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-11T12:42:27.611+01:00","to":"2019-03-11T16:12:27.611+01:00","day":"2019-03-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-11T12:42:27.611+01:00","uid":"863e0abc-e2ec-4126-911e-50a567516121","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":20432}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 20facd4f18b026edafa54551a96bc1d8f4e45552a38fed5ff998f063c545b6ef" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/projects/:project_id/events

POST /1.1/24608/projects/20432/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 20facd4f18b026edafa54551a96bc1d8f4e45552a38fed5ff998f063c545b6ef

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-11T12:42:27.611+01:00","to":"2019-03-11T16:12:27.611+01:00","day":"2019-03-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-11T12:42:27.611+01:00","uid":"863e0abc-e2ec-4126-911e-50a567516121","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":20432}}
Name Description
day required Event day
hours required Event hours
minutes required Event minutes
project_id required The numerical ID of the desired project. Example Values: 123

Response

Content-Type: application/json; charset=utf-8
201 Created
{
  "id": 21257,
  "uid": "",
  "user": {
    "id": 57964,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "avatar": {
      "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
      "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
    },
    "updated_at": "2019-03-11T12:42:27+01:00"
  },
  "project": {
    "id": 20432,
    "active": true,
    "account_id": 24608,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1552304547,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 15522,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-11T12:42:27+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 3,
    "minutes": 30,
    "seconds": 0,
    "formatted": "03:30",
    "total_hours": 3.5,
    "total_seconds": 12600,
    "total_minutes": 210
  },
  "estimated_duration": {
    "hours": 4,
    "minutes": 0,
    "seconds": 0,
    "formatted": "04:00",
    "total_hours": 4.0,
    "total_seconds": 14400,
    "total_minutes": 240
  },
  "cost": {
    "fractional": 17500,
    "formatted": "$175.00",
    "amount": 175.0
  },
  "estimated_cost": {
    "fractional": 20000,
    "formatted": "$200.00",
    "amount": 200.0
  },
  "day": "2019-03-11",
  "note": "Notes for testing with some random #hash in it.",
  "sequence": 1,
  "estimated": false,
  "timer_state": "default",
  "timer_started_on": 0,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1552304547,
  "created_at": 1552304547,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-11T16:12:27+01:00",
  "from": "2019-03-11T12:42:27+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 57964,
  "updater_id": 57964,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Create an event for another user

Note: Normal user can add hours for any user. If project_id is not provided, the event is created for user’s last hour project or the first active project.

Request

curl "https://api.timelyapp.com/1.1/24607/users/57962/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-11T12:42:27.183+01:00","to":"2019-03-11T16:12:27.183+01:00","day":"2019-03-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-11T12:42:27.184+01:00","uid":"0fd7bb60-2951-44d0-b820-f20aab1dc400","timer_state":0,"created_from":"Web","updated_from":"Web","user_id":57962}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 114c0c88eca0659767342a8c011e9f59972e7d72ad88592f2ff67466b06d41d8" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/users/:user_id/events

POST /1.1/24607/users/57962/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 114c0c88eca0659767342a8c011e9f59972e7d72ad88592f2ff67466b06d41d8

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-11T12:42:27.183+01:00","to":"2019-03-11T16:12:27.183+01:00","day":"2019-03-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-11T12:42:27.184+01:00","uid":"0fd7bb60-2951-44d0-b820-f20aab1dc400","timer_state":0,"created_from":"Web","updated_from":"Web","user_id":57962}}
Name Description
day required Event day
hours required Event hours
minutes required Event minutes
user_id required The numerical ID of the desired user. Example Values: 123

Response

Content-Type: application/json; charset=utf-8
201 Created
{
  "id": 21256,
  "uid": "",
  "user": {
    "id": 57962,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "avatar": {
      "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
      "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
    },
    "updated_at": "2019-03-11T12:42:27+01:00"
  },
  "project": {
    "id": 20431,
    "active": true,
    "account_id": 24607,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1552304547,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 15521,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-11T12:42:27+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 3,
    "minutes": 30,
    "seconds": 0,
    "formatted": "03:30",
    "total_hours": 3.5,
    "total_seconds": 12600,
    "total_minutes": 210
  },
  "estimated_duration": {
    "hours": 4,
    "minutes": 0,
    "seconds": 0,
    "formatted": "04:00",
    "total_hours": 4.0,
    "total_seconds": 14400,
    "total_minutes": 240
  },
  "cost": {
    "fractional": 17500,
    "formatted": "$175.00",
    "amount": 175.0
  },
  "estimated_cost": {
    "fractional": 20000,
    "formatted": "$200.00",
    "amount": 200.0
  },
  "day": "2019-03-11",
  "note": "Notes for testing with some random #hash in it.",
  "sequence": 1,
  "estimated": false,
  "timer_state": "default",
  "timer_started_on": 0,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1552304547,
  "created_at": 1552304547,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-11T16:12:27+01:00",
  "from": "2019-03-11T12:42:27+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 57962,
  "updater_id": 57962,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Delete an event

Note: Normal user can delete events of other projects of same account. Limited user can delete only his events.

Request

curl "https://api.timelyapp.com/1.1/24610/events/21259" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 6ba862329b169dc50728d0869bf18b4670bdfdd5c4478931778b2718d657a469" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/events/:id

DELETE /1.1/24610/events/21259
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6ba862329b169dc50728d0869bf18b4670bdfdd5c4478931778b2718d657a469

Parameters

Name Description
account_id Account id for which hour to be deleted
id required The id of the hour to be deleted

Response

Content-Type: application/json; charset=utf-8
200 OK
{
}

List all events

Get all the events of active projects present in user’s account.

Note: If “since” and “upto” parameters are not passed, default period is current day.

Request

curl -g "https://api.timelyapp.com/1.1/24612/events" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 5f4120da29efbca230a26513f86863b08e6df478cb7e91e1a856392ce2a6e954" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/events

GET /1.1/24612/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 5f4120da29efbca230a26513f86863b08e6df478cb7e91e1a856392ce2a6e954

Parameters

Name Description
account_id Account id for which hours to be retrieved
since Specifies the start date for results to return. Example: since=2014-08-18
upto Specifies the end date for results to return. Example: upto=2014-08-24
day Specifies the day date for results to return. Example: day=2014-08-24

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 21261,
    "uid": "f5779c84-b756-41ad-9eb2-a45befa4c83e",
    "user": {
      "id": 57972,
      "email": "[email protected]",
      "name": "Marija Petrovic",
      "avatar": {
        "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
        "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
        "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
      },
      "updated_at": "2019-03-11T12:42:28+01:00"
    },
    "project": {
      "id": 20436,
      "active": true,
      "account_id": 24612,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1552304548,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 15526,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-03-11T12:42:28+01:00"
      },
      "budget": 0,
      "budget_type": "",
      "hour_rate": 50.0,
      "hour_rate_in_cents": 5000.0,
      "labels": [

      ],
      "label_ids": [

      ],
      "required_label_ids": [

      ]
    },
    "duration": {
      "hours": 3,
      "minutes": 30,
      "seconds": 0,
      "formatted": "03:30",
      "total_hours": 3.5,
      "total_seconds": 12600,
      "total_minutes": 210
    },
    "estimated_duration": {
      "hours": 4,
      "minutes": 0,
      "seconds": 0,
      "formatted": "04:00",
      "total_hours": 4.0,
      "total_seconds": 14400,
      "total_minutes": 240
    },
    "cost": {
      "fractional": 17500,
      "formatted": "$175.00",
      "amount": 175.0
    },
    "estimated_cost": {
      "fractional": 20000,
      "formatted": "$200.00",
      "amount": 200.0
    },
    "day": "2019-03-11",
    "note": "Notes for testing with some random #hash in it.",
    "sequence": 1,
    "estimated": false,
    "timer_state": "default",
    "timer_started_on": 0,
    "timer_stopped_on": 0,
    "label_ids": [

    ],
    "user_ids": [

    ],
    "updated_at": 1552304548,
    "created_at": 1552304548,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-03-11T16:12:28+01:00",
    "from": "2019-03-11T12:42:28+01:00",
    "deleted": false,
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "creator_id": null,
    "updater_id": null,
    "external_id": null,
    "entry_ids": [

    ],
    "suggestion_id": null
  }
]

List all events for project

Note: Only normal user can get events of other projects of same account. Limited user can only get events of his own project.

Request

curl -g "https://api.timelyapp.com/1.1/24614/projects/20438/events" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer b02f21cc77d61cbc25d8e5e7d80bec3a055190ad6eec73c1f41772a02fde0032" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/projects/:project_id/events

GET /1.1/24614/projects/20438/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer b02f21cc77d61cbc25d8e5e7d80bec3a055190ad6eec73c1f41772a02fde0032

Parameters

Name Description
account_id Account id for which hours to be retrieved
project_id Project id for which hours to be retrieved
since Specifies the start date for results to return. Example: since=2014-08-18
upto Specifies the end date for results to return. Example: upto=2014-08-24
day Specifies the day date for results to return. Example: day=2014-08-24

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 21263,
    "uid": "98ff2f79-458e-404d-9395-a5d3f67aeebf",
    "user": {
      "id": 57976,
      "email": "[email protected]",
      "name": "Marija Petrovic",
      "avatar": {
        "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
        "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
        "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
      },
      "updated_at": "2019-03-11T12:42:30+01:00"
    },
    "project": {
      "id": 20438,
      "active": true,
      "account_id": 24614,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1552304550,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 15528,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-03-11T12:42:30+01:00"
      },
      "budget": 0,
      "budget_type": "",
      "hour_rate": 50.0,
      "hour_rate_in_cents": 5000.0,
      "labels": [

      ],
      "label_ids": [

      ],
      "required_label_ids": [

      ]
    },
    "duration": {
      "hours": 3,
      "minutes": 30,
      "seconds": 0,
      "formatted": "03:30",
      "total_hours": 3.5,
      "total_seconds": 12600,
      "total_minutes": 210
    },
    "estimated_duration": {
      "hours": 4,
      "minutes": 0,
      "seconds": 0,
      "formatted": "04:00",
      "total_hours": 4.0,
      "total_seconds": 14400,
      "total_minutes": 240
    },
    "cost": {
      "fractional": 17500,
      "formatted": "$175.00",
      "amount": 175.0
    },
    "estimated_cost": {
      "fractional": 20000,
      "formatted": "$200.00",
      "amount": 200.0
    },
    "day": "2019-03-11",
    "note": "Notes for testing with some random #hash in it.",
    "sequence": 1,
    "estimated": false,
    "timer_state": "default",
    "timer_started_on": 0,
    "timer_stopped_on": 0,
    "label_ids": [

    ],
    "user_ids": [

    ],
    "updated_at": 1552304551,
    "created_at": 1552304551,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-03-11T16:12:31+01:00",
    "from": "2019-03-11T12:42:31+01:00",
    "deleted": false,
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "creator_id": null,
    "updater_id": null,
    "external_id": null,
    "entry_ids": [

    ],
    "suggestion_id": null
  }
]

List all events for user

Note: Only normal user can get events of other users of same account. Limited user will always get his one events.

Request

curl -g "https://api.timelyapp.com/1.1/24613/users/57974/events" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer b84aaccdd121389fb8352af39ff6059d94bd5777e319decea6048dd104077595" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/users/:user_id/events

GET /1.1/24613/users/57974/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer b84aaccdd121389fb8352af39ff6059d94bd5777e319decea6048dd104077595

Parameters

Name Description
account_id Account id for which hours to be retrieved
user_id User id for which hours to be retrieved
since Specifies the start date for results to return. Example: since=2014-08-18
upto Specifies the end date for results to return. Example: upto=2014-08-24
day Specifies the day date for results to return. Example: day=2014-08-24

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 21262,
    "uid": "a9fa446f-9427-4e35-bb55-122bfa9918c2",
    "user": {
      "id": 57974,
      "email": "[email protected]",
      "name": "Marija Petrovic",
      "avatar": {
        "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
        "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
        "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
      },
      "updated_at": "2019-03-11T12:42:29+01:00"
    },
    "project": {
      "id": 20437,
      "active": true,
      "account_id": 24613,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1552304549,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 15527,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-03-11T12:42:29+01:00"
      },
      "budget": 0,
      "budget_type": "",
      "hour_rate": 50.0,
      "hour_rate_in_cents": 5000.0,
      "labels": [

      ],
      "label_ids": [

      ],
      "required_label_ids": [

      ]
    },
    "duration": {
      "hours": 3,
      "minutes": 30,
      "seconds": 0,
      "formatted": "03:30",
      "total_hours": 3.5,
      "total_seconds": 12600,
      "total_minutes": 210
    },
    "estimated_duration": {
      "hours": 4,
      "minutes": 0,
      "seconds": 0,
      "formatted": "04:00",
      "total_hours": 4.0,
      "total_seconds": 14400,
      "total_minutes": 240
    },
    "cost": {
      "fractional": 17500,
      "formatted": "$175.00",
      "amount": 175.0
    },
    "estimated_cost": {
      "fractional": 20000,
      "formatted": "$200.00",
      "amount": 200.0
    },
    "day": "2019-03-11",
    "note": "Notes for testing with some random #hash in it.",
    "sequence": 1,
    "estimated": false,
    "timer_state": "default",
    "timer_started_on": 0,
    "timer_stopped_on": 0,
    "label_ids": [

    ],
    "user_ids": [

    ],
    "updated_at": 1552304549,
    "created_at": 1552304549,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-03-11T16:12:29+01:00",
    "from": "2019-03-11T12:42:29+01:00",
    "deleted": false,
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "creator_id": null,
    "updater_id": null,
    "external_id": null,
    "entry_ids": [

    ],
    "suggestion_id": null
  }
]

Logged in user updating details and user of an event

Note: Normal user can edit event’s user to one of his account’s user. Limited user can not edit user.

Request

curl "https://api.timelyapp.com/1.1/24619/users/57986/events/21268" -d '{"event":{"note":"Updated details and project","minutes":0,"hours":0,"estimated":true,"estimated_minutes":0,"estimated_hours":2}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 80cff7023e263bc4f503e02c2b5bb57df18a857681b020cd1f1c7620af23a7fb" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/users/:user_id/events/:id

PUT /1.1/24619/users/57986/events/21268
Accept: application/json
Content-Type: application/json
Authorization: Bearer 80cff7023e263bc4f503e02c2b5bb57df18a857681b020cd1f1c7620af23a7fb

Parameters

{"event":{"note":"Updated details and project","minutes":0,"hours":0,"estimated":true,"estimated_minutes":0,"estimated_hours":2}}
Name Description
id required Event id
day required Event day
hours required Event hours
minutes required Event minutes
estimated_minutes Specifies the event estimated minutes. Example Values: 0-60
estimated_hours Specifies the event estimated hours. Example Values: 0-12
note Specifies the event notes.
from Specifies the from time. Example Values: from: "2017-05-26T10:00:00+05:30"
to Specifies the to time. Example Values: to: "2017-05-26T12:00:00+05:30"
label_ids Specifies the label ids. Example Values: label_ids:[2,3,4]
project_id Project id
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 21268,
  "uid": "5a90a4d4-61d6-4d24-8be6-de5d24b3cf54",
  "user": {
    "id": 57986,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "avatar": {
      "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
      "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
    },
    "updated_at": "2019-03-11T12:42:33+01:00"
  },
  "project": {
    "id": 20443,
    "active": true,
    "account_id": 24619,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1552304554,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 15533,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-11T12:42:34+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "estimated_duration": {
    "hours": 2,
    "minutes": 0,
    "seconds": 0,
    "formatted": "02:00",
    "total_hours": 2.0,
    "total_seconds": 7200,
    "total_minutes": 120
  },
  "cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "estimated_cost": {
    "fractional": 10000,
    "formatted": "$100.00",
    "amount": 100.0
  },
  "day": "2019-03-11",
  "note": "Updated details and project",
  "sequence": 1,
  "estimated": true,
  "timer_state": "default",
  "timer_started_on": 0,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1552304554,
  "created_at": 1552304554,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-11T16:12:34+01:00",
  "from": "2019-03-11T12:42:34+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 57986,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Loggedin user updating details and project of his event

Request

curl "https://api.timelyapp.com/1.1/24618/projects/20442/events/21267" -d '{"event":{"note":"Updated details and project","minutes":0,"hours":0,"estimated":true,"estimated_minutes":0,"estimated_hours":2}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ed89a6e4d1f536761c2f640ee477b94a4f93d898a8f6b32628954504dfc1f48d" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/projects/:project_id/events/:id

PUT /1.1/24618/projects/20442/events/21267
Accept: application/json
Content-Type: application/json
Authorization: Bearer ed89a6e4d1f536761c2f640ee477b94a4f93d898a8f6b32628954504dfc1f48d

Parameters

{"event":{"note":"Updated details and project","minutes":0,"hours":0,"estimated":true,"estimated_minutes":0,"estimated_hours":2}}
Name Description
id required Event id
project_id required Event id
day required Event day
hours required Event hours
minutes required Event minutes
estimated_minutes Specifies the event estimated minutes. Example Values: 0-60
estimated_hours Specifies the event estimated hours. Example Values: 0-12
note Specifies the event notes.
from Specifies the from time. Example Values: from: "2017-05-26T10:00:00+05:30"
to Specifies the to time. Example Values: to: "2017-05-26T12:00:00+05:30"
label_ids Specifies the label ids. Example Values: label_ids:[2,3,4]
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 21267,
  "uid": "2c0dced4-7f37-4a17-a46c-8e0a4aa7b943",
  "user": {
    "id": 57984,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "avatar": {
      "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
      "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
    },
    "updated_at": "2019-03-11T12:42:33+01:00"
  },
  "project": {
    "id": 20442,
    "active": true,
    "account_id": 24618,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1552304553,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 15532,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-11T12:42:33+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "estimated_duration": {
    "hours": 2,
    "minutes": 0,
    "seconds": 0,
    "formatted": "02:00",
    "total_hours": 2.0,
    "total_seconds": 7200,
    "total_minutes": 120
  },
  "cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "estimated_cost": {
    "fractional": 10000,
    "formatted": "$100.00",
    "amount": 100.0
  },
  "day": "2019-03-11",
  "note": "Updated details and project",
  "sequence": 1,
  "estimated": true,
  "timer_state": "default",
  "timer_started_on": 0,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1552304553,
  "created_at": 1552304553,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-11T16:12:33+01:00",
  "from": "2019-03-11T12:42:33+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 57984,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Retrieve an event

Request

curl -g "https://api.timelyapp.com/1.1/24611/events/21260" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer dc57b39149498c8f1ac5ca1fb77f7f792ce8deca26d3478b93ef38b1aec06a1f" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/events/:id

GET /1.1/24611/events/21260
Accept: application/json
Content-Type: application/json
Authorization: Bearer dc57b39149498c8f1ac5ca1fb77f7f792ce8deca26d3478b93ef38b1aec06a1f

Parameters

Name Description
account_id Account id for which hour to be retrieved
id The id of the hour to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 21260,
  "uid": "2cb2880d-f222-4c84-9125-9cdc5f85559d",
  "user": {
    "id": 57970,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "avatar": {
      "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
      "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
    },
    "updated_at": "2019-03-11T12:42:28+01:00"
  },
  "project": {
    "id": 20435,
    "active": true,
    "account_id": 24611,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1552304548,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 15525,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-11T12:42:28+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 3,
    "minutes": 30,
    "seconds": 0,
    "formatted": "03:30",
    "total_hours": 3.5,
    "total_seconds": 12600,
    "total_minutes": 210
  },
  "estimated_duration": {
    "hours": 4,
    "minutes": 0,
    "seconds": 0,
    "formatted": "04:00",
    "total_hours": 4.0,
    "total_seconds": 14400,
    "total_minutes": 240
  },
  "cost": {
    "fractional": 17500,
    "formatted": "$175.00",
    "amount": 175.0
  },
  "estimated_cost": {
    "fractional": 20000,
    "formatted": "$200.00",
    "amount": 200.0
  },
  "day": "2019-03-11",
  "note": "Notes for testing with some random #hash in it.",
  "sequence": 1,
  "estimated": false,
  "timer_state": "default",
  "timer_started_on": 0,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1552304548,
  "created_at": 1552304548,
  "created_from": "Web",
  "updated_from": "Web",
  "billed": false,
  "to": "2019-03-11T16:12:28+01:00",
  "from": "2019-03-11T12:42:28+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": null,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Start timer on event

Request

curl "https://api.timelyapp.com/1.1/24615/events/21264/start" -d '' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer f7fd3221a766694902ebc338b6e831d88d21fdea4675c8f5ddcd87b635f08f65" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/events/:id/start

PUT /1.1/24615/events/21264/start
Accept: application/json
Content-Type: application/json
Authorization: Bearer f7fd3221a766694902ebc338b6e831d88d21fdea4675c8f5ddcd87b635f08f65

Parameters

Name Description
id required Event id

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 21264,
  "uid": "d6509c2f-91f3-41e5-b487-decad53a6d65",
  "user": {
    "id": 57978,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "avatar": {
      "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
      "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
    },
    "updated_at": "2019-03-11T12:42:31+01:00"
  },
  "project": {
    "id": 20439,
    "active": true,
    "account_id": 24615,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1552304552,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 15529,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-11T12:42:32+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 3,
    "minutes": 30,
    "seconds": 0,
    "formatted": "03:30",
    "total_hours": 3.5,
    "total_seconds": 12600,
    "total_minutes": 210
  },
  "estimated_duration": {
    "hours": 4,
    "minutes": 0,
    "seconds": 0,
    "formatted": "04:00",
    "total_hours": 4.0,
    "total_seconds": 14400,
    "total_minutes": 240
  },
  "cost": {
    "fractional": 17500,
    "formatted": "$175.00",
    "amount": 175.0
  },
  "estimated_cost": {
    "fractional": 20000,
    "formatted": "$200.00",
    "amount": 200.0
  },
  "day": "2019-03-11",
  "note": "Notes for testing with some random #hash in it.",
  "sequence": 1,
  "estimated": false,
  "timer_state": "start",
  "timer_started_on": 1552304552,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1552304552,
  "created_at": 1552304552,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-11T16:12:32+01:00",
  "from": "2019-03-11T12:42:32+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 57978,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Stop timer on event

Request

curl "https://api.timelyapp.com/1.1/24616/events/21265/stop" -d '' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 456497585f72b24815c2a511f391fce51edc03e070e19889a0cdeaef56603f07" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/events/:id/stop

PUT /1.1/24616/events/21265/stop
Accept: application/json
Content-Type: application/json
Authorization: Bearer 456497585f72b24815c2a511f391fce51edc03e070e19889a0cdeaef56603f07

Parameters

Name Description
id required Event id

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 21265,
  "uid": "4e5b83c7-c269-4e5e-9410-75dc01f523b9",
  "user": {
    "id": 57980,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "avatar": {
      "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
      "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
    },
    "updated_at": "2019-03-11T12:42:32+01:00"
  },
  "project": {
    "id": 20440,
    "active": true,
    "account_id": 24616,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1552304553,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 15530,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-11T12:42:32+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 4,
    "minutes": 30,
    "seconds": 0,
    "formatted": "04:30",
    "total_hours": 4.5,
    "total_seconds": 16200,
    "total_minutes": 270
  },
  "estimated_duration": {
    "hours": 4,
    "minutes": 0,
    "seconds": 0,
    "formatted": "04:00",
    "total_hours": 4.0,
    "total_seconds": 14400,
    "total_minutes": 240
  },
  "cost": {
    "fractional": 22500,
    "formatted": "$225.00",
    "amount": 225.0
  },
  "estimated_cost": {
    "fractional": 20000,
    "formatted": "$200.00",
    "amount": 200.0
  },
  "day": "2019-03-11",
  "note": "Notes for testing with some random #hash in it.",
  "sequence": 1,
  "estimated": false,
  "timer_state": "stop",
  "timer_started_on": 0,
  "timer_stopped_on": 1552304552,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1552304553,
  "created_at": 1552304552,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-11T16:12:32+01:00",
  "from": "2019-03-11T12:42:32+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 57980,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Update an event

Logged in user updating self event

Note: If its a normal user then he can edit events of other users of his account. Also the project_id can be edited to one from his account. If limited user, then he can edit only his events.

Request

curl "https://api.timelyapp.com/1.1/24617/events/21266" -d '{"event":{"note":"Updated notes","minutes":0,"hours":0,"estimated":true,"estimated_minutes":0,"estimated_hours":2}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 1449a6e9779adea91e98d63e0abeff8a6732efb032115f422163c9fa5f2f3c84" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/events/:id

PUT /1.1/24617/events/21266
Accept: application/json
Content-Type: application/json
Authorization: Bearer 1449a6e9779adea91e98d63e0abeff8a6732efb032115f422163c9fa5f2f3c84

Parameters

{"event":{"note":"Updated notes","minutes":0,"hours":0,"estimated":true,"estimated_minutes":0,"estimated_hours":2}}
Name Description
id required Event id
day required Event day
hours required Event hours
minutes required Event minutes
project_id Project id
estimated_minutes Specifies the event estimated minutes. Example Values: 0-60
estimated_hours Specifies the event estimated hours. Example Values: 0-12
note Specifies the event notes.
from Specifies the from time. Example Values: from: "2017-05-26T10:00:00+05:30"
to Specifies the to time. Example Values: to: "2017-05-26T12:00:00+05:30"
label_ids Specifies the label ids. Example Values: label_ids:[2,3,4]
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 21266,
  "uid": "31aceeec-bdf8-49fb-8aec-e92fb40e81fd",
  "user": {
    "id": 57982,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "avatar": {
      "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s=",
      "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s="
    },
    "updated_at": "2019-03-11T12:42:33+01:00"
  },
  "project": {
    "id": 20441,
    "active": true,
    "account_id": 24617,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1552304553,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 15531,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-11T12:42:33+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "estimated_duration": {
    "hours": 2,
    "minutes": 0,
    "seconds": 0,
    "formatted": "02:00",
    "total_hours": 2.0,
    "total_seconds": 7200,
    "total_minutes": 120
  },
  "cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "estimated_cost": {
    "fractional": 10000,
    "formatted": "$100.00",
    "amount": 100.0
  },
  "day": "2019-03-11",
  "note": "Updated notes",
  "sequence": 1,
  "estimated": true,
  "timer_state": "default",
  "timer_started_on": 0,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1552304553,
  "created_at": 1552304553,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-11T16:12:33+01:00",
  "from": "2019-03-11T12:42:33+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 57982,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Labels

Labels/Tags help you classify the work, group related work and also to set some requirements. This api allows you to create, list, update and delete tags created within one account.

Create a label

Request

curl "https://api.timelyapp.com/1.1/24622/labels" -d '{"label":{"name":"Web Programming"}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 0e0de91c31602de32fe11ba9b2028fc5257669e49f19ae849d8f14402d9e5cd0" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/labels

POST /1.1/24622/labels
Accept: application/json
Content-Type: application/json
Authorization: Bearer 0e0de91c31602de32fe11ba9b2028fc5257669e49f19ae849d8f14402d9e5cd0

Parameters

{"label":{"name":"Web Programming"}}
Name Description
name required Specifies the label name
emoji Specifies the emoji url for label
parent_id Set the parent_id if you want to create child label

Response

Content-Type: application/json; charset=utf-8
201 Created
{
  "id": 14696,
  "name": "Web Programming",
  "sequence": 1,
  "parent_id": null,
  "emoji": null,
  "children": [

  ]
}

Delete a label

Request

curl "https://api.timelyapp.com/1.1/24623/labels/14697" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer a185e43d0a0661d5226078cd91d841d1d6a349b02def05304db35c2b51cedd6c" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/labels/:id

DELETE /1.1/24623/labels/14697
Accept: application/json
Content-Type: application/json
Authorization: Bearer a185e43d0a0661d5226078cd91d841d1d6a349b02def05304db35c2b51cedd6c

Parameters

Name Description
account_id Account id for which label to be deleted
id The id of the label to be deleted

Response

Content-Type: application/json; charset=utf-8
200 OK
{
}

List all child labels

Get all child of given tags present in user’s account.

Request

curl -g "https://api.timelyapp.com/1.1/24626/labels?parent_id=14699" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 3da7ba73789a0006222d6db35ebf72323daa187bae4b3e79794d6a23088fbb62" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/labels

GET /1.1/24626/labels?parent_id=14699
Accept: application/json
Content-Type: application/json
Authorization: Bearer 3da7ba73789a0006222d6db35ebf72323daa187bae4b3e79794d6a23088fbb62

Parameters

parent_id: 14699
Name Description
account_id Account id for which label to be retrieved
parent_id The id of the parent label to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 14699,
  "name": "Web Programming",
  "sequence": 1,
  "parent_id": null,
  "emoji": null,
  "children": [

  ]
}

List all label

Get all the tags present in user’s account.

Request

curl -g "https://api.timelyapp.com/1.1/24625/labels" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer f839ca3ec74b2a2a0d509f7a801d07ea7c66ca7b5983193de1311e2ac8a20c85" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/labels

GET /1.1/24625/labels
Accept: application/json
Content-Type: application/json
Authorization: Bearer f839ca3ec74b2a2a0d509f7a801d07ea7c66ca7b5983193de1311e2ac8a20c85

Parameters

None known.

Response

Content-Type: application/json; charset=utf-8
200 OK
[

]

Retrieve a label

Get single tags present in user’s account.

Request

curl -g "https://api.timelyapp.com/1.1/24624/labels/14698" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer f74a215d1469702494184c8493bcd68b73a152ea8fa5ebac7ceaa509f1d25605" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/labels/:id

GET /1.1/24624/labels/14698
Accept: application/json
Content-Type: application/json
Authorization: Bearer f74a215d1469702494184c8493bcd68b73a152ea8fa5ebac7ceaa509f1d25605

Parameters

Name Description
account_id Account id for which label to be retrieved
id The id of the label to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 14698,
  "name": "Web Programming",
  "sequence": 1,
  "parent_id": null,
  "emoji": null,
  "children": [

  ]
}

Update a label

Request

curl "https://api.timelyapp.com/1.1/24627/labels/14700" -d '{"label":{"name":"updated name"}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ba25d6a3ff148ef7fc28aa861e8692ed1ed9ee65373b700edf674537602ca5fd" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/labels/:id

PUT /1.1/24627/labels/14700
Accept: application/json
Content-Type: application/json
Authorization: Bearer ba25d6a3ff148ef7fc28aa861e8692ed1ed9ee65373b700edf674537602ca5fd

Parameters

{"label":{"name":"updated name"}}
Name Description
id required Label id
name required Specifies the label name
emoji Specifies the emoji url for tag
parent_id Set the parent_id if you want to create child tags

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 14700,
  "name": "updated name",
  "sequence": 1,
  "parent_id": null,
  "emoji": null,
  "children": [

  ]
}

Projects

Project object contains all project details of a logged account. With this api you can retrieve a specific project or the list of all projects, update, create and delete a project.

Create a project

Request

curl "https://api.timelyapp.com/1.1/24633/projects" -d '{"project":{"name":"New Project","rate_type":"project","hour_rate":50.0,"active":true,"deleted":false,"currency_code":"usd","color":"67a3bc","client_id":15547,"budget_type":"M","budget":300,"users":[{"user_id":58014}],"budget_recurrence":{"recur":"week","start_date":"2018-09-21","end_date":"2019-09-21","recur_until":"end_date"}}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 4b173526b1fca4681c758b88d6360b6a4b40cea0505088cf079eae5edbe62cef" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/projects

POST /1.1/24633/projects
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4b173526b1fca4681c758b88d6360b6a4b40cea0505088cf079eae5edbe62cef

Parameters

{"project":{"name":"New Project","rate_type":"project","hour_rate":50.0,"active":true,"deleted":false,"currency_code":"usd","color":"67a3bc","client_id":15547,"budget_type":"M","budget":300,"users":[{"user_id":58014}],"budget_recurrence":{"recur":"week","start_date":"2018-09-21","end_date":"2019-09-21","recur_until":"end_date"}}}
Name Description
project required Project attributes
name required Specifies the project name
color required Specifies the project color, should be one of 47b17c, 67a3bc, bd4c4f, d0915a, 866b9c, cdae4f, 5ab8b7, c697c0
client_id required Specifies the numerical client id
users required Specifies the project users, should be array of users with numerical user id and hour_rate Example: "users": [{ "user_id": 175551, "hour_rate": 25.0 },{ "user_id": 117861, "hour_rate": 27.0 }]
billable Specifies the project is billable or not, should be true or false
budget Specifies the budget for project, should be numeric value
hour_rate Specifies the hour rate for project, should be numeric value
rate_type Specifies the hour rate type for project, should be 'user' or 'project'
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters
budget_recurrence It specifies when the recurrence of budget will occur

Response

Content-Type: application/json; charset=utf-8
201 Created
{
  "id": 20458,
  "active": true,
  "account_id": 24633,
  "name": "New Project",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1552304558,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 15547,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-03-11T12:42:38+01:00"
  },
  "budget": 300,
  "budget_type": "M",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 58014,
      "hour_rate": 50.0,
      "hour_rate_in_cents": 5000.0,
      "updated_at": "2019-03-11T12:42:38+01:00",
      "deleted": false
    }
  ],
  "labels": [

  ],
  "label_ids": [

  ],
  "required_label_ids": [

  ],
  "cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "estimated_cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "estimated_duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "billed_cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "billed_duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "unbilled_cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "unbilled_duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "first_logged_on": null,
  "last_logged_on": null,
  "budget_recurrence": {
    "recur": "week",
    "start_date": "2018-09-21",
    "end_date": "2019-09-21",
    "recur_until": "end_date",
    "days_count": 365,
    "updated_at": "2019-03-11T12:42:38+01:00"
  }
}

Delete a project

Request

curl "https://api.timelyapp.com/1.1/24634/projects/20459" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer a05fadae8f0d25109df63a922db4776b7f789881dc1d938a786d4722f676ce24" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/projects/:id

DELETE /1.1/24634/projects/20459
Accept: application/json
Content-Type: application/json
Authorization: Bearer a05fadae8f0d25109df63a922db4776b7f789881dc1d938a786d4722f676ce24

Parameters

Name Description
account_id Account id for which project to be deleted
id The id of the project to be deleted

Response

Content-Type: application/json; charset=utf-8
200 OK
{
}

List all projects

Note: Normal user will get all the projects from account. Limited user will get only his projects.

Project list will return recently updated 10 projects additionally you can add the “per_page”, “filter” and “order” optional parameters to change the result.

Request

curl -g "https://api.timelyapp.com/1.1/24636/projects" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer cd01b0a9f9ee940ce69a0bd1f0445437df6874cd54e6d4ab085901900a871279" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/projects

GET /1.1/24636/projects
Accept: application/json
Content-Type: application/json
Authorization: Bearer cd01b0a9f9ee940ce69a0bd1f0445437df6874cd54e6d4ab085901900a871279

Parameters

Name Description
offset Retrieve projects from offset
limit Retrieve number of projects
order Sorting order on updated_at
filter Filter projects - mine, active, archived, all
updated_after Retrieve records updated after a certain timestamp
project_ids Retrieve specific projects

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 20461,
    "active": true,
    "account_id": 24636,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1552304560,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 15550,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-11T12:42:40+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "users": [
      {
        "user_id": 58020,
        "hour_rate": 100.0,
        "hour_rate_in_cents": 10000.0,
        "updated_at": "2019-03-11T12:42:40+01:00",
        "deleted": false
      }
    ],
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ],
    "cost": {
      "fractional": 0,
      "formatted": "$0.00",
      "amount": 0.0
    },
    "estimated_cost": {
      "fractional": 0,
      "formatted": "$0.00",
      "amount": 0.0
    },
    "duration": {
      "hours": 0,
      "minutes": 0,
      "seconds": 0,
      "formatted": "00:00",
      "total_hours": 0.0,
      "total_seconds": 0,
      "total_minutes": 0
    },
    "estimated_duration": {
      "hours": 0,
      "minutes": 0,
      "seconds": 0,
      "formatted": "00:00",
      "total_hours": 0.0,
      "total_seconds": 0,
      "total_minutes": 0
    },
    "billed_cost": {
      "fractional": 0,
      "formatted": "$0.00",
      "amount": 0.0
    },
    "billed_duration": {
      "hours": 0,
      "minutes": 0,
      "seconds": 0,
      "formatted": "00:00",
      "total_hours": 0.0,
      "total_seconds": 0,
      "total_minutes": 0
    },
    "unbilled_cost": {
      "fractional": 0,
      "formatted": "$0.00",
      "amount": 0.0
    },
    "unbilled_duration": {
      "hours": 0,
      "minutes": 0,
      "seconds": 0,
      "formatted": "00:00",
      "total_hours": 0.0,
      "total_seconds": 0,
      "total_minutes": 0
    }
  }
]

Retrieve a project

Retrieve a single project by providing a project id.

Request

curl -g "https://api.timelyapp.com/1.1/24635/projects/20460" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 607807c10b50bbd4d9039956b72e9510d6169655440b6627f20e4d73248897a5" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/projects/:id

GET /1.1/24635/projects/20460
Accept: application/json
Content-Type: application/json
Authorization: Bearer 607807c10b50bbd4d9039956b72e9510d6169655440b6627f20e4d73248897a5

Parameters

Name Description
account_id Account id for which project to be retrieved
id The id of the project to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 20460,
  "active": true,
  "account_id": 24635,
  "name": "Timely",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1552304559,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 15549,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-03-11T12:42:39+01:00"
  },
  "budget": 0,
  "budget_type": "",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 58018,
      "hour_rate": 100.0,
      "hour_rate_in_cents": 10000.0,
      "updated_at": "2019-03-11T12:42:39+01:00",
      "deleted": false
    }
  ],
  "labels": [

  ],
  "label_ids": [

  ],
  "required_label_ids": [

  ],
  "cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "estimated_cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "estimated_duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "billed_cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "billed_duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "unbilled_cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "unbilled_duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "first_logged_on": null,
  "last_logged_on": null
}

Update a project

Request

curl "https://api.timelyapp.com/1.1/24638/projects/20463" -d '{"project":{"name":"updated project name"}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer a6cdcf03cfb9710c1bd2d70abb5e134b0d6c0d51ecb0dcc269773ee93d4eeafe" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/projects/:id

PUT /1.1/24638/projects/20463
Accept: application/json
Content-Type: application/json
Authorization: Bearer a6cdcf03cfb9710c1bd2d70abb5e134b0d6c0d51ecb0dcc269773ee93d4eeafe

Parameters

{"project":{"name":"updated project name"}}
Name Description
id required Project id
project Project attributes
name required Specifies the project name
color required Specifies the project color, should be one of 47b17c, 67a3bc, bd4c4f, d0915a, 866b9c, cdae4f, 5ab8b7, c697c0
client_id required Specifies the numerical client id
users required Specifies the project users, should be array of users with numerical user id and hour_rate Example: "users": [{ "user_id": 175551, "hour_rate": 25.0 },{ "user_id": 117861, "hour_rate": 27.0 }]
billable Specifies the project is billable or not, should be true or false
budget Specifies the budget for project, should be numeric value
hour_rate Specifies the hour rate for project, should be numeric value
rate_type Specifies the hour rate type for project, should be 'user' or 'project'
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 20463,
  "active": true,
  "account_id": 24638,
  "name": "updated project name",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1552304562,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 15552,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-03-11T12:42:42+01:00"
  },
  "budget": 0,
  "budget_type": "",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 58024,
      "hour_rate": 0.0,
      "hour_rate_in_cents": 0.0,
      "updated_at": "2019-03-11T12:42:42+01:00",
      "deleted": false
    }
  ],
  "labels": [

  ],
  "label_ids": [

  ],
  "required_label_ids": [

  ],
  "cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "estimated_cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "estimated_duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "billed_cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "billed_duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "unbilled_cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "unbilled_duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "first_logged_on": null,
  "last_logged_on": null
}

Reports

Presenting adequate information on various aspects of the business, performance of you and your team. You can export it in excel, pdf and csv format.

All Report

Normal user accessing report for account.

Note:

1) If 'start_date' and 'end_date' parameters are not passed, default period is beginning of month to end of month.

2) if the 'users' and 'projects' parameters are not passed, default normal user will get all the report from account and limited user will get his report.

3) Only normal user can get report of other users of same account. Limited user will always get his report.

4) Only normal user can get report of other projects of same account. Limited user can only get report of his own project.

Request

curl "https://api.timelyapp.com/1.1/24666/reports" -d '{"user_ids":"58084","since":"2018-01-01","until":"2019-01-01","project_ids":"20518"}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ba215ebd7977df8173be3cda0d1185065abd5ec1919d4daf02c387629b8c3c58" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/reports

POST /1.1/24666/reports
Accept: application/json
Content-Type: application/json
Authorization: Bearer ba215ebd7977df8173be3cda0d1185065abd5ec1919d4daf02c387629b8c3c58

Parameters

{"user_ids":"58084","since":"2018-01-01","until":"2019-01-01","project_ids":"20518"}
Name Description
account_id Account id for which report to be retrieved
user_ids Specifies the users to get report, should be comma separated numerical user ids Example: "user_ids": "175551,117861"
since Specifies the start date for report Example: "since" : "Jan 01, 2014"
until Specifies the end date for report Example: "until" : "Dec 31, 2014"
project_ids Specifies the projects to get report, should be comma separated numerical project ids Example: "project_ids": "1751,1171"
billed Specifies the report type to retrive estimated or billed events. Example: "billed": false or "billed": true
label_ids Specifies the labels to get report, should be comma separated numerical label ids Example: "label_ids": "751,117"

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 15580,
    "name": "Timely",
    "duration": {
      "hours": 5,
      "minutes": 0,
      "seconds": 0,
      "formatted": "05:00",
      "total_hours": 5.0,
      "total_seconds": 18000,
      "total_minutes": 300
    },
    "estimated_duration": {
      "hours": 8,
      "minutes": 0,
      "seconds": 0,
      "formatted": "08:00",
      "total_hours": 8.0,
      "total_seconds": 28800,
      "total_minutes": 480
    },
    "cost": {
      "fractional": 25000,
      "formatted": "$250.00",
      "amount": 250.0
    },
    "estimated_cost": {
      "fractional": 40000,
      "formatted": "$400.00",
      "amount": 400.0
    },
    "projects": [
      {
        "id": 20518,
        "active": true,
        "account_id": 24666,
        "name": "Timely",
        "color": "67a3bc",
        "rate_type": "project",
        "billable": true,
        "updated_at": 1552304576,
        "external_id": null,
        "budget_scope": null,
        "client": {
          "id": 15580,
          "name": "Timely",
          "active": true,
          "external_id": null,
          "updated_at": "2019-03-11T12:42:56+01:00"
        },
        "budget": 0,
        "budget_type": "",
        "hour_rate": 50.0,
        "hour_rate_in_cents": 5000.0,
        "duration": {
          "hours": 5,
          "minutes": 0,
          "seconds": 0,
          "formatted": "05:00",
          "total_hours": 5.0,
          "total_seconds": 18000,
          "total_minutes": 300
        },
        "estimated_duration": {
          "hours": 8,
          "minutes": 0,
          "seconds": 0,
          "formatted": "08:00",
          "total_hours": 8.0,
          "total_seconds": 28800,
          "total_minutes": 480
        },
        "cost": {
          "fractional": 25000,
          "formatted": "$250.00",
          "amount": 250.0
        },
        "estimated_cost": {
          "fractional": 40000,
          "formatted": "$400.00",
          "amount": 400.0
        }
      }
    ]
  }
]

Filter Report

Use filter endpoint with parameters to limit the data returned so that you see only values that you need.

Request

curl "https://api.timelyapp.com1.1/24667/reports/filter" -d '{"user_ids":"58086","since":"2018-01-01","until":"2019-01-01","project_ids":"20519"}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer f08a1110fda7467f00478c5380de8d4d4803025452718437b8a063e4f4809554" \
    -H "Cookie: "

Endpoint

POST 1.1/:account_id/reports/filter

POST 1.1/24667/reports/filter
Accept: application/json
Content-Type: application/json
Authorization: Bearer f08a1110fda7467f00478c5380de8d4d4803025452718437b8a063e4f4809554

Parameters

{"user_ids":"58086","since":"2018-01-01","until":"2019-01-01","project_ids":"20519"}
Name Description
billed Retrieve only billed hours. Example: billed=true
label_ids Specifies the label ids to retrieve hours, should be array of numerical label ids Example: label_ids: [3, 4, 2]
project_ids Specifies the project ids to retrieve hours, should be array of numerical project ids Example:project_ids: [3, 4, 2]
since start date for report Example: 'since=2019-01-01'
team_ids Specifies the team ids to retrieve hours, should be array of numerical team ids Example: team_ids: [3, 4, 2]
until start date for report Example: 'since=2019-12-31'
user_ids Specifies the user ids to retrieve hours, should be array of numerical user ids Example: user_ids: [3, 4, 2]

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "clients": [
    {
      "id": 15581,
      "name": "Timely",
      "duration": {
        "hours": 5,
        "minutes": 0,
        "seconds": 0,
        "formatted": "05:00",
        "total_hours": 5.0,
        "total_seconds": 18000,
        "total_minutes": 300
      },
      "estimated_duration": {
        "hours": 8,
        "minutes": 0,
        "seconds": 0,
        "formatted": "08:00",
        "total_hours": 8.0,
        "total_seconds": 28800,
        "total_minutes": 480
      },
      "cost": {
        "fractional": 25000,
        "formatted": "$250.00",
        "amount": 250.0
      },
      "estimated_cost": {
        "fractional": 40000,
        "formatted": "$400.00",
        "amount": 400.0
      },
      "projects": [
        {
          "id": 20519,
          "active": true,
          "account_id": 24667,
          "name": "Timely",
          "color": "67a3bc",
          "rate_type": "project",
          "billable": true,
          "updated_at": 1552304576,
          "external_id": null,
          "budget_scope": null,
          "client": {
            "id": 15581,
            "name": "Timely",
            "active": true,
            "external_id": null,
            "updated_at": "2019-03-11T12:42:56+01:00"
          },
          "budget": 0,
          "budget_type": "",
          "hour_rate": 50.0,
          "hour_rate_in_cents": 5000.0,
          "duration": {
            "hours": 5,
            "minutes": 0,
            "seconds": 0,
            "formatted": "05:00",
            "total_hours": 5.0,
            "total_seconds": 18000,
            "total_minutes": 300
          },
          "estimated_duration": {
            "hours": 8,
            "minutes": 0,
            "seconds": 0,
            "formatted": "08:00",
            "total_hours": 8.0,
            "total_seconds": 28800,
            "total_minutes": 480
          },
          "cost": {
            "fractional": 25000,
            "formatted": "$250.00",
            "amount": 250.0
          },
          "estimated_cost": {
            "fractional": 40000,
            "formatted": "$400.00",
            "amount": 400.0
          }
        }
      ]
    }
  ],
  "users": [
    {
      "id": 58086,
      "email": "[email protected]",
      "name": "Marija Petrovic",
      "time_zone": "Europe/Paris",
      "updated_at": 1552304576,
      "active": false,
      "deleted": false,
      "memory_onboarded": true,
      "day_view_onboarded": true,
      "last_received_memories_date": null,
      "default_hour_rate": 0.0,
      "date_format": "dmy",
      "time_format": "24",
      "avatar": {
        "large_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
        "large": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large.jpg&s=",
        "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
        "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium.jpg&s=",
        "timeline": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_timeline.jpg&s="
      },
      "duration": {
        "hours": 5,
        "minutes": 0,
        "seconds": 0,
        "formatted": "05:00",
        "total_hours": 5.0,
        "total_seconds": 18000,
        "total_minutes": 300
      },
      "estimated_duration": {
        "hours": 8,
        "minutes": 0,
        "seconds": 0,
        "formatted": "08:00",
        "total_hours": 8.0,
        "total_seconds": 28800,
        "total_minutes": 480
      },
      "cost": {
        "fractional": 25000,
        "formatted": "$250.00",
        "amount": 250.0
      },
      "estimated_cost": {
        "fractional": 40000,
        "formatted": "$400.00",
        "amount": 400.0
      }
    }
  ],
  "labels": [
    {
      "id": 0,
      "name": "Untagged",
      "sequence": -1,
      "parent_id": null,
      "emoji": "https://raw.githubusercontent.com/iamcal/emoji-data/v2.4.4/img-twitter-64/1f3f7.png",
      "children": [

      ],
      "duration": {
        "hours": 5,
        "minutes": 0,
        "seconds": 0,
        "formatted": "05:00",
        "total_hours": 5.0,
        "total_seconds": 18000,
        "total_minutes": 300
      },
      "estimated_duration": {
        "hours": 8,
        "minutes": 0,
        "seconds": 0,
        "formatted": "08:00",
        "total_hours": 8.0,
        "total_seconds": 28800,
        "total_minutes": 480
      },
      "cost": {
        "fractional": 25000,
        "formatted": "$250.00",
        "amount": 250.0
      },
      "estimated_cost": {
        "fractional": 40000,
        "formatted": "$400.00",
        "amount": 400.0
      }
    }
  ],
  "days": [
    {
      "day": "2018-01-02",
      "duration": {
        "hours": 2,
        "minutes": 30,
        "seconds": 0,
        "formatted": "02:30",
        "total_hours": 2.5,
        "total_seconds": 9000,
        "total_minutes": 150
      },
      "estimated_duration": {
        "hours": 4,
        "minutes": 0,
        "seconds": 0,
        "formatted": "04:00",
        "total_hours": 4.0,
        "total_seconds": 14400,
        "total_minutes": 240
      },
      "cost": {
        "fractional": 12500,
        "formatted": "$125.00",
        "amount": 125.0
      },
      "estimated_cost": {
        "fractional": 20000,
        "formatted": "$200.00",
        "amount": 200.0
      }
    },
    {
      "day": "2018-01-01",
      "duration": {
        "hours": 2,
        "minutes": 30,
        "seconds": 0,
        "formatted": "02:30",
        "total_hours": 2.5,
        "total_seconds": 9000,
        "total_minutes": 150
      },
      "estimated_duration": {
        "hours": 4,
        "minutes": 0,
        "seconds": 0,
        "formatted": "04:00",
        "total_hours": 4.0,
        "total_seconds": 14400,
        "total_minutes": 240
      },
      "cost": {
        "fractional": 12500,
        "formatted": "$125.00",
        "amount": 125.0
      },
      "estimated_cost": {
        "fractional": 20000,
        "formatted": "$200.00",
        "amount": 200.0
      }
    }
  ]
}

Teams

Team object should show all teams available for the given account.

Create a team

Request

curl "https://api.timelyapp.com/1.1/24680/teams" -d '{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"user_ids":[58112]}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 8b4a9be42a340a783c01b414d7f8ce49aee3f9278868fa496d4119a6021d5193" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/teams

POST /1.1/24680/teams
Accept: application/json
Content-Type: application/json
Authorization: Bearer 8b4a9be42a340a783c01b414d7f8ce49aee3f9278868fa496d4119a6021d5193

Parameters

{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"user_ids":[58112]}}
Name Description
name required Specifies the team name
emoji Specifies the emoji url for team
color Specifies the project color for team
user_ids required Specifies the user ids. Example Values: user_ids:[2,3,4]
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
201 Created
{
  "id": 1587,
  "name": "Timely",
  "color": "67a3bc",
  "emoji": "http://path.to/emoji.png",
  "external_id": null,
  "user_ids": [
    58112
  ]
}

Delete a team

Request

curl "https://api.timelyapp.com/1.1/24681/teams/1588" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer ff6f0283bc721b9518a0839947ab0ff28d5a40226d5fd97786081e3fd47c0e46" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/teams/:id

DELETE /1.1/24681/teams/1588
Accept: application/json
Content-Type: application/json
Authorization: Bearer ff6f0283bc721b9518a0839947ab0ff28d5a40226d5fd97786081e3fd47c0e46

Parameters

Name Description
account_id Account id for which team to be deleted
id The id of the team to be deleted

Response

Content-Type: application/json; charset=utf-8
200 OK
{
}

List all teams

Request

curl -g "https://api.timelyapp.com/1.1/24683/teams" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 127474bed159874f2c856aadcd3c7af6188700bd63a83a0d0e681b5aba08fc33" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/teams

GET /1.1/24683/teams
Accept: application/json
Content-Type: application/json
Authorization: Bearer 127474bed159874f2c856aadcd3c7af6188700bd63a83a0d0e681b5aba08fc33

Parameters

None known.

Response

Content-Type: application/json; charset=utf-8
200 OK
[

]

Retrieve a team

Request

curl -g "https://api.timelyapp.com/1.1/24682/teams/1589" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer aeef68a5db9f1e6ecfd1d405d1733b3ce7087b1059c9170e59567262249d2d43" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/teams/:id

GET /1.1/24682/teams/1589
Accept: application/json
Content-Type: application/json
Authorization: Bearer aeef68a5db9f1e6ecfd1d405d1733b3ce7087b1059c9170e59567262249d2d43

Parameters

Name Description
account_id Account id for which team to be retrieved
id The id of the team to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 1589,
  "name": "Timely",
  "color": "67a3bc",
  "emoji": "http://path.to/emoji.png",
  "external_id": null,
  "user_ids": [

  ]
}

Update a team

Request

curl "https://api.timelyapp.com/1.1/24684/teams/1590" -d '{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"user_ids":[58120]}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 47258dee919420a6dd9117884b65aaaac247d421c3735cff0f5d023e6825dbcf" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/teams/:id

PUT /1.1/24684/teams/1590
Accept: application/json
Content-Type: application/json
Authorization: Bearer 47258dee919420a6dd9117884b65aaaac247d421c3735cff0f5d023e6825dbcf

Parameters

{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"user_ids":[58120]}}
Name Description
name required Specifies the team name
emoji Specifies the emoji url for team
color Specifies the project color for team
user_ids required Specifies the user ids. Example Values: user_ids:[2,3,4]
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 1590,
  "name": "Timely",
  "color": "67a3bc",
  "emoji": "http://path.to/emoji.png",
  "external_id": null,
  "user_ids": [
    58120
  ]
}

Users

Every account can have multiple users associated with it. All users created within one account have limited privileges. A user is usually created by an employer on behalf of the employee.

Create/Invite a user

Note: “user_level” can have values normal/limited. User name and email cannot be updated by anyone, only the user himself can do that.

Request

curl "https://api.timelyapp.com/1.1/24688/users" -d '{"user":{"name":"Marija Petrovic","email":"[email protected]","user_level":"normal","admin":false,"projects":[{"project_id":20540,"hour_rate":10}]},"admin":{"id":11911,"email":"[email protected]","created_at":"2019-03-11T12:43:10.000+01:00","updated_at":"2019-03-11T12:43:10.000+01:00","name":"Timely","notifier":false}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 6a046dd4ba2fd4165c0cf3056f0397cb137857605f713e97e7565b28a54c9d13" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/users

POST /1.1/24688/users
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6a046dd4ba2fd4165c0cf3056f0397cb137857605f713e97e7565b28a54c9d13

Parameters

{"user":{"name":"Marija Petrovic","email":"[email protected]mely.com","user_level":"normal","admin":false,"projects":[{"project_id":20540,"hour_rate":10}]},"admin":{"id":11911,"email":"[email protected]","created_at":"2019-03-11T12:43:10.000+01:00","updated_at":"2019-03-11T12:43:10.000+01:00","name":"Timely","notifier":false}}
Name Description
user required Label attributes
name required Specifies the user name
email required Specifies the user email
projects Specifies the projects that user will be part of Example"projects": [ {"project_id": 11 , "hour_rate": 10 }, {"project_id": 12 , "hour_rate": 20 }]
user_level Specifies the user level, should be normal/limited, default will be "normal" Example: "user_level": "normal"
admin Specifies the user is admin, in this case user_level should be normal Example: "admin": "true"
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 58130,
  "email": "[email protected]",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": false,
  "memory_onboarded": false,
  "created_at": 1552304590,
  "updated_at": 1552304591,
  "default_hour_rate": 0.0,
  "last_received_memories_date": null,
  "sign_in_count": null,
  "external_id": null,
  "time_zone": "Europe/Paris",
  "avatar": {
    "large_retina": "https://www.gravatar.com/avatar/0a8763ca707efea0026580f1712c3fe0?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
    "large": "https://www.gravatar.com/avatar/0a8763ca707efea0026580f1712c3fe0?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
    "medium_retina": "https://www.gravatar.com/avatar/0a8763ca707efea0026580f1712c3fe0?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
    "medium": "https://www.gravatar.com/avatar/0a8763ca707efea0026580f1712c3fe0?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
    "small_retina": "https://www.gravatar.com/avatar/0a8763ca707efea0026580f1712c3fe0?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_small_retina.jpg&s=25",
    "small": "https://www.gravatar.com/avatar/0a8763ca707efea0026580f1712c3fe0?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_small_retina.jpg&s=25"
  },
  "user_level": "normal",
  "admin": false,
  "hide_hourly_rate": false,
  "deleted": false
}

Delete a user

Request

curl "https://api.timelyapp.com/1.1/24689/users/58131" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 95912fdcd4dc3d08fb9f07becb79c4b4a16fa6e29e46589ced9812029aa61aea" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/users/:id

DELETE /1.1/24689/users/58131
Accept: application/json
Content-Type: application/json
Authorization: Bearer 95912fdcd4dc3d08fb9f07becb79c4b4a16fa6e29e46589ced9812029aa61aea

Parameters

Name Description
account_id Account id for which user to be deleted
id The id of the user to be deleted

Response

Content-Type: application/json; charset=utf-8
200 OK
{
}

List all users

Note: User list will return recently updated 10 users.

Request

curl -g "https://api.timelyapp.com/1.1/24692/users" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer f622fa6bb88fcdd2acf00cd2e6bfdbc4284f8e773f0caf0fa686faa27ee9d0ad" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/users

GET /1.1/24692/users
Accept: application/json
Content-Type: application/json
Authorization: Bearer f622fa6bb88fcdd2acf00cd2e6bfdbc4284f8e773f0caf0fa686faa27ee9d0ad

Parameters

Name Description
account_id Account id for which users to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 58137,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "active": false,
    "day_view_onboarded": true,
    "memory_onboarded": true,
    "created_at": 1552304593,
    "updated_at": 1552304593,
    "default_hour_rate": 0.0,
    "last_received_memories_date": null,
    "sign_in_count": null,
    "external_id": null,
    "time_zone": "Europe/Paris",
    "avatar": {
      "large_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
      "large": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
      "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
      "small_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_small_retina.jpg&s=25",
      "small": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_small_retina.jpg&s=25"
    },
    "user_level": "normal",
    "admin": true,
    "hide_hourly_rate": false,
    "deleted": false
  }
]

Retrieve a user

Request

curl -g "https://api.timelyapp.com/1.1/24690/users/58133" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 0414d202ea5c05f6bcd128a35f3d7fb63e94c406618cc6578a8276e07f56287d" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/users/:id

GET /1.1/24690/users/58133
Accept: application/json
Content-Type: application/json
Authorization: Bearer 0414d202ea5c05f6bcd128a35f3d7fb63e94c406618cc6578a8276e07f56287d

Parameters

Name Description
account_id Account id for which user to be retrieved
id The id of the user to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 58133,
  "email": "[email protected]",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1552304592,
  "updated_at": 1552304592,
  "default_hour_rate": 0.0,
  "last_received_memories_date": null,
  "sign_in_count": null,
  "external_id": null,
  "time_zone": "Europe/Paris",
  "avatar": {
    "large_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
    "large": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
    "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
    "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
    "small_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_small_retina.jpg&s=25",
    "small": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_small_retina.jpg&s=25"
  },
  "user_level": "normal",
  "admin": true,
  "hide_hourly_rate": false,
  "deleted": false
}

Retrieve current user

Request

curl -g "https://api.timelyapp.com/1.1/24691/users/current" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer bee30ea0da7559cc040317603e61f8e4dbe74aaec9c7990fad6564ad57682f98" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/users/current

GET /1.1/24691/users/current
Accept: application/json
Content-Type: application/json
Authorization: Bearer bee30ea0da7559cc040317603e61f8e4dbe74aaec9c7990fad6564ad57682f98

Parameters

Name Description
account_id Account id for which current user to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 58135,
  "email": "[email protected]",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1552304592,
  "updated_at": 1552304592,
  "default_hour_rate": 0.0,
  "last_received_memories_date": null,
  "sign_in_count": null,
  "external_id": null,
  "time_zone": "Europe/Paris",
  "avatar": {
    "large_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
    "large": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
    "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
    "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
    "small_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_small_retina.jpg&s=25",
    "small": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_small_retina.jpg&s=25"
  },
  "user_level": "normal",
  "admin": true,
  "hide_hourly_rate": false,
  "deleted": false
}

Update a user

Note:

All other parameters are as mention in create user.

Should not update “user_level” and “projects” as these fields are only editable by admin for other users.

Only admin user can update other users profile, limited user will only update self profile.

Request

curl "https://api.timelyapp.com/1.1/24693/users/58139" -d '{"user":{"name":"Robin","user_level":"normal","admin":false,"projects":[{"project_id":20545,"hour_rate":10}]},"admin":{"id":11916,"email":"[email protected]","created_at":"2019-03-11T12:43:13.000+01:00","updated_at":"2019-03-11T12:43:13.000+01:00","name":"Timely","notifier":false}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 841ee5d9565c5f7219ad1d705393e0ea7a13a970633272c609a0279ca35f730d" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/users/:id

PUT /1.1/24693/users/58139
Accept: application/json
Content-Type: application/json
Authorization: Bearer 841ee5d9565c5f7219ad1d705393e0ea7a13a970633272c609a0279ca35f730d

Parameters

{"user":{"name":"Robin","user_level":"normal","admin":false,"projects":[{"project_id":20545,"hour_rate":10}]},"admin":{"id":11916,"email":"[email protected]","created_at":"2019-03-11T12:43:13.000+01:00","updated_at":"2019-03-11T12:43:13.000+01:00","name":"Timely","notifier":false}}
Name Description
id required The numerical ID of the desired user.
user required Label attributes
name required Specifies the user name
email required Specifies the user email
projects Specifies the projects that user will be part of Example"projects": [ {"project_id": 11 , "hour_rate": 10 }, {"project_id": 12 , "hour_rate": 20 }]
user_level Specifies the user level, should be normal/limited, default will be "normal" Example: "user_level": "normal"
admin Specifies the user is admin, in this case user_level should be normal Example: "admin": "true"
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 58139,
  "email": "[email protected]",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1552304593,
  "updated_at": 1552304593,
  "default_hour_rate": 0.0,
  "last_received_memories_date": null,
  "sign_in_count": null,
  "external_id": null,
  "time_zone": "Europe/Paris",
  "avatar": {
    "large_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
    "large": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_large_retina.jpg&s=200",
    "medium_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
    "medium": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_medium_retina.jpg&s=50",
    "small_retina": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_small_retina.jpg&s=25",
    "small": "https://www.gravatar.com/avatar/83ecd7c61f2004fe8c6205a9bd0ce9e4?d=https%3A%2F%2Fapp.timelyapp.com%2Fassets%2Fthumbs%2Fuser_small_retina.jpg&s=25"
  },
  "user_level": "normal",
  "admin": false,
  "hide_hourly_rate": false,
  "deleted": false
}

Errors

Example responses:

422 Unprocessable Entity
{
  "errors":{
    "name":[
      "can't be blank"
    ],
    "project_users":[
      "is invalid"
    ]
  }
}
422 Unprocessable Entity
403 Forbidden
{
  "errors":{
    "message":"error message"
  }
}
404 Not Found
{
  "errors":{
    "message":"Not Found"
  }
}
401 Unauthorized
{
  "errors":{
    "message":"Unauthorized"
  }
}

Timely uses conventional HTTP response codes to indicate the success or failure of an API request. Codes in the 2xx range indicate success. Codes in the 4xx range indicate an error that failed given the information provided. Codes in the 5xx range indicate an error with Timely's servers.

Accessing unauthorized to another project, account, or trying to create or delete objects that are not under our control will result in errors.

The Timely API uses the following error codes:

Error Code Meaning
400 - Bad Request Your request is invalid
401 - Unauthorized Access with wrong authentication token
403 - Forbidden The entity requested is hidden for unauthorized access
404 - Not Found The specified entity could not be found
422 - Unprocessable Entity Server understands the content type, but it was unable to process the request
500 - Internal Server Error We had a problem with our server. Try again later.