Global Freight Rate Index Aggregator
Pricing
from $5.00 / 1,000 index snapshot returneds
Global Freight Rate Index Aggregator
Aggregates real, free container/dry-bulk freight rate indices (Drewry WCI, Freightos Baltic Index incl. 12 trade lanes, Baltic Dry Index, Trading Economics) into one structured feed with weekly/monthly/yearly change tracking.
Pricing
from $5.00 / 1,000 index snapshot returneds
Rating
0.0
(0)
Developer
joseph fadero
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Know your duty cost, your freight cost, and your supplier's shipment pattern — in one workflow. This actor is the third leg of a companion suite: run it alongside ../Global%20Landed-Cost%20%26%20Tariff-Change%20Monitor/ (Actor 26, your duty cost) and ../Import-Export%20Shipment-Manifest%20Intelligence/ (Actor 28, your supplier's shipment pattern) for the full import-cost picture. Container freight rates dropped over 70% from their 2022 peak but swing hard on single events (a Red Sea route reopening, a canal disruption) — this aggregates the free/directional layer of the real indices that track that volatility into one structured, scheduled feed, instead of checking four separate index sites by hand.
Phase 1 source audit — what's actually free, verified live
The PRD flagged real uncertainty about paywalls before any code was written. Here's what direct testing found, source by source:
| Index | Free access confirmed | What's actually free | Basis |
|---|---|---|---|
| Drewry World Container Index (WCI) | ✅ Headline only | Composite $/40ft figure, in the page's own meta description | Confirmed live: real Login/Register prompts gate the "6,700 port pairs" route-level product the PRD flagged as paid; the headline composite is not behind that wall |
| Freightos Baltic Index (FBX) | ✅ Composite + all 12 public lanes | Every FBX0X trade-lane sub-index, from a single page request | Confirmed live — richer than expected. The PRD's own research called FBX "primarily subscription-based"; a clean embedded JS ticker object on the main terminal page has the composite AND all 12 lanes in static HTML, no JS execution or per-route page visits needed |
| Baltic Dry Index (BDI) | ⚠️ Via third-party republisher | Current composite value | The official Baltic Exchange source is subscription/member-only, confirmed live — no free real-time feed exists there. balticdryindex.com, a legitimate third-party site, republishes the current value in a clean, parseable meta description. Documented here as a third-party source, not the primary one — same honesty standard as Actor 29's EUR-Lex workaround |
| Trading Economics "Containerized Freight Index" | ✅ Composite | Current value, in an embedded JSON field | Confirmed live. A real naming trap found and worth flagging: Trading Economics' own /commodity/world-container-index URL 302-redirects to this same page — but this is Trading Economics' own proprietary Shanghai-origin composite, not a republish of Drewry's WCI. Confirmed by comparing values directly: Drewry's WCI was $4,297/40ft the same week this page showed 3,276.14 points — different units, different numbers, genuinely different indices despite the confusingly overlapping name. Never conflated in this actor's output. |
A scope simplification, not an omission
The PRD's input schema included routes and watchList fields for selecting specific trade lanes. In practice, only FBX has meaningful route-level granularity (WCI, BDI, and the Trading Economics index are each a single composite figure) — and Freightos' own ticker returns all 12 routes in one request regardless of which you'd ask for, so there's no cost saved by letting a caller narrow the selection. This actor always returns every available route per selected index rather than requiring the caller to enumerate them — more complete, not less, than the PRD's original schema.
Modes
| Mode | Behavior |
|---|---|
current_snapshot | Fetch and return today's values only — no stored history touched |
monitor | Same fetch, plus weekly/monthly/yearly % change computed from this actor's own stored run history (the default agent-facing pattern, per the portfolio's x402 design convention) |
On a brand-new deployment (or a new index/route never fetched before), weeklyChangePercent/monthlyChangePercent/yearlyChangePercent are honestly null until enough scheduled runs have accumulated real historical snapshots in that window — not fabricated from a single data point. The change-lookup uses a tolerance window around each target (±2 days for weekly, ±5 for monthly, ±15 for yearly) so it doesn't require a snapshot on the exact day, only a close one, which matters since these indices publish on different day-of-week cadences.
Output schema
{"indexName": "wci | fbx | bdi | containerized_freight_index","route": "string (\"composite\" for WCI/BDI/TE; a named trade lane for FBX)","currentValue": "number","unit": "usd_per_40ft_container | points","weeklyChangePercent": "number | null","monthlyChangePercent": "number | null","yearlyChangePercent": "number | null","sourceUrl": "string","checkedAt": "ISO timestamp","status": "success | failed","errorMessage": "string | null"}
unit matters — don't compare a points-based index (BDI, Trading Economics) against a usd_per_40ft_container one (WCI, FBX) as if they were the same scale.
Setup note
No browser needed — all four sources were confirmed live to work over plain HTTP with real data present in static HTML (no JS execution required for any of them), so this uses the lighter apify/actor-node:20 base image rather than the portfolio's usual Playwright/Chrome default.
Pricing
| Event | Price |
|---|---|
| Run started | £0.05 |
| Reading success | £0.06 |
| Fetch failed | free |
n8n integration
- Workflow A (trigger): scheduled weekly run against your (or clients') relevant trade lanes.
- Workflow B (processing): alert on significant week-over-week moves (e.g. >10%) with historical context — lock in a rate now, or wait.