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
- One schema for multiple logistics domains. Fuel prices, live FTL quotes, port congestion, carrier verification, and disruption alerts land in the same response envelope: {"success": true/false, "data": {...}}. Less glue code. Fewer edge cases.
- Guest access for prototyping. You can hit the API without a key (limited by IP-based daily caps) to wire up flows in your dev and staging environments before touching auth.
- Operationally relevant signals. Pair port congestion (7-day average vs 90-day baseline) with disruption alerts filterable by a specific port radius, so dispatch can warn drivers and reschedule POD windows with evidence.
- Compliance in your pocket. FMCSA SAFER and FMC lookups let you validate trucking carriers (DOT number, safety rating, drivers) or ocean NVOCC/OTI entries as part of your load-acceptance and subcontracting flows.
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:
- data.timestamp: UTC timestamp; cache responses until the next weekly EIA update or your internal policy (e.g., 6–12 hours) to reduce calls.
- data.data.diesel.national_average and regions.*: anchor your fuel surcharge or driver pay adjustments in USD per gallon.
- data.data.diesel.historical: trend context for weekly ops reviews and driver communication.
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:
- type: cyclone | earthquake | flood | volcano | drought | wildfire | severe_weather
- severity: low | moderate | high
- country: optional filter
- port: filter by a target port; FreightPulse applies a distance filter (300 km; 100 km for US weather)
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:
- Display an in-route banner when results[].type is severe_weather or cyclone and severity is moderate/high near the upcoming stop.
- Trigger a dispatch workflow to re-sequence stops or push an adjusted proof-of-delivery ETA.
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:
- q: required (DOT number or carrier name)
- type: trucking (default) | ocean | air (air returns available:false)
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:
- At load accept time, show the legal_name, status, and safety_rating to drivers or dispatchers.
- Flag non-active status before issuing a rate confirmation or enabling POD for that subcontracted carrier.
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:
- No params required.
- Currency is USD, unit is gallon.
- Includes national and PADD-region averages plus weekly change and trend averages.
curl -H "X-API-Key: YOUR_API_KEY" "https://freightpulsehq.com/api/v1/fuel-prices"
Field highlights you’ll render:
- data.data.diesel.national_average: primary surcharge anchor.
- data.data.diesel.regions.west_coast (etc.): when the driver’s route sits predominantly in a region, reflect that in comms.
- data.data.diesel.change_week: show week-over-week movement (e.g., “-0.6% WoW”).
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:
- port: port name or LOCODE (e.g., USLAX)
- country or region: alternative filters
- congestion: optional filter (low | moderate | high)
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:
- Show a congestion label (“moderate”) and a note that data is a lagged 7-day average. Use ratio_vs_baseline to color-code expectations.
- When congestion is high, preemptively extend appointment buffers or let dispatch re-slot pickups to protect POD compliance.
Real-World Use Cases
- Driver-facing disruption banner and reroute suggestion. Query /disruptions with type=severe_weather or cyclone along the intended corridor or near the destination port. If results show moderate/high severity, present a reroute suggestion and notify dispatch to adjust the POD timestamp.
- On-device carrier credential check before tender. Use /carriers to confirm DOT status and safety_rating for a subcontractor the driver just scanned from a rate sheet. If status != active, block load acceptance and prompt for dispatch review.
- Transparent surcharge and pay breakdown. Pull /fuel-prices for the latest USD-per-gallon averages and compute the fuel component of a driver’s pay for today’s lane. Pair with /freight-rates (for US FTL trucking lanes) to validate the quote-to-pay envelope presented to the driver.
- Port pickup risk indicator on stop details. For dray moves, call /port-congestion for the target gateway and render congestion and ratio_vs_baseline with a short note about the lag. Subscribe dispatch to /disruptions with port=LOCODE to catch weather changes near the terminal.
- Dispatch-side ETA adjustment with historical context. Use /historical with metric=port_congestion:<portid> to chart last 30–90 days of port activity and justify updated ETAs during customer calls; drivers see a concise “why” next to their POD window.
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
- Response shape: All endpoints return {"success": true/false, "data": {...}}; check success before reading data. On errors, you’ll get {"success": false, "error": "Human-readable message."} with appropriate HTTP status codes like 401, 403, 422, or 429.
- Timestamps and timezone: Timestamps are ISO 8601 with UTC (“Z”). Align your driver app’s local-time presentation carefully, especially when scheduling POD windows.
- Units and currency: Fuel prices are in USD per gallon. Freight rate quotes return price_usd.
- Caching: Fuel prices update on EIA’s weekly cadence; cache for hours to reduce API calls. Port congestion is lagged by ~6–7 days; refreshing once daily is sufficient for planning screens.
- Unauthenticated exploration: You can make limited calls without an API key to prototype quickly. For production and higher throughput, add the X-API-Key header.
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.