List time entries
curl --request GET \
--url https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries \
--header 'X-Api-Key: <x-api-key>'import requests
url = "https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries"
headers = {"X-Api-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>'}};
fetch('https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries")
.header("X-Api-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"time_entries": [
{
"id": "<string>",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_name": "<string>",
"user_email": "jsmith@example.com",
"task_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"task_name": "<string>",
"project_id": "<string>",
"project_name": "<string>",
"client_id": "<string>",
"client_name": "<string>",
"hours": 123,
"recorded_on": "2023-12-25",
"notes": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"total_count": 123,
"page": 123,
"page_size": 123,
"total_pages": 123,
"next_page": 123,
"prev_page": 123
}Time Entries
List time entries
List unbilled time entries for a project. Only time entries not associated with billed invoices are returned.
GET
/
time-entries
List time entries
curl --request GET \
--url https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries \
--header 'X-Api-Key: <x-api-key>'import requests
url = "https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries"
headers = {"X-Api-Key": "<x-api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-Api-Key': '<x-api-key>'}};
fetch('https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-Api-Key: <x-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Api-Key", "<x-api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries")
.header("X-Api-Key", "<x-api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{your-subdomain}.neetoinvoice.com/api/external/v2/time-entries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Api-Key"] = '<x-api-key>'
response = http.request(request)
puts response.read_body{
"time_entries": [
{
"id": "<string>",
"user_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"user_name": "<string>",
"user_email": "jsmith@example.com",
"task_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"task_name": "<string>",
"project_id": "<string>",
"project_name": "<string>",
"client_id": "<string>",
"client_name": "<string>",
"hours": 123,
"recorded_on": "2023-12-25",
"notes": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"total_count": 123,
"page": 123,
"page_size": 123,
"total_pages": 123,
"next_page": 123,
"prev_page": 123
}Replace
Learn how to find your subdomain in Workspace subdomain.
{your-subdomain} with your workspace’s subdomain. Learn how to find your subdomain in Workspace subdomain.
Headers
Use the X-Api-Key header to provide your workspace API key. Refer to Authentication for more information.
Query Parameters
Unique ID of the client. Refer to Getting the Client ID section for detailed instructions.
Unique ID of the project. Refer to Getting the Project ID section for detailed instructions.
Filter time entries recorded on or after this date in YYYY-MM-DD format
Filter time entries recorded on or before this date in YYYY-MM-DD format
Retrieve paginated results by specifying the desired page number. Defaults to 1 if not specified.
Number of results per page. Defaults to 30 if not specified.
Response
200 - application/json
OK - Request succeeded
Hide child attributes
Hide child attributes