Home → Blog

Seasonal peaks are where capacity plans are stress-tested in the real world. When retail holidays, produce seasons, and weather patterns converge, freight markets tighten in days, not weeks. Procurement analysts scramble to reprice lanes, dispatch teams need verified carriers on standby, and network planners must decide where to lean into intermodal, where to stage drop trailers, and when to re-sequence port routings. The hardest part isn’t modeling the scenarios—it’s collecting the right signals quickly enough to take action.

In most operations, those signals live in five different places with five different schemas: fuel price series from EIA feeds, spot FTL quotes from your provider’s API, AIS-derived port congestion indicators, FMCSA/FMC registries for carrier vetting, and weather or seismic alerts from multiple hazard agencies. Stitching these together under time pressure introduces the exact fragility you’re trying to eliminate. Every missing key, every rate-limited feed, every schema mismatch is a potential blind spot during peak.

This post shows how to build a seasonal capacity playbook with one unified surface: FreightPulse. We will pull EIA fuel prices, live U.S. full-truckload quotes, IMF PortWatch congestion, FMCSA/FMC carrier lookups, and natural-disruption alerts from a single REST API. By the end, you’ll have a blueprint to operationalize fuel surcharges, rate checks, port diversion triggers, pre-vetted carrier pools, and disruption geofences—all from one base URL, one response shape, and lightweight client code your team can maintain through the peak.

Why FreightPulse

FreightPulse consolidates logistics intelligence that teams typically source from disparate systems. The core advantage for developers and operators isn’t a single feature—it’s the compound effect of fewer integrations, consistent JSON across endpoints, and predictable behavior under stress. Here are the practical benefits that matter in the heat of a surge:

Quick Start

FreightPulse is a single REST surface at:

Base URL: https://freightpulsehq.com/api/v1

Requests share a consistent response envelope: {"success": true|false, "data": {...}, "error": "..."}.

Let’s start by fetching national fuel prices, a staple input for fuel surcharges and lane economics. This first call requires no parameters.


curl "https://freightpulsehq.com/api/v1/fuel-prices"

Example response:

{
"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
}
}
}
}
}

Key fields you will use immediately:

Core Endpoints

1) Fuel Prices — GET /fuel-prices

Purpose: Weekly national and regional diesel/gasoline series for surcharge programs, hedging visibility, and run-rate modeling. No parameters required.

Implementation notes:

Request:


curl "https://freightpulsehq.com/api/v1/fuel-prices"

Response (abbreviated for emphasis on diesel fields):

{
"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
}
}
}
}
}

Field interpretation:

2) Live Freight Rates — GET /freight-rates

Purpose: Obtain live full-truckload (FTL) trucking quotes for U.S. lanes, plus limited ocean/air coverage for Asian origins to U.S. ZIP destinations. During peak, this supports dynamic tendering, spot augmentation for contract shortfalls, and scenario modeling for ad-hoc customer commitments.

Key parameters for trucking:

Request (NY 10001 to CA 90210):


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

Sample response:

{
"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"
}
}

Field interpretation:

Handling incomplete param sets: If required params are missing, FreightPulse returns HTTP 200 with available: false, not an error. This prevents brittle client failures and enables UI flows that progressively collect inputs.

3) Port Congestion — GET /port-congestion

Purpose: Estimate port activity versus normal to flag diversion candidates early. This endpoint draws from IMF PortWatch (AIS-derived) to compute a 7-day average portcalls compared to a 90-day baseline. Data typically lags ~6–7 days and is not a measure of live vessel wait times.

Key parameters:

Request (Los Angeles/Long Beach by LOCODE):


curl "https://freightpulsehq.com/api/v1/port-congestion?port=USLAX"

Sample response:

{
"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
}
}
]
}
}

Field interpretation:

Best practice: Pair this with /historical port time series to identify inflection points rather than reacting to a single snapshot.

4) Carrier Lookups — GET /carriers

Purpose: Verify trucking carriers (FMCSA SAFER) and ocean NVOCC/OTI organizations (FMC) as part of surge prep. Pre-validated carrier pools cut your tender cycle time dramatically during spikes.

Key parameters:

Request (trucking by DOT number):


curl "https://freightpulsehq.com/api/v1/carriers?q=54283"

Sample response:

{
"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"
}
}
]
}
}

Field interpretation:

5) Disruptions — GET /disruptions

Purpose: Aggregate natural-hazard alerts (cyclones, earthquakes, severe weather, and more) from GDACS, USGS, and NOAA/NWS. During peak, disruptions compound congestion and rate volatility; early alerts let you preemptively reroute and notify customers.

Key parameters:

Request (high-severity alerts around USLAX):


curl "https://freightpulsehq.com/api/v1/disruptions?port=USLAX&severity=high"

