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 4069185d6a3a9f6ec0509ec941906897e7c862350b22ccfb76045a4451b9fb4a" \
    -H "Cookie: "

Endpoint

GET /1.1/accounts

GET /1.1/accounts
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4069185d6a3a9f6ec0509ec941906897e7c862350b22ccfb76045a4451b9fb4a

Parameters

None known.

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 3300,
    "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-03-13",
    "currency": {
      "id": "usd",
      "name": "United States Dollar",
      "iso_code": "USD",
      "symbol": "$",
      "symbol_first": true
    },
    "start_of_week": 0,
    "beta": false,
    "created_at": 1549875397,
    "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/3299" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer e2e13c356dfa2e9102adbf6bdaf14e09cb0d47d3fd31bbfc1a683955b6fcf1c3" \
    -H "Cookie: "

Endpoint

GET /1.1/accounts/:id

GET /1.1/accounts/3299
Accept: application/json
Content-Type: application/json
Authorization: Bearer e2e13c356dfa2e9102adbf6bdaf14e09cb0d47d3fd31bbfc1a683955b6fcf1c3

Parameters

Name Description
id The id of the account to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 3299,
  "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-03-13",
  "currency": {
    "id": "usd",
    "name": "United States Dollar",
    "iso_code": "USD",
    "symbol": "$",
    "symbol_first": true
  },
  "start_of_week": 0,
  "beta": false,
  "created_at": 1549875397,
  "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/3298/activities" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 87a0aceb7cc1f7a8f2b501705902af708e1d29a40b8c1f8d7c53266801ac8d40" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/activities

GET /1.1/3298/activities
Accept: application/json
Content-Type: application/json
Authorization: Bearer 87a0aceb7cc1f7a8f2b501705902af708e1d29a40b8c1f8d7c53266801ac8d40

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/3315/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 7b1d8c6a6d00fa0af4ef3954c9027e9e9f4a81075f000e5ba0667db800c214d2" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/clients

POST /1.1/3315/clients
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7b1d8c6a6d00fa0af4ef3954c9027e9e9f4a81075f000e5ba0667db800c214d2

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": 2183,
  "name": "Timely",
  "active": true,
  "external_id": null,
  "updated_at": "2019-02-11T09:56:40+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/3316/clients" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 7f8191d32b9b9139fa776f6f73bcea0b700457bd6535094dd4989b8c1960d754" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/clients

GET /1.1/3316/clients
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7f8191d32b9b9139fa776f6f73bcea0b700457bd6535094dd4989b8c1960d754

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": 2184,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-02-11T09:56:40+01:00"
  }
]

Update a client

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

Request

curl "https://api.timelyapp.com/1.1/3317/clients/2185" -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 69899890ef0891d01e88e3e46851dfdbfcf703115f1ba8df5427516f9bed8e06" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/clients/:id

PUT /1.1/3317/clients/2185
Accept: application/json
Content-Type: application/json
Authorization: Bearer 69899890ef0891d01e88e3e46851dfdbfcf703115f1ba8df5427516f9bed8e06

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": 2185,
  "name": "Updated name",
  "active": true,
  "external_id": null,
  "updated_at": "2019-02-11T09:56:41+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/3334/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-02-11T09:56:44.590+01:00","to":"2019-02-11T13:26:44.590+01:00","day":"2019-02-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-02-11T09:56:44.590+01:00","uid":"3b871456-58df-4674-8725-32efe8a61d5b","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":2861}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 0266a3cb450f049e51d8d74a92f513022104b7ff9b0dbea2d4da63aa817af309" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/events

