curl --request POST \
--url https://api.contracting.kukkingu.software/api/v1/time-entries \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'tenant-id: <tenant-id>' \
--data '
{
"projectId": "prj_8f4d4gk1p9h2x0s7v3n5c1a9",
"date": "2023-10-05",
"durationSeconds": 3600,
"billableId": "bil_eym9hcqlh1m7v3d36blf0vfx",
"description": "Implemented authentication flow.",
"referenceSource": "JIRA",
"referenceId": "PROJ-123"
}
'import requests
url = "https://api.contracting.kukkingu.software/api/v1/time-entries"
payload = {
"projectId": "prj_8f4d4gk1p9h2x0s7v3n5c1a9",
"date": "2023-10-05",
"durationSeconds": 3600,
"billableId": "bil_eym9hcqlh1m7v3d36blf0vfx",
"description": "Implemented authentication flow.",
"referenceSource": "JIRA",
"referenceId": "PROJ-123"
}
headers = {
"tenant-id": "<tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'tenant-id': '<tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
projectId: 'prj_8f4d4gk1p9h2x0s7v3n5c1a9',
date: '2023-10-05',
durationSeconds: 3600,
billableId: 'bil_eym9hcqlh1m7v3d36blf0vfx',
description: 'Implemented authentication flow.',
referenceSource: 'JIRA',
referenceId: 'PROJ-123'
})
};
fetch('https://api.contracting.kukkingu.software/api/v1/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://api.contracting.kukkingu.software/api/v1/time-entries",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'projectId' => 'prj_8f4d4gk1p9h2x0s7v3n5c1a9',
'date' => '2023-10-05',
'durationSeconds' => 3600,
'billableId' => 'bil_eym9hcqlh1m7v3d36blf0vfx',
'description' => 'Implemented authentication flow.',
'referenceSource' => 'JIRA',
'referenceId' => 'PROJ-123'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"tenant-id: <tenant-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.contracting.kukkingu.software/api/v1/time-entries"
payload := strings.NewReader("{\n \"projectId\": \"prj_8f4d4gk1p9h2x0s7v3n5c1a9\",\n \"date\": \"2023-10-05\",\n \"durationSeconds\": 3600,\n \"billableId\": \"bil_eym9hcqlh1m7v3d36blf0vfx\",\n \"description\": \"Implemented authentication flow.\",\n \"referenceSource\": \"JIRA\",\n \"referenceId\": \"PROJ-123\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("tenant-id", "<tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.contracting.kukkingu.software/api/v1/time-entries")
.header("tenant-id", "<tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"prj_8f4d4gk1p9h2x0s7v3n5c1a9\",\n \"date\": \"2023-10-05\",\n \"durationSeconds\": 3600,\n \"billableId\": \"bil_eym9hcqlh1m7v3d36blf0vfx\",\n \"description\": \"Implemented authentication flow.\",\n \"referenceSource\": \"JIRA\",\n \"referenceId\": \"PROJ-123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.contracting.kukkingu.software/api/v1/time-entries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["tenant-id"] = '<tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"prj_8f4d4gk1p9h2x0s7v3n5c1a9\",\n \"date\": \"2023-10-05\",\n \"durationSeconds\": 3600,\n \"billableId\": \"bil_eym9hcqlh1m7v3d36blf0vfx\",\n \"description\": \"Implemented authentication flow.\",\n \"referenceSource\": \"JIRA\",\n \"referenceId\": \"PROJ-123\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "tsh_8f4d4gk1p9h2x0s7v3n5c1a9",
"project": "prj_8f4d4gk1p9h2x0s7v3n5c1a9",
"billable": "bil_eym9hcqlh1m7v3d36blf0vfx",
"date": "2023-10-05",
"durationSeconds": 3600,
"createdAt": "2023-10-05T14:48:00.000Z",
"updatedAt": "2023-10-05T14:48:00.000Z",
"userId": "usr_dt6vljbe6dy0rspxbenflryz",
"description": "Implemented authentication flow.",
"referenceSource": "JIRA",
"referenceId": "PROJ-123"
}
}{
"error": "ValidationError",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"constraint": "<string>"
}
]
}{
"error": "Unauthorized",
"message": "Unauthorized"
}{
"error": "Forbidden",
"message": "Forbidden"
}{
"error": "NotFound",
"message": "Not Found"
}Create time entry
Creates a new time entry for the authenticated tenant.
curl --request POST \
--url https://api.contracting.kukkingu.software/api/v1/time-entries \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'tenant-id: <tenant-id>' \
--data '
{
"projectId": "prj_8f4d4gk1p9h2x0s7v3n5c1a9",
"date": "2023-10-05",
"durationSeconds": 3600,
"billableId": "bil_eym9hcqlh1m7v3d36blf0vfx",
"description": "Implemented authentication flow.",
"referenceSource": "JIRA",
"referenceId": "PROJ-123"
}
'import requests
url = "https://api.contracting.kukkingu.software/api/v1/time-entries"
payload = {
"projectId": "prj_8f4d4gk1p9h2x0s7v3n5c1a9",
"date": "2023-10-05",
"durationSeconds": 3600,
"billableId": "bil_eym9hcqlh1m7v3d36blf0vfx",
"description": "Implemented authentication flow.",
"referenceSource": "JIRA",
"referenceId": "PROJ-123"
}
headers = {
"tenant-id": "<tenant-id>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'tenant-id': '<tenant-id>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
projectId: 'prj_8f4d4gk1p9h2x0s7v3n5c1a9',
date: '2023-10-05',
durationSeconds: 3600,
billableId: 'bil_eym9hcqlh1m7v3d36blf0vfx',
description: 'Implemented authentication flow.',
referenceSource: 'JIRA',
referenceId: 'PROJ-123'
})
};
fetch('https://api.contracting.kukkingu.software/api/v1/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://api.contracting.kukkingu.software/api/v1/time-entries",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'projectId' => 'prj_8f4d4gk1p9h2x0s7v3n5c1a9',
'date' => '2023-10-05',
'durationSeconds' => 3600,
'billableId' => 'bil_eym9hcqlh1m7v3d36blf0vfx',
'description' => 'Implemented authentication flow.',
'referenceSource' => 'JIRA',
'referenceId' => 'PROJ-123'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"tenant-id: <tenant-id>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.contracting.kukkingu.software/api/v1/time-entries"
payload := strings.NewReader("{\n \"projectId\": \"prj_8f4d4gk1p9h2x0s7v3n5c1a9\",\n \"date\": \"2023-10-05\",\n \"durationSeconds\": 3600,\n \"billableId\": \"bil_eym9hcqlh1m7v3d36blf0vfx\",\n \"description\": \"Implemented authentication flow.\",\n \"referenceSource\": \"JIRA\",\n \"referenceId\": \"PROJ-123\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("tenant-id", "<tenant-id>")
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.contracting.kukkingu.software/api/v1/time-entries")
.header("tenant-id", "<tenant-id>")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"projectId\": \"prj_8f4d4gk1p9h2x0s7v3n5c1a9\",\n \"date\": \"2023-10-05\",\n \"durationSeconds\": 3600,\n \"billableId\": \"bil_eym9hcqlh1m7v3d36blf0vfx\",\n \"description\": \"Implemented authentication flow.\",\n \"referenceSource\": \"JIRA\",\n \"referenceId\": \"PROJ-123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.contracting.kukkingu.software/api/v1/time-entries")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["tenant-id"] = '<tenant-id>'
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"projectId\": \"prj_8f4d4gk1p9h2x0s7v3n5c1a9\",\n \"date\": \"2023-10-05\",\n \"durationSeconds\": 3600,\n \"billableId\": \"bil_eym9hcqlh1m7v3d36blf0vfx\",\n \"description\": \"Implemented authentication flow.\",\n \"referenceSource\": \"JIRA\",\n \"referenceId\": \"PROJ-123\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "tsh_8f4d4gk1p9h2x0s7v3n5c1a9",
"project": "prj_8f4d4gk1p9h2x0s7v3n5c1a9",
"billable": "bil_eym9hcqlh1m7v3d36blf0vfx",
"date": "2023-10-05",
"durationSeconds": 3600,
"createdAt": "2023-10-05T14:48:00.000Z",
"updatedAt": "2023-10-05T14:48:00.000Z",
"userId": "usr_dt6vljbe6dy0rspxbenflryz",
"description": "Implemented authentication flow.",
"referenceSource": "JIRA",
"referenceId": "PROJ-123"
}
}{
"error": "ValidationError",
"message": "<string>",
"details": [
{
"field": "<string>",
"message": "<string>",
"constraint": "<string>"
}
]
}{
"error": "Unauthorized",
"message": "Unauthorized"
}{
"error": "Forbidden",
"message": "Forbidden"
}{
"error": "NotFound",
"message": "Not Found"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Specifies the tenant context for the request. All endpoints operate within this tenant scope.
"tnt_pfh0haxfpzowht3oi213cqos"
Body
Request body used to create a time entry resource.
Request body used to create a time entry resource.
Unique identifier of the project.
1"prj_8f4d4gk1p9h2x0s7v3n5c1a9"
Date when the time entry was recorded.
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$"2023-10-05"
Duration of the time entry in seconds.
x <= 90071992547409913600
Unique identifier of the billable.
"bil_eym9hcqlh1m7v3d36blf0vfx"
Optional description of the time entry.
1024"Implemented authentication flow."
External source of the time entry reference.
255"JIRA"
External reference identifier for the time entry.
255"PROJ-123"
Response
Default Response
Standard success response payload wrapped in a data property.
Time entry resource returned by the API.
Show child attributes
Show child attributes