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

Endpoint

GET /1.1/accounts

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

Parameters

None known.

Response

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

Retrieve an account

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

Request

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

Endpoint

GET /1.1/accounts/:id

GET /1.1/accounts/10614
Accept: application/json
Content-Type: application/json
Authorization: Bearer 29b273ee985208e9c3501a72b59faf90953c991f52a077f0318abac1454b7942

Parameters

Name Description
id The id of the account to be retrieved

Response

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

Retrieve the activities

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

Request

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

Endpoint

GET /1.1/:account_id/activities

GET /1.1/10613/activities
Accept: application/json
Content-Type: application/json
Authorization: Bearer 7732130e12c04fe150517565ef9dd2a0b9056a4a35c6b9ffe7ba7f44716a1b0a

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/10632/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 172b263059d7afb9497c963634996e47f39fefb90f6be6a1e15ca22168a6b024" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/clients

POST /1.1/10632/clients
Accept: application/json
Content-Type: application/json
Authorization: Bearer 172b263059d7afb9497c963634996e47f39fefb90f6be6a1e15ca22168a6b024

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": 6822,
  "name": "Timely",
  "active": true,
  "external_id": null,
  "updated_at": "2019-03-25T05:22:35+01:00"
}

List all clients

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

NOTE: Client list will return recently updated 10 clients.

Request

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

Endpoint

GET /1.1/:account_id/clients

GET /1.1/10633/clients
Accept: application/json
Content-Type: application/json
Authorization: Bearer 9b414f238f2ac5c5fde1bacaabb1291dceff425a2c19a79fed9a57489824a900

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": 6823,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-03-25T05:22:35+01:00"
  }
]

Update a client

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

Request

curl "https://api.timelyapp.com/1.1/10634/clients/6824" -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 88e4856a6fe6d3611cda64c26e6772c6f1c657c48bbdd922a0a1c166496f8104" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/clients/:id

PUT /1.1/10634/clients/6824
Accept: application/json
Content-Type: application/json
Authorization: Bearer 88e4856a6fe6d3611cda64c26e6772c6f1c657c48bbdd922a0a1c166496f8104

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": 6824,
  "name": "Updated name",
  "active": true,
  "external_id": null,
  "updated_at": "2019-03-25T05:22:35+01:00"
}

Events

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

Create an event

Logged in user creating an event for self.

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

Request

curl "https://api.timelyapp.com/1.1/10651/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-25T05:22:41.073+01:00","to":"2019-03-25T08:52:41.073+01:00","day":"2019-03-25","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-25T05:22:41.073+01:00","uid":"86e2b4b1-9f83-4679-9784-58ce462ee137","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":8814}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 1209f011bfeaac1f9bbe842d2b44014f3acb05b595df9e396d98598fe8178feb" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/events

POST /1.1/10651/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 1209f011bfeaac1f9bbe842d2b44014f3acb05b595df9e396d98598fe8178feb

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-25T05:22:41.073+01:00","to":"2019-03-25T08:52:41.073+01:00","day":"2019-03-25","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-25T05:22:41.073+01:00","uid":"86e2b4b1-9f83-4679-9784-58ce462ee137","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":8814}}
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": 8807,
  "uid": "",
  "user": {
    "id": 25103,
    "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-03-25T05:22:40+01:00"
  },
  "project": {
    "id": 8814,
    "active": true,
    "account_id": 10651,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1553487761,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 6830,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-25T05:22:41+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 3,
    "minutes": 30,
    "seconds": 0,
    "formatted": "03:30",
    "total_hours": 3.5,
    "total_seconds": 12600,
    "total_minutes": 210
  },
  "estimated_duration": {
    "hours": 4,
    "minutes": 0,
    "seconds": 0,
    "formatted": "04:00",
    "total_hours": 4.0,
    "total_seconds": 14400,
    "total_minutes": 240
  },
  "cost": {
    "fractional": 17500,
    "formatted": "$175.00",
    "amount": 175.0
  },
  "estimated_cost": {
    "fractional": 20000,
    "formatted": "$200.00",
    "amount": 200.0
  },
  "day": "2019-03-25",
  "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": 1553487761,
  "created_at": 1553487761,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-25T08:52:41+01:00",
  "from": "2019-03-25T05:22:41+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 25103,
  "updater_id": 25103,
  "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/10650/projects/8813/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-25T05:22:40.797+01:00","to":"2019-03-25T08:52:40.797+01:00","day":"2019-03-25","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-25T05:22:40.798+01:00","uid":"18b99e41-cd51-4970-9242-97c630851495","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":8813}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 86777dc3dffc8041d22258aebdd4db7b05834584dc657d925bf3238b35ad46d9" \
    -H "Cookie: "

Endpoint

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

