Carrier’s official API

AIT Worldwide Logistics API: integration guide

AIT Worldwide Logistics offers a Customer API, a JSON REST interface for its domestic transportation and home-delivery services. It covers quoting, booking shipments (directly or from a quote), status history, delivery appointment scheduling, shipment details and document images such as the BOL. It is meant for shippers, retailers and TMS vendors that already have a MyAIT customer account.

This guide covers AIT Worldwide Logistics’s own API. Credentials come from AIT Worldwide Logistics, 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/JSONEndpoints 10Reviewed 2026-10-09Open in ChatGPT↗Open in Claude↗

At a glance

CarrierAIT Worldwide Logistics
TypeFreight forwarder
InterfaceREST/JSON
AuthenticationJWT bearer token from a login call
CapabilitiesRate quote, Shipment booking, Shipment tracking, Delivery appointments, Shipment details, Documents & images, Agent / pickup location lookup

Getting access

  • You need a MyAIT customer login. The Login operation takes that MyAIT user ID and password.
  • Being able to call the API is not enough on its own: AIT grants access to each operation (quotes, booking, tracking, documents and so on) per user. Ask your AIT contact to enable the operations you need.
  • The Customer API documentation ("Getting Started With The Customer API") is provided to customers on request; it is not published as a public developer portal. Hostnames for the test and production environments come with it.
  • Some values used in requests, such as companyCode, stationCode, freight codes and a billing company code for third-party billing, are assigned by AIT for your account.
  • The documentation does not mention fees, rate limits or a self-service signup process.

Authentication

JWT bearer token from a login call.

  • Call the Login operation with your MyAIT credentials (JSON body with userID and password). It returns a token.
  • Send the token on every other call as Authorization: Bearer YOUR_TOKEN.
  • Tokens expire after 30 minutes. Cache the token and request a new one shortly before it expires instead of logging in on every call.
  • The token carries the user's per-operation permissions, so a valid token can still be refused for an operation that was not enabled for that user.

Endpoints

Rate quote

Request a quote for one or more AIT service levels in a single call. Each returned quote has a quoteNumber that you can later book against.

POST/RequestQuoteReturn quotes (quoteNumber, totalCost, status) for the requested service levels.
Key inputsestimatedPickupDateStringserviceLevelCodes (list of service level codes, e.g. 005 Deferred, 010 LTL, 001 Next day)originAddressZipCode, originAddressCity, originAddressStatedestinationAddressZipCode, destinationAddressCity, destinationAddressStateadditionalServicesPickupCode, additionalServicesDeliveryCode, additionalServicesSpecialCodefreightDetails[] (code or description, pieces, length, width, height, actualWeight, declaredValue)customerCode (only if your account has more than one)
Key outputsquoteResponse[] (customerCode, quoteNumber, serviceLevel, currencyType, totalCost, status)isSuccess, userMessage

Shipment booking

Create a shipment in AIT's TMS either from an active quote or as a standalone booking with full freight details. Both return the AIT tracking number as documentNumber.

POST/BookShipmentFromQuoteBook a shipment from an active quoteNumber plus pickup and delivery addresses.
POSTBook ShipmentBook a shipment directly with service level, freight details, payment method and additional services.
Key inputsquoteNumber (from-quote booking only)pickupAddress and deliveryAddress (companyCode, or companyName, address1, addressCity, addressState, addressZip, contacts[])referenceNumbers[] (referenceType, referenceNumber)serviceLevel, shipmentFreightDetails[], paymentInvoiceInformation.paymentMethod.code (PPD, COL, THR), additionalServices (direct booking)specialInstructions[] (specialInstructionCode or specialInstructionDescription)pickupDateInformation (cargoReadyDateString, cargoReadyTimeString, cargoCloseTimeString)trackingNumber (optional, only if AIT gave you a block of numbers)
Key outputsdocumentNumber (the AIT tracking number)isSuccess, userMessage

Shipment tracking

Get every status a shipment has reached, plus its overall stage and estimated and actual pickup and delivery dates. You can look up by AIT tracking number or by a reference number.

GET/GetStatusHistoryReturn the shipment stage and the list of statuses reached so far.
Key inputsReferenceNumberReferenceType (e.g. TRACK for the AIT tracking number, or a shipper or PO reference)
Key outputstrackingNumber, stage (Initiated, PickedUp, InTransit, Delivered, Exception), destination, destinationStatestatuses[] (statusCode, statusShortDescription, statusLongDescription, statusDateTime, timeZone, deliveryExceptionCode, deliveryExceptionDescription)estimatedPickupDate, actualPickupDate, estimatedDeliveryDate, actualDeliveryDate

Delivery appointments

For home and white-glove deliveries, list the available delivery windows, read the current appointment, and book a window. Appointments can be set before AIT has the freight, after pickup, or rescheduled before delivery.

