curl --request GET \
--url https://api.withterminal.com/tsp/v1/providers \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.withterminal.com/tsp/v1/providers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.withterminal.com/tsp/v1/providers', 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.withterminal.com/tsp/v1/providers",
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.withterminal.com/tsp/v1/providers"
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.withterminal.com/tsp/v1/providers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withterminal.com/tsp/v1/providers")
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[
{
"name": "Geotab",
"code": "geotab",
"logo": "https://cdn.withterminal.com/providers/geotab/logo.png",
"icon": "https://cdn.withterminal.com/providers/geotab/icon.png",
"supportedModels": {
"Group": {
"supportedOperations": {}
},
"Vehicle": {
"supportedOperations": {}
},
"Driver": {
"supportedOperations": {}
},
"LatestVehicleLocation": {
"supportedOperations": {}
},
"VehicleLocation": {
"supportedOperations": {},
"sampleRate": "30 seconds",
"availableHistory": "1 year"
},
"VehicleStatLog": {
"supportedOperations": {},
"types": [
"odometer",
"engine_state",
"fuel_level",
"engine_runtime"
]
},
"Trailer": {
"supportedOperations": {}
},
"LatestTrailerLocation": {
"supportedOperations": {}
},
"Trip": {
"supportedOperations": {}
},
"Device": {
"supportedOperations": {}
},
"HOSLog": {
"supportedOperations": {}
},
"HOSDailyLog": {
"supportedOperations": {}
},
"HOSAvailableTime": {
"supportedOperations": {}
},
"IFTASummary": {
"supportedOperations": {}
},
"SafetyEvent": {
"supportedOperations": {},
"types": [
"speeding",
"harsh_brake",
"harsh_acceleration",
"harsh_turn",
"crash"
]
},
"CameraMedia": {
"supportedOperations": {}
},
"FaultCodeEvent": {
"supportedOperations": {}
},
"VehicleUtilization": {
"supportedOperations": {}
}
},
"passthrough": {
"supported": true
},
"baseCode": "geotab",
"references": [
{
"url": "<string>",
"label": "<string>"
}
]
}
]{
"code": "bad_request",
"message": "Invalid request body",
"detail": [
{
"message": "'vehicleId' property must be a valid ulid",
"path": "{requestQuery}.vehicleId",
"suggestion": "Please ensure you submit a valid 'vehicleId' property",
"context": {}
}
]
}{
"code": "unauthorized",
"message": "Unauthorized Request",
"detail": "Please ensure you have a valid API key"
}{
"code": "forbidden",
"message": "Forbidden Request",
"detail": "Please ensure the connection token matches the resource you are attempting to access."
}{
"code": "too_many_requests",
"message": "Too Many Requests",
"retryAfter": 60,
"detail": "You have exceeded your rate limit. Please try again later."
}{
"code": "internal_server_error",
"message": "Internal Server Error",
"detail": "Something went wrong"
}{
"code": "gateway_timeout",
"message": "Gateway Timeout"
}List Providers
Retrieve a list of the providers Terminal supports. This endpoint will grow to include additional details about the supported capabilities of each provider.
curl --request GET \
--url https://api.withterminal.com/tsp/v1/providers \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.withterminal.com/tsp/v1/providers"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.withterminal.com/tsp/v1/providers', 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.withterminal.com/tsp/v1/providers",
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.withterminal.com/tsp/v1/providers"
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.withterminal.com/tsp/v1/providers")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.withterminal.com/tsp/v1/providers")
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[
{
"name": "Geotab",
"code": "geotab",
"logo": "https://cdn.withterminal.com/providers/geotab/logo.png",
"icon": "https://cdn.withterminal.com/providers/geotab/icon.png",
"supportedModels": {
"Group": {
"supportedOperations": {}
},
"Vehicle": {
"supportedOperations": {}
},
"Driver": {
"supportedOperations": {}
},
"LatestVehicleLocation": {
"supportedOperations": {}
},
"VehicleLocation": {
"supportedOperations": {},
"sampleRate": "30 seconds",
"availableHistory": "1 year"
},
"VehicleStatLog": {
"supportedOperations": {},
"types": [
"odometer",
"engine_state",
"fuel_level",
"engine_runtime"
]
},
"Trailer": {
"supportedOperations": {}
},
"LatestTrailerLocation": {
"supportedOperations": {}
},
"Trip": {
"supportedOperations": {}
},
"Device": {
"supportedOperations": {}
},
"HOSLog": {
"supportedOperations": {}
},
"HOSDailyLog": {
"supportedOperations": {}
},
"HOSAvailableTime": {
"supportedOperations": {}
},
"IFTASummary": {
"supportedOperations": {}
},
"SafetyEvent": {
"supportedOperations": {},
"types": [
"speeding",
"harsh_brake",
"harsh_acceleration",
"harsh_turn",
"crash"
]
},
"CameraMedia": {
"supportedOperations": {}
},
"FaultCodeEvent": {
"supportedOperations": {}
},
"VehicleUtilization": {
"supportedOperations": {}
}
},
"passthrough": {
"supported": true
},
"baseCode": "geotab",
"references": [
{
"url": "<string>",
"label": "<string>"
}
]
}
]{
"code": "bad_request",
"message": "Invalid request body",
"detail": [
{
"message": "'vehicleId' property must be a valid ulid",
"path": "{requestQuery}.vehicleId",
"suggestion": "Please ensure you submit a valid 'vehicleId' property",
"context": {}
}
]
}{
"code": "unauthorized",
"message": "Unauthorized Request",
"detail": "Please ensure you have a valid API key"
}{
"code": "forbidden",
"message": "Forbidden Request",
"detail": "Please ensure the connection token matches the resource you are attempting to access."
}{
"code": "too_many_requests",
"message": "Too Many Requests",
"retryAfter": 60,
"detail": "You have exceeded your rate limit. Please try again later."
}{
"code": "internal_server_error",
"message": "Internal Server Error",
"detail": "Something went wrong"
}{
"code": "gateway_timeout",
"message": "Gateway Timeout"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Response
OK
"Geotab"
Every provider has a unique code to identify it across Terminal's system. You can find each provider's code under provider details.
"geotab"
The status of the provider.
live, beta, sandbox, deprecated "https://cdn.withterminal.com/providers/geotab/logo.png"
"https://cdn.withterminal.com/providers/geotab/icon.png"
Show child attributes
Show child attributes
Provider-level passthrough request support.
Show child attributes
Show child attributes
The base provider code that this provider is built on. Only visible to authenticated users. Used to identify providers that share the same underlying technology platform.
"geotab"
Additional reference links for the provider (e.g., login pages)
Show child attributes
Show child attributes