POST /1.1/10650/projects/8813/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 86777dc3dffc8041d22258aebdd4db7b05834584dc657d925bf3238b35ad46d9

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-25T05:22:40.797+01:00","to":"2019-03-25T08:52:40.797+01:00","day":"2019-03-25","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-25T05:22:40.798+01:00","uid":"18b99e41-cd51-4970-9242-97c630851495","timer_state":0,"created_from":"Web","updated_from":"Web","project_id":8813}}
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": 8806,
  "uid": "",
  "user": {
    "id": 25101,
    "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-03-25T05:22:40+01:00"
  },
  "project": {
    "id": 8813,
    "active": true,
    "account_id": 10650,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1553487760,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 6829,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-25T05:22:40+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 3,
    "minutes": 30,
    "seconds": 0,
    "formatted": "03:30",
    "total_hours": 3.5,
    "total_seconds": 12600,
    "total_minutes": 210
  },
  "estimated_duration": {
    "hours": 4,
    "minutes": 0,
    "seconds": 0,
    "formatted": "04:00",
    "total_hours": 4.0,
    "total_seconds": 14400,
    "total_minutes": 240
  },
  "cost": {
    "fractional": 17500,
    "formatted": "$175.00",
    "amount": 175.0
  },
  "estimated_cost": {
    "fractional": 20000,
    "formatted": "$200.00",
    "amount": 200.0
  },
  "day": "2019-03-25",
  "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": 1553487760,
  "created_at": 1553487760,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-25T08:52:40+01:00",
  "from": "2019-03-25T05:22:40+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 25101,
  "updater_id": 25101,
  "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/10649/users/25099/events" -d '{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-25T05:22:40.188+01:00","to":"2019-03-25T08:52:40.188+01:00","day":"2019-03-25","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-25T05:22:40.188+01:00","uid":"70b65fde-e8a0-4ff5-af9f-29333111f6a2","timer_state":0,"created_from":"Web","updated_from":"Web","user_id":25099}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 32ae02c986d6c68e397b26a0839bbe44f4990d938f9c538fcef802cb7f8d023a" \
    -H "Cookie: "

Endpoint

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

POST /1.1/10649/users/25099/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 32ae02c986d6c68e397b26a0839bbe44f4990d938f9c538fcef802cb7f8d023a

Parameters

{"event":{"hours":3,"minutes":30,"seconds":0,"estimated_hours":4,"estimated_minutes":0,"estimated_seconds":0,"from":"2019-03-25T05:22:40.188+01:00","to":"2019-03-25T08:52:40.188+01:00","day":"2019-03-25","note":"Notes for testing with some random #hash in it.","billed":false,"hour_rate":100,"estimated":false,"logged_at":"2019-03-25T05:22:40.188+01:00","uid":"70b65fde-e8a0-4ff5-af9f-29333111f6a2","timer_state":0,"created_from":"Web","updated_from":"Web","user_id":25099}}
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": 8805,
  "uid": "",
  "user": {
    "id": 25099,
    "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-03-25T05:22:39+01:00"
  },
  "project": {
    "id": 8812,
    "active": true,
    "account_id": 10649,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1553487760,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 6828,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-25T05:22:40+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 3,
    "minutes": 30,
    "seconds": 0,
    "formatted": "03:30",
    "total_hours": 3.5,
    "total_seconds": 12600,
    "total_minutes": 210
  },
  "estimated_duration": {
    "hours": 4,
    "minutes": 0,
    "seconds": 0,
    "formatted": "04:00",
    "total_hours": 4.0,
    "total_seconds": 14400,
    "total_minutes": 240
  },
  "cost": {
    "fractional": 17500,
    "formatted": "$175.00",
    "amount": 175.0
  },
  "estimated_cost": {
    "fractional": 20000,
    "formatted": "$200.00",
    "amount": 200.0
  },
  "day": "2019-03-25",
  "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": 1553487760,
  "created_at": 1553487760,
  "created_from": "Timely",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-25T08:52:40+01:00",
  "from": "2019-03-25T05:22:40+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": 25099,
  "updater_id": 25099,
  "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/10652/events/8808" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer dafea84c73ad041628d4b8e5b6f20b4f861eb089588e1c30d347e9db5c0d66ca" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/events/:id

DELETE /1.1/10652/events/8808
Accept: application/json
Content-Type: application/json
Authorization: Bearer dafea84c73ad041628d4b8e5b6f20b4f861eb089588e1c30d347e9db5c0d66ca

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

Endpoint

GET /1.1/:account_id/events

