Carrier’s official API
Peninsula Truck Lines API: integration guide
Peninsula Truck Lines is a Pacific Northwest regional LTL carrier. It publishes four public REST/JSON APIs, each with its own implementation guide (version 3.1): Rate Quote, Digital LTL Council eBOL, Pickup Request and Shipment Tracking. They are meant for Peninsula customers and the TMS or software vendors who build quoting, BOL and tracking into their own systems.
This guide covers Peninsula Truck Lines’s own API (api.peninsulatruck.com). Credentials come from Peninsula Truck Lines, 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 | Peninsula Truck Lines |
|---|---|
| Type | LTL carrier |
| SCAC | PENS |
| Interface | REST/JSON |
| Authentication | API key exchanged for a 4-hour bearer token |
| Capabilities | Authentication, Rate quote & transit time, Electronic BOL, Pickup request, Shipment tracking |
Getting access
- You need a Peninsula Truck Lines web account. Create it with the Sign In button on peninsulatruck.com ("Don't have an account?"), verify your email, then wait for Customer Service to approve the account. The guides say approval happens within 24 hours.
- Once approved, log in and open "My API Keys" from the menu under your login name. Click "New API Key", enter the target user ID, and choose Production or Sandbox as the API environment.
- Keys are self-service: you can reveal, list and delete them on the same page. Each key is valid for one year, and you must create a new one after it expires.
- Rates come back with default class pricing if you send no customer number. Customer-specific discounts and pallet pricing need a Peninsula customer number that your login can access.
- The guides do not mention fees or rate limits for API use. For accessorials the Rate Quote API does not support (such as Saturday delivery or stop-off charges), the guides refer you to the Peninsula Rates & Billing department.
Authentication
API key exchanged for a 4-hour bearer token.
- POST a JSON body to /api/auth/token with two fields: `grantType` set to "key" and `secret` set to your API key.
- The response contains `status` and `accessToken`. Send the token as `Authorization: Bearer <token>` on every call to the rate, eBOL, pickup and tracking APIs.
- The token is valid for 4 hours. After that, validate the API key again to get a new token.
- A call without a bearer token is rejected with HTTP 401.
- Whether you hit Sandbox or Production is decided by the type of API key you exchanged, not by a different host. The `system` field in each response tells you which one answered.
- The cURL examples in the guides also show an `xaggregatorcode` header. The guides do not explain when it is required, so ask Peninsula if you integrate as a TMS or aggregator.
Environments
| Production and Sandbox (selected by API key type) | https://api.peninsulatruck.com |
|---|
Endpoints
Authentication
Exchange a Production or Sandbox API key for a bearer token that lasts 4 hours.
| POST | /api/auth/token | Validate an API key and return an access token. |
Rate quote & transit time
Returns an LTL quote rated by NMFC class, or by pallet if you have pallet pricing on file. The same response carries the charge breakdown, origin and destination terminals, whether Peninsula or a partner carrier delivers, transit days and a pickup-day transit matrix. Guaranteed 9 am, Noon and 5 pm options are priced in the same call.
| POST | /api/rate-quotes/v3.1/ | Generate a rate quote with charges, transit time and guaranteed-service pricing. |
Electronic BOL
Creates, updates and deletes a bill of lading that follows the NMFTA Digital LTL Council eBOL standard, version 2.1.0, with some Peninsula-specific limits. A valid production create is assigned a PRO beginning with 98, and you can ask for the BOL and shipping labels back as base64 PDFs.
| POST | /api/ebol/v3.1 | Create an eBOL and get a PRO number, plus BOL and label PDFs if requested. |
| PUT | /api/ebol/v3.1/{pro} | Update an existing eBOL before the pickup process starts. |
| DELETE | /api/ebol/v3.1/{pro} | Delete an eBOL before the pickup process starts. |
Pickup request
Schedules a pickup with ready and dock-close times and one or more load lines, each with its own destination ZIP. Third parties can request a pickup by filling in the requester fields. The response returns a confirmed pickup number and any customer alerts.
| POST | /api/pickups/v3.1/ | Create a pickup request. |
Shipment tracking
Returns status, parties, terminals and a movement log for a PRO number. If you pass an interline PRO, BOL or PO number instead, a single match is returned as if you had used the PRO; several matches come back as a shipments list to choose from.
| GET | /api/track/v3.1/{pro} | Get the status and movement history of a shipment by PRO (or cross-reference number). |
Example request
Create a Sandbox key first. Sandbox calls validate your payload but return canned responses that rotate in a fixed order, not real prices.
Integration notes
- The Sandbox does not rate your data. It checks required fields and formats, then cycles through pre-built sample responses in order. It also reports fields it expected but did not see in the footer status fields, which is not necessarily an error.
- In the Rate Quote API every accessorial boolean is listed as required, so send all of them as true or false. For class rating send load[] and leave palletCount and totalPalletWeight empty; for pallet rating send dimensions[] and totalPalletWeight and leave out load[].
- Date and time formats differ between APIs. Rate, pickup and tracking use YYYY-MM-DD dates and 12-hour times with am/pm attached (e.g. 4:30pm). The eBOL uses ISO-style YYYY-MM-DDTHH:mm:ss dates with 24-hour times.
- Quote numbers starting with "G" include a confirmed guaranteed service; "W" quotes do not. When guaranteed service is requested, totalCharge reflects the earliest guaranteed option available on the lane.
- Pickups via the API are refused (HTTP 406 with a reason in statusMsg) for remote points, origins outside the direct service area, freight not ready 2 hours before dock close, and same-day requests after 3:30 pm Pacific. You can book at most one week ahead.
- Setting a requested pickup date on an eBOL does not book a pickup. Call the Pickup API too, and put "eBOL PENS PRO <number>" at the start of noteToDispatch so the pickup links to the eBOL PRO.
- eBOL limits: no Mexico addresses, no COD, US dollars only, full value coverage up to $250,000, height up to 96 in and width up to 93 in, and several hazmat classes are refused. Weights must reconcile exactly across handling units, line items and shipmentTotals.
- Tracking only works after the freight is picked up and billed. Before that, and for unknown numbers, the API returns "Freight bill record not found". Use isTest=true with a Production key (never with a Sandbox key) to test eBOLs against real data without saving them.
FAQ
Does Peninsula Truck Lines have a public API?
Yes. Peninsula publishes REST/JSON APIs for rate quotes, Digital LTL Council eBOLs, pickup requests and shipment tracking, with implementation guides in the APIs & Documentation section of its document library.
How do I get a Peninsula Truck Lines API key?
Create and verify a web account on peninsulatruck.com and wait for Customer Service approval. Then open My API Keys after logging in and create a Production or Sandbox key. Keys last one year.
How long does a Peninsula API token last?
The bearer token returned by /api/auth/token is valid for 4 hours. After that, exchange your API key again for a new token.
Can I track a Peninsula shipment by BOL or PO number through the API?
Yes. Pass the BOL, PO or interline PRO in place of the PRO on GET /api/track/v3.1/. One match returns the full shipment; several matches return a shipments list so you can pick the PRO.
Does a Peninsula eBOL schedule the pickup?
No. The eBOL API creates the bill of lading and PRO only. Book the pickup separately with the Pickup Request API and reference the eBOL PRO in noteToDispatch.
On FreightAPIs
Official resources
- Peninsula document library (APIs & Documentation): www.peninsulatruck.com/resources-document-library/
Written from Peninsula Truck Lines’s published API documentation and last checked 2026-10-09. FreightAPIs is not affiliated with Peninsula Truck Lines; 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