Fed Funds (FED_FUNDS) Interest Rate

Fed Funds (FED_FUNDS) Interest Rate

You need the Federal Funds Effective Rate inside your application, with reliable timestamps and APIs you can wire into dashboards, loan models, or risk systems. By the end of this article, you’ll be able to fetch, cache, and analyze the Fed Funds (FED_FUNDS) rate using the Interest Rates API, compute spreads and monthly payments from returned values, and integrate seven purpose-built endpoints for production workflows.

What the Fed Funds (FED_FUNDS) rate represents and how it’s expressed

FED_FUNDS is the effective overnight federal funds rate: the volume-weighted rate at which U.S. depository institutions lend reserve balances to each other overnight. It is a key policy-sensitive benchmark that influences short-term funding costs, floating-rate loans, and discounting assumptions across USD markets.

Illustration: Fed Funds (FED_FUNDS) Interest Rate

In the Interest Rates API, FED_FUNDS is returned as a numeric percentage (per annum). For example, a JSON value of 3.75 means 3.75% annualized. Dates are ISO 8601 (YYYY-MM-DD). When you query the latest or historical endpoints, use the “rates” map to read the numeric level and the “dates” map (where present) for the effective date of that observation. Currency is supplied in the “currencies” map and will be “USD” for FED_FUNDS.

Key use cases include:

  • Interest rate dashboards and treasuries monitoring policy-sensitive benchmarks.
  • Loan pricing engines using FED_FUNDS plus a spread to set floating rates.
  • Macro research, scenario analysis, and time-series modeling.
  • Risk systems assessing exposure to short-term rate changes and volatility.

All examples below use GET requests against https://interestratesapi.com/api/v1/ with api_key as a query parameter. To begin, visit interestratesapi.com or Get started with Interest Rates API. For SDKs and tools, see the Interest Rates API MCP.

Conventions that matter for implementation

Units: All “rates” values are percentage levels (e.g., 3.75 represents 3.75%). When converting to decimals for calculations, divide by 100.

Effective date handling: The “dates” map in latest responses tells you the observation date per symbol. In historical and timeseries responses, keys in the rates map are ISO dates to use in downstream processing and caching.

Frequency and business days: The Symbols catalogue includes a “frequency” field. For FED_FUNDS, the API exposes daily observations. Data is typically populated on business days; holidays and weekends will not have entries. When you request a date with no data, use the API’s documented behavior (e.g., the historical endpoint uses the last available day within that month for monthly symbols; for daily series, request an available business date).

Caching: Cache by symbol and effective date. When aggregating, prefer timeseries for bulk retrieval and use Last-Available logic in your app to handle non-business days. Respect rate limit headers when present.

Quick start: Fetch the latest FED_FUNDS

The following official sample shows how to fetch the latest value for FED_FUNDS. Authentication uses the api_key query parameter. All requests are GET.

cURL

curl -s "https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=FED_FUNDS"

JSON response (official sample)

{
"success": true,
"date": "2026-09-01",
"base": "USD",
"rates": {
"FED_FUNDS": 3.75
},
"dates": {
"FED_FUNDS": "2026-09-01"
},
"currencies": {
"FED_FUNDS": "USD"
},
"base_filter_note": null
}

How to read it:

  • rates.FED_FUNDS = 3.75 means the effective rate is 3.75% p.a.
  • dates.FED_FUNDS is the effective date of the observation.
  • currencies.FED_FUNDS confirms currency as USD.

Use this value directly in analytics or convert to a decimal rate (0.0375) for calculations like spreads and monthly payments.

Endpoint 1 — Catalogue of available rate symbols

Use this endpoint to verify FED_FUNDS is available and inspect its metadata.

cURL

Python (requests)

import requests

resp = requests.get(
"https://interestratesapi.com/api/v1/symbols",
params=dict(category="central_bank", base="USD", api_key="YOUR_API_KEY")
)
catalog = resp.json()
fed = next((s for s in catalog.get("symbols", []) if s["symbol"] == "FED_FUNDS"), None)
print(fed)

JavaScript (fetch)

const url = "https://interestratesapi.com/api/v1/symbols?category=central_bank&base=USD&api_key=YOUR_API_KEY";
const res = await fetch(url);
const data = await res.json();
const fed = (data.symbols || []).find(s => s.symbol === "FED_FUNDS");
console.log(fed);

PHP