GETGet Delivery ScheduleSay whether the shipment can be scheduled and, if so, list delivery dates and time windows starting at the estimated delivery date.
GETGet Delivery AppointmentReturn the existing appointment, its status and the delivery instructions on file.
GET/BookDeliveryWindowRequest (V1) or confirm (V2) a delivery appointment for a chosen window.
Key inputsReferenceNumber, ReferenceTypeDeliveryDate, StartTime, EndTime, ScheduleTypeDelivery details such as truck access, flights of stairs and nearest cross streets
Key outputscanBeScheduled, unscheduleMessage, deliveryWindow[] (deliveryDate, deliveryStartDateTime, deliveryEndDateTime, deliveryTimeZone)appointmentStatus, appointmentDeliveryDate, deliveryInstructionssuccessful, code, failureReason (booking)

Shipment details

Fetch the full record for a tracking number: parties and addresses, service level, freight lines, reference numbers, origin and destination ports, and planned and actual dates.

GET/GetShipmentDetailsReturn the complete shipment record for one tracking number.
Key outputscustomer, shipper, consignee, pickupAddress, deliveryAddress, billToserviceLevel (serviceLevelCode, serviceLevelDescription, serviceLevelTransitDays)shipmentFreightDetails[] (pieces, dimensions, actualWeight, nmfc, hazMat, commodity)origin and destination (portName, estimated and complete dates), podException

Documents & images

Download a shipment document by type. The file comes back as base64 inside the JSON response.

GET/GetShipmentDocumentImageReturn one document (for example the BOL) as base64 in reportBytes.
Key inputsReferenceNumber, ReferenceTypeDocumentType (e.g. BOL)
Key outputsreportBytes (base64 PDF)trackingNumber, documentType, errorCode, errorDescription

Agent / pickup location lookup

Look up the AIT delivery agent (name, address, phone, email) that serves the postal codes you pass.

GETGet Shipment Pickup Location InformationReturn delivery agent address and contact details for the requested postal codes.
Key outputsagentName, agentAddress1, agentCity, agentState, agentZipCode, agentPhoneNumber, agentEmail

Example request

Request a quote for Deferred Service (005)bash
# 1) Log in (token is valid for 30 minutes) curl -X POST "$AIT_API_BASE/api/Login/login" \ -H "Content-Type: application/json" \ -d '{"userID": "YOUR_MYAIT_USER", "password": "YOUR_MYAIT_PASSWORD"}' # 2) Request a quote with the returned token curl -X POST "$AIT_API_BASE/RequestQuote" \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "customerCode": "", "estimatedPickupDateString": "11/03/2026", "serviceLevelCodes": ["005"], "originAddressZipCode": "90210", "originAddressCity": "BEVERLY HILLS", "originAddressState": "CA", "destinationAddressZipCode": "60143", "destinationAddressCity": "ITASCA", "destinationAddressState": "IL", "additionalServicesPickupCode": [], "additionalServicesDeliveryCode": ["RESDE", "APPT"], "additionalServicesSpecialCode": [], "freightDetails": [ { "code": "", "description": "Sofa", "pieces": 1, "length": 90, "width": 40, "height": 35, "actualWeight": 180, "declaredValue": 1200 } ] }'

AIT_API_BASE is the environment host AIT gives you with the documentation. Book the returned quoteNumber with BookShipmentFromQuote while the quote status is Active.

Integration notes

  • Dimensions, weight and declared value must be whole numbers. AIT says to round decimals up (1.1 becomes 2). The field tables label length, width and height as centimeters but weight as pounds, so confirm the dimension unit with AIT before going live.
  • Dates come back in ISO 8601 form, and 0001-01-01T00:00:00 means the date is not known yet or the event has not happened. Treat it as null.
  • Status times carry their own timeZone value (for example CST), not UTC. Normalize them before comparing events.
  • If any status has a deliveryExceptionCode (C cancel, L lost, R refused, D disposed, F no freight, O other), the shipment stage becomes Exception even if a later status says delivered.
  • Reference type codes are not spelled consistently: the reference table lists SHIPER, while the booking samples send SHIPPER. Test the exact value your account accepts.
  • Special instruction descriptions are limited to 40 characters including spaces, and states must be 2-letter codes. ZIP fields take 5 digits.
  • Booking from a quote that is no longer active fails with a 400 and a message saying the quote returned no data. Re-quote and book again.
  • The documented operations do not include an invoice or freight-bill endpoint. Quote totals are estimates; final charges come through AIT's normal billing.

FAQ

Does AIT Worldwide Logistics have an API?

Yes. AIT has a Customer API, a JSON REST interface for quotes, booking, tracking, delivery appointments, shipment details and documents. Documentation is provided to customers on request.

How do I get access to the AIT Customer API?

You need a MyAIT customer login, and AIT must enable each API operation for your user. Contact your AIT representative to have the operations turned on.

How does AIT API authentication work?

You call the Login operation with your MyAIT user ID and password and get a token back. Send it as a Bearer token on each call; it expires after 30 minutes.

Can I track an AIT shipment by PO or shipper reference?

Yes. GetStatusHistory takes a ReferenceNumber and a ReferenceType, so you can search by the AIT tracking number (TRACK) or by a reference such as a PO.

Can I download the BOL through the AIT API?

Yes. GetShipmentDocumentImage returns the requested document type, such as BOL, as a base64-encoded PDF in the reportBytes field.

On FreightAPIs

Official resources

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

Other carrier API guides