Carrier’s official API

Daylight Transport API: integration guide

Daylight Transport publishes a REST/JSON API family called ship-daylight that covers LTL rate quotes, transit times, pickup scheduling, shipment tracing, document images (BOL, delivery receipt, labels) and invoice data. A second version adds US–Mexico cross-border rating, pickups and transit times. It is aimed at Daylight customers, 3PLs and TMS vendors who want to automate quoting and shipment follow-up.

This guide covers Daylight Transport’s own API (api.dylt.com). Credentials come from Daylight Transport, not from FreightAPIs, and we are not affiliated with them.

Want one API key for carrier terminals, NMFC and ports instead? FreightAPIs API docs →

Interface REST/JSON · OAuth 2.0 (client credentials)Endpoints 16Reviewed 2026-10-09Open in ChatGPT↗Open in Claude↗

At a glance

CarrierDaylight Transport
TypeLTL carrier
SCACDYLT
InterfaceREST/JSON, OAuth 2.0 (client credentials)
AuthenticationOAuth 2.0 client credentials (bearer token), plus MyDaylight user name/password on some calls
CapabilitiesRate quote, Transit time, Pickup request, Shipment tracing, Documents & images (BOL, POD, labels), Invoice data, Fuel surcharge, US–Mexico cross-border (v2)

Getting access

  • The APIs are documented on Daylight's developer portal, which is hosted on Apigee. You register there as a developer to get OAuth client credentials for your app.
  • Most business calls also need a Daylight account number and a MyDaylight web login (user name and password). Rate quotes, pickups, document images, quote lookup and invoice data all require them, so you need to be a Daylight customer, or act for one.
  • Tracing by probill or booking number, transit times and the fuel surcharge call only need the OAuth bearer token.
  • The specification lists EDISupport@dylt.com as the API support contact. The documentation does not mention fees, rate limits or a formal approval step.

Authentication

