curl --request GET \
--url https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization"
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))
}require 'uri'
require 'net/http'
url = URI("https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization")
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_bodyHttpResponse<String> response = Unirest.get("https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization",
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;
}[
{
"vehicle_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cohort_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"window": {
"from_date": "2023-12-25",
"to_date": "2023-12-25"
},
"vehicle_value": 123,
"percentile": 123,
"cohort": {
"number_of_vehicles": 123,
"number_of_fleets": 123
},
"cached": true,
"metric": "meters_driven"
}
]{
"code": 400,
"message": "Bad Request",
"detail": "<string>"
}{
"code": 401,
"message": "Unauthorized",
"detail": "<string>"
}{
"code": 403,
"message": "Forbidden",
"detail": "<string>"
}{
"code": 404,
"message": "Not Found",
"detail": "<string>"
}{
"code": 405,
"message": "Method Not Allowed",
"detail": "<string>"
}{
"code": 409,
"message": "Conflict",
"detail": "<string>"
}{
"code": 422,
"message": "Invalid Request Body",
"detail": [
{
"path": "<string>",
"input": "<string>",
"message": "<string>",
"error_type": "<string>"
}
]
}{
"code": 429,
"message": "Too Many Requests",
"detail": {
"retry_after_seconds": 123,
"message": "<string>"
}
}{
"message": "Internal Server Error"
}{
"code": 501,
"message": "Not Implemented",
"detail": "<string>"
}Get vehicle utilization benchmarks
Retrieve a vehicle’s daily utilization (meters/day) and percentile rank across all cohorts the vehicle is assigned to. Each entry in the response corresponds to one cohort. Percentile and cohort statistics are suppressed when a cohort is too small to meet the k-anonymity floor.
curl --request GET \
--url https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization"
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))
}require 'uri'
require 'net/http'
url = URI("https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization")
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_bodyHttpResponse<String> response = Unirest.get("https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.catenatelematics.com/v2/intelligence/benchmarks/vehicles/{vehicle_id}/utilization",
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;
}[
{
"vehicle_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cohort_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"window": {
"from_date": "2023-12-25",
"to_date": "2023-12-25"
},
"vehicle_value": 123,
"percentile": 123,
"cohort": {
"number_of_vehicles": 123,
"number_of_fleets": 123
},
"cached": true,
"metric": "meters_driven"
}
]{
"code": 400,
"message": "Bad Request",
"detail": "<string>"
}{
"code": 401,
"message": "Unauthorized",
"detail": "<string>"
}{
"code": 403,
"message": "Forbidden",
"detail": "<string>"
}{
"code": 404,
"message": "Not Found",
"detail": "<string>"
}{
"code": 405,
"message": "Method Not Allowed",
"detail": "<string>"
}{
"code": 409,
"message": "Conflict",
"detail": "<string>"
}{
"code": 422,
"message": "Invalid Request Body",
"detail": [
{
"path": "<string>",
"input": "<string>",
"message": "<string>",
"error_type": "<string>"
}
]
}{
"code": 429,
"message": "Too Many Requests",
"detail": {
"retry_after_seconds": 123,
"message": "<string>"
}
}{
"message": "Internal Server Error"
}{
"code": 501,
"message": "Not Implemented",
"detail": "<string>"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Query Parameters
Inclusive start of the benchmark window. Format: YYYY-MM-DD Default: 30 days before yesterday (trailing-30d hot window). Restriction: to_date - from_date cannot exceed 90 days.
null
Inclusive end of the benchmark window. Format: YYYY-MM-DD Default: yesterday (most recent completed day in the utilization pipeline). Restriction: to_date - from_date cannot exceed 90 days.
null
Response
Successful Response
Catena vehicle identifier.
Cohort the vehicle was benchmarked against.
Date range used for the benchmark.
Show child attributes
Show child attributes
Vehicle's average meters/day over the window. Null if the vehicle has no utilization data.
Vehicle's percentile rank (0-100) within the cohort daily distribution. Null if suppressed by k-anonymity or data unavailable.
Cohort size metrics. Null if suppressed by k-anonymity or data unavailable.
Show child attributes
Show child attributes
True when the response was served from the pre-computed percentile cache; False when computed live from daily sketches.
Metric being benchmarked (v1: always 'meters_driven').
"meters_driven"Was this page helpful?