LoadWrap API Reference
Everything you need to authenticate, call the API, and parse the response. REST over HTTPS, JSON in and out.
Introduction
The LoadWrap API returns verification data, operating authority, insurance and surety bond, safety and CSA, reviews, and the LoadWrap Trust Score, for any carrier, broker, or freight forwarder in the US and Canada. All requests are made over HTTPS and all responses are JSON.
Base URL
Authentication
Authenticate every request with your secret API key as a Bearer token in the Authorization header. Create and manage keys in your API console. Keep keys secret, never expose them in client-side code.
# Authorization header
Authorization: Bearer lw_live_xxxxxxxxxxxxxxxxRate limits & quota
Each plan includes a monthly number of lookups. One successful lookup counts as one call; a 404 (company not found) is not billed. Usage resets on the 1st of each month and is visible live in your console.
| Plan | Included / month | Over quota |
|---|---|---|
| Free | 250 | Hard cap (HTTP 429) |
| Starter | 10,000 | $0.009 / extra call |
| Professional | 50,000 | $0.005 / extra call |
| Scale | 200,000 | $0.003 / extra call |
| Enterprise | 500,000+ | Custom |
Errors
The API uses standard HTTP status codes. Error responses are JSON with an error message and a status field.
| Code | Meaning |
|---|---|
200 | OK, data returned. |
400 | Bad request, missing or invalid DOT number. |
401 | Unauthorized, missing, invalid, or revoked API key. |
402 | Payment required, no active API subscription. |
404 | Not found, no company for that DOT (not billed). |
429 | Quota reached on the Free plan, upgrade to continue. |
Get a carrier or broker
Returns the full verification record for a single company by DOT number.
Path parameters
| Parameter | Type | Description |
|---|---|---|
dot | integer | The company's USDOT number. Required. |
Example request
# curl
curl -H "Authorization: Bearer lw_live_xxxx" \
https://loadwrap.com/api/v1/carrier/9999999Example response
{
"dot_number": "9999999",
"mc_number": "MC-000000",
"legal_name": "EXAMPLE LOGISTICS LLC",
"entity_type": "broker",
"authority": { "status": "ACTIVE", "broker_authority": "A", "allowed_to_operate": "Y" },
"insurance": { "bond_on_file": 75000, "cargo_on_file": 5000 },
"safety": { "safety_rating": "S", "crash_total": 1 },
"trust": { "trust_score": 100, "trust_verified": true },
"meta": { "quota_used": 42, "quota_limit": 50000, "plan": "professional" }
}Response fields
Every lookup returns these blocks. Fields are null when a value is not on file.
| Block | Key fields |
|---|---|
identity | dot_number, mc_number, legal_name, dba_name, entity_type, contact (phone, email, physical_address, mailing_address) |
authority | status, common_authority, contract_authority, broker_authority, allowed_to_operate, granted_date, revoked_date, reinstated_date |
insurance | bond_on_file (BMC-84), bipd_on_file, cargo_on_file, insurance_company, policy_no, effective_date, expiry_date |
fleet | power_units, total_drivers, fleet_owned, fleet_leased, cdl_indicator, hazmat_indicator, mcs150_date, mcs150_mileage |
safety | safety_rating, safety_rating_date, crash_total, fatal_crash, injury_crash, towaway_crash, driver_oos_rate, vehicle_oos_rate |
trust | trust_score (0-100), trust_verified |
meta | quota_used, quota_limit, plan, source |
More endpoints
Additional endpoints are rolling out: broker lookup by MC number, bond-only lookup, batch verify (up to 100 companies per call), and search by name. Need one now? Contact us.
| Endpoint | Description |
|---|---|
GET /v1/broker/{mc} | Broker by MC number |
GET /v1/bond/{dot} | Surety bond & insurance on file |
POST /v1/verify | Batch verify up to 100 companies |
GET /v1/search?q= | Find a company by name, MC or DOT |
Code examples
Fetch a carrier in your language of choice.
curl -H "Authorization: Bearer lw_live_xxxx" \
https://loadwrap.com/api/v1/carrier/9999999$ch = curl_init("https://loadwrap.com/api/v1/carrier/9999999");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer lw_live_xxxx"],
]);
$data = json_decode(curl_exec($ch), true);
echo $data["trust"]["trust_score"];import requests
r = requests.get(
"https://loadwrap.com/api/v1/carrier/9999999",
headers={"Authorization": "Bearer lw_live_xxxx"},
)
data = r.json()
print(data["trust"]["trust_score"])const res = await fetch(
"https://loadwrap.com/api/v1/carrier/9999999",
{ headers: { Authorization: "Bearer lw_live_xxxx" } }
);
const data = await res.json();
console.log(data.trust.trust_score);