Sample response:

{
"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"
}
]
}
}

Field interpretation:

6) Historical Series — GET /historical

Purpose: Retrieve historical diesel/gasoline national series (weekly) and port congestion series (daily) for roughly 20 major global ports. Historical context helps teams define rolling thresholds that prevent whiplash responses to noise.

Key parameters:

Request (30-day diesel series):


curl "https://freightpulsehq.com/api/v1/historical?metric=fuel_price_diesel_national&period=30d"

Sample response:

{
"success": true,
"data": {
"metric": "fuel_price_diesel_national",
"period": "30d",
"series": [
{ "date": "2026-07-27", "value": 5.257 },
{ "date": "2026-08-03", "value": 5.343 }
]
}
}

Field interpretation:

Error Handling and Operational Resilience

A seasonal capacity playbook is only as reliable as its error handling. FreightPulse uses a uniform error shape and clear status semantics so you can implement retries, fallbacks, and safe UIs.

Example of a validation error for a different endpoint (missing q on /carriers):

{
"success": false,
"error": "Missing required parameter: q"
}

Best practices:

End-to-End Examples in Code

Here are practical code snippets that combine endpoints for real-world workflows during peak season.

Example A: Fuel-aware Spot Quote in Python

import json
import urllib.request
import urllib.parse

BASE = "https://freightpulsehq.com/api/v1"

def get_json(url):
req = urllib.request.Request(url)
with urllib.request.urlopen(req, timeout=20) as resp:
return json.loads(resp.read().decode("utf-8"))

# 1) Get latest diesel national average
fuel = get_json(f"{BASE}/fuel-prices")
diesel = fuel["data"]["data"]["diesel"]["national_average"]

# 2) Get live FTL quote for a lane
params = urllib.parse.urlencode({
"mode": "trucking",
"origin_zip": "10001",
"destination_zip": "90210"
})
rates = get_json(f"{BASE}/freight-rates?{params}")
quote = rates["data"]

# 3) Compute a simplified fuel-adjusted benchmark
base_price = quote.get("price_usd", 0.0)
fuel_adj = base_price * (diesel / 3.50) # normalize to an internal baseline
print({
"lane": "10001->90210",
"spot_price_usd": base_price,
"diesel_usd_per_gal": diesel,
"fuel_adjusted_price_usd": round(fuel_adj, 2),
"transit_days": quote.get("transit_days")
})

Notes:

Example B: Port Risk Overlay in JavaScript

// Fetch a congestion snapshot plus high-severity disruptions near a port.
const BASE = "https://freightpulsehq.com/api/v1";

async function fetchJson(url) {
const res = await fetch(url, { method: "GET" });
return await res.json();
}

async function getPortRisk(locode) {
const congestion = await fetchJson(`${BASE}/port-congestion?port=${encodeURIComponent(locode)}`);
const disruptions = await fetchJson(`${BASE}/disruptions?port=${encodeURIComponent(locode)}&severity=high`);
return {
congestion: congestion.data?.results?.[0] || null,
disruptions: disruptions.data?.results || []
};
}

getPortRisk("USLAX").then((risk) => {
console.log("Port risk overlay:", JSON.stringify(risk, null, 2));
});

Notes:

Real-World Use Cases

1) Fuel-Surcharge Calculator for Seasonal Contracts

Pull current and historical diesel prices from GET /fuel-prices and GET /historical to compute rolling surcharges that match your contract fine print. Use national averages for quick math, then graduate to region-specific PADD values if your lanes concentrate in the Gulf Coast or West Coast. Combine these values with your contracted base rates in your TMS UI so ops can preview the cost effect of tendering a load during a volatile fuel week.

2) Peak-Season Spot Augmentation for Enterprise Shippers

When contracted carriers reject at scale, call GET /freight-rates for live FTL quotes to backfill capacity on critical lanes. If quotes trend above your SLA tolerance, the app can flag procurement to split shipments by delivery windows. Pair the quote with diesel data (GET /fuel-prices) to identify when hikes are fuel-driven vs. capacity-driven, informing negotiations and internal escalations differently.

3) Port-Conscious Ocean Routing for Freight Forwarders

Use GET /port-congestion to surface normalized congestion scores for origin and destination port alternatives. Even with a 6–7 day lag, the 7-day vs. 90-day ratio highlights early shifts that merit closer inspection. Combine this with GET /disruptions filtered by the same port to produce a single “Port Risk” panel that informs customer advisories and route selections. Add GET /historical to detect improving vs. worsening trajectories.

4) Carrier Vetting Widget for 3PL Dispatchers

