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
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):
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
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 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
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.
Related Endpoints
A single forward rate for one date
The spot rate only
Interest rate forward curves
Need an API key? 📩 support@bluegamma.io | 📅 Book a call
Last updated
Was this helpful?