POST /1.1/3334/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 0266a3cb450f049e51d8d74a92f513022104b7ff9b0dbea2d4da63aa817af309

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-02-11T09:56:44.590+01:00","to":"2019-02-11T13:26:44.590+01:00","day":"2019-02-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-02-11T09:56:44.590+01:00","uid":"3b871456-58df-4674-8725-32efe8a61d5b","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":2861}}
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": 2968,
  "uid": "",
  "user": {
    "id": 7667,
    "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-02-11T09:56:44+01:00"
  },
  "project": {
    "id": 2861,
    "active": true,
    "account_id": 3334,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1549875404,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 2191,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-02-11T09:56:44+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-02-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": 1549875404,
  "created_at": 1549875404,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-02-11T13:26:44+01:00",
  "from": "2019-02-11T09:56:44+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 7667,
  "updater_id": 7667,
  "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/3333/projects/2860/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-02-11T09:56:44.387+01:00","to":"2019-02-11T13:26:44.387+01:00","day":"2019-02-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-02-11T09:56:44.387+01:00","uid":"07b66069-cd5c-40c7-9e58-ff7c8f99f671","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":2860}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 68b4b4400b9f99ea98f56de0a5dd813f43d6822358a67b5361efb0f3452368dc" \
    -H "Cookie: "

Endpoint

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

POST /1.1/3333/projects/2860/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 68b4b4400b9f99ea98f56de0a5dd813f43d6822358a67b5361efb0f3452368dc

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-02-11T09:56:44.387+01:00","to":"2019-02-11T13:26:44.387+01:00","day":"2019-02-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-02-11T09:56:44.387+01:00","uid":"07b66069-cd5c-40c7-9e58-ff7c8f99f671","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":2860}}
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": 2967,
  "uid": "",
  "user": {
    "id": 7665,
    "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-02-11T09:56:44+01:00"
  },
  "project": {
    "id": 2860,
    "active": true,
    "account_id": 3333,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1549875404,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 2190,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-02-11T09:56:44+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-02-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": 1549875404,
  "created_at": 1549875404,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-02-11T13:26:44+01:00",
  "from": "2019-02-11T09:56:44+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 7665,
  "updater_id": 7665,
  "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/3332/users/7663/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-02-11T09:56:44.100+01:00","to":"2019-02-11T13:26:44.100+01:00","day":"2019-02-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-02-11T09:56:44.100+01:00","uid":"2eb7e922-4c36-4ebe-ac35-d41080a5801b","timer_state":0,"created_from":"Web","updated_from":"Web","user_id":7663}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer e69791b75e085627699d6f42255d31b2a8a7aced2b91507e1f41815aeb95ef59" \
    -H "Cookie: "

Endpoint

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

