curl --request POST \
--url https://api.catenatelematics.com/v2/visibility/loads \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"destination": {
"latitude": 40.7357,
"longitude": -74.1724,
"name": "Newark, NJ"
},
"estimated_arrival_at": "2026-08-16T08:00:00Z",
"estimated_departure_at": "2026-08-14T12:00:00Z",
"load_ref": "BOL-482910",
"origin": {
"latitude": 39.9612,
"longitude": -82.9988,
"name": "Columbus, OH"
}
}
'import requests
url = "https://api.catenatelematics.com/v2/visibility/loads"
payload = {
"destination": {
"latitude": 40.7357,
"longitude": -74.1724,
"name": "Newark, NJ"
},
"estimated_arrival_at": "2026-08-16T08:00:00Z",
"estimated_departure_at": "2026-08-14T12:00:00Z",
"load_ref": "BOL-482910",
"origin": {
"latitude": 39.9612,
"longitude": -82.9988,
"name": "Columbus, OH"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
destination: {latitude: 40.7357, longitude: -74.1724, name: 'Newark, NJ'},
estimated_arrival_at: '2026-08-16T08:00:00Z',
estimated_departure_at: '2026-08-14T12:00:00Z',
load_ref: 'BOL-482910',
origin: {latitude: 39.9612, longitude: -82.9988, name: 'Columbus, OH'}
})
};
fetch('https://api.catenatelematics.com/v2/visibility/loads', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.catenatelematics.com/v2/visibility/loads"
payload := strings.NewReader("{\n \"destination\": {\n \"latitude\": 40.7357,\n \"longitude\": -74.1724,\n \"name\": \"Newark, NJ\"\n },\n \"estimated_arrival_at\": \"2026-08-16T08:00:00Z\",\n \"estimated_departure_at\": \"2026-08-14T12:00:00Z\",\n \"load_ref\": \"BOL-482910\",\n \"origin\": {\n \"latitude\": 39.9612,\n \"longitude\": -82.9988,\n \"name\": \"Columbus, OH\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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/visibility/loads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"destination\": {\n \"latitude\": 40.7357,\n \"longitude\": -74.1724,\n \"name\": \"Newark, NJ\"\n },\n \"estimated_arrival_at\": \"2026-08-16T08:00:00Z\",\n \"estimated_departure_at\": \"2026-08-14T12:00:00Z\",\n \"load_ref\": \"BOL-482910\",\n \"origin\": {\n \"latitude\": 39.9612,\n \"longitude\": -82.9988,\n \"name\": \"Columbus, OH\"\n }\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.catenatelematics.com/v2/visibility/loads")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"destination\": {\n \"latitude\": 40.7357,\n \"longitude\": -74.1724,\n \"name\": \"Newark, NJ\"\n },\n \"estimated_arrival_at\": \"2026-08-16T08:00:00Z\",\n \"estimated_departure_at\": \"2026-08-14T12:00:00Z\",\n \"load_ref\": \"BOL-482910\",\n \"origin\": {\n \"latitude\": 39.9612,\n \"longitude\": -82.9988,\n \"name\": \"Columbus, OH\"\n }\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.catenatelematics.com/v2/visibility/loads");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"destination\": {\n \"latitude\": 40.7357,\n \"longitude\": -74.1724,\n \"name\": \"Newark, NJ\"\n },\n \"estimated_arrival_at\": \"2026-08-16T08:00:00Z\",\n \"estimated_departure_at\": \"2026-08-14T12:00:00Z\",\n \"load_ref\": \"BOL-482910\",\n \"origin\": {\n \"latitude\": 39.9612,\n \"longitude\": -82.9988,\n \"name\": \"Columbus, OH\"\n }\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.catenatelematics.com/v2/visibility/loads",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'destination' => [
'latitude' => 40.7357,
'longitude' => -74.1724,
'name' => 'Newark, NJ'
],
'estimated_arrival_at' => '2026-08-16T08:00:00Z',
'estimated_departure_at' => '2026-08-14T12:00:00Z',
'load_ref' => 'BOL-482910',
'origin' => [
'latitude' => 39.9612,
'longitude' => -82.9988,
'name' => 'Columbus, OH'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"load_ref": "<string>",
"estimated_departure_at": "2023-11-07T05:31:56Z",
"estimated_arrival_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"partner_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"carrier": {
"scac": "<string>",
"dot_number": "<string>",
"mc_number": "<string>"
},
"vehicle": {
"vin": "<string>",
"license_plate_number": "<string>",
"license_plate_region": "<string>",
"tsp_id": "<string>",
"tsp_source_name": "ada"
},
"driver": {
"first_name": "<string>",
"last_name": "<string>",
"phone_number": "<string>",
"email": "jsmith@example.com",
"tsp_id": "<string>",
"tsp_source_name": "ada"
},
"stops": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sequence": 123,
"point": {
"type": "Point",
"coordinates": {
"[0]": 123,
"[1]": 123
},
"bbox": {
"[0]": 123,
"[1]": 123,
"[2]": 123,
"[3]": 123
}
},
"radius_meters": 123,
"stop_type": "origin",
"name": "<string>",
"estimated_arrival_at": "2023-11-07T05:31:56Z",
"estimated_departure_at": "2023-11-07T05:31:56Z",
"arrived_at": "2023-11-07T05:31:56Z",
"departed_at": "2023-11-07T05:31:56Z"
}
]
}{
"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>"
}Create Load
Create load context owned by the authenticated organization.
curl --request POST \
--url https://api.catenatelematics.com/v2/visibility/loads \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"destination": {
"latitude": 40.7357,
"longitude": -74.1724,
"name": "Newark, NJ"
},
"estimated_arrival_at": "2026-08-16T08:00:00Z",
"estimated_departure_at": "2026-08-14T12:00:00Z",
"load_ref": "BOL-482910",
"origin": {
"latitude": 39.9612,
"longitude": -82.9988,
"name": "Columbus, OH"
}
}
'import requests
url = "https://api.catenatelematics.com/v2/visibility/loads"
payload = {
"destination": {
"latitude": 40.7357,
"longitude": -74.1724,
"name": "Newark, NJ"
},
"estimated_arrival_at": "2026-08-16T08:00:00Z",
"estimated_departure_at": "2026-08-14T12:00:00Z",
"load_ref": "BOL-482910",
"origin": {
"latitude": 39.9612,
"longitude": -82.9988,
"name": "Columbus, OH"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
destination: {latitude: 40.7357, longitude: -74.1724, name: 'Newark, NJ'},
estimated_arrival_at: '2026-08-16T08:00:00Z',
estimated_departure_at: '2026-08-14T12:00:00Z',
load_ref: 'BOL-482910',
origin: {latitude: 39.9612, longitude: -82.9988, name: 'Columbus, OH'}
})
};
fetch('https://api.catenatelematics.com/v2/visibility/loads', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.catenatelematics.com/v2/visibility/loads"
payload := strings.NewReader("{\n \"destination\": {\n \"latitude\": 40.7357,\n \"longitude\": -74.1724,\n \"name\": \"Newark, NJ\"\n },\n \"estimated_arrival_at\": \"2026-08-16T08:00:00Z\",\n \"estimated_departure_at\": \"2026-08-14T12:00:00Z\",\n \"load_ref\": \"BOL-482910\",\n \"origin\": {\n \"latitude\": 39.9612,\n \"longitude\": -82.9988,\n \"name\": \"Columbus, OH\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
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/visibility/loads")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"destination\": {\n \"latitude\": 40.7357,\n \"longitude\": -74.1724,\n \"name\": \"Newark, NJ\"\n },\n \"estimated_arrival_at\": \"2026-08-16T08:00:00Z\",\n \"estimated_departure_at\": \"2026-08-14T12:00:00Z\",\n \"load_ref\": \"BOL-482910\",\n \"origin\": {\n \"latitude\": 39.9612,\n \"longitude\": -82.9988,\n \"name\": \"Columbus, OH\"\n }\n}"
response = http.request(request)
puts response.read_bodyHttpResponse<String> response = Unirest.post("https://api.catenatelematics.com/v2/visibility/loads")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"destination\": {\n \"latitude\": 40.7357,\n \"longitude\": -74.1724,\n \"name\": \"Newark, NJ\"\n },\n \"estimated_arrival_at\": \"2026-08-16T08:00:00Z\",\n \"estimated_departure_at\": \"2026-08-14T12:00:00Z\",\n \"load_ref\": \"BOL-482910\",\n \"origin\": {\n \"latitude\": 39.9612,\n \"longitude\": -82.9988,\n \"name\": \"Columbus, OH\"\n }\n}")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.catenatelematics.com/v2/visibility/loads");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"destination\": {\n \"latitude\": 40.7357,\n \"longitude\": -74.1724,\n \"name\": \"Newark, NJ\"\n },\n \"estimated_arrival_at\": \"2026-08-16T08:00:00Z\",\n \"estimated_departure_at\": \"2026-08-14T12:00:00Z\",\n \"load_ref\": \"BOL-482910\",\n \"origin\": {\n \"latitude\": 39.9612,\n \"longitude\": -82.9988,\n \"name\": \"Columbus, OH\"\n }\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.catenatelematics.com/v2/visibility/loads",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'destination' => [
'latitude' => 40.7357,
'longitude' => -74.1724,
'name' => 'Newark, NJ'
],
'estimated_arrival_at' => '2026-08-16T08:00:00Z',
'estimated_departure_at' => '2026-08-14T12:00:00Z',
'load_ref' => 'BOL-482910',
'origin' => [
'latitude' => 39.9612,
'longitude' => -82.9988,
'name' => 'Columbus, OH'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"load_ref": "<string>",
"estimated_departure_at": "2023-11-07T05:31:56Z",
"estimated_arrival_at": "2023-11-07T05:31:56Z",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"partner_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"carrier": {
"scac": "<string>",
"dot_number": "<string>",
"mc_number": "<string>"
},
"vehicle": {
"vin": "<string>",
"license_plate_number": "<string>",
"license_plate_region": "<string>",
"tsp_id": "<string>",
"tsp_source_name": "ada"
},
"driver": {
"first_name": "<string>",
"last_name": "<string>",
"phone_number": "<string>",
"email": "jsmith@example.com",
"tsp_id": "<string>",
"tsp_source_name": "ada"
},
"stops": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"sequence": 123,
"point": {
"type": "Point",
"coordinates": {
"[0]": 123,
"[1]": 123
},
"bbox": {
"[0]": 123,
"[1]": 123,
"[2]": 123,
"[3]": 123
}
},
"radius_meters": 123,
"stop_type": "origin",
"name": "<string>",
"estimated_arrival_at": "2023-11-07T05:31:56Z",
"estimated_departure_at": "2023-11-07T05:31:56Z",
"arrived_at": "2023-11-07T05:31:56Z",
"departed_at": "2023-11-07T05:31:56Z"
}
]
}{
"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>"
}load_ref must be unique for your organization. The carrier, vehicle and driver objects are optional; send the details you know.Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Body
Load create model.
The partner's own unique reference for this load (e.g. a load or BOL number)
255When the load is expected to depart the origin. Must include a UTC offset.
When the load is expected to arrive at the destination. Must include a UTC offset.
Where the load is picked up. This is the first stop of the journey.
Show child attributes
Show child attributes
{
"estimated_arrival_at": "2026-08-15T09:00:00Z",
"estimated_departure_at": "2026-08-15T09:45:00Z",
"latitude": 40.4406,
"longitude": -79.9959,
"name": "Pittsburgh, PA",
"radius_meters": 200
}
Where the load is delivered. This is the last stop of the journey.
Show child attributes
Show child attributes
{
"estimated_arrival_at": "2026-08-15T09:00:00Z",
"estimated_departure_at": "2026-08-15T09:45:00Z",
"latitude": 40.4406,
"longitude": -79.9959,
"name": "Pittsburgh, PA",
"radius_meters": 200
}
The carrier assigned to a load. Send whichever identifiers you know.
Show child attributes
Show child attributes
The vehicle assigned to a load. Send whichever identifiers you know.
Show child attributes
Show child attributes
The driver assigned to a load. Send whichever details you know.
Show child attributes
Show child attributes
Planned stops between origin and destination, in travel order. Each can say what it is for.
Show child attributes
Show child attributes
Response
Successful Response
Load read model.
The partner's own unique reference for this load (e.g. a load or BOL number)
255When the load is expected to depart the origin. Must include a UTC offset.
When the load is expected to arrive at the destination. Must include a UTC offset.
The ID of the partner that owns this load
When the load was created
When the load last changed
The carrier assigned to a load. Send whichever identifiers you know.
Show child attributes
Show child attributes
The vehicle assigned to a load. Send whichever identifiers you know.
Show child attributes
Show child attributes
The driver assigned to a load. Send whichever details you know.
Show child attributes
Show child attributes
The journey in travel order. Sequence 0 is the origin and the highest sequence is the destination.
Show child attributes
Show child attributes
Was this page helpful?