Timeneye

Welcome to the Timeneye Support site!

Guides, FAQs, tips & tricks to master Timeneye time tracking.
How can we help you?

Overview

 

Timeneye APIs use the OAuth 2.0 flow for authentication.

In order to start using our apis you need to create a new app under your developer panel.
The newly created app will have a clientId, to identify your app, that can be used on public code (like JS) and a clientSecret which, you guessed it, must stay secret.

To get the access token needed to perform actions for your users, you need to ask them to authorize your app redirecting them to https://track.timeneye.com/authorize/{clientId}.

They will be showed a view with info about your app and they will be able to confirm or cancel the authorization.
In case they accept they will be redirected to the url you have configured as Redirect URI in your app settings, the redirect url will include also a code that you need later in order to get the access token.
Otherwise they will be redirected to the Cancel URI.

At this point to get the access token just call the Get token endpoint and you will get back an object containing accessToken, refreshToken and expiration.

Access tokens expire after 14 days, to get the new one just call the Refresh token
endpoint.

From there on, you can call our endpoints adding a specific header Bearer: [accessToken].

In this page you will be able to test out all our endpoints using a temporary token that you can generate from your developer panel, clicking the "Get API docu. token" button.

Useful information

 

Endpoints base url and protocol

All our API endpoints have as baseurl https://track.timeneye.com/api/3 and all calls must be performed via https.
CORS is supported.

Dates and datetimes

All datetimes, both when returned and when expected as parameter, are in the MySQL format YYYY-MM-DD HH:mm:ss (YYYY-MM-DD for dates) and they are considered GMT+0.

What PM and GM means?

We use the shortened form PM to describe the project manager access level, and GM for group managers.

Task And task categories

On February 2016 we renamed tasks as phases, but all phases endpoints and parameters still use the task term (same thing for task categories which are now called phase categories).
It can be a little confusing, but for the moment we will keep the reference as it is. We may create new endpoint in the future and leave the current ones a bit longer for backward compatibility.

Rate limits

 

In order to be able to offer a reliable service to all our users and customers we limit how many requests can be performed per token every 5 minutes.

Every token has a limited number of requests (in the table below) that can be performed in a given window of time. The requests count is reset every 5 minutes.

In case the limit is reached, the following requests (for the given token) will receive a 429 error with a retryAfter attribute that indicates after which datetime (GMT+0) you will be able to retry the request.

{
  "code" : 429,
  "description" : "Too many requests",
  "retryAfter" : "2018-06-22 14:25:10"
}

The number of requests that can be performed every 5 minutes changes based on which plan has the user's account, at the moment of the request.

Plan
Maximum requests per 5 minutes

Free

500

Business (any tier)

2000

Errors

 

All our API endpoints return a 200 HTTP status code when everything works as expected, but sometimes it may return an error.

Our APIs return different error codes based on the failure cause, ranging from missing parameters to server errors on our side.

Every error returns also an object with the code and an optional description that can be used in debug to understand the specific case.

In the table below you find a list of all our error codes with a generic description of the cause, in case the endpoint doesn't return a description of the specific case.

Code
Meaning
Description

400

Bad request

One or multiple required parameters are missing or invalid.

401

Unauthorized

The authorization token is missing, invalid or expired.

402

Payment required

The request was valid, but the authorized user's account subscription is expired.

403

Forbidden

Both the authentication and the request syntax are correct, but the resource you're trying to access or edit requires an access level that the authorized user doesn't have.

404

Not found

The requested resource is not available.

409

Conflict

The resource you're trying to create already exists.
This can happen when trying to create a project with a name already in use or a user with an email linked to an existing user.

423

Locked

The resource you're trying to edit is locked, and the authorized user doesn't have the access level required to edit a locked resources.

429

Too many requests

You have reached your rate limit for the given token.
The returned error message will have the attribute retryAfter with the datetime GMT+0 after which you'll be able to retry your request.
See the "Rate limits" section for more info.

500

Internal server error

There was a problem on our side.

Get token

 
gethttps://track.timeneye.com/api/3/token/clientId/code
No code samples available
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

clientId
string
required
code
string
required