POST /1.1/3332/users/7663/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer e69791b75e085627699d6f42255d31b2a8a7aced2b91507e1f41815aeb95ef59

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-02-11T09:56:44.100+01:00","to":"2019-02-11T13:26:44.100+01:00","day":"2019-02-11","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-02-11T09:56:44.100+01:00","uid":"2eb7e922-4c36-4ebe-ac35-d41080a5801b","timer_state":0,"created_from":"Web","updated_from":"Web","user_id":7663}}
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": 2966,
  "uid": "",
  "user": {
    "id": 7663,
    "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-02-11T09:56:44+01:00"
  },
  "project": {
    "id": 2859,
    "active": true,
    "account_id": 3332,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1549875404,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 2189,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-02-11T09:56:44+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-02-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": 1549875404,
  "created_at": 1549875404,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-02-11T13:26:44+01:00",
  "from": "2019-02-11T09:56:44+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 7663,
  "updater_id": 7663,
  "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/3335/events/2969" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 70f3736640409498d60f7e406e2345d55f9b2c0dcffb4ebd0a0b19199d282f72" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/events/:id

DELETE /1.1/3335/events/2969
Accept: application/json
Content-Type: application/json
Authorization: Bearer 70f3736640409498d60f7e406e2345d55f9b2c0dcffb4ebd0a0b19199d282f72

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/3337/events" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 7a0d46ca06cbd586358785b6f16af4f8dc19401dcdba8941f0f439f1b6a43052" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/events

GET /1.1/3337/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7a0d46ca06cbd586358785b6f16af4f8dc19401dcdba8941f0f439f1b6a43052

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": 2971,
    "uid": "f022daac-d7f9-4913-8b36-adcf986ba674",
    "user": {
      "id": 7673,
      "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-02-11T09:56:45+01:00"
    },
    "project": {
      "id": 2864,
      "active": true,
      "account_id": 3337,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1549875405,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 2194,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-02-11T09:56:45+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-02-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": 1549875405,
    "created_at": 1549875405,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-02-11T13:26:45+01:00",
    "from": "2019-02-11T09:56:45+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/3339/projects/2866/events" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 255e087ce8d4afaba6a3e8ee48103da39b9eb61e27af7d2fdb31da3da771e920" \
    -H "Cookie: "

Endpoint

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

GET /1.1/3339/projects/2866/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 255e087ce8d4afaba6a3e8ee48103da39b9eb61e27af7d2fdb31da3da771e920

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": 2973,
    "uid": "d8f641bf-3ec2-4c06-ace6-da89c51a7da2",
    "user": {
      "id": 7677,
      "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-02-11T09:56:45+01:00"
    },
    "project": {
      "id": 2866,
      "active": true,
      "account_id": 3339,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1549875405,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 2196,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-02-11T09:56:45+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-02-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": 1549875405,
    "created_at": 1549875405,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-02-11T13:26:45+01:00",
    "from": "2019-02-11T09:56:45+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/3338/users/7675/events" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer a5579e36882a530187b0ee0bde8ba952124f81a0d04d1f4c3e9d14bca4dadc0e" \
    -H "Cookie: "

Endpoint

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

GET /1.1/3338/users/7675/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer a5579e36882a530187b0ee0bde8ba952124f81a0d04d1f4c3e9d14bca4dadc0e

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": 2972,
    "uid": "6b45a947-5ebf-40cc-9629-038609998b4b",
    "user": {
      "id": 7675,
      "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-02-11T09:56:45+01:00"
    },
    "project": {
      "id": 2865,
      "active": true,
      "account_id": 3338,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1549875405,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 2195,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-02-11T09:56:45+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-02-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": 1549875405,
    "created_at": 1549875405,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-02-11T13:26:45+01:00",
    "from": "2019-02-11T09:56:45+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/3344/users/7687/events/2978" -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 634633c03a53eba04b22072fd1ff3305ab1f3dc6d8cf1fd5f4a73231bef0a890" \
    -H "Cookie: "

Endpoint

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

PUT /1.1/3344/users/7687/events/2978
Accept: application/json
Content-Type: application/json
Authorization: Bearer 634633c03a53eba04b22072fd1ff3305ab1f3dc6d8cf1fd5f4a73231bef0a890

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": 2978,
  "uid": "74626281-23df-4177-882a-aad7167e610b",
  "user": {
    "id": 7687,
    "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-02-11T09:56:46+01:00"
  },
  "project": {
    "id": 2871,
    "active": true,
    "account_id": 3344,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1549875406,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 2201,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-02-11T09:56:46+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-02-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": 1549875406,
  "created_at": 1549875406,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-02-11T13:26:46+01:00",
  "from": "2019-02-11T09:56:46+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 7687,
  "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/3343/projects/2870/events/2977" -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 d052e8ab572d4121ce56dd09e7f266fd795dc87db456272bb55e309c2edbcafb" \
    -H "Cookie: "

Endpoint

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

PUT /1.1/3343/projects/2870/events/2977
Accept: application/json
Content-Type: application/json
Authorization: Bearer d052e8ab572d4121ce56dd09e7f266fd795dc87db456272bb55e309c2edbcafb

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": 2977,
  "uid": "f453c7f8-352c-4952-9775-c29bef00e119",
  "user": {
    "id": 7685,
    "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-02-11T09:56:46+01:00"
  },
  "project": {
    "id": 2870,
    "active": true,
    "account_id": 3343,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1549875406,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 2200,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-02-11T09:56:46+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-02-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": 1549875406,
  "created_at": 1549875406,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-02-11T13:26:46+01:00",
  "from": "2019-02-11T09:56:46+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 7685,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Retrieve an event

Request

curl -g "https://api.timelyapp.com/1.1/3336/events/2970" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 4232149c4a6afbf076b5dc06ff30eed2a9bbc5d7871a325bdc61d079b815b93d" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/events/:id

GET /1.1/3336/events/2970
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4232149c4a6afbf076b5dc06ff30eed2a9bbc5d7871a325bdc61d079b815b93d

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": 2970,
  "uid": "70f709c9-057e-4136-9176-554b79700e45",
  "user": {
    "id": 7671,
    "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-02-11T09:56:44+01:00"
  },
  "project": {
    "id": 2863,
    "active": true,
    "account_id": 3336,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1549875404,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 2193,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-02-11T09:56:44+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-02-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": 1549875404,
  "created_at": 1549875404,
  "created_from": "Web",
  "updated_from": "Web",
  "billed": false,
  "to": "2019-02-11T13:26:44+01:00",
  "from": "2019-02-11T09:56:44+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/3340/events/2974/start" -d '' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer b4303e6293a4b930dcbf989486e2036128a358e28781c80c6ecbac669a847ad0" \
    -H "Cookie: "

Endpoint

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

PUT /1.1/3340/events/2974/start
Accept: application/json
Content-Type: application/json
Authorization: Bearer b4303e6293a4b930dcbf989486e2036128a358e28781c80c6ecbac669a847ad0

Parameters

Name Description
id required Event id

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 2974,
  "uid": "7c7d73d7-a1e5-4101-8c47-fe97989bd0b7",
  "user": {
    "id": 7679,
    "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-02-11T09:56:45+01:00"
  },
  "project": {
    "id": 2867,
    "active": true,
    "account_id": 3340,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1549875405,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 2197,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-02-11T09:56:45+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-02-11",
  "note": "Notes for testing with some random #hash in it.",
  "sequence": 1,
  "estimated": false,
  "timer_state": "start",
  "timer_started_on": 1549875405,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1549875405,
  "created_at": 1549875405,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-02-11T13:26:45+01:00",
  "from": "2019-02-11T09:56:45+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 7679,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Stop timer on event

Request

curl "https://api.timelyapp.com/1.1/3341/events/2975/stop" -d '' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 53d47d8299b25bb05c5849dd83fd5ed24796efb97a10dfa52b03d5525f54687c" \
    -H "Cookie: "

Endpoint

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

PUT /1.1/3341/events/2975/stop
Accept: application/json
Content-Type: application/json
Authorization: Bearer 53d47d8299b25bb05c5849dd83fd5ed24796efb97a10dfa52b03d5525f54687c

Parameters

Name Description
id required Event id

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 2975,
  "uid": "699cc39f-4de4-44b4-b1d5-e87149d7cd42",
  "user": {
    "id": 7681,
    "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-02-11T09:56:45+01:00"
  },
  "project": {
    "id": 2868,
    "active": true,
    "account_id": 3341,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1549875406,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 2198,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-02-11T09:56:45+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": 1,
    "formatted": "04:30",
    "total_hours": 4.5,
    "total_seconds": 16201,
    "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-02-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": 1549875406,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1549875406,
  "created_at": 1549875405,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-02-11T13:26:45+01:00",
  "from": "2019-02-11T09:56:45+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 7681,
  "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/3342/events/2976" -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 d1010ddb3d02b8f1d777490ca978507fb25c4fb93a30c1e5e39644eba61a0d38" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/events/:id

PUT /1.1/3342/events/2976
Accept: application/json
Content-Type: application/json
Authorization: Bearer d1010ddb3d02b8f1d777490ca978507fb25c4fb93a30c1e5e39644eba61a0d38

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": 2976,
  "uid": "5a7b17eb-d8e7-4bb7-a70f-28ede5d086c7",
  "user": {
    "id": 7683,
    "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-02-11T09:56:46+01:00"
  },
  "project": {
    "id": 2869,
    "active": true,
    "account_id": 3342,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1549875406,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 2199,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-02-11T09:56:46+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-02-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": 1549875406,
  "created_at": 1549875406,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-02-11T13:26:46+01:00",
  "from": "2019-02-11T09:56:46+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 7683,
  "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/3347/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 58c7c44c21ba9fb2dd003e1859a9c531c88e305b13a4dd3271bcc6f11a1b1ce4" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/labels

POST /1.1/3347/labels
Accept: application/json
Content-Type: application/json
Authorization: Bearer 58c7c44c21ba9fb2dd003e1859a9c531c88e305b13a4dd3271bcc6f11a1b1ce4

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": 1605,
  "name": "Web Programming",
  "sequence": 1,
  "parent_id": null,
  "emoji": null,
  "children": [

  ]
}

Delete a label

Request

curl "https://api.timelyapp.com/1.1/3348/labels/1606" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 3740b022b7b01d0def8408d3748e3d7e5a6a1e02080871f0d7d16abf81065248" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/labels/:id

DELETE /1.1/3348/labels/1606
Accept: application/json
Content-Type: application/json
Authorization: Bearer 3740b022b7b01d0def8408d3748e3d7e5a6a1e02080871f0d7d16abf81065248

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/3351/labels?parent_id=1608" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer d657600e3e46b05e3b9fd124811b6dc1c9d644c769f50d6f11f55beae3c410a1" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/labels

GET /1.1/3351/labels?parent_id=1608
Accept: application/json
Content-Type: application/json
Authorization: Bearer d657600e3e46b05e3b9fd124811b6dc1c9d644c769f50d6f11f55beae3c410a1

Parameters

parent_id: 1608
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": 1608,
  "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/3350/labels" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 9a530ee6d09f417b9c6cc0c1bb690b0a72d709ffeb709d25df805ee669af9f61" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/labels

GET /1.1/3350/labels
Accept: application/json
Content-Type: application/json
Authorization: Bearer 9a530ee6d09f417b9c6cc0c1bb690b0a72d709ffeb709d25df805ee669af9f61

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/3349/labels/1607" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 2bada067e867483c58e1531eba30ae7f282445da89ec68235da939b92067f325" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/labels/:id

GET /1.1/3349/labels/1607
Accept: application/json
Content-Type: application/json
Authorization: Bearer 2bada067e867483c58e1531eba30ae7f282445da89ec68235da939b92067f325

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": 1607,
  "name": "Web Programming",
  "sequence": 1,
  "parent_id": null,
  "emoji": null,
  "children": [

  ]
}

Update a label

Request

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

Endpoint

PUT /1.1/:account_id/labels/:id

PUT /1.1/3352/labels/1609
Accept: application/json
Content-Type: application/json
Authorization: Bearer 0e9476cda6abda2c838b27f1e653b024d827dd027b642d8492474884ee18c9fe

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": 1609,
  "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/3358/projects" -d '{"project":{"name":"New Project","rate_type":"project","hour_rate":50.0,"active":true,"deleted":false,"currency_code":"usd","color":"67a3bc","client_id":2215,"budget_type":"M","budget":300,"users":[{"user_id":7715}],"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 4afa65a40155c14727338843b030ca545f5c700968b90a765803b0483e048460" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/projects

POST /1.1/3358/projects
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4afa65a40155c14727338843b030ca545f5c700968b90a765803b0483e048460

Parameters

{"project":{"name":"New Project","rate_type":"project","hour_rate":50.0,"active":true,"deleted":false,"currency_code":"usd","color":"67a3bc","client_id":2215,"budget_type":"M","budget":300,"users":[{"user_id":7715}],"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": 2886,
  "active": true,
  "account_id": 3358,
  "name": "New Project",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1549875409,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 2215,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-02-11T09:56:48+01:00"
  },
  "budget": 300,
  "budget_type": "M",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 7715,
      "hour_rate": 50.0,
      "hour_rate_in_cents": 5000.0,
      "updated_at": "2019-02-11T09:56:49+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-02-11T09:56:49+01:00"
  }
}

Delete a project

Request

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

Endpoint

DELETE /1.1/:account_id/projects/:id

DELETE /1.1/3359/projects/2887
Accept: application/json
Content-Type: application/json
Authorization: Bearer aef5a7d26d8524a74c92ed0d60f1f79ee2e07c1708882e4f55a65561f23adceb

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/3361/projects" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 5f16e31f747b8b0f49be54642061e11bca18d32a34cd29421b05fc3a6ad816b2" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/projects

GET /1.1/3361/projects
Accept: application/json
Content-Type: application/json
Authorization: Bearer 5f16e31f747b8b0f49be54642061e11bca18d32a34cd29421b05fc3a6ad816b2

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": 2889,
    "active": true,
    "account_id": 3361,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1549875409,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 2218,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-02-11T09:56:49+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "users": [
      {
        "user_id": 7721,
        "hour_rate": 100.0,
        "hour_rate_in_cents": 10000.0,
        "updated_at": "2019-02-11T09:56:49+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/3360/projects/2888" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer f595cf78eedac5cb8369cbb8024fd8b69d6f103421f5c6975ce86ff60be472b0" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/projects/:id

GET /1.1/3360/projects/2888
Accept: application/json
Content-Type: application/json
Authorization: Bearer f595cf78eedac5cb8369cbb8024fd8b69d6f103421f5c6975ce86ff60be472b0

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": 2888,
  "active": true,
  "account_id": 3360,
  "name": "Timely",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1549875409,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 2217,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-02-11T09:56:49+01:00"
  },
  "budget": 0,
  "budget_type": "",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 7719,
      "hour_rate": 100.0,
      "hour_rate_in_cents": 10000.0,
      "updated_at": "2019-02-11T09:56:49+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/3363/projects/2891" -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 726361ecc0a4c3015ebe059b4adcd9368abfbecf3f569936a74241df3b1c86a5" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/projects/:id

PUT /1.1/3363/projects/2891
Accept: application/json
Content-Type: application/json
Authorization: Bearer 726361ecc0a4c3015ebe059b4adcd9368abfbecf3f569936a74241df3b1c86a5

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": 2891,
  "active": true,
  "account_id": 3363,
  "name": "updated project name",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1549875410,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 2220,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-02-11T09:56:49+01:00"
  },
  "budget": 0,
  "budget_type": "",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 7725,
      "hour_rate": 0.0,
      "hour_rate_in_cents": 0.0,
      "updated_at": "2019-02-11T09:56:50+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/3387/reports" -d '{"user_ids":"7773","since":"2018-01-01","until":"2019-01-01","project_ids":"2942"}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 09f553f88032872c38679b170243888d946c20d251619a6900f28645187d59a1" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/reports

POST /1.1/3387/reports
Accept: application/json
Content-Type: application/json
Authorization: Bearer 09f553f88032872c38679b170243888d946c20d251619a6900f28645187d59a1

Parameters

{"user_ids":"7773","since":"2018-01-01","until":"2019-01-01","project_ids":"2942"}
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": 2244,
    "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": 2942,
        "active": true,
        "account_id": 3387,
        "name": "Timely",
        "color": "67a3bc",
        "rate_type": "project",
        "billable": true,
        "updated_at": 1549875415,
        "external_id": null,
        "budget_scope": null,
        "client": {
          "id": 2244,
          "name": "Timely",
          "active": true,
          "external_id": null,
          "updated_at": "2019-02-11T09:56:55+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/3388/reports/filter" -d '{"user_ids":"7775","since":"2018-01-01","until":"2019-01-01","project_ids":"2943"}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer d122af6d7c38c2b2df883385aeee25a4669e889eeda19b4167971a33a41e9789" \
    -H "Cookie: "

Endpoint

POST 1.1/:account_id/reports/filter

POST 1.1/3388/reports/filter
Accept: application/json
Content-Type: application/json
Authorization: Bearer d122af6d7c38c2b2df883385aeee25a4669e889eeda19b4167971a33a41e9789

Parameters

{"user_ids":"7775","since":"2018-01-01","until":"2019-01-01","project_ids":"2943"}
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": 2245,
      "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": 2943,
          "active": true,
          "account_id": 3388,
          "name": "Timely",
          "color": "67a3bc",
          "rate_type": "project",
          "billable": true,
          "updated_at": 1549875415,
          "external_id": null,
          "budget_scope": null,
          "client": {
            "id": 2245,
            "name": "Timely",
            "active": true,
            "external_id": null,
            "updated_at": "2019-02-11T09:56:55+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": 7775,
      "email": "[email protected]",
      "name": "Marija Petrovic",
      "time_zone": "Europe/Paris",
      "updated_at": 1549875415,
      "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/3400/teams" -d '{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"user_ids":[7799]}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer fc32d433b1b2c4c47e2bb2e03915c2056d98dedcc0cf3f88f4650fe917c1712a" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/teams

POST /1.1/3400/teams
Accept: application/json
Content-Type: application/json
Authorization: Bearer fc32d433b1b2c4c47e2bb2e03915c2056d98dedcc0cf3f88f4650fe917c1712a

Parameters

{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"user_ids":[7799]}}
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": 123,
  "name": "Timely",
  "color": "67a3bc",
  "emoji": "http://path.to/emoji.png",
  "external_id": null,
  "user_ids": [
    7799
  ]
}

Delete a team

Request

curl "https://api.timelyapp.com/1.1/3401/teams/124" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 7b9d71fb61c67cc34c513ecdde8c805ba0d481981ec8d4b3542ba785dd449e65" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/teams/:id

DELETE /1.1/3401/teams/124
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7b9d71fb61c67cc34c513ecdde8c805ba0d481981ec8d4b3542ba785dd449e65

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/3403/teams" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 69db86f21ab98585937ce9a1286e7bae5650566810b686b71972b4335c709b41" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/teams

GET /1.1/3403/teams
Accept: application/json
Content-Type: application/json
Authorization: Bearer 69db86f21ab98585937ce9a1286e7bae5650566810b686b71972b4335c709b41

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/3402/teams/125" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 4b82ddcb09691c662c024be3e23958b5ca2e20308f4ac14ce0b804c7faad345f" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/teams/:id

GET /1.1/3402/teams/125
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4b82ddcb09691c662c024be3e23958b5ca2e20308f4ac14ce0b804c7faad345f

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": 125,
  "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/3404/teams/126" -d '{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"user_ids":[7807]}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 84d35fd355e9e72bd20677658a6c540a938801c13db6d92970c273c439080f74" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/teams/:id

PUT /1.1/3404/teams/126
Accept: application/json
Content-Type: application/json
Authorization: Bearer 84d35fd355e9e72bd20677658a6c540a938801c13db6d92970c273c439080f74

Parameters

{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"user_ids":[7807]}}
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": 126,
  "name": "Timely",
  "color": "67a3bc",
  "emoji": "http://path.to/emoji.png",
  "external_id": null,
  "user_ids": [
    7807
  ]
}

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/3408/users" -d '{"user":{"name":"Marija Petrovic","email":"[email protected]","user_level":"normal","admin":false,"projects":[{"project_id":2963,"hour_rate":10}]},"admin":{"id":2011,"email":"[email protected]","created_at":"2019-02-11T09:56:59.000+01:00","updated_at":"2019-02-11T09:56:59.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 1273759bdcd0a28ff083b7ccfa0d0231721e631629f4ea93fad76b374348fe0b" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/users

POST /1.1/3408/users
Accept: application/json
Content-Type: application/json
Authorization: Bearer 1273759bdcd0a28ff083b7ccfa0d0231721e631629f4ea93fad76b374348fe0b

Parameters

{"user":{"name":"Marija Petrovic","email":"[email protected]","user_level":"normal","admin":false,"projects":[{"project_id":2963,"hour_rate":10}]},"admin":{"id":2011,"email":"[email protected]","created_at":"2019-02-11T09:56:59.000+01:00","updated_at":"2019-02-11T09:56:59.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": 7817,
  "email": "[email protected]",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": false,
  "memory_onboarded": false,
  "created_at": 1549875419,
  "updated_at": 1549875420,
  "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/3409/users/7818" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 850161d3d649847090d706975970e5cea306435a9893170b8f483c45ef837c6d" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/users/:id

DELETE /1.1/3409/users/7818
Accept: application/json
Content-Type: application/json
Authorization: Bearer 850161d3d649847090d706975970e5cea306435a9893170b8f483c45ef837c6d

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/3412/users" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 4d69781b27ab47b7ac924a6bac8981385c776ddd5f20f4fddd70472a0f2b9535" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/users

GET /1.1/3412/users
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4d69781b27ab47b7ac924a6bac8981385c776ddd5f20f4fddd70472a0f2b9535

Parameters

Name Description
account_id Account id for which users to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 7824,
    "email": "[email protected]",
    "name": "Marija Petrovic",
    "active": false,
    "day_view_onboarded": true,
    "memory_onboarded": true,
    "created_at": 1549875420,
    "updated_at": 1549875420,
    "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/3410/users/7820" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 147d7326c0f2415c1612bd08334b0da1aa201d11a05fcd46ad0f58c0d817c63b" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/users/:id

GET /1.1/3410/users/7820
Accept: application/json
Content-Type: application/json
Authorization: Bearer 147d7326c0f2415c1612bd08334b0da1aa201d11a05fcd46ad0f58c0d817c63b

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": 7820,
  "email": "[email protected]",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1549875420,
  "updated_at": 1549875420,
  "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/3411/users/current" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 1612f714ff558ff4f16e97eb7a99b17f3068402b74b53b74ac814ac7ff699df7" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/users/current

GET /1.1/3411/users/current
Accept: application/json
Content-Type: application/json
Authorization: Bearer 1612f714ff558ff4f16e97eb7a99b17f3068402b74b53b74ac814ac7ff699df7

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": 7822,
  "email": "[email protected]",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1549875420,
  "updated_at": 1549875420,
  "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/3413/users/7826" -d '{"user":{"name":"Robin","user_level":"normal","admin":false,"projects":[{"project_id":2968,"hour_rate":10}]},"admin":{"id":2016,"email":"[email protected]","created_at":"2019-02-11T09:57:01.000+01:00","updated_at":"2019-02-11T09:57:01.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 0f347ecf14ecda0a1636c9d89c05923672043f714e6289c07ab69f34ce84750e" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/users/:id

PUT /1.1/3413/users/7826
Accept: application/json
Content-Type: application/json
Authorization: Bearer 0f347ecf14ecda0a1636c9d89c05923672043f714e6289c07ab69f34ce84750e

Parameters

{"user":{"name":"Robin","user_level":"normal","admin":false,"projects":[{"project_id":2968,"hour_rate":10}]},"admin":{"id":2016,"email":"[email protected]","created_at":"2019-02-11T09:57:01.000+01:00","updated_at":"2019-02-11T09:57:01.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": 7826,
  "email": "[email protected]",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1549875421,
  "updated_at": 1549875421,
  "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.