<?php
$url = "https://interestratesapi.com/api/v1/symbols?category=central_bank&base=USD&api_key=YOUR_API_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
$fed = null;
if (isset($data["symbols"])) {
foreach ($data["symbols"] as $s) {
if ($s["symbol"] === "FED_FUNDS") { $fed = $s; break; }
}
}
print_r($fed);
?>

JSON response example

Key fields:

  • symbol: Use this code (FED_FUNDS) in all other endpoints.
  • frequency: Daily series for programmatic scheduling and caching.

Endpoint 2 — Latest value

Fetch the most recent FED_FUNDS reading to power dashboards and intraday risk updates.

cURL

Python (requests)

import requests

r = requests.get(
"https://interestratesapi.com/api/v1/latest",
params=dict(symbols="FED_FUNDS", api_key="YOUR_API_KEY")
)
data = r.json()
rate = data["rates"]["FED_FUNDS"]
date = data.get("dates", {}).get("FED_FUNDS", data.get("date"))
print(rate, date)

JavaScript (fetch)

const response = await fetch(
"https://interestratesapi.com/api/v1/latest?symbols=FED_FUNDS&api_key=YOUR_API_KEY"
);
const data = await response.json();
const rate = data.rates.FED_FUNDS;
const effDate = (data.dates && data.dates.FED_FUNDS) || data.date;
console.log(rate, effDate);

PHP

<?php
$query = http_build_query(["symbols" => "FED_FUNDS", "api_key" => "YOUR_API_KEY"]);
$json = file_get_contents("https://interestratesapi.com/api/v1/latest?$query");
$data = json_decode($json, true);
$rate = $data["rates"]["FED_FUNDS"];
$date = isset($data["dates"]["FED_FUNDS"]) ? $data["dates"]["FED_FUNDS"] : $data["date"];
echo $rate . " on " . $date;
?>

JSON response example

Field notes:

  • rates is a map of symbol to latest level.
  • dates provides effective dates per symbol (prefer this over the top-level date when present).
  • currencies confirms the currency for each symbol.

Endpoint 3 — Historical value on a specific date

Use this to load a point-in-time value for a business date. For monthly symbols, the API notes it will use the last available day within that month; FED_FUNDS is exposed as a daily series.

cURL

Python (requests)

import requests

params = {"date": "2025-06-15", "symbols": "FED_FUNDS", "api_key": "YOUR_API_KEY"}
data = requests.get("https://interestratesapi.com/api/v1/historical", params=params).json()
value = data["rates"]["FED_FUNDS"]
print("FED_FUNDS on", data["date"], "=", value)

JavaScript (fetch)

const url = "https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=FED_FUNDS&api_key=YOUR_API_KEY";
const res = await fetch(url);
const data = await res.json();
console.log("FED_FUNDS on", data.date, "=", data.rates.FED_FUNDS);

PHP

<?php
$params = http_build_query([
"date" => "2025-06-15",
"symbols" => "FED_FUNDS",
"api_key" => "YOUR_API_KEY"
]);
$json = file_get_contents("https://interestratesapi.com/api/v1/historical?$params");
$data = json_decode($json, true);
echo "FED_FUNDS on " . $data["date"] . " = " . $data["rates"]["FED_FUNDS"];
?>

JSON response example

Endpoint 4 — Time series between two dates

Fetch a continuous series to power charts, regressions, or rolling analytics. Use the rates map to iterate by date, and the frequencies map to confirm sampling.

cURL

Python (requests)

import requests

p = {"start": "2025-10-08", "end": "2026-10-08", "symbols": "FED_FUNDS", "api_key": "YOUR_API_KEY"}
ts = requests.get("https://interestratesapi.com/api/v1/timeseries", params=p).json()
series = ts["rates"]["FED_FUNDS"] # dict of date -> value
# Example: compute a simple average over the returned dates
values = list(series.values())
avg = sum(values) / len(values)
print("Observations:", len(values), "Average:", avg)

JavaScript (fetch)

const url = "https://interestratesapi.com/api/v1/timeseries?start=2025-10-08&end=2026-10-08&symbols=FED_FUNDS&api_key=YOUR_API_KEY";
const res = await fetch(url);
const data = await res.json();
const points = Object.entries(data.rates.FED_FUNDS);
console.log("Rows:", points.length, "First:", points[0]);

PHP