GET /1.1/10654/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer 5f6c3f857c6733059e90021b90c8fd1f38235d2fc2f0a6d343cc638883b60624

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": 8810,
    "uid": "59e9f92c-ff77-40e9-9b1c-98994f29dfbe",
    "user": {
      "id": 25109,
      "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-03-25T05:22:41+01:00"
    },
    "project": {
      "id": 8817,
      "active": true,
      "account_id": 10654,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1553487762,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 6833,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-03-25T05:22:42+01:00"
      },
      "budget": 0,
      "budget_type": "",
      "hour_rate": 50.0,
      "hour_rate_in_cents": 5000.0,
      "labels": [

      ],
      "label_ids": [

      ],
      "required_label_ids": [

      ]
    },
    "duration": {
      "hours": 3,
      "minutes": 30,
      "seconds": 0,
      "formatted": "03:30",
      "total_hours": 3.5,
      "total_seconds": 12600,
      "total_minutes": 210
    },
    "estimated_duration": {
      "hours": 4,
      "minutes": 0,
      "seconds": 0,
      "formatted": "04:00",
      "total_hours": 4.0,
      "total_seconds": 14400,
      "total_minutes": 240
    },
    "cost": {
      "fractional": 17500,
      "formatted": "$175.00",
      "amount": 175.0
    },
    "estimated_cost": {
      "fractional": 20000,
      "formatted": "$200.00",
      "amount": 200.0
    },
    "day": "2019-03-25",
    "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": 1553487762,
    "created_at": 1553487762,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-03-25T08:52:42+01:00",
    "from": "2019-03-25T05:22:42+01:00",
    "deleted": false,
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "creator_id": null,
    "updater_id": null,
    "external_id": null,
    "entry_ids": [

    ],
    "suggestion_id": null
  }
]

List all events for project

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

Request

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

Endpoint

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

GET /1.1/10656/projects/8819/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer b77f6d677265ff38375a807e0e621c3f2937925513f465da94b52945c7a43005

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": 8812,
    "uid": "0e27510c-3b40-4719-8d03-5b523178e860",
    "user": {
      "id": 25113,
      "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-03-25T05:22:43+01:00"
    },
    "project": {
      "id": 8819,
      "active": true,
      "account_id": 10656,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1553487763,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 6835,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-03-25T05:22:43+01:00"
      },
      "budget": 0,
      "budget_type": "",
      "hour_rate": 50.0,
      "hour_rate_in_cents": 5000.0,
      "labels": [

      ],
      "label_ids": [

      ],
      "required_label_ids": [

      ]
    },
    "duration": {
      "hours": 3,
      "minutes": 30,
      "seconds": 0,
      "formatted": "03:30",
      "total_hours": 3.5,
      "total_seconds": 12600,
      "total_minutes": 210
    },
    "estimated_duration": {
      "hours": 4,
      "minutes": 0,
      "seconds": 0,
      "formatted": "04:00",
      "total_hours": 4.0,
      "total_seconds": 14400,
      "total_minutes": 240
    },
    "cost": {
      "fractional": 17500,
      "formatted": "$175.00",
      "amount": 175.0
    },
    "estimated_cost": {
      "fractional": 20000,
      "formatted": "$200.00",
      "amount": 200.0
    },
    "day": "2019-03-25",
    "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": 1553487763,
    "created_at": 1553487763,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-03-25T08:52:43+01:00",
    "from": "2019-03-25T05:22:43+01:00",
    "deleted": false,
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "creator_id": null,
    "updater_id": null,
    "external_id": null,
    "entry_ids": [

    ],
    "suggestion_id": null
  }
]

List all events for user

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

Request

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

Endpoint

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

GET /1.1/10655/users/25111/events
Accept: application/json
Content-Type: application/json
Authorization: Bearer fe632dcbd04b517e314a7f3959059da64bd50d418ec99972dc8078bb4837ba53

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": 8811,
    "uid": "73f24b3e-5792-4941-9179-4ec2ed155db5",
    "user": {
      "id": 25111,
      "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-03-25T05:22:42+01:00"
    },
    "project": {
      "id": 8818,
      "active": true,
      "account_id": 10655,
      "name": "Timely",
      "color": "67a3bc",
      "rate_type": "project",
      "billable": true,
      "updated_at": 1553487762,
      "external_id": null,
      "budget_scope": null,
      "client": {
        "id": 6834,
        "name": "Timely",
        "active": true,
        "external_id": null,
        "updated_at": "2019-03-25T05:22:42+01:00"
      },
      "budget": 0,
      "budget_type": "",
      "hour_rate": 50.0,
      "hour_rate_in_cents": 5000.0,
      "labels": [

      ],
      "label_ids": [

      ],
      "required_label_ids": [

      ]
    },
    "duration": {
      "hours": 3,
      "minutes": 30,
      "seconds": 0,
      "formatted": "03:30",
      "total_hours": 3.5,
      "total_seconds": 12600,
      "total_minutes": 210
    },
    "estimated_duration": {
      "hours": 4,
      "minutes": 0,
      "seconds": 0,
      "formatted": "04:00",
      "total_hours": 4.0,
      "total_seconds": 14400,
      "total_minutes": 240
    },
    "cost": {
      "fractional": 17500,
      "formatted": "$175.00",
      "amount": 175.0
    },
    "estimated_cost": {
      "fractional": 20000,
      "formatted": "$200.00",
      "amount": 200.0
    },
    "day": "2019-03-25",
    "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": 1553487762,
    "created_at": 1553487762,
    "created_from": "Web",
    "updated_from": "Web",
    "billed": false,
    "to": "2019-03-25T08:52:42+01:00",
    "from": "2019-03-25T05:22:42+01:00",
    "deleted": false,
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "creator_id": null,
    "updater_id": null,
    "external_id": null,
    "entry_ids": [

    ],
    "suggestion_id": null
  }
]

