curl --request PATCH \
--url https://www.ruddr.io/api/workspace/time-entries/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"date": "2023-12-25",
"minutes": 123,
"notes": "<string>",
"startTime": "<string>",
"endTime": "<string>",
"memberId": "<string>",
"projectId": "<string>",
"roleId": "<string>",
"taskId": "<string>",
"timeOffTypeId": "<string>"
}
'import requests
url = "https://www.ruddr.io/api/workspace/time-entries/{id}"
payload = {
"date": "2023-12-25",
"minutes": 123,
"notes": "<string>",
"startTime": "<string>",
"endTime": "<string>",
"memberId": "<string>",
"projectId": "<string>",
"roleId": "<string>",
"taskId": "<string>",
"timeOffTypeId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
date: '2023-12-25',
minutes: 123,
notes: '<string>',
startTime: '<string>',
endTime: '<string>',
memberId: '<string>',
projectId: '<string>',
roleId: '<string>',
taskId: '<string>',
timeOffTypeId: '<string>'
})
};
fetch('https://www.ruddr.io/api/workspace/time-entries/{id}', 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://www.ruddr.io/api/workspace/time-entries/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'date' => '2023-12-25',
'minutes' => 123,
'notes' => '<string>',
'startTime' => '<string>',
'endTime' => '<string>',
'memberId' => '<string>',
'projectId' => '<string>',
'roleId' => '<string>',
'taskId' => '<string>',
'timeOffTypeId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://www.ruddr.io/api/workspace/time-entries/{id}"
payload := strings.NewReader("{\n \"date\": \"2023-12-25\",\n \"minutes\": 123,\n \"notes\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"memberId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"roleId\": \"<string>\",\n \"taskId\": \"<string>\",\n \"timeOffTypeId\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
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.patch("https://www.ruddr.io/api/workspace/time-entries/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"date\": \"2023-12-25\",\n \"minutes\": 123,\n \"notes\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"memberId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"roleId\": \"<string>\",\n \"taskId\": \"<string>\",\n \"timeOffTypeId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/time-entries/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"date\": \"2023-12-25\",\n \"minutes\": 123,\n \"notes\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"memberId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"roleId\": \"<string>\",\n \"taskId\": \"<string>\",\n \"timeOffTypeId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyUpdate a time entry
curl --request PATCH \
--url https://www.ruddr.io/api/workspace/time-entries/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"date": "2023-12-25",
"minutes": 123,
"notes": "<string>",
"startTime": "<string>",
"endTime": "<string>",
"memberId": "<string>",
"projectId": "<string>",
"roleId": "<string>",
"taskId": "<string>",
"timeOffTypeId": "<string>"
}
'import requests
url = "https://www.ruddr.io/api/workspace/time-entries/{id}"
payload = {
"date": "2023-12-25",
"minutes": 123,
"notes": "<string>",
"startTime": "<string>",
"endTime": "<string>",
"memberId": "<string>",
"projectId": "<string>",
"roleId": "<string>",
"taskId": "<string>",
"timeOffTypeId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
date: '2023-12-25',
minutes: 123,
notes: '<string>',
startTime: '<string>',
endTime: '<string>',
memberId: '<string>',
projectId: '<string>',
roleId: '<string>',
taskId: '<string>',
timeOffTypeId: '<string>'
})
};
fetch('https://www.ruddr.io/api/workspace/time-entries/{id}', 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://www.ruddr.io/api/workspace/time-entries/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'date' => '2023-12-25',
'minutes' => 123,
'notes' => '<string>',
'startTime' => '<string>',
'endTime' => '<string>',
'memberId' => '<string>',
'projectId' => '<string>',
'roleId' => '<string>',
'taskId' => '<string>',
'timeOffTypeId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://www.ruddr.io/api/workspace/time-entries/{id}"
payload := strings.NewReader("{\n \"date\": \"2023-12-25\",\n \"minutes\": 123,\n \"notes\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"memberId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"roleId\": \"<string>\",\n \"taskId\": \"<string>\",\n \"timeOffTypeId\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
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.patch("https://www.ruddr.io/api/workspace/time-entries/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"date\": \"2023-12-25\",\n \"minutes\": 123,\n \"notes\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"memberId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"roleId\": \"<string>\",\n \"taskId\": \"<string>\",\n \"timeOffTypeId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://www.ruddr.io/api/workspace/time-entries/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"date\": \"2023-12-25\",\n \"minutes\": 123,\n \"notes\": \"<string>\",\n \"startTime\": \"<string>\",\n \"endTime\": \"<string>\",\n \"memberId\": \"<string>\",\n \"projectId\": \"<string>\",\n \"roleId\": \"<string>\",\n \"taskId\": \"<string>\",\n \"timeOffTypeId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The time entry uuid
Body
The type of the time entry.
project_time, time_off The approval status of the time entry.
not_submitted, pending_approval, approved, rejected The date of the time entry. Should be in the form YYYY-MM-DD.
The number of minutes for the time entry. Must be a whole number between 1 and 1440.
Notes for the time entry. May be required depending on the project configuration. Max 5000 characters.
The local start time in HH:mm (24-hour) format. Used with endTime to calculate minutes when not provided.
The local end time in HH:mm (24-hour) format. Must be after startTime when set.
The member ID (uuid) of the member for this time entry.
The project ID (uuid) of the project for the time entry. Required when typeId is changed to project_time.
The role ID (uuid) of the project role for the time entry.
The task ID (uuid) of the project task for the time entry.
The time off type ID (uuid) for the time entry. Required when typeId is changed to time_off.
Response
200
The unique identifier for the object.
The type of the time entry.
project_time, time_off The approval status of the time entry.
not_submitted, pending_approval, approved, rejected The client approval status. null when the project does not have client approvals enabled.
not_created, pending_approval, approved, rejected The date of the time entry. Will be in the form YYYY-MM-DD.
The number of minutes logged for the time entry.
The timestamp when the timer was started. null if no timer is active.
Notes associated with the time entry.
The timestamp when the object was created.
The timestamp when the object was last modified.
The local start time of the time entry in HH:mm (24-hour) format.
The local end time of the time entry in HH:mm (24-hour) format.
The member who logged the time entry.
Show child attributes
Show child attributes
The project for this time entry. null for time off entries.
Show child attributes
Show child attributes
The project role for this time entry.
Show child attributes
Show child attributes
The project task for this time entry.
Show child attributes
Show child attributes
The time off type. null for project time entries.
Show child attributes
Show child attributes
The invoice this time entry has been billed on. null if not invoiced.
Show child attributes
Show child attributes
The timesheet this time entry was submitted on. null when the time entry has not been submitted or the timesheets feature is disabled.
Show child attributes
Show child attributes
Whether this time entry is billable. This is a calculated value based on the project, role, and other related objects.
Whether this time entry has been invoiced. When true, the invoice property will be populated.
The currency code for the billing rate.
The billable rate applicable to this time entry. This is a calculated value based on the project, role, and other related objects.
The currency code for the cost rate.
The cost per hour for this time entry.