← Back to all posts
Trucking Fleet API

Bridge Clearance Data API for Fleet Routing

April 24, 2026 · 7 min read

If you’re routing commercial vehicles, you need to know which bridges your truck can’t clear. An 11′8″ overpass meets an oversize load once a week somewhere in the US, and most of those hits are avoidable with good data.

The FHWA National Bridge Inventory has 621,000 bridges with height and weight data — but it’s buried in an ArcGIS FeatureServer with pagination limits, FIPS state iteration, and cryptic field codes (MIN_VERT_CLR_010, OPR_RATING_064, STRUCTURE_FLARED_035A). Then every state DOT layers their own posted-bridge dataset on top with a different schema.

Road511 normalizes all of it into one queryable API.

What Each Bridge Record Includes

Query by Bounding Box

curl "https://api.road511.com/api/v1/features?type=bridge_clearances&bbox=-75.5,39.5,-74.5,40.5&limit=50" \
  -H "X-API-Key: your_key"

Returns every bridge in the Philadelphia metro area with clearance and weight data in a single call.

{
  "data": [
    {
      "id": "fhwa-nbi-42-101-0000000012345",
      "jurisdiction": "PA",
      "feature_type": "bridge_clearances",
      "name": "I-95 over Cottman Avenue",
      "latitude": 40.0421,
      "longitude": -75.0589,
      "properties": {
        "min_vert_clearance_m": 4.42,
        "operating_rating_tons": 36.3,
        "inventory_rating_tons": 22.7,
        "posting_status": "open",
        "deck_condition": 6,
        "super_condition": 5,
        "sub_condition": 6,
        "road_carried": "I-95",
        "feature_crossed": "Cottman Avenue",
        "year_built": 1969,
        "adt": 184000,
        "last_inspection": "2025-09-14"
      }
    }
  ],
  "total": 847,
  "has_more": true
}

Corridor Search — The Killer Feature

Bounding boxes are fine for dashboards, but fleet routing is about a line, not a box. The /truck/corridor endpoint takes an origin and destination, builds a PostGIS buffer around the great-circle path, and returns every restriction that intersects it:

curl "https://api.road511.com/api/v1/truck/corridor\
?from_lat=41.88&from_lng=-87.63\
&to_lat=40.71&to_lng=-74.01\
&buffer_km=5&height=4.2&weight=36" \
  -H "X-API-Key: your_key"

This returns every bridge clearance, weight restriction, and truck restriction within 5 km of the Chicago→NYC corridor that a 4.2 m tall, 36-ton truck can’t clear. The height and weight filters drop anything the vehicle can safely pass, so the response is just conflicts — not the full inventory.

GeoJSON for Route Overlays

Need it on a map? Same query, different endpoint:

curl "https://api.road511.com/api/v1/truck/corridor/geojson\
?from_lat=41.88&from_lng=-87.63\
&to_lat=40.71&to_lng=-74.01\
&buffer_km=5" \
  -H "X-API-Key: your_key"

Drop the response directly onto Leaflet, Mapbox, or QGIS and every conflict renders instantly:

const res = await fetch(
  'https://api.road511.com/api/v1/truck/corridor/geojson'
  + '?from_lat=41.88&from_lng=-87.63'
  + '&to_lat=40.71&to_lng=-74.01'
  + '&buffer_km=5&height=4.2',
  { headers: { 'X-API-Key': 'your_key' } }
);
const geojson = await res.json();

L.geoJSON(geojson, {
  pointToLayer: (f, latlng) => L.circleMarker(latlng, {
    radius: 6, color: '#dc2626', fillOpacity: 0.8
  }),
  onEachFeature: (f, layer) => {
    const p = f.properties;
    layer.bindPopup(`
      <strong>${p.name}</strong><br>
      Clearance: ${p.min_vert_clearance_m} m<br>
      Operating: ${p.operating_rating_tons} t<br>
      Status: ${p.posting_status}
    `);
  }
}).addTo(map);

Data Sources

The core is the FHWA National Bridge Inventory, and we layer on state DOT inventories wherever the state publishes richer or more current posting data:

Source Count Coverage
FHWA NBI~621,000All US states + DC + PR
Pennsylvania PennDOT~56,000PA bridges + 3K posted roads
Texas TxDOT~58,000Posted bridges (filtered)
Ohio ODOT~45,000Posted bridges
Virginia VDOT~40,000Posted structures + STAA routes
Washington WSDOT~10,800Bridge inventory + FGTS corridors
Indiana INDOT~4,400LiDAR per-lane clearances
New York NYSDOT~2,300Posted load + height bridges
Nova Scotia~296Canadian bridge inspections
Florida FDOT~824Weight-posted bridges

Where sources overlap (e.g., PA NBI vs PennDOT), we prefer the state feed because posting changes hit the DOT first.

Who Uses This

A Note on Staleness

NBI data is updated annually by each state. State DOT feeds refresh more often — typically weekly for postings. Neither is a real-time feed: a bridge struck by a truck yesterday will not appear as closed until a human updates the record. For current closures, combine bridge_clearances with live traffic_events (incidents, construction, lane closures).

Try It

Stop hitting bridges

One API call gives you every clearance, weight rating, and posting status along the corridor. Free 14-day trial. No credit card.

Get Free API Key Explore the Map