Logged in user updating details and user of an event

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

Request

curl "https://api.timelyapp.com/1.1/10661/users/25123/events/8817" -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 6ff9b9b845e0b3a694558c7bad1836dca28d07c394c0c3162d237769ea40e774" \
    -H "Cookie: "

Endpoint

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

PUT /1.1/10661/users/25123/events/8817
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6ff9b9b845e0b3a694558c7bad1836dca28d07c394c0c3162d237769ea40e774

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": 8817,
  "uid": "e12ff44d-bfd7-4cb4-b3c0-af2711bb9f0b",
  "user": {
    "id": 25123,
    "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-03-25T05:22:44+01:00"
  },
  "project": {
    "id": 8824,
    "active": true,
    "account_id": 10661,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1553487764,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 6840,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-25T05:22:44+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "estimated_duration": {
    "hours": 2,
    "minutes": 0,
    "seconds": 0,
    "formatted": "02:00",
    "total_hours": 2.0,
    "total_seconds": 7200,
    "total_minutes": 120
  },
  "cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "estimated_cost": {
    "fractional": 10000,
    "formatted": "$100.00",
    "amount": 100.0
  },
  "day": "2019-03-25",
  "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": 1553487764,
  "created_at": 1553487764,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-25T08:52:44+01:00",
  "from": "2019-03-25T05:22:44+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 25123,
  "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/10660/projects/8823/events/8816" -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 51154cddefdc5c173f2d47ed1496071a6b7b8fc9eefe55b02b091fb8d4285bf8" \
    -H "Cookie: "

Endpoint

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

PUT /1.1/10660/projects/8823/events/8816
Accept: application/json
Content-Type: application/json
Authorization: Bearer 51154cddefdc5c173f2d47ed1496071a6b7b8fc9eefe55b02b091fb8d4285bf8

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": 8816,
  "uid": "d280e374-615e-4334-b6ec-8e411f9d0959",
  "user": {
    "id": 25121,
    "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-03-25T05:22:44+01:00"
  },
  "project": {
    "id": 8823,
    "active": true,
    "account_id": 10660,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1553487764,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 6839,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-25T05:22:44+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 0,
    "minutes": 0,
    "seconds": 0,
    "formatted": "00:00",
    "total_hours": 0.0,
    "total_seconds": 0,
    "total_minutes": 0
  },
  "estimated_duration": {
    "hours": 2,
    "minutes": 0,
    "seconds": 0,
    "formatted": "02:00",
    "total_hours": 2.0,
    "total_seconds": 7200,
    "total_minutes": 120
  },
  "cost": {
    "fractional": 0,
    "formatted": "$0.00",
    "amount": 0.0
  },
  "estimated_cost": {
    "fractional": 10000,
    "formatted": "$100.00",
    "amount": 100.0
  },
  "day": "2019-03-25",
  "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": 1553487764,
  "created_at": 1553487764,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-25T08:52:44+01:00",
  "from": "2019-03-25T05:22:44+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 25121,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Retrieve an event

Request

curl -g "https://api.timelyapp.com/1.1/10653/events/8809" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 4501450306bf2f5834dd45922b80a64156956fa4a19f709de31e39049db34cb7" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/events/:id

GET /1.1/10653/events/8809
Accept: application/json
Content-Type: application/json
Authorization: Bearer 4501450306bf2f5834dd45922b80a64156956fa4a19f709de31e39049db34cb7

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": 8809,
  "uid": "1cad85c8-e4e4-42a5-a60d-7f4838ecd0ce",
  "user": {
    "id": 25107,
    "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-03-25T05:22:41+01:00"
  },
  "project": {
    "id": 8816,
    "active": true,
    "account_id": 10653,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1553487761,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 6832,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-25T05:22:41+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

    ]
  },
  "duration": {
    "hours": 3,
    "minutes": 30,
    "seconds": 0,
    "formatted": "03:30",
    "total_hours": 3.5,
    "total_seconds": 12600,
    "total_minutes": 210
  },
  "estimated_duration": {
    "hours": 4,
    "minutes": 0,
    "seconds": 0,
    "formatted": "04:00",
    "total_hours": 4.0,
    "total_seconds": 14400,
    "total_minutes": 240
  },
  "cost": {
    "fractional": 17500,
    "formatted": "$175.00",
    "amount": 175.0
  },
  "estimated_cost": {
    "fractional": 20000,
    "formatted": "$200.00",
    "amount": 200.0
  },
  "day": "2019-03-25",
  "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": 1553487761,
  "created_at": 1553487761,
  "created_from": "Web",
  "updated_from": "Web",
  "billed": false,
  "to": "2019-03-25T08:52:41+01:00",
  "from": "2019-03-25T05:22:41+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": null,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Start timer on event