OAuth 2.0 client credentials (bearer token), plus MyDaylight user name/password on some calls.

  • Request a token with POST /oauth/client_credential/accesstoken?grant_type=client_credentials, sending client_id and client_secret as form fields.
  • Send the token on every call in the header Authorization: Bearer YOUR_ACCESS_TOKEN. The spec defines the scopes read:ship and write:ship.
  • Tokens are short-lived (expires_in is roughly 900 seconds) and no refresh token is issued. Fetch a new token before the old one expires.
  • For rateQuote and pickup, the MyDaylight userName, password and accountNumber go inside the JSON body. For GET /rateQuote/{quoteNumber}, /image/* and /invoice/*, userName and password are query parameters.

Environments

Productionhttps://api.dylt.com

Endpoints

Rate quote

POST a dyltRateQuoteReq with origin and destination ZIPs, item weights and classes, and optional accessorials. The response returns a quote number, an earliest delivery date and a charge breakdown. A saved quote can be fetched again by its number.

POST/rateQuoteGet an LTL rate quote for a planned pickup date.
GET/rateQuote/{quoteNumber}Retrieve the details of an existing quote by quote number.
Key inputsaccountNumber, userName, passwordbillTerms (PP | Prepaid | CC | Collect)serviceType (LTL | UC | Urgent Care)pickupDate (within four business days of today)shipperInfo.customerAddress.zip, consigneeInfo.customerAddress.zipitems.item[] (pcs, weight, actualClass; optional pallets, nmfcNumber, nmfcSubNumber, description)accessorials.accessorial[] (accName P/D/O, accId)
Key outputssuccess (YES | NO), errorInformation.errorMessagequoteNumber, quoteDate, earliestDeliveryDateitemCharges (rateClass, rate per cwt, charge, discountPct)accessorialCharges (reqAccessorial, accRate, accCharge)totalCharges (grossCharge, fuelSurcharge, totalAccessorial, discountAmt, netCharge)rateBaseName, minimumUsed

Transit time

Look up Daylight service-level transit times between two ZIP codes. The answer is a list of pickup-day to delivery-day pairs, not a single number.

GET/transitTimes/{origZip}/{destZip}Return transit times for an origin/destination ZIP pair.
Key outputstransitTime[] (pickupDay, deliveryDay, actualDays)

Pickup request

Schedule an LTL pickup with full shipper and consignee details, a pickup window and item lines. The response says whether the reservation was accepted, declined or adjusted and returns a booking number that stays with the shipment.

POST/pickupSchedule an LTL pickup (body wrapped in dyltPickupReqs.dyltPickupReq).
Key inputsaccountNumber, userName, passwordshipmentID (your own unique shipment ID)billTermsshipperName / shipperAddress1 / shipperCity / shipperState / shipperZip / shipperContactName / shipperContactNumberconsigneeName / consigneeAddress1 / consigneeCity / consigneeState / consigneeZip / consigneeContactName / consigneeContactNumberpickupStartDate, pickupStartTime, pickupEndDate, pickupEndTime (HH:mm:ss, origin local time)items.item[] (pcs, pallets, weight)shipReferences.shipReference[] (referenceType, referenceNumber), notes.note, accessorials
Key outputsreservationStatus (A = accepted, D = declined, P = adjusted)bookingNumberreason (why a booking was declined or adjusted)

Shipment tracing

Trace a shipment by Daylight probill number, or by the booking number returned from a pickup request before a probill exists. The response includes current status, expected and actual delivery dates, any delivery appointment and a dated status history.

GET/externalTrace/{probill}Trace a shipment by probill number.
GET/externalTrace/booking/{bookingNumber}Trace a shipment by pickup booking number.
Key outputsbillNumber, currentStatus, serviceLevelexpectedDeliveryDate, actualDeliveryDateappointmentMade, deliveryStartDate / deliveryStartTime / deliveryEndDate / deliveryEndTimestatHistArr[] (date, status, termId)shipReferences

Documents & images (BOL, POD, labels)

Download scanned freight documents for a probill as TIFF or PDF, or generate a pre-filled BOL or shipping label before pickup, either from a booking number or from data you post. Image calls need MyDaylight credentials.

GET/image/{probill}/{doc_type}Return a scanned document for a probill in TIFF format.
GET/image/{probill}/{doc_type}/pdfReturn a scanned document for a probill in PDF format.
GET/image/booking/{bookingNumber}/{doc_type}Return a pre-filled BOL or label PDF built from pickup request data.
POST/image/bolReturn a populated Daylight BOL PDF from the values in the request body.
POST/image/labelReturn a populated shipping label PDF from the values in the request body.
Key inputsdoc_type for probill images: bol, dr (delivery receipt / POD), invoice (all documents), wic (weight inspection certificate)doc_type for booking images: bol, labeluserName, password (query parameters on GET calls)
Key outputsBinary TIFF or PDF fileimageResponse (status, message) on error

Invoice data

Fetch invoice data for a probill as JSON, including dates, terminals, parties, totals and per-item rated charges. Requires MyDaylight credentials.

GET/invoice/{probill}Return freight invoice data for a probill.
Key outputssuccess, messagebillNumber, createdDate, pickupDate, deliveredDate, currentStatusinvoiceType (ORIGINAL | CORRECTED), serviceType (LTL | LTL-UC)pickupTerm, deliveryTerm, interlinerPrototalPcs, totalWeight, amountDue, amountInvoiceditemCharges.itemCharge (rateClass, rate, discountPct, charge)

Fuel surcharge

Return the current diesel price and Daylight's current fuel discount percentage.

GET/fuelSurchargeGet the current fuel surcharge inputs.
Key outputsdieselPricediscount

US–Mexico cross-border (v2)

Version 2 of the API adds US↔MX lanes for rate quotes, pickups and transit times while keeping US domestic behavior. Country codes are limited to US or MX, Mexican states use 3-letter codes, and Mexican consignees need extra fields.

POST/v2/rateQuoteRate quote for US domestic and US↔MX lanes.
POST/v2/pickupValidate and schedule a pickup, including US↔MX shipments.
GET/v2/transitTimes/{originZip}/{destinationZip}Transit times for US and US↔MX routes.
Key inputsshipperInfo.customerAddress.countryCode / consigneeInfo.customerAddress.countryCode (US | MX)consigneeColonia, consigneeRfc and careOf* fields when consigneeCountryCode = MX

Example request

Request an LTL rate quotebash
# 1) Get a bearer token curl -X POST 'https://api.dylt.com/oauth/client_credential/accesstoken?grant_type=client_credentials' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -d 'client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET' # 2) Ask for a quote curl -X POST 'https://api.dylt.com/rateQuote' \ -H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \ -H 'Content-Type: application/json' \ -d '{ "dyltRateQuoteReq": { "accountNumber": "YOUR_ACCOUNT_NUMBER", "userName": "YOUR_MYDAYLIGHT_USER", "password": "YOUR_MYDAYLIGHT_PASSWORD", "billTerms": "PP", "serviceType": "LTL", "pickupDate": "2026-10-12", "shipperInfo": { "customerAddress": { "zip": "90806" } }, "consigneeInfo": { "customerAddress": { "zip": "85043" } }, "items": { "item": [ { "pcs": 2, "pallets": 2, "weight": 1200, "actualClass": "70" } ] }, "accessorials": { "accessorial": [ { "accName": "D", "accId": "Lift Gate Delivery" } ] } } }'

Check success in the response: "NO" means the request failed and errorInformation.errorMessage explains why.

Integration notes

  • There are two layers of credentials. The OAuth token proves your app; the MyDaylight userName and password prove which customer data you can see. Image, invoice and quote-lookup calls fail without both.
  • On GET calls the MyDaylight userName and password are query parameters, not body fields. Treat request logs and URLs as sensitive.
  • pickupDate on a rate quote must be within four business days of today. Dates use YYYY-MM-DD and pickup times use HH:mm:ss in the origin's local time.
  • Each item line is limited to 15,000 lbs, and on a rate quote the pallets value (pallet-equivalent handling units) must not exceed 10.
  • The proof-of-delivery document type is dr (delivery receipt), not pod. The invoice doc_type returns all documents for the probill in one file.
  • Accessorials are sent as accName (P/Pickup, D/Delivery, O/Other) plus an accId name from Daylight's accessorial matrix, for example "Lift Gate Delivery". Do not repeat the same accessorial twice.
  • Three identifiers appear over a shipment's life: quoteNumber (from rating), bookingNumber (from the pickup) and probill (assigned once freight is picked up). Trace by booking number until a probill exists.
  • Errors often come back as HTTP 200 with success = "NO". In v2, validation failures are a semicolon-separated list in errorInformation.errorMessage, so split it on ";".

FAQ

Does Daylight Transport have an API?

Yes. Daylight publishes the ship-daylight REST/JSON API for rate quotes, transit times, pickups, tracing, document images, invoice data and fuel surcharge. A v2 adds US–Mexico cross-border lanes.

How does Daylight API authentication work?

You get a bearer token through the OAuth 2.0 client credentials flow and send it in the Authorization header. Quotes, pickups, documents and invoices also need your MyDaylight user name and password plus a Daylight account number.

Can I get a POD from the Daylight API?

Yes. Call /image/{probill}/dr/pdf (or without /pdf for TIFF). The delivery receipt type is dr, and your MyDaylight credentials are required.

Can I track a Daylight shipment before it has a probill?

Yes. Use /externalTrace/booking/{bookingNumber} with the booking number returned by the pickup request. Once a probill is assigned you can trace with /externalTrace/{probill}.

On FreightAPIs

Official resources

Written from Daylight Transport’s published API documentation and last checked 2026-10-09. FreightAPIs is not affiliated with Daylight Transport; endpoints and access rules can change, so confirm details in the carrier’s own documentation before going live.

Other carrier API guides