Carrier’s official API
R+L Carriers API: integration guide
R+L Carriers offers a REST/JSON API that covers rate quotes, bill of lading creation, pickup requests, shipment tracing, document retrieval (including delivery receipts), activity history, freight claims and shipment notifications by email or webhook. It is meant for R+L customers and the 3PLs and TMS vendors that ship on their behalf. The PRO number returned when you create a BOL is the key that ties most of the calls together.
This guide covers R+L Carriers’s own API. Credentials come from R+L Carriers, not from FreightAPIs, and we are not affiliated with them.
Want one API key for carrier terminals, NMFC and ports instead? FreightAPIs API docs →
At a glance
| Carrier | R+L Carriers |
|---|---|
| Type | LTL carrier |
| SCAC | RLCA |
| Interface | REST/JSON |
| Authentication | API key in a request header |
| Capabilities | Rate quote, Bill of lading, Pickup request, Shipment tracing, Documents (BOL, POD, invoice), Activity history & final charges, Freight claims, Notifications & webhooks |
Getting access
- R+L publishes its API documentation on its technology portal (technology.rlcarriers.com), organised by API: Rate Quote, Bill of Lading, Pickup Request, Shipment Tracing, Document Retrieval, Activity History, Claim Status, Notification and an accessorial reference.
- Calls are authorised with an API key that is tied to an R+L customer account. Data such as documents, activity history and final charges is limited to the shipments that account is allowed to see.
- The documentation we reviewed does not describe fees, rate limits or a formal approval process. Contact R+L through the technology portal or your account rep to get a key.
Authentication
API key in a request header.
- Send your key on every request in the HTTP header apiKey (for example apiKey: YOUR_API_KEY). Request bodies are JSON (Content-Type: application/json).
- There is no token exchange or expiry flow; the same key is reused.
- GET /UserAccountCodes returns the account codes linked to your key, which is handy for scoping notifications and activity-history queries.
- For webhook notifications you can give R+L OAuth 2.0 client-credentials details for your own endpoint, so its callbacks can authenticate to you.
Endpoints
Rate quote
POST a RateQuote object with origin, destination and up to 8 item lines to get service-level options with quote numbers, transit days and charges. A quote can be fetched again later by its number. Pallet-rate customers can also look up pallet type codes.
| POST | /RateQuote | Get a rate quote for an LTL shipment. |
| GET | /RateQuote?QuoteNumber={quoteNumber} | Retrieve a previous quote by its standard-service quote number. |
| GET | /RateQuote/GetPalletTypesByPoints | List pallet types available between an origin and destination city/ZIP. |
| GET | /RateQuote/GetPalletTypes | List all pallet types. |
Bill of lading
Create a BOL to get a PRO number before you request a pickup. The same POST accepts either R+L's own BillOfLading structure or the Digital LTL Council BOL format (versions 2.0.0, 2.0.1 and 2.1.0), told apart by the body shape. You can also add a PickupRequest object to create the BOL and the pickup in one call.
| POST | /BillOfLading | Create a BOL (standard or Digital LTL Council format) and receive a PRO number. |
| GET | /BillOfLading?ProNumber={proNumber} | Retrieve a BOL by PRO number. |
| GET | /BillOfLading/PrintBOL?ProNumber={proNumber} | Return the BOL as a Base64-encoded PDF. |
| GET | /BillOfLading/PrintShippingLabels | Return shipping labels for a PRO as a Base64-encoded PDF. |
| GET | /BillOfLading/GetHazmatDescription | Look up the hazmat description for a UN/NA number. |
| GET | /BillOfLading/GetNMFCDescription | Look up an NMFC description for use on the BOL. |
Pickup request
Create, read, update or cancel a pickup. The simplest path after creating a BOL is /PickupRequest/FromBOL, which only needs the PRO number and the pickup window because shipper, consignee and freight details are already on the BOL.
| POST | /PickupRequest/FromBOL | Create a pickup for an existing BOL using its PRO number. |
| POST | /PickupRequest | Create a standalone pickup request (up to 8 destinations). |
| GET | /PickupRequest?PickupRequestId={id} | Retrieve a pickup request. |
| PUT | /PickupRequest | Update a pickup request (shipper details cannot be changed). |
| DELETE | /PickupRequest | Cancel a pickup request; PickupRequestId and Reason go in a JSON body. |
Shipment tracing
Trace one or more shipments by PRO number or by another reference type. The response gives short and long status text, estimated delivery, pickup/appointment/delivery dates, parties, status history and reference numbers.
| GET | /ShipmentTracing?TraceNumbers={numbers}&TraceType={type} | Trace shipments by PRO or another reference; several numbers can be comma-separated. |
Documents (BOL, POD, invoice)
List which scanned documents exist for a PRO, then download them as Base64 PDF or TIF, either one file per type or merged into one. This API was previously called the Proof of Delivery API. Invoices are retrieved here as images; there is no separate JSON invoice endpoint in the documentation we reviewed.
| GET | /DocumentRetrieval/GetDocumentTypes?ProNumber={proNumber} | List the document types available for a PRO. |
| GET | /DocumentRetrieval | Download one or more documents for a PRO as Base64 data. |
Activity history & final charges
Search shipment history by date range and direction. When your account is the bill-to party, each record includes the final total charges, which makes this the way to reconcile quoted versus billed amounts.
| POST | /ActivityHistory | Query shipment history for your accounts over a date range. |
Freight claims
File a loss or damage claim against a PRO with supporting files, and check its status by claim number or PRO.
| POST | /ClaimStatus/AddClaim | Submit a cargo claim with Base64-encoded supporting documents. |
| GET | /ClaimStatus?ClaimOrProNumber={number} | Get the status of a claim by claim number or PRO number. |
Notifications & webhooks
Subscribe to shipment events (picked up, departed, arrived, out for delivery, delivered) or document-ready events, delivered by email or to your callback URL. Subscriptions can cover whole accounts (groups) or single PROs.
| POST | /GroupNotification | Create an account-level notification group. |
| PUT | /GroupNotification | Edit a notification group. |
| GET | /GroupNotifications?NotificationType={type} | List your notification groups. |
| GET | /GroupNotification?NotificationGroupID={id} | Get one notification group. |
| DELETE | /GroupNotification | Delete a notification group. |
| PUT | /ProNotification | Create or update notifications for one PRO. |
| GET | /ProNotifications?NotificationType={type} | List PRO-level notifications. |
| GET | /ProNotification | Get the notification settings for one PRO. |
| DELETE | /ProNotification | Remove notifications for one PRO. |
| PUT | /ProsNotification | Apply the same notification rule to many PROs at once. |
| GET | /UserAccountCodes | List the account codes linked to your API key. |
Example request
Errors come back in an Errors[] array, each with Property (the field path), ErrorMessage and ExceptionMessage.
Integration notes
- Create the BOL first. It returns the PRO number, and tracking, documents, pickups from BOL, claims and notifications are all keyed on that PRO.
- Dates are US-style MM/dd/yyyy and times are 12-hour hh:mm tt (for example 08:00 AM). The Digital LTL Council BOL format is the exception and uses ISO 8601 for requestedPickupDate.
- Pickup dates cannot be in the past, on a weekend or on an R+L holiday, and shipments marked Freezable cannot be picked up on a Friday.
- Accessorial codes differ by API. Rate quote and standard BOL use names like OriginLiftgate and DestinationLiftgate, the pickup API uses a generic LiftGate, and the Digital LTL Council format uses short codes such as LFTP.
- Country codes are ISO3 (USA, CAN, MEX), not 2-letter. For moves outside the US and Canada, item dimensions and declared value become required on a rate quote.
- Cancelling a pickup and deleting notifications use DELETE with a JSON body. Some HTTP clients drop bodies on DELETE, so check yours.
- In HandlingUnits dimensions the height field is spelled Heigth in the API. Match that spelling exactly.
- Final billed charges are only visible through Activity History, and only when your account is the bill-to party. The rate quote is an estimate.
FAQ
Does R+L Carriers have an API?
Yes. R+L offers a REST/JSON API for rate quotes, bills of lading, pickup requests, tracking, document retrieval, activity history, claims and notifications, documented on its technology portal.
How do I authenticate with the R+L Carriers API?
Every request carries your API key in the apiKey HTTP header. The key is tied to your R+L customer account, which controls which shipments and documents you can access.
Can I track R+L shipments by PRO number through the API?
Yes. Call /ShipmentTracing with TraceNumbers set to one or more PROs and TraceType=PRO, which is the default. You can also trace by BOL, PO, pickup ID and other reference types.
How do I get a proof of delivery from the R+L API?
Use the Document Retrieval API with DocumentTypes=DeliveryReceipt for the PRO. The file comes back Base64-encoded, so decode it and save it as PDF or TIF.
Do I need a BOL before scheduling an R+L pickup?
The usual flow is to create a BOL first and then call /PickupRequest/FromBOL with its PRO. You can also send a PickupRequest object inside the BOL call, or create a standalone pickup with /PickupRequest.
On FreightAPIs
Official resources
- R+L Carriers technology portal: technology.rlcarriers.com/
Written from R+L Carriers’s published API documentation and last checked 2026-10-09. FreightAPIs is not affiliated with R+L Carriers; endpoints and access rules can change, so confirm details in the carrier’s own documentation before going live.
Other carrier API guides
ABF Freight · Estes Express Lines · Saia LTL Freight · TForce Freight · Old Dominion Freight Line · XPO (LTL) · AAA Cooper Transportation · AIT Worldwide Logistics