<?php
$params = http_build_query([
"start" => "2025-10-08",
"end" => "2026-10-08",
"symbols" => "FED_FUNDS",
"api_key" => "YOUR_API_KEY"
]);
$json = file_get_contents("https://interestratesapi.com/api/v1/timeseries?$params");
$data = json_decode($json, true);
$series = $data["rates"]["FED_FUNDS"];
echo "First key: " . array_key_first($series) . " Value: " . reset($series);
?>

JSON response example

Field notes:

  • rates.FED_FUNDS is a date-indexed map of values.
  • frequencies informs resampling strategies or expected gaps.

Endpoint 5 — Fluctuation (change statistics over a range)

Use this to compute absolute and percentage changes, as well as highs and lows for your chosen window.

cURL

Python (requests)

import requests

params = {"start": "2025-10-08", "end": "2026-10-08", "symbols": "FED_FUNDS", "api_key": "YOUR_API_KEY"}
fluc = requests.get("https://interestratesapi.com/api/v1/fluctuation", params=params).json()
stats = fluc["rates"]["FED_FUNDS"]
print(stats["start_value"], stats["end_value"], stats["change"], stats["change_pct"])

JavaScript (fetch)

const u = "https://interestratesapi.com/api/v1/fluctuation?start=2025-10-08&end=2026-10-08&symbols=FED_FUNDS&api_key=YOUR_API_KEY";
const r = await fetch(u);
const d = await r.json();
console.log(d.rates.FED_FUNDS);

PHP

<?php
$p = http_build_query([
"start" => "2025-10-08",
"end" => "2026-10-08",
"symbols" => "FED_FUNDS",
"api_key" => "YOUR_API_KEY"
]);
$j = file_get_contents("https://interestratesapi.com/api/v1/fluctuation?$p");
$d = json_decode($j, true);
print_r($d["rates"]["FED_FUNDS"]);
?>

JSON response example

Field notes:

  • change and change_pct quantify movement over the specified window.
  • high and low support basic risk scanning and chart annotations.

Endpoint 6 — OHLC (candlestick) data

Generate monthly, weekly, or quarterly OHLC for charts or technical summary tables. The API computes OHLC from daily data on the fly.

cURL

Python (requests)

import requests

params = {
"symbols": "FED_FUNDS",
"period": "monthly",
"start": "2025-10-08",
"end": "2026-10-08",
"api_key": "YOUR_API_KEY"
}
ohlc = requests.get("https://interestratesapi.com/api/v1/ohlc", params=params).json()
rows = ohlc["rates"]["FED_FUNDS"]
for row in rows:
print(row["period"], row["open"], row["high"], row["low"], row["close"], row["data_points"])

JavaScript (fetch)

const u = "https://interestratesapi.com/api/v1/ohlc?symbols=FED_FUNDS&period=monthly&start=2025-10-08&end=2026-10-08&api_key=YOUR_API_KEY";
const res = await fetch(u);
const ohlc = await res.json();
console.log(ohlc.rates.FED_FUNDS);

PHP

<?php
$q = http_build_query([
"symbols" => "FED_FUNDS",
"period" => "monthly",
"start" => "2025-10-08",
"end" => "2026-10-08",
"api_key" => "YOUR_API_KEY"
]);
$json = file_get_contents("https://interestratesapi.com/api/v1/ohlc?$q");
$data = json_decode($json, true);
print_r($data["rates"]["FED_FUNDS"]);
?>

JSON response example

Field notes:

  • period: A YYYY-MM string for monthly aggregation.
  • data_points: Count of daily observations used in the aggregation.

Endpoint 7 — Convert (loan interest cost comparison)

Compare total simple interest costs for a notional amount using the latest rate from two symbols. This is useful for quick spread-based decisioning in loan workflows.

cURL

Python (requests)

import requests

p = {
"from": "FED_FUNDS",
"to": "ECB_MRO",
"amount": 100000,
"term_months": 12,
"api_key": "YOUR_API_KEY"
}
res = requests.get("https://interestratesapi.com/api/v1/convert", params=p).json()
print(res["from"]["rate"], res["from"]["total_interest"])
print(res["to"]["rate"], res["to"]["total_interest"])
print("Spread:", res["difference"]["rate_spread"])

JavaScript (fetch)

