Home → Blog

You’re building or maintaining a mobile driver app for a 3PL and you need real operational context—live FTL quotes to approve a last-minute load, fuel price benchmarks for accurate surcharges, port congestion signals to set expectations for pickups, real carrier credentials for compliance, and disruption alerts to reroute before weather closes a highway. By the end of this post, you’ll know exactly how to integrate FreightPulse data into your driver app backend and screens to streamline proof-of-delivery, route updates, and driver compliance—without stitching five different logistics feeds together.

Introduction

Driver apps live or die on what they surface at the curb. A clean signature capture workflow won’t save a stop if the pickup window was doomed by a port backlog or if a severe weather cell is about to cross the driver’s route. The operational reality is that your app needs trustworthy logistics data, fast, and it needs to be consistent across fuel, rates, ports, carriers, and disruptions.

FreightPulse consolidates transportation intelligence behind one REST API—EIA fuel prices, live US FTL freight rate quotes, IMF PortWatch port congestion, FMCSA/FMC carrier lookups, and natural-disruption alerts. Instead of managing separate vendor SDKs and reconciling schemas, your driver app consumes a single JSON shape and ships updates to drivers and dispatch in hours, not weeks.

This tutorial shows how to plug FreightPulse into the parts of your mobile driver stack that matter most: proof-of-delivery (POD) workflows that stay on schedule, route-update logic that adapts to weather and port slowdowns, and compliance checks that keep loads legal and insured.

Why FreightPulse

Quick Start

Base URL:

https://freightpulsehq.com/api/v1

Authentication is via X-API-Key header (e.g. X-API-Key: fp_live_...). Unauthenticated requests are allowed up to a small daily limit by IP to make exploration fast. Every response has the shape {"success": true/false, "data": {...}, "error": "..."}.

First request: national and PADD-region fuel prices. This is a practical entry point because fuel data powers surcharge calculations and ETA adjustments in your driver UI.

curl -H "X-API-Key: YOUR_API_KEY" "https://freightpulsehq.com/api/v1/fuel-prices"

Example JSON response (values are illustrative):

{
"success": true,
"data": {
"timestamp": "2026-07-30T12:00:00Z",
"source": "EIA (U.S. Energy Information Administration)",
"currency": "USD",
"unit": "gallon",
"data": {
"diesel": {
"national_average": 3.847,
"change_week": -0.023,
"change_percent": -0.6,
"regions": {
"east_coast": 3.912,
"midwest": 3.756,
"gulf_coast": 3.623,
"rocky_mountain": 3.891,
"west_coast": 4.456,
"california": 4.892
},
"historical": {
"30d_avg": 3.82,
"90d_avg": 3.75,
"yoy_change_percent": -8.2
}
},
"gasoline": {
"national_average": 3.156,
"historical": {
"30d_avg": 3.1,
"90d_avg": 3.05,
"yoy_change_percent": 1.1
}
}
}
}
}

What you’ll actually use:

JavaScript example: call the same endpoint from a Node.js backend

import fetch from "node-fetch";

async function getFuelPrices() {
const res = await fetch("https://freightpulsehq.com/api/v1/fuel-prices", {
headers: { "X-API-Key": "YOUR_API_KEY" }
});
const body = await res.json();

if (!body.success) {
throw new Error(body.error || "Fuel price fetch failed");
}

const ts = body.data.timestamp; // UTC
const diesel = body.data.data.diesel;
const national = diesel.national_average; // USD per gallon
const westCoast = diesel.regions.west_coast;

return { ts, national, westCoast };
}

getFuelPrices().then(console.log).catch(console.error);

Core Endpoints

1) Disruption-aware routing for driver ETA updates

Endpoint: GET /disruptions

Use this to flag cyclones, earthquakes, and severe weather that could impact a driver’s current or next stop. You can filter by a port (e.g., USLAX) to localize signals relevant to containers moving through specific gateways your driver will service.

Key params:

curl -H "X-API-Key: YOUR_API_KEY" "https://freightpulsehq.com/api/v1/disruptions?port=USLAX&severity=high"

Example JSON response (values are illustrative):

{
"success": true,
"data": {
"results": [
{
"id": "gdacs:TC:1001305",
"type": "cyclone",
"severity": "moderate",
"title": "Tropical Cyclone SAUDEL-26",
"country": "Japan",
"starts_at": "2026-08-18T12:00:00+00:00",
"source": "GDACS"
}
]
}
}

How to use it in a driver app:

2) Carrier compliance in the driver’s pocket

Endpoint: GET /carriers

Validate a subcontracted carrier’s DOT number before assigning a load in the app. This helps prevent non-compliant pickups and keeps your POD legally defensible.

Key params:

curl -H "X-API-Key: YOUR_API_KEY" "https://freightpulsehq.com/api/v1/carriers?q=54283"

