Skip to main content
GET
/
providers
List Providers
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

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Response

OK

name
string
required
Example:

"Geotab"

code
string
required

Every provider has a unique code to identify it across Terminal's system. You can find each provider's code under provider details.

Example:

"geotab"

status
enum<string>
required

The status of the provider.

Available options:
live,
beta,
sandbox,
deprecated
Example:

"https://cdn.withterminal.com/providers/geotab/logo.png"

icon
string<uri>
required
Example:

"https://cdn.withterminal.com/providers/geotab/icon.png"

supportedModels
ProviderModelSupport · object
required
passthrough
ProviderPassthroughSupport · object
required

Provider-level passthrough request support.

baseCode
string

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.

Example:

"geotab"

references
object[]

Additional reference links for the provider (e.g., login pages)