Each application is a unique set of API keys and configuration settings needed for making requests to Ryder's APIs.
The 3PA Load Tracking API provides a secure, standards-based interface that allows Third-Party Aggregators to retrieve telemetry-based tracking data for Ryder-managed loads. By using asynchronous and synchronous request methods, partners can automate visibility, monitor in-transit shipments, and integrate Ryder’s tracking data into their own systems.
View the API Reference for detailed specifications.
By integrating with Ryder's 3PA Load Tracking API, customers can:
Submit Asynchronous Tracking Requests: Request load tracking data with optional time window filters and receive results once the payload is ready.
Query Tracking Requests: Retrieve a list of submitted tracking requests and their processing status.
Access Request Details: Drill into a specific tracking request for processing results and metadata.
Retrieve Tracking Data: Access completed tracking payloads containing structured order, leg, and telemetry check information.
Request Data Synchronously: Retrieve load tracking data directly in real time when immediate results are required (note: longer response times expected).
To use the TM Shipment API, complete testing in the Test Environment before moving to Production. Follow the steps below to request access:
Go to the Ryder Developer Portal and sign up.
Check your email for a verification message from no_reply@ryder.com and click "Verify."
Log in and navigate to My Account > My Apps.
Create an application with the following details:
App Name: Your company and app name.
OAuth Redirect URL: Leave blank.
API Product: Select "3PA Load Tracking"
Review and accept the Developer Terms of Service.
Notify your Ryder contact that you have requested access.
Upon approval, you will receive an email from developer_notifications@ryder.com.
Retrieve your Production API Key in My Account > My Apps. Your Test Key will be provided separately by Ryder.
The API uses OAuth 2.0 Client Credentials flow via Okta, combined with an API subscription key.
To obtain an access token, send a POST
request to:
POST https://api.ryder.com/identityservices/oauth2/default/v1/token
Headers:
Content-Type: application/x-www-form-urlencoded
Accept: application/json
Authorization: Basic <Base64(client_id:client_secret)>
Ocp-Apim-Subscription-Key: <client_id>
Body:
grant_type=client_credentials&scope=APIM
Once you have the token, include it in subsequent API calls alongside your Client ID:
Headers:
Authorization: Bearer <access_token>
Ocp-Apim-Subscription-Key: <client_id>
For the full API specification, see the API Reference. The 3PA Load Tracking API consists of the following endpoints:
Request Load Tracking Data - (POST /load-tracking/requests
)
Submit an asynchronous load tracking request with an optional time window filter.
List Load Tracking Requests - (GET /load-tracking/requests
)
Retrieve an array of all tracking requests submitted by your application.
Get Request Details - (GET /load-tracking/requests/{requestId}
)
Retrieve details for a specific tracking request.
Get Completed Tracking Data - (GET /load-tracking/{trackingId}
)
Retrieve the full load tracking payload generated from a completed request.
Synchronous Tracking Retrieval - (GET /load-tracking/sync
)
Directly retrieve tracking data in real time (long-running operation).
Authentication failure:
Ensure you include a valid Authorization
and Ocp-Apim-Subscription-Key
header in all requests. Check that the key matches the correct environment (test vs. production).
No immediate response from /load-tracking/requests:
Asynchronous requests return a 202 Accepted
with a Location
header. Use the provided request link to poll for completion.
Timeout on synchronous endpoint:
The /load-tracking/sync
method may take longer than normal. If results are too large, consider using the asynchronous flow.
Test API request validity by sending a sample request with a known valid payload and verifying the response status code and message.
What is the difference between asynchronous and synchronous retrieval?
Asynchronous requests return quickly and allow you to poll for results when they are ready, while synchronous requests return data in real time but may take longer to process.
How do I filter requests by time window?
Use the windowOffset
query parameter when submitting a request. For example: 48H
retrieves data from the past 48 hours.
Can I query past requests?
Yes, use GET /load-tracking/requests
to see all your submitted requests, or filter by requestId
for details.
How do I access the completed tracking payload?
Use the trackingId
provided in the request details to call GET /load-tracking/{trackingId}
.