API to Get the Fed Funds Daily (FED_FUNDS_DAILY) Rate

API to Get the Fed Funds Daily (FED_FUNDS_DAILY) Rate

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.

Illustration: API to Get the Fed Funds Daily (FED_FUNDS_DAILY) Rate

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_points in 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_key and 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_DAILY exactly).
  • 429: examine Retry-After and the X-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 /fluctuation and 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 /convert for 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

  1. Confirm availability and metadata with /symbols and locate FED_FUNDS_DAILY.
  2. Fetch latest with /latest and display the value and observation date.
  3. For charts, call /timeseries and optionally /ohlc for monthly/quarterly views.
  4. To summarize performance, call /fluctuation for change, change_pct, high, low.
  5. If you need to compare cost against another benchmark, use /convert with from=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.

Ready to get started?

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

Get API Key

Related posts