The code appended in the redirectUri when Timeneye redirects back to your app after the user has authorized your app

Headers

Authorization
string
required

"Basic XXX" where XXX is a base64 of '{clientId}:{clientSecret}'

 
{
  "accessToken" : "XXXXXXXXXXXXX",
  "refreshToken" : "XXXXXXXXXXXXX",
  "expiration" : "2018-06-01 15:00:00"
}

Refresh token

 
gethttps://track.timeneye.com/api/3/refresh-token/clientId/refreshToken
No code samples available
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

clientId
string
required
refreshToken
string
required

Headers

Authorization
string
required

"Basic XXX" where XXX is a base64 of '{clientId}:{clientSecret}'

 
{
  "accessToken" : "XXXXXXXXXXXXX",
  "refreshToken" : "XXXXXXXXXXXXX",
  "expiration" : "2018-06-01 15:00:00"
}

Projects

 

Get projects list

Returns the list of projects accessible by the authenticated user.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/projects
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/projects' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/projects
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/projects");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Response

A list of projects

projectsarray

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

{
  "projects": [
    {
      "id": 125,
      "name": "Arvo's project",
      "isActive": 1
    }
  ]
}

Create new project

This endpoint is available only if the authenticated user is an Admin or GM.
The authenticated user is automatically added as the PM of the project.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://track.timeneye.com/api/3/projects
var request = require("request");

