Freightos API: Get container freight rates
Returns the latest public weekly Freightos Baltic Index (FBX) price per 40-foot container for one trade lane, or for the global composite and all twelve lanes.
Unofficial. Not affiliated with or endorsed by Freightos.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Lane optional
lane Trade lane in words, such as China to US West Coast, or Global composite index. Leave blank for all lanes.
North Europe to US East Coast
Default
.
Input as JSON
{ "lane": "North Europe to US East Coast"}Output
{ "rates": [ { "lane": "North Europe to North America East Coast", "link": "https://www.freightos.com/enterprise/terminal/fbx-22-northern-europe-to-north-american-east-coast/" , "currency": "USD", "index_date": "2026-10-23", "fbx_lane_code": "FBX22", "weekly_change_percent": 1.53, "price_per_40ft_container": 2890.25, "year_over_year_change_percent": null } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"freightos.com/get_container_freight_rates","input":{"lane":"North Europe to US East Coast"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "freightos.com/get_container_freight_rates" , "input": { "lane": "North Europe to US East Coast" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "freightos.com/get_container_freight_rates" , "input": { "lane": "North Europe to US East Coast" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run freightos.com/get_container_freight_rates# with {"lane":"North Europe to US East Coast"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "properties": { "lane": { "type": "string", "default": "", "description": "Trade lane in words, such as China to US West Coast, or Global composite index. Leave blank for all lanes." } }}Output schema
{ "type": "object", "required": [ "rates" ], "properties": { "rates": { "type": "array", "items": { "type": "object", "properties": { "lane": { "type": "string" }, "link": { "type": "string" }, "currency": { "type": "string" }, "index_date": { "type": "string" }, "fbx_lane_code": { "type": "string" }, "weekly_change_percent": { "type": "number" }, "price_per_40ft_container": { "type": "number" }, "year_over_year_change_percent": { "type": [ "number", "null" ] } } } } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
freightos.com/get_container_freight_rates- Returns
- lane, price per 40ft container, currency, weekly change, index date, link, FBX code
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method freightos.com/get_container_freight_rates with the inputs above.
Ask your agent
- What is the latest weekly price per 40-foot container from China to the US West Coast?
- Show me this week's global composite container freight index value and its change from last week.
- Can you give me all twelve trade lane container rates with their latest index dates on freightos.com?
- What is the current FBX price for a 40ft box from North Europe to the US East Coast, in USD?
- Which container lane had the biggest weekly rate change in the latest Freightos index, and what did it cost per 40ft?
See more
Gets current commodity prices and price movements from the Trading Economics commodities page, in the page's group order; filter by a commodity name, slug, symbol or group (e.g. copper, energy), or leave blank for all groups including Electricity.
tradingeconomics.com/get_commodity_pricesTracks a Maersk ocean container or shipment by container, bill of lading or booking number. Returns container milestones, vessel details and estimated arrival, with times in the local time of each location when its time zone can be identified.
maersk.com/track_containerGets current quoted prices for energy, metals, and agricultural commodities from Investing.com's real-time futures page, optionally for one commodity. Some quotes may be delayed or indicative; units are null when the contract specification is missing.
investing.com/get_commodity_pricesGets the latest weekly EIA retail gasoline and on-highway diesel prices for a U.S. area, with changes from the prior week and from 52 weeks earlier.
eia.gov/get_fuel_pricesReturns Freddie Mac's U.S. 30-year and 15-year fixed mortgage rates for the latest survey or a chosen date, with weekly and year-ago changes, and optionally a weekly history for a date range.
freddiemac.com/get_mortgage_ratesEstimates domestic USPS Post Office retail postage between two ZIP Codes for a letter, large envelope, package or flat-rate packaging, by weight and mailing date. Media Mail is left out; a zero-weight letter counts as one ounce. Prices are retail, cheapest first, with each service's estimated delivery.
usps.com/estimate_postageFinds a ship on VesselFinder by name, IMO or MMSI and returns its public position, voyage and vessel details.
vesselfinder.com/get_vessel_locationGets a Binance spot pair's latest price and rolling 24-hour trading statistics from a coin name or symbol. Only currently trading pairs are available.
binance.com/get_coin_price