Request

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

Endpoint

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

PUT /1.1/10657/events/8813/start
Accept: application/json
Content-Type: application/json
Authorization: Bearer 16d1764a1b154c4756318095643a2aaa56b52bb9bb789da0fa7fa24a895eb6f6

Parameters

Name Description
id required Event id

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 8813,
  "uid": "1c0d61cc-0e0c-49e6-a8c7-323800871a19",
  "user": {
    "id": 25115,
    "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-03-25T05:22:43+01:00"
  },
  "project": {
    "id": 8820,
    "active": true,
    "account_id": 10657,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1553487763,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 6836,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-25T05:22:43+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

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

  ],
  "user_ids": [

  ],
  "updated_at": 1553487763,
  "created_at": 1553487763,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-25T08:52:43+01:00",
  "from": "2019-03-25T05:22:43+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 25115,
  "external_id": null,
  "entry_ids": [

  ],
  "suggestion_id": null
}

Stop timer on event

Request

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

Endpoint

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

PUT /1.1/10658/events/8814/stop
Accept: application/json
Content-Type: application/json
Authorization: Bearer cf1ff6b5a1d373af74bf0e09ba77a816935f9ec71bf457edb1e6fbfc51d23788

Parameters

Name Description
id required Event id

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 8814,
  "uid": "7108bce7-ef88-41f2-ac11-1e1c54316624",
  "user": {
    "id": 25117,
    "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-03-25T05:22:43+01:00"
  },
  "project": {
    "id": 8821,
    "active": true,
    "account_id": 10658,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1553487764,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 6837,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-25T05:22:43+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

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

  ],
  "user_ids": [

  ],
  "updated_at": 1553487764,
  "created_at": 1553487763,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-25T08:52:43+01:00",
  "from": "2019-03-25T05:22:43+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 25117,
  "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/10659/events/8815" -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 512a5b73336b6f39e058d6ddf96420b6d0a2df714bdfbbf1458c941b747cbf79" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/events/:id

PUT /1.1/10659/events/8815
Accept: application/json
Content-Type: application/json
Authorization: Bearer 512a5b73336b6f39e058d6ddf96420b6d0a2df714bdfbbf1458c941b747cbf79

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": 8815,
  "uid": "62b32495-8488-472f-92e8-0cba09decf82",
  "user": {
    "id": 25119,
    "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-03-25T05:22:44+01:00"
  },
  "project": {
    "id": 8822,
    "active": true,
    "account_id": 10659,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1553487764,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 6838,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-25T05:22:44+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

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

  ],
  "user_ids": [

  ],
  "updated_at": 1553487764,
  "created_at": 1553487764,
  "created_from": "Web",
  "updated_from": "Timely",
  "billed": false,
  "to": "2019-03-25T08:52:44+01:00",
  "from": "2019-03-25T05:22:44+01:00",
  "deleted": false,
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "creator_id": null,
  "updater_id": 25119,
  "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/10664/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 30ac98d64ca2b5922b7ff53ab999688b75197d5435c42fa3e900b6591bf97f1f" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/labels

POST /1.1/10664/labels
Accept: application/json
Content-Type: application/json
Authorization: Bearer 30ac98d64ca2b5922b7ff53ab999688b75197d5435c42fa3e900b6591bf97f1f

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

  ]
}

Delete a label

Request

curl "https://api.timelyapp.com/1.1/10665/labels/5687" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 9414c13b627bf793f6a43afe58f09cfa19e0a0b44d7cec2ea110ec5dd6ada697" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/labels/:id

DELETE /1.1/10665/labels/5687
Accept: application/json
Content-Type: application/json
Authorization: Bearer 9414c13b627bf793f6a43afe58f09cfa19e0a0b44d7cec2ea110ec5dd6ada697

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

Endpoint

GET /1.1/:account_id/labels

GET /1.1/10668/labels?parent_id=5689
Accept: application/json
Content-Type: application/json
Authorization: Bearer 02cebe20cdfc6a9a3acc2e034350d0440dda10ef7b739f5d4804d4a57276d823

Parameters

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

Endpoint

GET /1.1/:account_id/labels

GET /1.1/10667/labels
Accept: application/json
Content-Type: application/json
Authorization: Bearer c20da5bc88bfa692cb233cf07a84188b3a870927ee233cff8e4f65858dfecce5

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/10666/labels/5688" -X GET \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 00424a3db8873840c1b4afb788a2f5d88778ca09d8ec884a9dcf023dd439f94c" \
    -H "Cookie: "

Endpoint

GET /1.1/:account_id/labels/:id

GET /1.1/10666/labels/5688
Accept: application/json
Content-Type: application/json
Authorization: Bearer 00424a3db8873840c1b4afb788a2f5d88778ca09d8ec884a9dcf023dd439f94c

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

  ]
}