var options = { method: 'POST',
  url: 'https://track.timeneye.com/api/3/projects' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url https://track.timeneye.com/api/3/projects
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://track.timeneye.com/api/3/projects");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects"

response = requests.request("POST", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Body Params

name
string

Name of the new project

Response

Project created succesfully

idstring

id of the newly created app.

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Conflict, the requested new entity already exists

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Get project's details

Some details are returned only if the authenticated user is an Admin or PM of the given project.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/projects/projectId
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/projects/projectId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/projects/projectId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/projects/projectId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

Numeric ID of the project to retrieve

Response

ok

idinteger

project unique identifier

namestring

Project name

isActiveinteger

tells if the project is active 1 or not 0

clientIdinteger

Visible by PMs only

clientNamestring

Client name. Visible by PMs only

isBillableinteger

Indicate if the project is ether Billable 1 or not 0

hourlyRatenumber

The hourly Price. Visible by PM only.

budgetMinutesinteger

Indicates the project budget mintes

totalMinutesinteger

Indicates the project's total spent minutes.

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Update project

This endpoint is available only if the authenticated user is an Admin or PM of the given project.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://track.timeneye.com/api/3/projects/projectId
var request = require("request");

var options = { method: 'PUT',
  url: 'https://track.timeneye.com/api/3/projects/projectId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request PUT \
  --url https://track.timeneye.com/api/3/projects/projectId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://track.timeneye.com/api/3/projects/projectId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId"

response = requests.request("PUT", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId")
  .put(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

Numeric ID of the project to update

Body Params

name
string

The name of the project, if edited.

isBillable
integer

Indicates if the project is billable 1 or not 0

hourlyRate
float

The project's new hourly rate

budgetMinutes
int64

The project new budget in minutes

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Conflict, the requested new entity already exists

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Delete project

This endpoint is available only if the authenticated user is an Admin.
This action is irreversible and will delete permanently also all entries and timers linked to the given project.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://track.timeneye.com/api/3/projects/projectId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://track.timeneye.com/api/3/projects/projectId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
  --url https://track.timeneye.com/api/3/projects/projectId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://track.timeneye.com/api/3/projects/projectId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId"

response = requests.request("DELETE", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId")
  .delete(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

Numeric ID of the project to Delete

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Get project's users list

This endpoint is available only if the authenticated user is an Admin or PM of the given project.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/projects/projectId/users
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/projects/projectId/users' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/projects/projectId/users
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId/users")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/projects/projectId/users");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId/users"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId/users")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId/users",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

The Project Id

Response

The list of users of the project

usersarray

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Add user to project

This endpoint is available only if the authenticated user is an Admin or PM of the given project.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://track.timeneye.com/api/3/projects/projectId/users
var request = require("request");

var options = { method: 'POST',
  url: 'https://track.timeneye.com/api/3/projects/projectId/users' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url https://track.timeneye.com/api/3/projects/projectId/users
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId/users")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://track.timeneye.com/api/3/projects/projectId/users");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId/users"

response = requests.request("POST", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId/users")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId/users",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

The Project Id

Body Params

userId
integer

The User Identification Number

isPM
integer

Indicates if the user would be a PM 1 or not 0 for this project

budgetHours
integer

Indicates the amount of budget time to assign to the user in hours.

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Update project's user

Updates a user's data relative to the given project.
This endpoint is available only if the authenticated user is an Admin or PM of the given project.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://track.timeneye.com/api/3/projects/projectId/users/userId
var request = require("request");

var options = { method: 'PUT',
  url: 'https://track.timeneye.com/api/3/projects/projectId/users/userId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request PUT \
  --url https://track.timeneye.com/api/3/projects/projectId/users/userId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId/users/userId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://track.timeneye.com/api/3/projects/projectId/users/userId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId/users/userId"

response = requests.request("PUT", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId/users/userId")
  .put(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId/users/userId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

The Project Id

userId
integer
required

The User Id

Body Params

budgetHours
integer

The number of hours to set in the hours budget

isPM
number

Indicate if the user should be made PM 1 or not 0

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Remove user from project

This endpoint is available only if the authenticated user is an Admin.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://track.timeneye.com/api/3/projects/projectId/users/userId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://track.timeneye.com/api/3/projects/projectId/users/userId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
  --url https://track.timeneye.com/api/3/projects/projectId/users/userId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId/users/userId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://track.timeneye.com/api/3/projects/projectId/users/userId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId/users/userId"

response = requests.request("DELETE", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId/users/userId")
  .delete(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId/users/userId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

The Project Id

userId
integer
required

The User Id

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Phases

 

Get phases list

Some details are returned only if the authenticated user is an Admin or PM of the given project.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/projects/projectId/tasks
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/projects/projectId/tasks' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/projects/projectId/tasks
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId/tasks")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/projects/projectId/tasks");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId/tasks"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId/tasks")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId/tasks",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

Numeric ID of the project

Response

A list of projects

projectsarray

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Create new phase

This endpoint is available only if the authenticated user is an Admin or PM of the given project.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://track.timeneye.com/api/3/projects/projectId/tasks
var request = require("request");

var options = { method: 'POST',
  url: 'https://track.timeneye.com/api/3/projects/projectId/tasks' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url https://track.timeneye.com/api/3/projects/projectId/tasks
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId/tasks")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://track.timeneye.com/api/3/projects/projectId/tasks");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId/tasks"

response = requests.request("POST", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId/tasks")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId/tasks",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

Numeric ID of the project.

Body Params

name
string
required

The name of the phase

categoryId
integer

The id of the phase category.

budgetHours
integer

The budget hours for the phase. It's only visible to PMs

Response

Unique task identifier

idinteger

The id of the newly created phase

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Conflict, the requested new entity already exists

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Get phase details

Some details are returned only if the authenticated user is an Admin or PM of the given project.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/projects/projectId/tasks/taskId
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/projects/projectId/tasks/taskId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/projects/projectId/tasks/taskId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId/tasks/taskId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/projects/projectId/tasks/taskId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId/tasks/taskId"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId/tasks/taskId")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId/tasks/taskId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

Numeric ID of the project

taskId
integer
required

Numeric ID of the phase

Response

Returns a phase details, some are visible to PMs and Admins only

idinteger

The unique identifier of the phase.

namestring

The name of the phase

isOpeninteger

Tells if the phase is either open or closed. 1 - open 0 - closed

categoryIdinteger

The id of the phase category.

categoryNamestring

The name of the category

budgetMinutesinteger

The budget minutes for the phase. It's only visible to PMs

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Update phase

This endpoint is available only if the authenticated user is an Admin or PM of the given project.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://track.timeneye.com/api/3/projects/projectId/tasks/taskId
var request = require("request");

var options = { method: 'PUT',
  url: 'https://track.timeneye.com/api/3/projects/projectId/tasks/taskId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request PUT \
  --url https://track.timeneye.com/api/3/projects/projectId/tasks/taskId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId/tasks/taskId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://track.timeneye.com/api/3/projects/projectId/tasks/taskId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId/tasks/taskId"

response = requests.request("PUT", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId/tasks/taskId")
  .put(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId/tasks/taskId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

Numeric ID of the project

taskId
integer
required

Numeric ID of the phase

Body Params

name
string
required

The name of the phase

categoryId
integer

The id of the phase category.

budgetHours
integer

The budget hours for the phase. It's only visible to PMs

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Delete phase

This endpoint is available only if the authenticated user is an Admin or PM of the given project.
This action is irreversible and will delete permanently also all entries and timers linked to the given phase.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://track.timeneye.com/api/3/projects/projectId/tasks/taskId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://track.timeneye.com/api/3/projects/projectId/tasks/taskId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
  --url https://track.timeneye.com/api/3/projects/projectId/tasks/taskId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/projects/projectId/tasks/taskId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://track.timeneye.com/api/3/projects/projectId/tasks/taskId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/projects/projectId/tasks/taskId"

response = requests.request("DELETE", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/projects/projectId/tasks/taskId")
  .delete(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/projects/projectId/tasks/taskId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

projectId
integer
required

Numeric ID of the project

taskId
integer
required

Numeric ID of the phase

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Users

 

Get users list

This endpoint is available only if the authenticated user is an Admin.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/users
var request = require("request");

var options = { method: 'GET', url: 'https://track.timeneye.com/api/3/users' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/users
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/users")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/users");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/users"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/users")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/users",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Response

Returns the list of account users

usersarray

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

{
  "users": [
    {
      "id": 1,
      "name": "Mario",
      "email": "mario@example.com",
      "enabled": 1,
      "isAdmin": 1
    }
  ]
}

Create user

This endpoint is available only if the authenticated user is an Admin.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://track.timeneye.com/api/3/users
var request = require("request");

var options = { method: 'POST',
  url: 'https://track.timeneye.com/api/3/users' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url https://track.timeneye.com/api/3/users
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/users")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://track.timeneye.com/api/3/users");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/users"

response = requests.request("POST", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/users")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/users",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Body Params

email
email
required

User email

name
string
required

User name

isAdmin
number

Indicates if the user is an admin 1 or not 0

Response

Retuns the id of the newly created user.

idinteger

Unique user identifier

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Get user's details

This endpoint is available only if the authenticated user is an Admin.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/users/userId
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/users/userId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/users/userId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/users/userId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/users/userId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/users/userId"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/users/userId")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/users/userId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
integer
required

Unique user identifier

Response

User details

idinteger

Unique user identifier

namestring

User name

emailstring

User email

enabledinteger

Indicate if the user is enabled 1 or deactivated 0

isAdmininteger

Indicates if the user is an admin 1 or not 0

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Update user

This endpoint is available only if the authenticated user is an Admin.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://track.timeneye.com/api/3/users/userId
var request = require("request");

var options = { method: 'PUT',
  url: 'https://track.timeneye.com/api/3/users/userId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request PUT \
  --url https://track.timeneye.com/api/3/users/userId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/users/userId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://track.timeneye.com/api/3/users/userId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/users/userId"

response = requests.request("PUT", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/users/userId")
  .put(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/users/userId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
integer
required

The user identification number ID

Body Params

name
string

User name

email
string

User email

isAdmin
number

Indicates if the user is an admin 1 or not 0

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not Found

codestring
descriptionstring

Conflict, the requested new entity already exists

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Delete user

This endpoint is available only if the authenticated user is an Admin.
This action is irreversible and will delete permanently also all entries and timers linked to the given user.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://track.timeneye.com/api/3/users/userId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://track.timeneye.com/api/3/users/userId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
  --url https://track.timeneye.com/api/3/users/userId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/users/userId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://track.timeneye.com/api/3/users/userId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/users/userId"

response = requests.request("DELETE", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/users/userId")
  .delete(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/users/userId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
integer
required

The user identification number ID

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Get user's projects

This endpoint is available only if the authenticated user is an Admin.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/users/userId/projects
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/users/userId/projects' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/users/userId/projects
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/users/userId/projects")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/users/userId/projects");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/users/userId/projects"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/users/userId/projects")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/users/userId/projects",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
integer
required

The user identification number ID

Response

Returns an array of user projects.

projectsarray

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Add user to project

This endpoint is available only if the authenticated user is an Admin.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://track.timeneye.com/api/3/users/userId/projects
var request = require("request");

var options = { method: 'POST',
  url: 'https://track.timeneye.com/api/3/users/userId/projects' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url https://track.timeneye.com/api/3/users/userId/projects
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/users/userId/projects")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://track.timeneye.com/api/3/users/userId/projects");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/users/userId/projects"

response = requests.request("POST", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/users/userId/projects")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/users/userId/projects",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
integer
required

The user identification number ID

Body Params

projectId
integer

Unique project identifier

isPM
integer

Indicates if the user is a PM 1 or not 0

budgetHours
integer

The number of hours assigned to the user for this project

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Failed

codestring
descriptionstring

Update user's project

This endpoint is available only if the authenticated user is an Admin or PM of the given project.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://track.timeneye.com/api/3/users/userId/projects/projectId
var request = require("request");

var options = { method: 'PUT',
  url: 'https://track.timeneye.com/api/3/users/userId/projects/projectId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request PUT \
  --url https://track.timeneye.com/api/3/users/userId/projects/projectId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/users/userId/projects/projectId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://track.timeneye.com/api/3/users/userId/projects/projectId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/users/userId/projects/projectId"

response = requests.request("PUT", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/users/userId/projects/projectId")
  .put(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/users/userId/projects/projectId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
integer
required

The user identification number ID

projectId
integer
required

The Project identification number ID

Body Params

budgetHours
integer

The Total number of hours assigned to the user

isPM
integer

Indicates if the user is ether PM 1 or not 0

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Remove user

This endpoint is available only if the authenticated user is an Admin.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://track.timeneye.com/api/3/users/userId/projects/projectId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://track.timeneye.com/api/3/users/userId/projects/projectId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
  --url https://track.timeneye.com/api/3/users/userId/projects/projectId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/users/userId/projects/projectId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://track.timeneye.com/api/3/users/userId/projects/projectId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/users/userId/projects/projectId"

response = requests.request("DELETE", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/users/userId/projects/projectId")
  .delete(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/users/userId/projects/projectId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

userId
integer
required

The user identification number ID

projectId
integer
required

The Project identification number ID

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Entries

 

Get entries list

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/entries
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/entries' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/entries
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/entries")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/entries");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/entries"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/entries")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/entries",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Body Params

dateFrom
date

Start date. If empty default is one week ago.

dateTo
date

End date

projectId
integer

Unique project identifier

taskId
integer

Unique phase identifier

taskCategoryId
integer

Unique phase Category Id identifier

userId
integer

Unique user identifier

limit
integer

Limit the number of entries to get.

offset
integer

An offset to start from. Number of entries to skip

clientId
integer

Filter the entries based on a project id.
If set to -2 it will filter for entries without a client

billed
integer

It filters entries based on the billed status. It accepts 3 values. 0 for billable entries 1 for billed entries 2 for entries which are not billable (parent project not billable)

Response

A list of entries

entriesarray

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

{
  "entries": [
    {
      "id": 0,
      "entryDate": "2017-01-25",
      "projectId": 0,
      "projectName": "Arvo's Project",
      "userId": 0,
      "userName": "Arvo",
      "taskId": 0,
      "taskName": "Task's Name",
      "notes": "This is  a single task",
      "minutes": 30,
      "billed": 1,
      "locked": 1,
      "clientId": 17,
      "clientName": "axion",
      "taskCategoryName": "My Category name",
      "taskCategoryId": 10
    }
  ]
}

Create a new entry

If you want to create an entry with a different user than the authenticated one, the latter needs to be an Admin.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://track.timeneye.com/api/3/entries
var request = require("request");

var options = { method: 'POST',
  url: 'https://track.timeneye.com/api/3/entries' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url https://track.timeneye.com/api/3/entries
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/entries")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://track.timeneye.com/api/3/entries");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/entries"

response = requests.request("POST", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/entries")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/entries",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Body Params

projectId
integer

The project ID where the entry will be created

taskId
integer

The phase ID where the entry will be created

minutes
integer

entry minutes

userId
integer

Unique user identifier, default the current authenticated user

entryDate
string

When the entry was created. default today (UTC)

notes
string

Some additional information or notes about the entry

taskCategoryId
integer

Unique phase Category Id identifier

Response

entry created. returns the id of the new entry.

idinteger

Unique entry identifier

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

The entity you're trying to edit is locked (and the authenticated user doesn't have the access level needed to edit this locked entity)

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Update entry

If you want to edit an entry with a different user than the authenticated one, the latter needs to be an Admin or PM of the entry's project.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://track.timeneye.com/api/3/entries/entryId
var request = require("request");

var options = { method: 'PUT',
  url: 'https://track.timeneye.com/api/3/entries/entryId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request PUT \
  --url https://track.timeneye.com/api/3/entries/entryId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/entries/entryId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://track.timeneye.com/api/3/entries/entryId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/entries/entryId"

response = requests.request("PUT", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/entries/entryId")
  .put(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/entries/entryId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

entryId
integer
required

Unique entry identifier

Body Params

entryId
integer

The entry ID of the edited entry

projectId
integer

The project ID

taskId
integer

The phase ID

minutes
integer

entry minutes

userId
integer

Unique user identifier, default the current authenticated user

entryDate
string

When the entry was created. default today (UTC)

notes
string

Some additional information or notes about the entry

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

The entity you're trying to edit is locked (and the authenticated user doesn't have the access level needed to edit this locked entity)

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Delete entry

If you want to delete an entry with a different user than the authenticated one, the latter needs to be an Admin or PM of the entry's project.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://track.timeneye.com/api/3/entries/entryId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://track.timeneye.com/api/3/entries/entryId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
  --url https://track.timeneye.com/api/3/entries/entryId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/entries/entryId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://track.timeneye.com/api/3/entries/entryId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/entries/entryId"

response = requests.request("DELETE", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/entries/entryId")
  .delete(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/entries/entryId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

entryId
integer
required

Unique entry identifier

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

The entity you're trying to edit is locked (and the authenticated user doesn't have the access level needed to edit this locked entity)

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Timers

 

Get timers list

Returns the authenticated users's timers.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/timers
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/timers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/timers
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/timers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/timers");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/timers"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/timers")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/timers",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Response

An array containing user's timers.

timersarray

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

{
  "entries": [
    {
      "id": 1,
      "entryDate": "2017-10-20",
      "projectId": 12,
      "projectName": "Arvo's project",
      "userId": 0,
      "userName": "Arvo",
      "taskId": 0,
      "taskName": "Arvo's Main Task",
      "notes": "Arvo's Main Task notes",
      "minutes": 60,
      "billed": 0,
      "locked": 1,
      "clientId": 17,
      "clientName": "axion",
      "taskCategoryName": "Arvo's category name",
      "taskCategoryId": 10
    }
  ]
}

Start timer

Starts a new timer for the authenticated user.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://track.timeneye.com/api/3/timers
var request = require("request");

var options = { method: 'POST',
  url: 'https://track.timeneye.com/api/3/timers' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url https://track.timeneye.com/api/3/timers
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/timers")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://track.timeneye.com/api/3/timers");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/timers"

response = requests.request("POST", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/timers")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/timers",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Body Params

projectId
integer
required

unique project identifier

taskId
integer
required

unique phase identifier

seconds
integer
required

The seconds already counted.

notes
string

Some additional information or notes about the timer

Response

Returns the id of the new entry

idinteger

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

The entity you're trying to edit is locked (and the authenticated user doesn't have the access level needed to edit this locked entity)

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Update a timer

Only timers of the authenticated user can be edited.

 

Header Auth

 Authentication is required for this endpoint.
puthttps://track.timeneye.com/api/3/timers/timerId
var request = require("request");

var options = { method: 'PUT',
  url: 'https://track.timeneye.com/api/3/timers/timerId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request PUT \
  --url https://track.timeneye.com/api/3/timers/timerId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/timers/timerId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://track.timeneye.com/api/3/timers/timerId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/timers/timerId"

response = requests.request("PUT", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/timers/timerId")
  .put(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/timers/timerId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

timerId
integer
required

Body Params

projectId
integer

unique project identifier

taskId
integer

unique phase identifier

seconds
integer

The seconds to count

notes
string

Some additional information or notes about the timer

timerDate
string

The timer date

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Delete timer

Only timers of the authenticated user can be deleted.

 

Header Auth

 Authentication is required for this endpoint.
deletehttps://track.timeneye.com/api/3/timers/timerId
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://track.timeneye.com/api/3/timers/timerId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
  --url https://track.timeneye.com/api/3/timers/timerId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/timers/timerId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://track.timeneye.com/api/3/timers/timerId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/timers/timerId"

response = requests.request("DELETE", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/timers/timerId")
  .delete(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/timers/timerId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "DELETE",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

timerId
integer
required

Response

Action performed, returns an empty response

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Save timer as an entry

Stops (if running) a timer and stores it as an entry.

Only timers of the authenticated user can be saved.

 

Header Auth

 Authentication is required for this endpoint.
posthttps://track.timeneye.com/api/3/timers/timerId
var request = require("request");

var options = { method: 'POST',
  url: 'https://track.timeneye.com/api/3/timers/timerId' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
  --url https://track.timeneye.com/api/3/timers/timerId
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/timers/timerId")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://track.timeneye.com/api/3/timers/timerId");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/timers/timerId"

response = requests.request("POST", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/timers/timerId")
  .post(null)
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/timers/timerId",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

timerId
integer
required

Response

Returns the id of the newly created entry

idinteger

unique entry identifier

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Not Found

codestring
descriptionstring

The entity you're trying to edit is locked (and the authenticated user doesn't have the access level needed to edit this locked entity)

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

Failed

codestring
descriptionstring

Clients

 

Get client list

Returns the list of the account's clients (based on the authenticated user's account).
This endpoint is available only if the authenticated user is an Admin.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/clients
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/clients' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/clients
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/clients")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/clients");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/clients"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/clients")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/clients",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Response

An array containing the list of clients

clientsarray

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

{
  "clients": [
    {
      "id": 25,
      "name": "Axion"
    }
  ]
}

Phase categories

 

Get phase categories list

Returns the list of the account's phase categories (based on the authenticated user's account).
This endpoint is available only if the authenticated user is an Admin.

 

Header Auth

 Authentication is required for this endpoint.
gethttps://track.timeneye.com/api/3/taskcategories
var request = require("request");

var options = { method: 'GET',
  url: 'https://track.timeneye.com/api/3/taskcategories' };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
  --url https://track.timeneye.com/api/3/taskcategories
require 'uri'
require 'net/http'

url = URI("https://track.timeneye.com/api/3/taskcategories")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://track.timeneye.com/api/3/taskcategories");

xhr.send(data);
import requests

url = "https://track.timeneye.com/api/3/taskcategories"

response = requests.request("GET", url)

print(response.text)
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://track.timeneye.com/api/3/taskcategories")
  .get()
  .build();

Response response = client.newCall(request).execute();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://track.timeneye.com/api/3/taskcategories",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
A binary file was returned

You couldn't be authenticated

Try the API to see results

Response

An array of phase categories

categoriesarray

Bad Request: missing required parameters

codestring
descriptionstring

Unauthorized: authToken not valid

codestring
descriptionstring

Account subscription expired

codestring
descriptionstring

Not permitted

codestring
descriptionstring

Too many requests.

codestring

Error code

descriptionstring

The error message

nextRefreshinteger

Timestamp (in seconds) of when the current limits will be refreshed
(generealy once per 5 minutes)

{
  "categories": [
    {
      "id": 12,
      "name": "Arvo's Category"
    }
  ]
}