Embed GET /carriers in your lane pricing page. When a dispatcher types a DOT number or name, show status, safety_rating, and drivers in-line so they can quickly shortlist carriers with the right scale and compliance posture for time-sensitive allocations. Retain the lookup result in your job ticket to simplify audit and carrier scorecard updates after the season.

5) Disruption Geofencing for Shipment Trackers

Call GET /disruptions with port filters to alert customers when cyclones or severe weather approach a hub relevant to their inbound containers or transloads. Run this as a scheduled job that annotates shipment timelines with disruption windows so customer success can proactively recommend delivery re-plans or diversion options. When alerts fire, correlate with rate quotes on alternates from GET /freight-rates to present action-ready options instead of raw warnings.

Performance Tips and Best Practices

Data Modeling Patterns for Seasonal Playbooks

Seasonal capacity playbooks work best when they map logistics signals to concrete actions in your TMS, OMS, or planning tools. Below are patterns you can implement quickly with FreightPulse data.

Comprehensive JSON Examples and Field-by-Field Notes

Fuel Prices: Complete Example and Annotations

{
"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.10,
"90d_avg": 3.05,
"yoy_change_percent": 1.1
}
}
}
}
}

Freight Rates: Handling Progressive Input

When inputs are incomplete, /freight-rates indicates unavailability without failing the request. Example:

{
"success": true,
"data": {
"available": false,
"missing": ["origin_zip", "destination_zip"]
}
}

Port Congestion: Comparing Two Ports

You can query by country or region to list multiple ports, then select by ratio_vs_baseline or congestion label. For example, checking two West Coast ports:

{
"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
}
},
{
"port": "Oakland",
"locode": "US OAK",
"country": "United States",
"congestion": "low",
"as_of": "2026-08-14",
"metrics": {
"recent_avg_portcalls_per_day": 5.1,
"baseline_avg_portcalls_per_day": 5.0,
"ratio_vs_baseline": 1.02
}
}
]
}
}

Carriers: Ocean vs Trucking

Switch type=ocean to look up NVOCC/OTI organizations:


curl "https://freightpulsehq.com/api/v1/carriers?type=ocean&q=maersk"

Response pattern matches the trucking flow, enabling a unified UI. Air returns available:false for now, allowing you to build future-proof selectors without coding special errors.

Disruptions: Filtering by Hazard Type and Severity

Set type=severe_weather and severity=high to spotlight only the most impactful U.S. weather alerts. Combine with port to enforce geographic relevance for shipments.

Operational Playbook: From Signals to Actions

A mature capacity playbook isn’t just a dashboard; it is a set of codified decisions that activate automatically as signals cross thresholds. Here is an example mapping:

FAQ

How often do FreightPulse fuel prices update?

Fuel prices reflect EIA updates with weekly cadence and include historical 30d/90d averages for smoothing. Use the timestamp field to display the as-of instant in your UI and cache results for short periods to reduce needless polling.

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

Yes. Use GET /carriers with type=ocean to query NVOCC/OTI organizations from FMC data, and the default type=trucking for FMCSA SAFER carrier details. Air returns available:false to keep your UI stable while signaling current coverage.

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

No. Port congestion in FreightPulse is a 7-day average of port calls compared to a 90-day baseline and typically lags ~6–7 days. It is intended for trend analysis and routing heuristics, not minute-by-minute live queue tracking.

How should I combine live truck quotes with fuel prices?

Use live quotes from GET /freight-rates as the spot benchmark and apply surcharge calculations using diesel averages from GET /fuel-prices. Historical series from GET /historical help you set rolling thresholds that avoid overreacting to weekly noise.

What’s the best way to monitor natural disruptions around my key ports?

Filter GET /disruptions by port and severity, and run it on a schedule that matches your SLA cadence (e.g., hourly or every few hours). Annotate shipments near the affected ports with disruption windows and proactively present reroute options using GET /freight-rates.

Conclusion + CTA

Peak seasons reward teams that reduce the cognitive and technical overhead between a data signal and a decision. By consolidating fuel prices, live FTL quotes, port congestion trends, carrier verification, and natural-hazard alerts behind one response shape, FreightPulse turns fragmented monitoring into a coherent capacity playbook.

Whether you are a 3PL engineering leader instrumenting a dispatch console, a freight forwarder building a port risk module, or an enterprise supply chain team hardening your tender strategy, the same principle applies: fewer integrations, consistent schemas, and reliable caveats generate faster, higher-confidence actions when capacity tightens. Start with a simple dashboard—fuel, rates, congestion—and graduate to automated thresholds that propose diversions, update surcharges, and reorder carrier tender rounds.

If you are ready to go from spreadsheets and scattered APIs to a unified logistics intelligence layer, explore the endpoints shown here and expand your playbook with historical context and disruption geofencing. Try FreightPulse for free and ship your peak-season capacity tools with confidence.