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 support@timelyapp.com

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 support@timelyapp.com

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

Endpoint

GET /1.1/accounts

GET /1.1/accounts
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7c35fdebfba0ac15f94ba04b30a5a69cec5c7eb730acfdab2991a747e86f8307

Parameters

None known.

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 7468,
    "name": "Timely",
    "from": "Web",
    "max_users": 0,
    "max_projects": 0,
    "num_users": 1,
    "num_projects": 0,
    "plan_id": 7804,
    "plan_name": "Essential",
    "next_charge": "2019-06-02",
    "currency": {
      "id": "usd",
      "name": "United States Dollar",
      "iso_code": "USD",
      "symbol": "$",
      "symbol_first": true
    },
    "start_of_week": 0,
    "beta": false,
    "created_at": 1556801801,
    "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": "essential",
    "appstore_transaction_id": null,
    "expired": false,
    "trial": false,
    "days_to_end_trial": 0,
    "features": [
      {
        "name": "memories",
        "days": 60
      },
      {
        "name": "billing",
        "days": -1
      },
      {
        "name": "recurring_budget",
        "days": -1
      },
      {
        "name": "teams",
        "days": -1
      },
      {
        "name": "control",
        "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/7467" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 3b78bafec81dc8d422b4433c353e2cf96cad56a7032caf512d7d9d10ea33addc" \
    -H "Cookie: "

Endpoint

GET /1.1/accounts/:id

GET /1.1/accounts/7467
Accept: application/json
Content-Type: application/json
Authorization: Bearer 3b78bafec81dc8d422b4433c353e2cf96cad56a7032caf512d7d9d10ea33addc

Parameters

Name Description
id The id of the account to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 7467,
  "name": "Timely",
  "from": "Web",
  "max_users": 0,
  "max_projects": 0,
  "num_users": 1,
  "num_projects": 0,
  "plan_id": 7803,
  "plan_name": "Essential",
  "next_charge": "2019-06-02",
  "currency": {
    "id": "usd",
    "name": "United States Dollar",
    "iso_code": "USD",
    "symbol": "$",
    "symbol_first": true
  },
  "start_of_week": 0,
  "beta": false,
  "created_at": 1556801800,
  "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": "essential",
  "appstore_transaction_id": null,
  "expired": false,
  "trial": false,
  "days_to_end_trial": 0,
  "features": [
    {
      "name": "memories",
      "days": 60
    },
    {
      "name": "billing",
      "days": -1
    },
    {
      "name": "recurring_budget",
      "days": -1
    },
    {
      "name": "teams",
      "days": -1
    },
    {
      "name": "control",
      "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/7466/activities" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 7a764279ded1cb2c8848b6a35b44fa907cdca9c15463b7797fb3c2258a87a9fa" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/activities

GET /1.1/7466/activities
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7a764279ded1cb2c8848b6a35b44fa907cdca9c15463b7797fb3c2258a87a9fa

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/7486/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 6468671129fb73ca18fc912110c8188f878bf61ef55143af60e5ca1e67a81c78" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/clients

POST /1.1/7486/clients
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6468671129fb73ca18fc912110c8188f878bf61ef55143af60e5ca1e67a81c78

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": 4779,
  "name": "Timely",
  "active": true,
  "external_id": null,
  "updated_at": "2019-05-02T14:56:47+02: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/7487/clients" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 12820108c582891f9ca019122326e00d60d18f0a2ec36444825f2eb41b6655cd" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/clients

GET /1.1/7487/clients
Accept: application/json
Content-Type: application/json
Authorization: Bearer 12820108c582891f9ca019122326e00d60d18f0a2ec36444825f2eb41b6655cd

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": 4780,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-05-02T14:56:47+02:00"
  }
]

Update a client

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

Request

curl "https://api.timelyapp.com/1.1/7488/clients/4781" -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 5055e6461ec8af0835808dc91a4ee79266eddc54135b967acc36b94ee3878488" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/clients/:id

PUT /1.1/7488/clients/4781
Accept: application/json
Content-Type: application/json
Authorization: Bearer 5055e6461ec8af0835808dc91a4ee79266eddc54135b967acc36b94ee3878488

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": 4781,
  "name": "Updated name",
  "active": true,
  "external_id": null,
  "updated_at": "2019-05-02T14:56:47+02: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/7505/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-05-02T14:56:51.836+02:00","to":"2019-05-02T18:26:51.836+02:00","day":"2019-05-02","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-05-02T14:56:51.836+02:00","uid":"6815f157-7ef8-4a14-affd-97f450cba207","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":6144}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 7998afa07f361af00f5836c4efae3fa1ab41419a35ee6ad5b9ba17b0e2ecdf21" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/events

POST /1.1/7505/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7998afa07f361af00f5836c4efae3fa1ab41419a35ee6ad5b9ba17b0e2ecdf21

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-05-02T14:56:51.836+02:00","to":"2019-05-02T18:26:51.836+02:00","day":"2019-05-02","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-05-02T14:56:51.836+02:00","uid":"6815f157-7ef8-4a14-affd-97f450cba207","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":6144}}
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": 6572,
  "uid": "",
  "user": {
    "id": 17923,
    "email": "marija@memory.ai",
    "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-05-02T14:56:51+02:00"
  },
  "project": {
    "id": 6144,
    "active": true,
    "account_id": 7505,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1556801811,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 4787,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-05-02T14:56:51+02: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-05-02",
  "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": 1556801811,
  "created_at": 1556801811,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-05-02T18:26:51+02:00",
  "from": "2019-05-02T14:56:51+02:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 17923,
  "updater_id": 17923,
  "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/7504/projects/6143/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-05-02T14:56:51.548+02:00","to":"2019-05-02T18:26:51.548+02:00","day":"2019-05-02","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-05-02T14:56:51.549+02:00","uid":"7fdfd45c-9df2-4042-9d68-1777a4610b6c","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":6143}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 9385d5a067345fc7c011b9bff43bd4082c68711e94602881f9780c2f207ae383" \
    -H "Cookie: "

Endpoint

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

POST /1.1/7504/projects/6143/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 9385d5a067345fc7c011b9bff43bd4082c68711e94602881f9780c2f207ae383

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-05-02T14:56:51.548+02:00","to":"2019-05-02T18:26:51.548+02:00","day":"2019-05-02","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-05-02T14:56:51.549+02:00","uid":"7fdfd45c-9df2-4042-9d68-1777a4610b6c","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":6143}}
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": 6571,
  "uid": "",
  "user": {
    "id": 17921,
    "email": "marija@memory.ai",
    "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-05-02T14:56:51+02:00"
  },
  "project": {
    "id": 6143,
    "active": true,
    "account_id": 7504,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1556801811,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 4786,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-05-02T14:56:51+02: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-05-02",
  "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": 1556801811,
  "created_at": 1556801811,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-05-02T18:26:51+02:00",
  "from": "2019-05-02T14:56:51+02:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 17921,
  "updater_id": 17921,
  "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/7503/users/17919/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-05-02T14:56:51.116+02:00","to":"2019-05-02T18:26:51.116+02:00","day":"2019-05-02","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-05-02T14:56:51.116+02:00","uid":"0829f8d3-eb61-463c-86bb-8b844e9c3e28","timer_state":0,"created_from":"Web","updated_from":"Web","user_id":17919}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 90d090ef8a595cbf3ea474295aad75fcaa0a7bccd7eac6bcbe9ae1743b771457" \
    -H "Cookie: "

Endpoint

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

POST /1.1/7503/users/17919/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 90d090ef8a595cbf3ea474295aad75fcaa0a7bccd7eac6bcbe9ae1743b771457

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-05-02T14:56:51.116+02:00","to":"2019-05-02T18:26:51.116+02:00","day":"2019-05-02","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-05-02T14:56:51.116+02:00","uid":"0829f8d3-eb61-463c-86bb-8b844e9c3e28","timer_state":0,"created_from":"Web","updated_from":"Web","user_id":17919}}
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": 6570,
  "uid": "",
  "user": {
    "id": 17919,
    "email": "marija@memory.ai",
    "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-05-02T14:56:50+02:00"
  },
  "project": {
    "id": 6142,
    "active": true,
    "account_id": 7503,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1556801811,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 4785,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-05-02T14:56:51+02: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-05-02",
  "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": 1556801811,
  "created_at": 1556801811,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-05-02T18:26:51+02:00",
  "from": "2019-05-02T14:56:51+02:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 17919,
  "updater_id": 17919,
  "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/7506/events/6573" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 00f545427a97fbefec23f3ca73977a4ef5fe4bec665c45182a7c999ad3a70bf0" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/events/:id

DELETE /1.1/7506/events/6573
Accept: application/json
Content-Type: application/json
Authorization: Bearer 00f545427a97fbefec23f3ca73977a4ef5fe4bec665c45182a7c999ad3a70bf0

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

Endpoint

GET /1.1/:account_id/events

GET /1.1/7508/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer b6f7476b7b0cd0780f1c67480fc41f7e7b273f3d0ec34d1be4495440d2c84049

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": 6575,
    "uid": "bcb5cced-8af6-4781-93e7-0d9fe4927254",
    "user": {
      "id": 17929,
      "email": "marija@memory.ai",
      "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-05-02T14:56:52+02:00"
    },
    "project": {
      "id": 6147,
      "active": true,
      "account_id": 7508,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1556801812,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 4790,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-05-02T14:56:52+02: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-05-02",
    "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": 1556801812,
    "created_at": 1556801812,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-05-02T18:26:52+02:00",
    "from": "2019-05-02T14:56:52+02: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/7510/projects/6149/events" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 228b8a57818e95e9ef7c3e856a85b5d11fd6fd309f0029e6503f5cad52440eb1" \
    -H "Cookie: "

Endpoint

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

GET /1.1/7510/projects/6149/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 228b8a57818e95e9ef7c3e856a85b5d11fd6fd309f0029e6503f5cad52440eb1

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": 6577,
    "uid": "a48d66ec-8711-428c-8b97-1aee45e56444",
    "user": {
      "id": 17933,
      "email": "marija@memory.ai",
      "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-05-02T14:56:53+02:00"
    },
    "project": {
      "id": 6149,
      "active": true,
      "account_id": 7510,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1556801813,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 4792,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-05-02T14:56:53+02: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-05-02",
    "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": 1556801813,
    "created_at": 1556801813,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-05-02T18:26:53+02:00",
    "from": "2019-05-02T14:56:53+02: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/7509/users/17931/events" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 71263b8001652df18d54d56acc709c9ea4fd5aaa322ee8a9871ab3ba44a292ef" \
    -H "Cookie: "

Endpoint

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

GET /1.1/7509/users/17931/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 71263b8001652df18d54d56acc709c9ea4fd5aaa322ee8a9871ab3ba44a292ef

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": 6576,
    "uid": "2ba926e2-a6db-47e3-a0e3-3fcbba75fa0b",
    "user": {
      "id": 17931,
      "email": "marija@memory.ai",
      "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-05-02T14:56:52+02:00"
    },
    "project": {
      "id": 6148,
      "active": true,
      "account_id": 7509,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1556801812,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 4791,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-05-02T14:56:52+02: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-05-02",
    "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": 1556801812,
    "created_at": 1556801812,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-05-02T18:26:52+02:00",
    "from": "2019-05-02T14:56:52+02: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/7515/users/17943/events/6582" -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 6ca9ed8524e67ddcc344b55900a58419923af1fcf2915aed9b295598a90ab730" \
    -H "Cookie: "

Endpoint

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

PUT /1.1/7515/users/17943/events/6582
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6ca9ed8524e67ddcc344b55900a58419923af1fcf2915aed9b295598a90ab730

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": 6582,
  "uid": "e1c0fb6b-1d54-4934-a23e-2ba5824693ef",
  "user": {
    "id": 17943,
    "email": "marija@memory.ai",
    "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-05-02T14:56:54+02:00"
  },
  "project": {
    "id": 6154,
    "active": true,
    "account_id": 7515,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1556801814,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 4797,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-05-02T14:56:54+02: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-05-02",
  "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": 1556801814,
  "created_at": 1556801814,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-05-02T18:26:54+02:00",
  "from": "2019-05-02T14:56:54+02:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 17943,
  "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/7514/projects/6153/events/6581" -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 f7e074d56984451a7a8b2b5838e960bcba9068bd59b6f60aff2a0b317ee7345a" \
    -H "Cookie: "

Endpoint

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

PUT /1.1/7514/projects/6153/events/6581
Accept: application/json
Content-Type: application/json
Authorization: Bearer f7e074d56984451a7a8b2b5838e960bcba9068bd59b6f60aff2a0b317ee7345a

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": 6581,
  "uid": "ba1ee437-0269-4199-a1fa-5fe0124e6700",
  "user": {
    "id": 17941,
    "email": "marija@memory.ai",
    "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-05-02T14:56:54+02:00"
  },
  "project": {
    "id": 6153,
    "active": true,
    "account_id": 7514,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1556801814,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 4796,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-05-02T14:56:54+02: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-05-02",
  "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": 1556801814,
  "created_at": 1556801814,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-05-02T18:26:54+02:00",
  "from": "2019-05-02T14:56:54+02:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 17941,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Retrieve an event

Request

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

Endpoint

GET /1.1/:account_id/events/:id

GET /1.1/7507/events/6574
Accept: application/json
Content-Type: application/json
Authorization: Bearer dbfb83c1235919fc06cfd7e63a7d8ebf3c2330c5a9e02a57129e70268ff09779

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": 6574,
  "uid": "7362df1f-fef8-48de-9137-6da104c18af7",
  "user": {
    "id": 17927,
    "email": "marija@memory.ai",
    "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-05-02T14:56:52+02:00"
  },
  "project": {
    "id": 6146,
    "active": true,
    "account_id": 7507,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1556801812,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 4789,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-05-02T14:56:52+02: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-05-02",
  "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": 1556801812,
  "created_at": 1556801812,
  "created_from": "Web",
  "updated_from": "Web",
  "billed": false,
  "to": "2019-05-02T18:26:52+02:00",
  "from": "2019-05-02T14:56:52+02: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/7511/events/6578/start" -d '' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer cfb37b004e68a6548184cd0e1028ebe6e27ebcc185d484879aded85265e5fb23" \
    -H "Cookie: "

Endpoint

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

PUT /1.1/7511/events/6578/start
Accept: application/json
Content-Type: application/json
Authorization: Bearer cfb37b004e68a6548184cd0e1028ebe6e27ebcc185d484879aded85265e5fb23

Parameters

Name Description
id required Event id

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 6578,
  "uid": "d59b985d-aa07-49f6-8d6c-6cea8e1d3796",
  "user": {
    "id": 17935,
    "email": "marija@memory.ai",
    "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-05-02T14:56:53+02:00"
  },
  "project": {
    "id": 6150,
    "active": true,
    "account_id": 7511,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1556801813,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 4793,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-05-02T14:56:53+02: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-05-02",
  "note": "Notes for testing with some random #hash in it.",
  "sequence": 1,
  "estimated": false,
  "timer_state": "start",
  "timer_started_on": 1556801813,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1556801813,
  "created_at": 1556801813,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-05-02T18:26:53+02:00",
  "from": "2019-05-02T14:56:53+02:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 17935,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Stop timer on event

Request

curl "https://api.timelyapp.com/1.1/7512/events/6579/stop" -d '' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 73a46fe91436588d5a01935767807262b815fffac4750b1d25c76ff6e6ece6ad" \
    -H "Cookie: "

Endpoint

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

PUT /1.1/7512/events/6579/stop
Accept: application/json
Content-Type: application/json
Authorization: Bearer 73a46fe91436588d5a01935767807262b815fffac4750b1d25c76ff6e6ece6ad

Parameters

Name Description
id required Event id

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 6579,
  "uid": "cb196b8b-d156-4fa5-9ff8-d19389fb4084",
  "user": {
    "id": 17937,
    "email": "marija@memory.ai",
    "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-05-02T14:56:53+02:00"
  },
  "project": {
    "id": 6151,
    "active": true,
    "account_id": 7512,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1556801814,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 4794,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-05-02T14:56:53+02:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

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

  ],
  "user_ids": [

  ],
  "updated_at": 1556801814,
  "created_at": 1556801813,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-05-02T18:26:53+02:00",
  "from": "2019-05-02T14:56:53+02:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 17937,
  "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/7513/events/6580" -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 6e50020519f67f3c004c2e107866785ab2569e0545e4beaaf750c2d62b9fd3ab" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/events/:id

PUT /1.1/7513/events/6580
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6e50020519f67f3c004c2e107866785ab2569e0545e4beaaf750c2d62b9fd3ab

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": 6580,
  "uid": "2c2fc21d-361c-4ca4-bb8e-f6b52ada271b",
  "user": {
    "id": 17939,
    "email": "marija@memory.ai",
    "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-05-02T14:56:54+02:00"
  },
  "project": {
    "id": 6152,
    "active": true,
    "account_id": 7513,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1556801814,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 4795,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-05-02T14:56:54+02: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-05-02",
  "note": "Updated notes",
  "sequence": 1,
  "estimated": true,
  "timer_state": "default",
  "timer_started_on": 0,
  "timer_stopped_on": 0,
  "label_ids": [

  ],
  "user_ids": [

  ],
  "updated_at": 1556801814,
  "created_at": 1556801814,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-05-02T18:26:54+02:00",
  "from": "2019-05-02T14:56:54+02:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 17939,
  "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/7518/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 9e83544b86473c6cc3756824106bf1232c874dfa130e000fb408a79e49ad0ca7" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/labels

POST /1.1/7518/labels
Accept: application/json
Content-Type: application/json
Authorization: Bearer 9e83544b86473c6cc3756824106bf1232c874dfa130e000fb408a79e49ad0ca7

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

  ]
}

Delete a label

Request

curl "https://api.timelyapp.com/1.1/7519/labels/4424" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 339af09098c7a611e840bc8018742abd38fb5197cb17ef08a9fa05511a9892f4" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/labels/:id

DELETE /1.1/7519/labels/4424
Accept: application/json
Content-Type: application/json
Authorization: Bearer 339af09098c7a611e840bc8018742abd38fb5197cb17ef08a9fa05511a9892f4

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

Endpoint

GET /1.1/:account_id/labels

GET /1.1/7522/labels?parent_id=4426
Accept: application/json
Content-Type: application/json
Authorization: Bearer af60e37723bb40d2835f06c46bffc6c6a3e091a30c5ee5dda11d69bafc50e38b

Parameters

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

Endpoint

GET /1.1/:account_id/labels

GET /1.1/7521/labels
Accept: application/json
Content-Type: application/json
Authorization: Bearer a38d91d45b06fb7d1c016ee017b086ae7ff491179fc36adc7ef49eafcfcb4579

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/7520/labels/4425" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 33653c903c90839ee59a06679c68ceca5bbc97d27926d7acb903bfc1d593c7e5" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/labels/:id

GET /1.1/7520/labels/4425
Accept: application/json
Content-Type: application/json
Authorization: Bearer 33653c903c90839ee59a06679c68ceca5bbc97d27926d7acb903bfc1d593c7e5

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

  ]
}

Update a label

Request

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

Endpoint

PUT /1.1/:account_id/labels/:id

PUT /1.1/7523/labels/4427
Accept: application/json
Content-Type: application/json
Authorization: Bearer 1d15bcfb5c80e5a32960bd9d1426fbd1ecccf06369625ab608cda2766ed87dab

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": 4427,
  "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/7529/projects" -d '{"project":{"name":"New Project","rate_type":"project","hour_rate":50.0,"active":true,"deleted":false,"currency_code":"usd","color":"67a3bc","client_id":4811,"budget_type":"M","budget":300,"users":[{"user_id":17971}],"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 92034d6658aa389e390963bb22553ab438f6b52710c2f48c8e8f2f1c9cdf0576" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/projects

POST /1.1/7529/projects
Accept: application/json
Content-Type: application/json
Authorization: Bearer 92034d6658aa389e390963bb22553ab438f6b52710c2f48c8e8f2f1c9cdf0576

Parameters

{"project":{"name":"New Project","rate_type":"project","hour_rate":50.0,"active":true,"deleted":false,"currency_code":"usd","color":"67a3bc","client_id":4811,"budget_type":"M","budget":300,"users":[{"user_id":17971}],"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
send_invite Specifies if you want to send project invite email, should be true or false

Response

Content-Type: application/json; charset=utf-8
201 Created
{
  "id": 6169,
  "active": true,
  "account_id": 7529,
  "name": "New Project",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1556801818,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 4811,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-05-02T14:56:57+02:00"
  },
  "budget": 300,
  "budget_type": "M",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 17971,
      "hour_rate": 50.0,
      "hour_rate_in_cents": 5000.0,
      "updated_at": "2019-05-02T14:56:58+02: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-05-02T14:56:58+02:00"
  }
}

Delete a project

Request

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

Endpoint

DELETE /1.1/:account_id/projects/:id

DELETE /1.1/7530/projects/6170
Accept: application/json
Content-Type: application/json
Authorization: Bearer c77d2069ddb1057a26a76065c4d9cb3e6cab3bc202811f43927f3250b8a67b5c

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

Endpoint

GET /1.1/:account_id/projects

GET /1.1/7532/projects
Accept: application/json
Content-Type: application/json
Authorization: Bearer 383bc753b0cb75bcb874904edcf57a07ec86bd0d9b5f2cfa8ef3cde382a1009b

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": 6172,
    "active": true,
    "account_id": 7532,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1556801818,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 4814,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-05-02T14:56:58+02:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "users": [
      {
        "user_id": 17977,
        "hour_rate": 100.0,
        "hour_rate_in_cents": 10000.0,
        "updated_at": "2019-05-02T14:56:58+02: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/7531/projects/6171" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 2095cb7062243396aad5a9e8bbc273b136eac45f3344c015a10b7d4be1a7fc8f" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/projects/:id

GET /1.1/7531/projects/6171
Accept: application/json
Content-Type: application/json
Authorization: Bearer 2095cb7062243396aad5a9e8bbc273b136eac45f3344c015a10b7d4be1a7fc8f

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": 6171,
  "active": true,
  "account_id": 7531,
  "name": "Timely",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1556801818,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 4813,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-05-02T14:56:58+02:00"
  },
  "budget": 0,
  "budget_type": "",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 17975,
      "hour_rate": 100.0,
      "hour_rate_in_cents": 10000.0,
      "updated_at": "2019-05-02T14:56:58+02: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/7534/projects/6174" -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 b0cd99077cda445728d465cf25faf76aa14ccdff206a13f4c76ed0c192c92bc5" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/projects/:id

PUT /1.1/7534/projects/6174
Accept: application/json
Content-Type: application/json
Authorization: Bearer b0cd99077cda445728d465cf25faf76aa14ccdff206a13f4c76ed0c192c92bc5

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
send_invite Specifies if you want to send project invite email, should be true or false

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 6174,
  "active": true,
  "account_id": 7534,
  "name": "updated project name",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1556801819,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 4816,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-05-02T14:56:59+02:00"
  },
  "budget": 0,
  "budget_type": "",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 17981,
      "hour_rate": 0.0,
      "hour_rate_in_cents": 0.0,
      "updated_at": "2019-05-02T14:56:59+02: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/7562/reports" -d '{"user_ids":"18041","since":"2018-01-01","until":"2019-01-01","project_ids":"6229"}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 8a1dfc2c06847c4b482fbf7b13c72a8e19cb513b8935689b914ce7c49e75d4af" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/reports

POST /1.1/7562/reports
Accept: application/json
Content-Type: application/json
Authorization: Bearer 8a1dfc2c06847c4b482fbf7b13c72a8e19cb513b8935689b914ce7c49e75d4af

Parameters

{"user_ids":"18041","since":"2018-01-01","until":"2019-01-01","project_ids":"6229"}
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": 4844,
    "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": 6229,
        "active": true,
        "account_id": 7562,
        "name": "Timely",
        "color": "67a3bc",
        "rate_type": "project",
        "billable": true,
        "updated_at": 1556801826,
        "external_id": null,
        "budget_scope": null,
        "client": {
          "id": 4844,
          "name": "Timely",
          "active": true,
          "external_id": null,
          "updated_at": "2019-05-02T14:57:06+02: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/7563/reports/filter" -d '{"user_ids":"18043","since":"2018-01-01","until":"2019-01-01","project_ids":"6230"}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer db60a1246948a49dd35355a32e1f0e9ed07162c72d000078b2c7f485c425bdfc" \
    -H "Cookie: "

Endpoint

POST 1.1/:account_id/reports/filter

POST 1.1/7563/reports/filter
Accept: application/json
Content-Type: application/json
Authorization: Bearer db60a1246948a49dd35355a32e1f0e9ed07162c72d000078b2c7f485c425bdfc

Parameters

{"user_ids":"18043","since":"2018-01-01","until":"2019-01-01","project_ids":"6230"}
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": 4845,
      "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": 6230,
          "active": true,
          "account_id": 7563,
          "name": "Timely",
          "color": "67a3bc",
          "rate_type": "project",
          "billable": true,
          "updated_at": 1556801826,
          "external_id": null,
          "budget_scope": null,
          "client": {
            "id": 4845,
            "name": "Timely",
            "active": true,
            "external_id": null,
            "updated_at": "2019-05-02T14:57:06+02: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": 18043,
      "email": "marija@memory.ai",
      "name": "Marija Petrovic",
      "time_zone": "Europe/Paris",
      "updated_at": 1556801826,
      "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/7576/teams" -d '{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"users":[{"user_id":18069,"lead":true},{"user_id":18071,"lead":false}]}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer f1c25c717380fce879ec31f71469e66a1ba4e8a20f979624afef872d5e32db1c" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/teams

POST /1.1/7576/teams
Accept: application/json
Content-Type: application/json
Authorization: Bearer f1c25c717380fce879ec31f71469e66a1ba4e8a20f979624afef872d5e32db1c

Parameters

{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"users":[{"user_id":18069,"lead":true},{"user_id":18071,"lead":false}]}}
Name Description
name required Specifies the team name
emoji Specifies the emoji url for team
color Specifies the project color for team
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters
users required Specific users with their role in the team. Ex: users:[{'user_id': 1, 'lead': true}]

Response

Content-Type: application/json; charset=utf-8
201 Created
{
  "id": 438,
  "name": "Timely",
  "color": "67a3bc",
  "emoji": "http://path.to/emoji.png",
  "external_id": null,
  "user_ids": [
    18069,
    18071
  ],
  "users": [
    {
      "id": 550,
      "user_id": 18069,
      "team_id": 438,
      "lead": true
    },
    {
      "id": 551,
      "user_id": 18071,
      "team_id": 438,
      "lead": false
    }
  ]
}

Delete a team

Request

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

Endpoint

DELETE /1.1/:account_id/teams/:id

DELETE /1.1/7577/teams/439
Accept: application/json
Content-Type: application/json
Authorization: Bearer a095a0c056a258bd5e4b73c2aca3b40ea1d0d31425d64ca577599a1b519e024e

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

Endpoint

GET /1.1/:account_id/teams

GET /1.1/7579/teams
Accept: application/json
Content-Type: application/json
Authorization: Bearer c18bfe21078f09bda57cb5115fa019474f36d6fbb423ecc0d7eb2aff270c6128

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

Endpoint

GET /1.1/:account_id/teams/:id

GET /1.1/7578/teams/440
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4fdce03660b3b03f910ad9097f6ae3333bf528afa4325537641c31c169faf972

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": 440,
  "name": "Timely",
  "color": "67a3bc",
  "emoji": "http://path.to/emoji.png",
  "external_id": null,
  "user_ids": [

  ],
  "users": [

  ]
}

Update a team

Request

curl "https://api.timelyapp.com/1.1/7580/teams/441" -d '{"team":{"name":"Backend","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"users":[{"user_id":18078,"lead":true}]}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer c034c3e6de10c9865c563ec149cfd9382fb427ecf403cfbfa267664025bf8fed" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/teams/:id

PUT /1.1/7580/teams/441
Accept: application/json
Content-Type: application/json
Authorization: Bearer c034c3e6de10c9865c563ec149cfd9382fb427ecf403cfbfa267664025bf8fed

Parameters

{"team":{"name":"Backend","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"users":[{"user_id":18078,"lead":true}]}}
Name Description
name required Specifies the team name
emoji Specifies the emoji url for team
color Specifies the color for team
external_id The external_id can be used to reference external resource ids to Timely resources, should be alphanumeric 512 characters
users required Specific users with their role in the team. Ex: users:[{'user_id': 1, 'lead': true}]

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 441,
  "name": "Backend",
  "color": "67a3bc",
  "emoji": "http://path.to/emoji.png",
  "external_id": null,
  "user_ids": [
    18078
  ],
  "users": [
    {
      "id": 552,
      "user_id": 18078,
      "team_id": 441,
      "lead": true
    }
  ]
}

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/7584/users" -d '{"user":{"name":"Marija Petrovic","email":"marija@timely.com","user_level":"normal","admin":false,"projects":[{"project_id":6251,"hour_rate":10}]},"admin":{"id":3874,"email":"notifications@timelyapp.com","created_at":"2019-05-02T14:57:12.000+02:00","updated_at":"2019-05-02T14:57:12.000+02:00","name":"Timely","notifier":false}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 9d75a0bdfb4cd70d81727338f9ac14deee4854278551eb64a01dbbd556fcf1e7" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/users

POST /1.1/7584/users
Accept: application/json
Content-Type: application/json
Authorization: Bearer 9d75a0bdfb4cd70d81727338f9ac14deee4854278551eb64a01dbbd556fcf1e7

Parameters

{"user":{"name":"Marija Petrovic","email":"marija@timely.com","user_level":"normal","admin":false,"projects":[{"project_id":6251,"hour_rate":10}]},"admin":{"id":3874,"email":"notifications@timelyapp.com","created_at":"2019-05-02T14:57:12.000+02:00","updated_at":"2019-05-02T14:57:12.000+02: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": 18088,
  "email": "marija@timely.com",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": false,
  "memory_onboarded": false,
  "created_at": 1556801832,
  "updated_at": 1556801832,
  "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/7585/users/18089" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 81307a13d7382a4fc86d57394efcc423375e9b55aefebf1689100040b21f1ed3" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/users/:id

DELETE /1.1/7585/users/18089
Accept: application/json
Content-Type: application/json
Authorization: Bearer 81307a13d7382a4fc86d57394efcc423375e9b55aefebf1689100040b21f1ed3

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

Endpoint

GET /1.1/:account_id/users

GET /1.1/7588/users
Accept: application/json
Content-Type: application/json
Authorization: Bearer d25121c5fd983e0f75b2a578a3c9e9f50f975fc6fe69e4789b293d3719af8407

Parameters

Name Description
account_id Account id for which users to be retrieved

Response

Content-Type: application/json; charset=utf-8
200 OK
[
  {
    "id": 18095,
    "email": "marija@memory.ai",
    "name": "Marija Petrovic",
    "active": false,
    "day_view_onboarded": true,
    "memory_onboarded": true,
    "created_at": 1556801833,
    "updated_at": 1556801833,
    "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/7586/users/18091" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 885e11b048a0c350e4b0247ad70ac98f927b4751dd104dd1cac229e25240f69c" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/users/:id

GET /1.1/7586/users/18091
Accept: application/json
Content-Type: application/json
Authorization: Bearer 885e11b048a0c350e4b0247ad70ac98f927b4751dd104dd1cac229e25240f69c

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": 18091,
  "email": "marija@memory.ai",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1556801833,
  "updated_at": 1556801833,
  "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/7587/users/current" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 4b378c2ec2724416437afaf221a812f1f12cb76a51ac13b8a4e14fa5a61c58b6" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/users/current

GET /1.1/7587/users/current
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4b378c2ec2724416437afaf221a812f1f12cb76a51ac13b8a4e14fa5a61c58b6

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": 18093,
  "email": "marija@memory.ai",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1556801833,
  "updated_at": 1556801833,
  "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/7589/users/18097" -d '{"user":{"name":"Robin","user_level":"normal","admin":false,"projects":[{"project_id":6256,"hour_rate":10}]},"admin":{"id":3879,"email":"notifications@timelyapp.com","created_at":"2019-05-02T14:57:13.000+02:00","updated_at":"2019-05-02T14:57:13.000+02:00","name":"Timely","notifier":false}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 2809eeb4e0d6ca4d7d106a6752c42a1e90be1188cad0f62bee4abdfbd61f86ac" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/users/:id

PUT /1.1/7589/users/18097
Accept: application/json
Content-Type: application/json
Authorization: Bearer 2809eeb4e0d6ca4d7d106a6752c42a1e90be1188cad0f62bee4abdfbd61f86ac

Parameters

{"user":{"name":"Robin","user_level":"normal","admin":false,"projects":[{"project_id":6256,"hour_rate":10}]},"admin":{"id":3879,"email":"notifications@timelyapp.com","created_at":"2019-05-02T14:57:13.000+02:00","updated_at":"2019-05-02T14:57:13.000+02: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": 18097,
  "email": "marija@memory.ai",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1556801833,
  "updated_at": 1556801833,
  "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.