For the complete documentation index, see llms.txt. This page is also available as Markdown.

Fetching FX Forward Curves

Fetch a complete FX forward curve for any currency pair in a single request, for hedging analysis, cash flow forecasting, and FX risk management.

The /fx_forward_curve endpoint returns a full forward curve for a currency pair in a single request. Use this instead of making multiple /fx_forward calls when you need forward rates across many tenors.


When to Use FX Forward Curves

Use Case
Why a Full Curve?

FX hedging analysis

Compare forward rates across tenors to choose optimal hedge dates

Cash flow forecasting

Project future revenue or costs in foreign currencies

Forward premium analysis

Visualise how the forward premium/discount evolves over time

Risk reporting

Feed a complete curve into VaR or exposure models


Basic Example (Standard Mode)

Standard mode returns forward rates at market-standard tenors (1W through 10Y):

import requests

url = "https://api.bluegamma.io/v1/fx_forward_curve"
headers = {"x-api-key": "your_api_key"}

params = {
    "currency_pair": "EURUSD",
    "frequency": "standard"
}

response = requests.get(url, headers=headers, params=params)
data = response.json()

print(f"Spot: {data['spot_rate']}")
for point in data["curve"]:
    print(f"{point['tenor']:>4s}  {point['forward_rate']:.4f}  ({point['forward_diff']:+.4f})")

Response (April 2026):

Field
Description

spot_rate

Current spot FX rate

curve

Array of forward rate points

forward_rate

The outright forward rate at that tenor

forward_diff

Forward points (forward rate minus spot)

tenor

Standard tenor label (standard mode only)

date

The settlement date for the forward

Standard mode returns all available market tenors for the pair (1W through 10Y). The response above is abbreviated for clarity.


Custom Mode

Use custom mode to get forward rates at a regular interval between two dates:

Response (April 2026):

GBPUSD trades at a forward discount (negative forward_diff) because GBP rates are lower than USD rates.

Month-End Alignment

By default, custom mode steps forward by a fixed interval from the start date, so monthly dates gradually shift across the month at longer horizons (visible in the response above: Jul 15, Oct 13, Jan 11...). If your reporting works on month-end dates, set is_end_of_month=true with a month or year frequency to anchor every point to a month-end instead, matching the same option on the interest rate forward curve:

Response (abbreviated):

Dates stay on month-end boundaries across the whole curve, with no drift at long horizons. is_end_of_month applies to custom mode only and requires a month or year frequency (for example 1M, 3M, 1Y).


Visualising the Curve

EURUSD forward curve showing forward premium increasing over time
EURUSD forward curve - live API data, April 2026

EURUSD trades at a forward premium (EUR rates lower than USD rates), with the premium widening from +3 pips at 1W to +1,300 pips at 10Y.


Parameters

Parameter
Required
Description

currency_pair

Yes

Currency pair in ISO format (e.g., EURUSD, GBPUSD, USDJPY)

frequency

No

standard (default) for market tenors, or interval like 1M, 3M, 6M for custom mode

start_date

No

Start date for custom mode (YYYY-MM-DD). Ignored in standard mode

end_date

No

End date for custom mode (YYYY-MM-DD). Ignored in standard mode

is_end_of_month

No

Align custom-mode dates to month-ends (month/year frequencies only). Defaults to false

For the full list of supported currency pairs, see Supported FX Currency Pairs.


If you need...
Use

A single forward rate for one date

/fx_forward

The spot rate only

/fx

Interest rate forward curves

/forward_curve


Need an API key? 📩 support@bluegamma.io | 📅 Book a call

Last updated

Was this helpful?