Update a label

Request

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

Endpoint

PUT /1.1/:account_id/labels/:id

PUT /1.1/10669/labels/5690
Accept: application/json
Content-Type: application/json
Authorization: Bearer fce95966ce1b19c087436d0f400e46148c840ea4ec717223a74a53762dcaac57

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": 5690,
  "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/10675/projects" -d '{"project":{"name":"New Project","rate_type":"project","hour_rate":50.0,"active":true,"deleted":false,"currency_code":"usd","color":"67a3bc","client_id":6854,"budget_type":"M","budget":300,"users":[{"user_id":25151}],"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 9dba1dfa34d95f6b5546b140b48a2cffdb26bdce88331e1d6a5f8e9046033231" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/projects

POST /1.1/10675/projects
Accept: application/json
Content-Type: application/json
Authorization: Bearer 9dba1dfa34d95f6b5546b140b48a2cffdb26bdce88331e1d6a5f8e9046033231

Parameters

{"project":{"name":"New Project","rate_type":"project","hour_rate":50.0,"active":true,"deleted":false,"currency_code":"usd","color":"67a3bc","client_id":6854,"budget_type":"M","budget":300,"users":[{"user_id":25151}],"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": 8839,
  "active": true,
  "account_id": 10675,
  "name": "New Project",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1553487768,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 6854,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-03-25T05:22:47+01:00"
  },
  "budget": 300,
  "budget_type": "M",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 25151,
      "hour_rate": 50.0,
      "hour_rate_in_cents": 5000.0,
      "updated_at": "2019-03-25T05:22:48+01:00",
      "deleted": false
    }
  ],
  "labels": [

  ],
  "label_ids": [

  ],
  "required_label_ids": [

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

Delete a project

Request

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

Endpoint

DELETE /1.1/:account_id/projects/:id

DELETE /1.1/10676/projects/8840
Accept: application/json
Content-Type: application/json
Authorization: Bearer c17191f4ac41112f991959ccc21adb112c44f42d57ad4dbd2558e5e4c0bceea6

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

Endpoint

GET /1.1/:account_id/projects

GET /1.1/10678/projects
Accept: application/json
Content-Type: application/json
Authorization: Bearer 96742f4914b9352e956391dcc3b9a9f40bede99c5b6fa6de67eba856b80feff6

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": 8842,
    "active": true,
    "account_id": 10678,
    "name": "Timely",
    "color": "67a3bc",
    "rate_type": "project",
    "billable": true,
    "updated_at": 1553487768,
    "external_id": null,
    "budget_scope": null,
    "client": {
      "id": 6857,
      "name": "Timely",
      "active": true,
      "external_id": null,
      "updated_at": "2019-03-25T05:22:48+01:00"
    },
    "budget": 0,
    "budget_type": "",
    "hour_rate": 50.0,
    "hour_rate_in_cents": 5000.0,
    "users": [
      {
        "user_id": 25157,
        "hour_rate": 100.0,
        "hour_rate_in_cents": 10000.0,
        "updated_at": "2019-03-25T05:22:48+01:00",
        "deleted": false
      }
    ],
    "labels": [

    ],
    "label_ids": [

    ],
    "required_label_ids": [

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

Retrieve a project

Retrieve a single project by providing a project id.

Request

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

Endpoint

GET /1.1/:account_id/projects/:id

GET /1.1/10677/projects/8841
Accept: application/json
Content-Type: application/json
Authorization: Bearer cb5bf6549a42e0c0de26d1b200ad8c92ed5f812baf88f2fa43024926748f88f8

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": 8841,
  "active": true,
  "account_id": 10677,
  "name": "Timely",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1553487768,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 6856,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-03-25T05:22:48+01:00"
  },
  "budget": 0,
  "budget_type": "",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 25155,
      "hour_rate": 100.0,
      "hour_rate_in_cents": 10000.0,
      "updated_at": "2019-03-25T05:22:48+01:00",
      "deleted": false
    }
  ],
  "labels": [

  ],
  "label_ids": [

  ],
  "required_label_ids": [

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

Update a project

Request

curl "https://api.timelyapp.com/1.1/10680/projects/8844" -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 e5c083568ec1d7103c5dfc8633c7f478a016a30f8b89f0158b1fe72fcb96d492" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/projects/:id

PUT /1.1/10680/projects/8844
Accept: application/json
Content-Type: application/json
Authorization: Bearer e5c083568ec1d7103c5dfc8633c7f478a016a30f8b89f0158b1fe72fcb96d492

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": 8844,
  "active": true,
  "account_id": 10680,
  "name": "updated project name",
  "color": "67a3bc",
  "rate_type": "project",
  "billable": true,
  "updated_at": 1553487769,
  "external_id": null,
  "budget_scope": null,
  "client": {
    "id": 6859,
    "name": "Timely",
    "active": true,
    "external_id": null,
    "updated_at": "2019-03-25T05:22:49+01:00"
  },
  "budget": 0,
  "budget_type": "",
  "hour_rate": 50.0,
  "hour_rate_in_cents": 5000.0,
  "users": [
    {
      "user_id": 25161,
      "hour_rate": 0.0,
      "hour_rate_in_cents": 0.0,
      "updated_at": "2019-03-25T05:22:49+01:00",
      "deleted": false
    }
  ],
  "labels": [

  ],
  "label_ids": [

  ],
  "required_label_ids": [

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

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/10708/reports" -d '{"user_ids":"25221","since":"2018-01-01","until":"2019-01-01","project_ids":"8899"}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 1bb087a0410c9acd5c18a4a235c29079a49559cda75548d31ef05838670e137e" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/reports

POST /1.1/10708/reports
Accept: application/json
Content-Type: application/json
Authorization: Bearer 1bb087a0410c9acd5c18a4a235c29079a49559cda75548d31ef05838670e137e

Parameters

{"user_ids":"25221","since":"2018-01-01","until":"2019-01-01","project_ids":"8899"}
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": 6887,
    "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": 8899,
        "active": true,
        "account_id": 10708,
        "name": "Timely",
        "color": "67a3bc",
        "rate_type": "project",
        "billable": true,
        "updated_at": 1553487776,
        "external_id": null,
        "budget_scope": null,
        "client": {
          "id": 6887,
          "name": "Timely",
          "active": true,
          "external_id": null,
          "updated_at": "2019-03-25T05:22:56+01:00"
        },
        "budget": 0,
        "budget_type": "",
        "hour_rate": 50.0,
        "hour_rate_in_cents": 5000.0,
        "duration": {
          "hours": 5,
          "minutes": 0,
          "seconds": 0,
          "formatted": "05:00",
          "total_hours": 5.0,
          "total_seconds": 18000,
          "total_minutes": 300
        },
        "estimated_duration": {
          "hours": 8,
          "minutes": 0,
          "seconds": 0,
          "formatted": "08:00",
          "total_hours": 8.0,
          "total_seconds": 28800,
          "total_minutes": 480
        },
        "cost": {
          "fractional": 25000,
          "formatted": "$250.00",
          "amount": 250.0
        },
        "estimated_cost": {
          "fractional": 40000,
          "formatted": "$400.00",
          "amount": 400.0
        }
      }
    ]
  }
]

