You need a reliable way to fetch the Federal Funds Effective Rate as a daily time series and wire it into pricing engines, loan calculators, dashboards, and risk models. By the end of this article, you’ll be able to query the FED_FUNDS_DAILY symbol from the Interest Rates API, read its fields correctly, and implement robust integrations for latest, historical, time series, fluctuation, and OHLC views—plus compute spreads and monthly payments from the returned values.
What FED_FUNDS_DAILY Represents and How to Use It
FED_FUNDS_DAILY is the Federal Funds Effective Rate published on a daily frequency, denominated in USD. It reflects the weighted average rate at which depository institutions lend reserve balances to other depository institutions overnight. This rate matters because it anchors short-term USD money markets, influences commercial lending, and is a key input for macro and risk analytics.
Units: values are expressed as a percent per annum (for example, 3.88 means 3.88% annualized). Treat these as percentage points when computing spreads or loan interest.
Publication cadence: daily, with observations typically available for U.S. business days. There is no value on weekends or U.S. market holidays. Time series endpoints will therefore show gaps corresponding to non-business days.
Effective dates: each response includes the observation date for FED_FUNDS_DAILY. If your application requires end-of-day alignment, use the date in the dates map (or the keys in time series objects) as the definitive timestamp for the rate.
All requests in this article come from the Interest Rates API at https://interestratesapi.com. Authentication uses the api_key query parameter, and all endpoints are GET. To start, secure an API key at Register for Interest Rates API or Register.
General Integration Pattern
Base URL: https://interestratesapi.com/api/v1/ and authentication via ?api_key=YOUR_API_KEY. All endpoints are HTTP GET—never POST, PUT, or DELETE. For rate values, read the rates map by symbol, and use dates, currencies, or metadata like frequencies if present.
For high-throughput apps, respect caching headers where applicable, and use the rate limit headers to plan request pacing: X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. If you receive 429, check the Retry-After header before retrying.
Documentation references: Interest Rates API MCP and MCP. To get an API key now: Get started with Interest Rates API.
Endpoint 1: Symbols — Find and Validate FED_FUNDS_DAILY
Use the symbols catalogue to confirm availability and metadata. Filter by USD central bank rates to narrow results.
cURL
curl -s "https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=FED_FUNDS_DAILY"
JSON response example
{
"success": true,
"date": "2026-10-05",
"base": "USD",
"rates": {
"FED_FUNDS_DAILY": 3.88
},
"dates": {
"FED_FUNDS_DAILY": "2026-10-05"
},
"currencies": {
"FED_FUNDS_DAILY": "USD"
},
"base_filter_note": null
}
How to read it: the catalogue lists central bank symbols with metadata. The example illustrates the structure; your query can include both FED_FUNDS and FED_FUNDS_DAILY among other USD central bank rates. Check symbol for the exact identifier and frequency for cadence (daily for our focus symbol).
Python (requests)
import requests
resp = requests.get(
"https://interestratesapi.com/api/v1/symbols",
params=dict(category="central_bank", base="USD", api_key="YOUR_KEY")
)
symbols = resp.json()
print(symbols.get("symbols", []))
JavaScript (fetch)
const res = await fetch("https://interestratesapi.com/api/v1/symbols?category=central_bank&base=USD&api_key=YOUR_KEY");
const json = await res.json();
console.log(json.symbols);
PHP
<?php
$url = "https://interestratesapi.com/api/v1/symbols?category=central_bank&base=USD&api_key=YOUR_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
print_r($data["symbols"] ?? []);
Endpoint 2: Latest — Get Today’s FED_FUNDS_DAILY
The latest endpoint returns the most recent value available and its effective date. Values are percent per annum.
OFFICIAL cURL (copy exactly)
OFFICIAL JSON (copy exactly)
Key fields you will use:
- rates.FED_FUNDS_DAILY: the latest value, as a percent.
- dates.FED_FUNDS_DAILY: the observation date for this value.
- currencies.FED_FUNDS_DAILY: confirms USD.
Python (requests)
import requests
r = requests.get(
"https://interestratesapi.com/api/v1/latest",
params=dict(api_key="YOUR_API_KEY", symbols="FED_FUNDS_DAILY")
)
data = r.json()
value = data["rates"]["FED_FUNDS_DAILY"]
obs_date = data["dates"]["FED_FUNDS_DAILY"]
print(value, obs_date)
JavaScript (fetch)
const response = await fetch(
"https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=FED_FUNDS_DAILY"
);
const data = await response.json();
const value = data.rates.FED_FUNDS_DAILY;
const date = data.dates.FED_FUNDS_DAILY;
console.log(value, date);
PHP
<?php
$url = "https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=FED_FUNDS_DAILY";
$json = file_get_contents($url);
$d = json_decode($json, true);
$value = $d["rates"]["FED_FUNDS_DAILY"] ?? null;
$date = $d["dates"]["FED_FUNDS_DAILY"] ?? null;
echo $value . " on " . $date;
Endpoint 3: Historical — Value on a Specific Date
Use the historical endpoint to fetch FED_FUNDS_DAILY for a past observation date (format Y-m-d). If a given date is a weekend/holiday, the API returns the value for that date only if it exists; otherwise, expect a 404 if no observation is available for that exact date.
cURL
JSON response example
Read rates.FED_FUNDS_DAILY for the percent value on that date. The date in the envelope indicates the requested date; ensure you handle cases where data may not exist for non-business days by validating success and inspecting any 404 error details.
Python (requests)
import requests
params = dict(date="2025-06-15", symbols="FED_FUNDS_DAILY", api_key="YOUR_KEY")
r = requests.get("https://interestratesapi.com/api/v1/historical", params=params)
data = r.json()
print(data.get("rates", {}).get("FED_FUNDS_DAILY"))
JavaScript (fetch)
const url = "https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=FED_FUNDS_DAILY&api_key=YOUR_KEY";
const res = await fetch(url);
const data = await res.json();
console.log(data.rates?.FED_FUNDS_DAILY);
PHP
<?php
$url = "https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=FED_FUNDS_DAILY&api_key=YOUR_KEY";
$json = file_get_contents($url);
$d = json_decode($json, true);
echo $d["rates"]["FED_FUNDS_DAILY"] ?? "n/a";
Endpoint 4: Time Series — Daily FED_FUNDS_DAILY Between Two Dates
Time series returns a date-keyed map of values for the requested symbol between a start and end date (inclusive where observations exist). Missing days correspond to weekends/holidays.
cURL
JSON response example
Use the inner object under rates.FED_FUNDS_DAILY as a date-to-value map. The frequencies and currencies confirm cadence and base currency, respectively.
Python (requests)
import requests
r = requests.get(
"https://interestratesapi.com/api/v1/timeseries",
params=dict(start="2025-10-08", end="2026-10-08", symbols="FED_FUNDS_DAILY", api_key="YOUR_KEY")
)
series = r.json()["rates"]["FED_FUNDS_DAILY"]
# Iterate date/value pairs
for dt, val in series.items():
pass
JavaScript (fetch)
const tsUrl = "https://interestratesapi.com/api/v1/timeseries?start=2025-10-08&end=2026-10-08&symbols=FED_FUNDS_DAILY&api_key=YOUR_KEY";
const tsRes = await fetch(tsUrl);
const ts = await tsRes.json();
const series = ts.rates.FED_FUNDS_DAILY;
Object.entries(series).forEach(([date, value]) => {
// use date and value
});
PHP
<?php
$url = "https://interestratesapi.com/api/v1/timeseries?start=2025-10-08&end=2026-10-08&symbols=FED_FUNDS_DAILY&api_key=YOUR_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
$series = $data["rates"]["FED_FUNDS_DAILY"] ?? [];
foreach ($series as $date => $value) {
// process $date and $value
}
Endpoint 5: Fluctuation — Change, High, Low Over a Range
Use fluctuation to compute net change and percentage change across a period, plus period high/low. This is useful for volatility monitoring, dashboards, and alerts.
cURL
JSON response example
Fields:
- start_value, end_value: values in percent at the start and end of range.
- change: end_value − start_value (percentage points).
- change_pct: percentage change relative to start_value (null if start_value is 0).
- high, low: extremes over the range.
Python (requests)
import requests
r = requests.get(
"https://interestratesapi.com/api/v1/fluctuation",
params=dict(start="2025-10-08", end="2026-10-08", symbols="FED_FUNDS_DAILY", api_key="YOUR_KEY")
)
stats = r.json()["rates"]["FED_FUNDS_DAILY"]
print(stats["change"], stats["change_pct"], stats["high"], stats["low"])
JavaScript (fetch)
const flUrl = "https://interestratesapi.com/api/v1/fluctuation?start=2025-10-08&end=2026-10-08&symbols=FED_FUNDS_DAILY&api_key=YOUR_KEY";
const flRes = await fetch(flUrl);
const fl = await flRes.json();
const s = fl.rates.FED_FUNDS_DAILY;
console.log(s.change, s.change_pct, s.high, s.low);
PHP
<?php
$url = "https://interestratesapi.com/api/v1/fluctuation?start=2025-10-08&end=2026-10-08&symbols=FED_FUNDS_DAILY&api_key=YOUR_KEY";
$json = file_get_contents($url);
$d = json_decode($json, true);
$s = $d["rates"]["FED_FUNDS_DAILY"] ?? [];
print_r($s);
Endpoint 6: OHLC — Candlestick Aggregations From Daily Data
OHLC aggregates daily observations into weekly, monthly, or quarterly candlesticks computed on-the-fly. Each candlestick includes open, high, low, close, and data_points used for the aggregation window.
cURL
JSON response example
Use open as the first value observed in the window, high/low as the extremes, close as the last value observed, and data_points to confirm completeness for the window.
Python (requests)
import requests
params = dict(symbols="FED_FUNDS_DAILY", period="monthly", start="2025-10-08", end="2026-10-08", api_key="YOUR_KEY")
r = requests.get("https://interestratesapi.com/api/v1/ohlc", params=params)
ohlc = r.json()["rates"]["FED_FUNDS_DAILY"]
print(ohlc[0]["period"], ohlc[0]["open"], ohlc[0]["close"])
JavaScript (fetch)
const ohUrl = "https://interestratesapi.com/api/v1/ohlc?symbols=FED_FUNDS_DAILY&period=monthly&start=2025-10-08&end=2026-10-08&api_key=YOUR_KEY";
const ohRes = await fetch(ohUrl);
const oh = await ohRes.json();
const first = oh.rates.FED_FUNDS_DAILY[0];
console.log(first.period, first.open, first.high, first.low, first.close, first.data_points);
PHP
<?php
$url = "https://interestratesapi.com/api/v1/ohlc?symbols=FED_FUNDS_DAILY&period=monthly&start=2025-10-08&end=2026-10-08&api_key=YOUR_KEY";
$json = file_get_contents($url);
$d = json_decode($json, true);
$bars = $d["rates"]["FED_FUNDS_DAILY"] ?? [];
if (!empty($bars)) {
$b = $bars[0];
echo $b["period"] . " O:" . $b["open"] . " C:" . $b["close"];
}
Endpoint 7: Convert — Compare Interest Cost vs Another Benchmark
The convert endpoint compares the simple-interest cost of a loan priced at the latest rate of two symbols across a given term in months. Use this to illustrate spreads and cost differences against policy, interbank, or reference rates. For this article we focus on FED_FUNDS_DAILY as the “from” symbol, but you can compare to other available symbols as needed.
cURL
JSON response example
Fields:
- from/to.rate: latest percent values for each symbol.
- total_interest: simple interest for the given amount and term using the latest rate.
- rate_spread: difference in percentage points between the two latest rates.
Python (requests)
import requests
r = requests.get(
"https://interestratesapi.com/api/v1/convert",
params=dict(from="FED_FUNDS_DAILY", to="ECB_MRO", amount=100000, term_months=12, api_key="YOUR_KEY")
)
cmp = r.json()
print(cmp["difference"]["rate_spread"], cmp["difference"]["interest_saved"])
JavaScript (fetch)
const cUrl = "https://interestratesapi.com/api/v1/convert?from=FED_FUNDS_DAILY&to=ECB_MRO&amount=100000&term_months=12&api_key=YOUR_KEY";
const cRes = await fetch(cUrl);
const comp = await cRes.json();
console.log(comp.difference.rate_spread, comp.difference.interest_saved);
PHP
<?php
$url = "https://interestratesapi.com/api/v1/convert?from=FED_FUNDS_DAILY&to=ECB_MRO&amount=100000&term_months=12&api_key=YOUR_KEY";
$json = file_get_contents($url);
$d = json_decode($json, true);
echo $d["difference"]["rate_spread"] ?? null;
Practical Implementation Details
Business days and missing observations
- FED_FUNDS_DAILY is published for U.S. business days. Expect no observations for weekends and specific holidays. Your UI and analytics should handle non-contiguous dates.
- Time series and OHLC endpoints honor the actual observation calendar;
data_pointsin OHLC helps validate completeness for each aggregation window.
Caching strategy
- Cache latest and historical responses for at least a few minutes to reduce load and stay within rate limits.
- For nightly jobs, fetch time series once after the expected publication window and persist locally for analysis.
Error handling
- 401/403: check your
api_keyand account status. - 404: may indicate no symbol match or no data for the requested date/range.
- 422: validate date formats (
Y-m-d) and symbol names (FED_FUNDS_DAILYexactly). - 429: examine
Retry-Afterand theX-RateLimit-*headers before retrying.
Units and transformations
- Rates are in percent per annum (e.g., 3.88 means 3.88%). For spreads, subtract percentage points directly: spread = r1 − r2.
- To convert a percent p to a decimal rate r for computations: r = p / 100.
Compute Spreads and Monthly Payments Using FED_FUNDS_DAILY
Rate spreads
Given two latest percent values p1 and p2 (e.g., from /latest or /convert), compute the spread (in percentage points):
spread_pp = p1 - p2
To express as a decimal difference for modeling, use:
spread_decimal = (p1/100.0) - (p2/100.0)
Monthly payment (level-payment loan) from FED_FUNDS_DAILY
If you need a level-payment estimate driven by FED_FUNDS_DAILY, convert the percent value p from /latest into a monthly rate r:
r = (p / 100.0) / 12.0
Then, for principal A and term n months, the fixed monthly payment M under a standard amortizing loan formula is:
M = A * r / (1 - (1 + r)^(-n))
If you want simple interest instead (as used in /convert), the total interest over n months is:
total_interest = A * (p / 100.0) * (n / 12.0)
Pick the formula consistent with your product design. Always pass p straight from the API without inventing numbers; convert units as shown.
Use Cases for FED_FUNDS_DAILY in Software
- Interest rate dashboards: show latest, daily movement, and OHLC aggregates for quick trend assessments.
- Loan pricing: compute benchmark-plus spreads and translate to APR, monthly payment, and total interest.
- Treasury risk: monitor drawdowns or spikes via
/fluctuationand alert on threshold breaches. - Macro research: query consistent time series and compute rolling averages or vol measures across windows.
- Fintech apps: compare funding costs versus policy rates using
/convertfor customer-facing transparency.
Explore the full API surface at interestratesapi.com and reference the docs via Interest Rates API MCP.
Putting It All Together: Minimal Workflow
- Confirm availability and metadata with
/symbolsand locateFED_FUNDS_DAILY. - Fetch latest with
/latestand display the value and observation date. - For charts, call
/timeseriesand optionally/ohlcfor monthly/quarterly views. - To summarize performance, call
/fluctuationfor change, change_pct, high, low. - If you need to compare cost against another benchmark, use
/convertwithfrom=FED_FUNDS_DAILY.
All calls must append ?api_key=YOUR_API_KEY and use HTTPS GET to https://interestratesapi.com/api/v1/. For a production key, visit Get started with Interest Rates API or Register.
FAQ
Q: Are values returned as percentages or decimals?
A: Percentages. For example, 3.88 means 3.88% per annum. Divide by 100 when using in formulas.
Q: How should I handle missing dates in the time series?
A: Missing days usually indicate weekends or U.S. holidays. Do not forward-fill unless your model explicitly requires it; use the provided dates as the authoritative observation set.
Q: What timezone are dates in?
A: Dates are calendar dates (YYYY-MM-DD) associated with the observation day. Align your processing to that date; intraday timestamps are not part of these endpoints.
Q: Can I cache results?
A: Yes. Cache latest responses for short intervals and longer for historical/time series that do not change retroactively. Honor rate limit headers to pace calls.
Q: How do I authenticate?
A: Append api_key=YOUR_API_KEY as a query parameter to every request URL. Do not use headers for auth.
Ready to integrate FED_FUNDS_DAILY into your pricing, analytics, or dashboards? Secure your key now: Register. For endpoint details and schema references, see the MCP guide. You can also browse https://interestratesapi.com and follow the links to Register for Interest Rates API when you’re ready to ship.