Example JSON response (values are illustrative):

{
"success": true,
"data": {
"type": "trucking",
"query": "54283",
"results": [
{
"dot_number": 54283,
"legal_name": "SWIFT TRANSPORTATION COMPANY OF ARIZONA LLC",
"status": "active",
"safety_rating": "S",
"drivers": 12883,
"address": {
"city": "Phoenix",
"state": "AZ",
"country": "US"
}
}
]
}
}

How to use it in a driver app:

3) Fuel prices for surcharge accuracy and driver comms

Endpoint: GET /fuel-prices

Driver apps can expose transparent, region-aware fuel surcharges on the load details screen and send weekly notifications when the national average moves materially.

Key details:

curl -H "X-API-Key: YOUR_API_KEY" "https://freightpulsehq.com/api/v1/fuel-prices"

Field highlights you’ll render:

4) Port congestion to set realistic POD windows

Endpoint: GET /port-congestion

For drayage pickups and transloads at major gateways, your driver app can reflect a port’s current activity level to set expectations. FreightPulse calculates a 7-day average of portcalls vs a 90-day baseline. Data lags ~6–7 days because it’s derived from aggregated AIS via IMF PortWatch. It’s not real-time vessel wait times, but it’s an effective signal for planning and comms.

Key params:

curl -H "X-API-Key: YOUR_API_KEY" "https://freightpulsehq.com/api/v1/port-congestion?port=USLAX"

Example JSON response (values are illustrative):

{
"success": true,
"data": {
"results": [
{
"port": "Los Angeles-Long Beach",
"locode": "US LAX",
"country": "United States",
"congestion": "moderate",
"as_of": "2026-08-14",
"metrics": {
"recent_avg_portcalls_per_day": 8.7,
"baseline_avg_portcalls_per_day": 10.2,
"ratio_vs_baseline": 0.85
}
}
]
}
}

How to use it in a driver app:

Real-World Use Cases

Additional cURL: live US FTL rate quote

When a dispatcher adds a backhaul from the driver app or companion console, /freight-rates provides a live quote for US trucking lanes in the same unified schema.

curl -H "X-API-Key: YOUR_API_KEY" "https://freightpulsehq.com/api/v1/freight-rates?mode=trucking&origin_zip=10001&destination_zip=90210"

Sample response (values are illustrative):

{
"success": true,
"data": {
"mode": "trucking",
"service": "FTL (53' dry van)",
"source": "Warp",
"price_usd": 7207.92,
"transit_days": 4,
"pickup_date": "2026-08-24",
"delivery_date": "2026-08-28"
}
}

Use price_usd and transit_days to present a decision card to dispatch; if accepted, show the pickup_date and delivery_date next to the new stop in the driver app. Note: if required params are missing, this endpoint returns HTTP 200 with available=false semantics rather than an error—handle that flow defensively.

Practical integration notes

FAQ

How often do FreightPulse fuel prices update?

Fuel prices are sourced from EIA and update on their weekly cadence. Cache the payload for several hours and show the UTC timestamp in the UI so drivers understand when the data was last refreshed.

Can I look up ocean carriers as well as trucking carriers?

Yes. The /carriers endpoint supports trucking (FMCSA SAFER) by DOT or name and ocean NVOCC/OTI (FMC directory) by organization number or name. For air, the endpoint responds with available:false.

Does the port congestion data reflect real-time vessel wait times?

No. Port congestion is a lagged approximation based on IMF PortWatch AIS aggregates: a 7-day average of portcalls versus a 90-day baseline, with a ~6–7 day data lag. It’s ideal for planning and expectation-setting, not minute-by-minute dispatching.

Can I use FreightPulse without an API key during development?

Yes. Guest access is available with a per-IP daily limit, which is useful for wiring endpoints in dev and staging. Add the X-API-Key header when you move toward higher call volumes or production deployment.

What happens if I miss a required parameter?

You’ll typically receive a 422 with an error message. One exception is /freight-rates, which returns HTTP 200 but indicates that a quote is not available when required params are missing—check the payload before assuming a price is present.

Conclusion + CTA

A driver app becomes operationally valuable when it marries field actions—signing a POD, moving to the next stop—with the logistics intelligence that shapes those actions. With FreightPulse, you fetch fuel benchmarks, live US FTL quotes, port congestion context, carrier compliance data, and disruption alerts from a single REST API. That means fewer vendors to reconcile, faster delivery of features your drivers actually feel, and more predictable on-time performance.

Wire up the endpoints from this guide, ship a disruption-aware route banner, a region-adjusted fuel surcharge display, a DOT validation tap, and a congestion label for dray moves—all in one sprint. Then iterate with historical time series for better ETA messaging and dispatch decisions.

Try FreightPulse for free and get your transportation signals into the hands of your drivers and dispatchers today.