Filter Report

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

Request

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

Endpoint

POST 1.1/:account_id/reports/filter

POST 1.1/10709/reports/filter
Accept: application/json
Content-Type: application/json
Authorization: Bearer d51c17c24bbfde65bda49b01c144b08afbec26c34fac771946285f4557ae7684

Parameters

{"user_ids":"25223","since":"2018-01-01","until":"2019-01-01","project_ids":"8900"}
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": 6888,
      "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": 8900,
          "active": true,
          "account_id": 10709,
          "name": "Timely",
          "color": "67a3bc",
          "rate_type": "project",
          "billable": true,
          "updated_at": 1553487777,
          "external_id": null,
          "budget_scope": null,
          "client": {
            "id": 6888,
            "name": "Timely",
            "active": true,
            "external_id": null,
            "updated_at": "2019-03-25T05:22:57+01:00"
          },
          "budget": 0,
          "budget_type": "",
          "hour_rate": 50.0,
          "hour_rate_in_cents": 5000.0,
          "duration": {
            "hours": 5,
            "minutes": 0,
            "seconds": 0,
            "formatted": "05:00",
            "total_hours": 5.0,
            "total_seconds": 18000,
            "total_minutes": 300
          },
          "estimated_duration": {
            "hours": 8,
            "minutes": 0,
            "seconds": 0,
            "formatted": "08:00",
            "total_hours": 8.0,
            "total_seconds": 28800,
            "total_minutes": 480
          },
          "cost": {
            "fractional": 25000,
            "formatted": "$250.00",
            "amount": 250.0
          },
          "estimated_cost": {
            "fractional": 40000,
            "formatted": "$400.00",
            "amount": 400.0
          }
        }
      ]
    }
  ],
  "users": [
    {
      "id": 25223,
      "email": "marija@memory.ai",
      "name": "Marija Petrovic",
      "time_zone": "Europe/Paris",
      "updated_at": 1553487777,
      "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/10722/teams" -d '{"team":{"name":"Timely","color":"67a3bc","emoji":"http://path.to/emoji.png","external_id":null,"user_ids":[25249]}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer a0dad0781f338b7e6d8864d588cb38015b62772d35378eaf80fb1645856bc1ca" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/teams

POST /1.1/10722/teams
Accept: application/json
Content-Type: application/json
Authorization: Bearer a0dad0781f338b7e6d8864d588cb38015b62772d35378eaf80fb1645856bc1ca

Parameters

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

Response

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

Delete a team

Request

curl "https://api.timelyapp.com/1.1/10723/teams/669" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 66e576a0accae38f6827dfc6ed0dc2aa02353c3e34ac961f1370a03296ac5683" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/teams/:id

DELETE /1.1/10723/teams/669
Accept: application/json
Content-Type: application/json
Authorization: Bearer 66e576a0accae38f6827dfc6ed0dc2aa02353c3e34ac961f1370a03296ac5683

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

Endpoint

GET /1.1/:account_id/teams

GET /1.1/10725/teams
Accept: application/json
Content-Type: application/json
Authorization: Bearer 9856fb524bebe83700309a6233a13c523e6d8170961c0788b72c43f6b087c563

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

Endpoint

GET /1.1/:account_id/teams/:id

GET /1.1/10724/teams/670
Accept: application/json
Content-Type: application/json
Authorization: Bearer c5ae067127da800aa578337164c13a5d8e5f11c3e06923c78e875c38295b4d23

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

  ]
}

