Vehicle checks
Retrieve a vehicle check submission
GET /dn/vehicle_checklist_submissions/ returns one vehicle check submission with every answer, photo link, and signature.
GET
/
dn
/
vehicle_checklist_submissions
/
{id}
Retrieve a vehicle check submission
curl --request GET \
--url https://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{id} \
--header 'X-API-KEY: <api-key>'import requests
url = "https://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{id}"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{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://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{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 => [
"X-API-KEY: <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://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<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://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{id}")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "6905a1c3e8ec54cbf4a05e20",
"organisation_id": "5b22055510c92b1a046ece01",
"vehicle_checklist_id": "6901f0a2e8ec54cbf4a05b0f",
"vehicle_checklist_name": "Start of day",
"trackable_id": "5b2205f610c92b1a046ece0a",
"trackable_name": "Truck 12",
"detrack_id": "DT-1042",
"started_at": "2026-11-03T08:40:02.118+08:00",
"created_at": "2026-11-03T08:42:18.204+08:00",
"updated_at": "2026-11-03T08:42:18.204+08:00",
"passed_item_count": 11,
"failed_item_count": 1,
"signature_name": "Daniel Reyes",
"signature_url": "<string>",
"vehicle_checklist_is_approval": false,
"approval_status": "approved",
"approval_user_id": "<string>",
"approval_user_name": "<string>",
"approval_user_email": "<string>",
"approval_date": "2026-11-03T09:05:41.000+08:00",
"items": [
{
"id": "6905a1c3e8ec54cbf4a05e21",
"vehicle_checklist_item_id": "6901f0a2e8ec54cbf4a05b10",
"vehicle_checklist_item_name": "Odometer",
"value": "48210",
"notes": "<string>",
"photo_1_url": "<string>",
"photo_2_url": "<string>",
"photo_3_url": "<string>",
"photo_4_url": "<string>",
"created_at": "2026-11-03T08:42:18.204+08:00",
"updated_at": "2026-11-03T08:42:18.204+08:00"
}
]
}
}{
"code": "invalid_key",
"message": "Invalid key"
}{
"code": "forbidden"
}{
"code": "not_found",
"message": "Could not find vehicle checklist submission with this id"
}Fetch one vehicle check submission by its
id, from List vehicle check submissions. The response has the same fields as each submission in the list.
Photo and signature links expire about 15 minutes after the response, so download the files straight away.
Known issue: if the submission’s checklist was deleted, this returns
500 (DTR-7093).Retrieve a vehicle check submission
curl --request GET \
--url https://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{id} \
--header 'X-API-KEY: <api-key>'import requests
url = "https://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{id}"
headers = {"X-API-KEY": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-KEY': '<api-key>'}};
fetch('https://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{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://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{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 => [
"X-API-KEY: <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://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-KEY", "<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://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{id}")
.header("X-API-KEY", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.detrack.com/api/v2/dn/vehicle_checklist_submissions/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-KEY"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": {
"id": "6905a1c3e8ec54cbf4a05e20",
"organisation_id": "5b22055510c92b1a046ece01",
"vehicle_checklist_id": "6901f0a2e8ec54cbf4a05b0f",
"vehicle_checklist_name": "Start of day",
"trackable_id": "5b2205f610c92b1a046ece0a",
"trackable_name": "Truck 12",
"detrack_id": "DT-1042",
"started_at": "2026-11-03T08:40:02.118+08:00",
"created_at": "2026-11-03T08:42:18.204+08:00",
"updated_at": "2026-11-03T08:42:18.204+08:00",
"passed_item_count": 11,
"failed_item_count": 1,
"signature_name": "Daniel Reyes",
"signature_url": "<string>",
"vehicle_checklist_is_approval": false,
"approval_status": "approved",
"approval_user_id": "<string>",
"approval_user_name": "<string>",
"approval_user_email": "<string>",
"approval_date": "2026-11-03T09:05:41.000+08:00",
"items": [
{
"id": "6905a1c3e8ec54cbf4a05e21",
"vehicle_checklist_item_id": "6901f0a2e8ec54cbf4a05b10",
"vehicle_checklist_item_name": "Odometer",
"value": "48210",
"notes": "<string>",
"photo_1_url": "<string>",
"photo_2_url": "<string>",
"photo_3_url": "<string>",
"photo_4_url": "<string>",
"created_at": "2026-11-03T08:42:18.204+08:00",
"updated_at": "2026-11-03T08:42:18.204+08:00"
}
]
}
}{
"code": "invalid_key",
"message": "Invalid key"
}{
"code": "forbidden"
}{
"code": "not_found",
"message": "Could not find vehicle checklist submission with this id"
}