curl --request GET \
--url https://api.catenatelematics.com/v2/orgs/share-agreements/{share_agreement_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.catenatelematics.com/v2/orgs/share-agreements/{share_agreement_id}"
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/orgs/share-agreements/{share_agreement_id}', 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/orgs/share-agreements/{share_agreement_id}"
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/orgs/share-agreements/{share_agreement_id}")
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/orgs/share-agreements/{share_agreement_id}")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.catenatelematics.com/v2/orgs/share-agreements/{share_agreement_id}");
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/orgs/share-agreements/{share_agreement_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 => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"effective_date": "2025-12-11T14:22:00Z",
"fleet_id": "98765432-10fe-dcba-9876-543210fedcba",
"fleet_ref": "FLEET-12345",
"id": "22334455-6677-8899-aabb-ccddeeff0011",
"invitation_id": "01234567-89ab-cdef-0123-456789abcdef",
"partner_id": "11223344-5566-7788-99aa-bbccddeeff00",
"scopes": {
"hos_events": "read",
"user": "read",
"vehicle": "read_write",
"vehicle_location": "read_write"
},
"status": "active"
}{
"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"
}Get Share Agreement
Get detailed information about a specific Share Agreement.
curl --request GET \
--url https://api.catenatelematics.com/v2/orgs/share-agreements/{share_agreement_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.catenatelematics.com/v2/orgs/share-agreements/{share_agreement_id}"
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/orgs/share-agreements/{share_agreement_id}', 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/orgs/share-agreements/{share_agreement_id}"
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/orgs/share-agreements/{share_agreement_id}")
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/orgs/share-agreements/{share_agreement_id}")
.header("Authorization", "Bearer <token>")
.asString();using RestSharp;
var options = new RestClientOptions("https://api.catenatelematics.com/v2/orgs/share-agreements/{share_agreement_id}");
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/orgs/share-agreements/{share_agreement_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 => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"effective_date": "2025-12-11T14:22:00Z",
"fleet_id": "98765432-10fe-dcba-9876-543210fedcba",
"fleet_ref": "FLEET-12345",
"id": "22334455-6677-8899-aabb-ccddeeff0011",
"invitation_id": "01234567-89ab-cdef-0123-456789abcdef",
"partner_id": "11223344-5566-7788-99aa-bbccddeeff00",
"scopes": {
"hos_events": "read",
"user": "read",
"vehicle": "read_write",
"vehicle_location": "read_write"
},
"status": "active"
}{
"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"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Path Parameters
Response
Successful Response
API model for reading a sharing agreement
Contains all the details about what data you can access from a fleet. Monitor the status field to track active agreements.
Unique agreement identifier
The Catena fleet ID sharing their data with you
Your organization ID receiving access to fleet data
Your internal fleet identifier for mapping Catena fleets to your system. Returned in webhooks and APIs for easy integration.
Current state: ACTIVE (data access enabled from effective_date until expiration_date), PAUSED (temporarily disabled), CANCELLED (permanently ended), EXPIRED (ended; not set automatically when expiration_date passes)
active, paused, cancelled, deleted, expired When data access begins. Check this before attempting to fetch fleet data.
When data access ends. Null means no expiration. Access stops at this time even though the status stays unchanged.
Defines which resources (vehicle, locations, users, etc.) you can access and the permission level (read, write) for each.
Show child attributes
Show child attributes
Was this page helpful?