const p = "from=FED_FUNDS&to=ECB_MRO&amount=100000&term_months=12&api_key=YOUR_API_KEY";
const r = await fetch("https://interestratesapi.com/api/v1/convert?" + p);
const d = await r.json();
console.log(d.difference.rate_spread, d.difference.interest_saved);

PHP

<?php
$params = http_build_query([
"from" => "FED_FUNDS",
"to" => "ECB_MRO",
"amount" => 100000,
"term_months" => 12,
"api_key" => "YOUR_API_KEY"
]);
$json = file_get_contents("https://interestratesapi.com/api/v1/convert?$params");
$data = json_decode($json, true);
echo "Spread: " . $data["difference"]["rate_spread"];
?>

JSON response example

Field notes:

  • rate is the latest level for each symbol.
  • total_interest and total_payment are computed for a simple loan over term_months.
  • difference.rate_spread is the arithmetic spread between the two latest rates.

Practical computations with FED_FUNDS

Compute a spread

If your loan is priced at “FED_FUNDS + X bps,” compute X from two known rates. Example using the latest endpoint values in your app:

# Pseudocode using a returned latest value
fed = 3.75 # percent, from rates.FED_FUNDS
loan_rate = 5.00 # percent, your product rate
spread_bps = (loan_rate - fed) * 100 # basis points

Always work in percent for readability, convert to decimal (divide by 100) only when applying to amounts.

Compute a monthly payment (simple interest or amortized)

For simple interest over N months, use amount * (rate_decimal) * (N/12). If your product is amortizing (e.g., equal payments), convert the annual rate to a monthly rate and use the annuity formula:

# Using a returned latest value, e.g., 3.75% - convert to monthly
annual_pct = 3.75
r = (annual_pct / 100.0) / 12.0
n = 24 # months
principal = 250000
# Amortized payment:
payment = principal * (r * (1 + r)**n) / ((1 + r)**n - 1)

Do not hardcode rates. Always read from the API and handle days with no data by selecting the most recent available business date in your window.

Error handling and rate limits

Common error shapes include success=false with an error message. Notable HTTP statuses:

  • 401: Missing or invalid api_key
  • 403: Account without active plan
  • 404: No symbols matched or no data for the requested date/range
  • 422: Validation error (e.g., wrong date format)
  • 429: Request quota exhausted (observe Retry-After, X-RateLimit-* headers)

Implement retries with backoff on 429 and persist a local cache keyed by (symbol, date). This reduces latency and protects quota.

End-to-end workflow for FED_FUNDS integrations

  1. Discovery: Use /symbols to confirm FED_FUNDS metadata, frequency, and currency.
  2. Point-in-time read: Use /historical to seed your database for specific dates.
  3. Bulk ingest: Use /timeseries for ranges to build charts and models.
  4. Monitoring: Use /latest for dashboards and alerting.
  5. Analytics: Use /fluctuation for change stats and /ohlc for visual summaries.
  6. Loan comparisons: Use /convert for quick interest cost benchmarks between FED_FUNDS and another symbol.

Explore more tools at interestratesapi.com, read SDK notes in the MCP, and Register for an API key to start building.

FAQ

Q: What timezone are dates in?
A: Dates are ISO 8601 (YYYY-MM-DD). The API returns dates without times; treat them as effective dates for the observation. If you aggregate intraday, use the “dates” map when present to anchor each value.

Q: How should I handle weekends and holidays?
A: The series is populated on business days. For missing dates, request the nearest prior business day or use /historical and /timeseries to pull available observations and fill forward in your application logic.

Q: Are values percentages or decimals?
A: Percentages. For example, 3.75 represents 3.75% per annum. Divide by 100 to obtain a decimal rate when doing arithmetic.

Q: How do I compute a monthly payment from FED_FUNDS?
A: Convert the annual percent to a monthly decimal rate r = (annual_pct/100)/12 and then apply either simple interest (amount * r * months) or the standard amortization formula for equal payments.

Q: How do I check that FED_FUNDS is a daily series?
A: Call /symbols and inspect the “frequency” field for FED_FUNDS. Use /timeseries to validate expected date coverage in your chosen window.

Build your FED_FUNDS integration now: Register for Interest Rates API, browse tools in the Interest Rates API MCP, and Get started with Interest Rates API. Once you have YOUR_API_KEY, plug it into the endpoints above and ship your dashboard, pricing engine, or research pipeline.

Ready to get started?

Get your API key and start validating bank data in minutes.

Get API Key

Related posts