Update a team

Request

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

Endpoint

PUT /1.1/:account_id/teams/:id

PUT /1.1/10726/teams/671
Accept: application/json
Content-Type: application/json
Authorization: Bearer 514d34db6d2b2ad0cfe0fbf5b8526d59557081c5b2c82cf3e1af3e18a6678a99

Parameters

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

Response

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

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/10730/users" -d '{"user":{"name":"Marija Petrovic","email":"marija@timely.com","user_level":"normal","admin":false,"projects":[{"project_id":8921,"hour_rate":10}]},"admin":{"id":5370,"email":"notifications@timelyapp.com","created_at":"2019-03-25T05:23:03.000+01:00","updated_at":"2019-03-25T05:23:03.000+01:00","name":"Timely","notifier":false}}' -X POST \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 8e84fbf7d7ae2b19f9d0ce44959c7557e249378d1e8e40a6d7f45d3a7eb80e5c" \
    -H "Cookie: "

Endpoint

POST /1.1/:account_id/users

POST /1.1/10730/users
Accept: application/json
Content-Type: application/json
Authorization: Bearer 8e84fbf7d7ae2b19f9d0ce44959c7557e249378d1e8e40a6d7f45d3a7eb80e5c

Parameters

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

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 25267,
  "email": "marija@timely.com",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": false,
  "memory_onboarded": false,
  "created_at": 1553487784,
  "updated_at": 1553487784,
  "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/10731/users/25268" -d '' -X DELETE \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 91f5a768539b05571123e60a4cfeac92231d33373c3529916b0a438e40dad46a" \
    -H "Cookie: "

Endpoint

DELETE /1.1/:account_id/users/:id

DELETE /1.1/10731/users/25268
Accept: application/json
Content-Type: application/json
Authorization: Bearer 91f5a768539b05571123e60a4cfeac92231d33373c3529916b0a438e40dad46a

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

Endpoint

GET /1.1/:account_id/users

GET /1.1/10734/users
Accept: application/json
Content-Type: application/json
Authorization: Bearer e4746de1288ae00f84c94c65b83c66fee5d01d45b59a8bad724b1d9f041ba91f

Parameters

Name Description
account_id Account id for which users to be retrieved

Response

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

Endpoint

GET /1.1/:account_id/users/:id

GET /1.1/10732/users/25270
Accept: application/json
Content-Type: application/json
Authorization: Bearer 6f46cfe2600972a2df380efea526e326cd4a97ca768e5f3d2f97bf43db21b342

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

Endpoint

GET /1.1/:account_id/users/current

GET /1.1/10733/users/current
Accept: application/json
Content-Type: application/json
Authorization: Bearer 383db385e1cb69a0902242f44c2217d25e329d3a46490bbcb5b5364c7cb01b6d

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": 25272,
  "email": "marija@memory.ai",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1553487785,
  "updated_at": 1553487785,
  "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/10735/users/25276" -d '{"user":{"name":"Robin","user_level":"normal","admin":false,"projects":[{"project_id":8926,"hour_rate":10}]},"admin":{"id":5375,"email":"notifications@timelyapp.com","created_at":"2019-03-25T05:23:06.000+01:00","updated_at":"2019-03-25T05:23:06.000+01:00","name":"Timely","notifier":false}}' -X PUT \
    -H "Host: api.timelyapp.com" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer 5d5085ae87871d0579abb10cfb57130a79facd9ea88cb48dd988a80fcbe51d35" \
    -H "Cookie: "

Endpoint

PUT /1.1/:account_id/users/:id

PUT /1.1/10735/users/25276
Accept: application/json
Content-Type: application/json
Authorization: Bearer 5d5085ae87871d0579abb10cfb57130a79facd9ea88cb48dd988a80fcbe51d35

Parameters

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

Response

Content-Type: application/json; charset=utf-8
200 OK
{
  "id": 25276,
  "email": "marija@memory.ai",
  "name": "Marija Petrovic",
  "active": false,
  "day_view_onboarded": true,
  "memory_onboarded": true,
  "created_at": 1553487785,
  "updated_at": 1553487785,
  "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.