Time tracking
Get a time entry
GET
/
{team_id}
/
time
/
entries
/
{time_entry_id}
Get a time entry
curl --request GET \
--url https://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.superthread.com/v1/{team_id}/time/entries/{time_entry_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://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"time_entry": {
"id": "01HQK6Z9YJZ4M9JX8FVB6QXYAB",
"team_id": "tDsu0j19",
"card_id": "2700",
"user_id": "uR2dws11",
"started_at": 1608742037016,
"duration_seconds": 1800,
"billable": true,
"rate_snapshot_cents": 12500,
"currency_snapshot": "GBP",
"source": "manual",
"version": 1,
"type": "time_entry",
"scope_type": "card",
"scope_id": "<string>",
"card_title_snapshot": "Prepare September campaign",
"space_id_snapshot": "space_01HQK6Z9YJZ4M9JX8FVB6QXYAB",
"project_id_snapshot": "2701",
"board_id_snapshot": "board_01HQK6Z9YJZ4M9JX8FVB6QXYAB",
"sprint_id_snapshot": "sprint_01HQK6Z9YJZ4M9JX8FVB6QXYAB",
"ancestor_card_ids_snapshot": [
"<string>"
],
"time_category_id": "tc_01HQK6Z9YJZ4M9JX8FVB6QXYAB",
"category_id": "<string>",
"description": "Pairing with Alex on the API spec",
"needs_review": true,
"review_reason": "abandoned_timer",
"reviewed_at": 1608742037016,
"reviewed_by": "<string>",
"deleted_at": 1608742037016,
"locked_at": 1608742037016,
"time_created": 1608742037016,
"time_updated": 1608742037016
}
}{
"error": {
"id": "err5f744ab",
"code": 403,
"sec": "SEC:000-00014",
"message": "You do not have access to this resource",
"date": 1608742037016
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Team ID is an alphanumerical string that identifies a Team. This is externally referred to as a "Workspace".
Time Entry ID (client-supplied ULID).
Response
Time entry
A durable work record. Card ownership metadata is captured when the entry is created, so later card moves or renames do not retroactively change historical reports.
Show child attributes
Show child attributes
⌘I
Get a time entry
curl --request GET \
--url https://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.superthread.com/v1/{team_id}/time/entries/{time_entry_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://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.superthread.com/v1/{team_id}/time/entries/{time_entry_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"time_entry": {
"id": "01HQK6Z9YJZ4M9JX8FVB6QXYAB",
"team_id": "tDsu0j19",
"card_id": "2700",
"user_id": "uR2dws11",
"started_at": 1608742037016,
"duration_seconds": 1800,
"billable": true,
"rate_snapshot_cents": 12500,
"currency_snapshot": "GBP",
"source": "manual",
"version": 1,
"type": "time_entry",
"scope_type": "card",
"scope_id": "<string>",
"card_title_snapshot": "Prepare September campaign",
"space_id_snapshot": "space_01HQK6Z9YJZ4M9JX8FVB6QXYAB",
"project_id_snapshot": "2701",
"board_id_snapshot": "board_01HQK6Z9YJZ4M9JX8FVB6QXYAB",
"sprint_id_snapshot": "sprint_01HQK6Z9YJZ4M9JX8FVB6QXYAB",
"ancestor_card_ids_snapshot": [
"<string>"
],
"time_category_id": "tc_01HQK6Z9YJZ4M9JX8FVB6QXYAB",
"category_id": "<string>",
"description": "Pairing with Alex on the API spec",
"needs_review": true,
"review_reason": "abandoned_timer",
"reviewed_at": 1608742037016,
"reviewed_by": "<string>",
"deleted_at": 1608742037016,
"locked_at": 1608742037016,
"time_created": 1608742037016,
"time_updated": 1608742037016
}
}{
"error": {
"id": "err5f744ab",
"code": 403,
"sec": "SEC:000-00014",
"message": "You do not have access to this resource",
"date": 1608742037016
}
}