Fed Funds Daily Convert API

Fed Funds Daily Convert API

Your team needs the Federal Funds Effective Rate inside software—updated daily, queryable on exact dates, and comparable to other benchmarks for loan cost calculations. By the end of this guide, you will pull FED_FUNDS_DAILY from the Interest Rates API, hydrate dashboards and risk models with time series, compute OHLC aggregates and fluctuations, and use the Convert API to compare loan interest costs—all through GET requests authenticated with an api_key parameter.

What FED_FUNDS_DAILY is and how to read it correctly

FED_FUNDS_DAILY is the Federal Funds Effective Rate delivered as a daily central bank benchmark in USD. It’s the volume-weighted average rate at which depository institutions lend balances at the Federal Reserve to each other overnight. This rate matters because it anchors short-term USD funding conditions, influences prime and floating-rate loan benchmarks, and transmits Federal Reserve policy decisions to money markets.

Illustration: Fed Funds Daily Convert API

Units: the API returns the rate as a percentage (for example 5.33 means 5.33% per annum). Business days: FED_FUNDS_DAILY updates for US banking days; weekends and US holidays will not have new values. Dates in responses reflect the effective date of the benchmark, not your query time. If you query latest near publication, cache responses until the next business day cutover to reduce rate-limit pressure.

Authentication: append your key as api_key=YOUR_API_KEY to every request. All endpoints use GET and the base URL is https://interestratesapi.com/api/v1/.

For documentation and model references, see https://interestratesapi.com and the MCP. When you are ready to integrate, Register to obtain an API key.

Endpoint: Symbols — discover FED_FUNDS_DAILY

Use the symbols catalogue to confirm the exact identifier and metadata for FED_FUNDS_DAILY. This also helps programmatically populate pickers or validate inputs server-side.

cURL

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

Python (requests)

import requests

resp = requests.get(
"https://interestratesapi.com/api/v1/symbols",
params={"category": "central_bank", "base": "USD", "api_key": "YOUR_API_KEY"},
timeout=30
)
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_API_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_API_KEY";
$resp = file_get_contents($url);
$data = json_decode($resp, true);
print_r($data["symbols"] ?? []);

Sample JSON

{
"success": true,
"date": "2026-09-29",
"base": "USD",
"rates": {
"SOFR": 3.88
},
"dates": {
"SOFR": "2026-09-29"
},
"currencies": {
"SOFR": "USD"
},
"base_filter_note": null
}

Key fields you will use: symbol, frequency, and currency_code. For our work, the symbol of interest is FED_FUNDS_DAILY. The catalogue may include both FED_FUNDS and FED_FUNDS_DAILY; target FED_FUNDS_DAILY (daily frequency) in the examples below.

Endpoint: Latest — get the most recent FED_FUNDS_DAILY

Retrieve the latest available value and its effective date. Use the date in the dates map to label charts correctly or to validate that caches are fresh.

cURL

Python (requests)

import requests

params = {"symbols": "FED_FUNDS_DAILY,ECB_MRO", "api_key": "YOUR_API_KEY"}
r = requests.get("https://interestratesapi.com/api/v1/latest", params=params, timeout=30)
latest = r.json()
fed = latest["rates"]["FED_FUNDS_DAILY"]
fed_date = latest["dates"]["FED_FUNDS_DAILY"]
print(f"FED_FUNDS_DAILY: {fed}% on {fed_date}")

JavaScript (fetch)

const response = await fetch(
"https://interestratesapi.com/api/v1/latest?symbols=FED_FUNDS_DAILY,ECB_MRO&api_key=YOUR_API_KEY"
);
const data = await response.json();
const fed = data.rates["FED_FUNDS_DAILY"];
const fedDate = data.dates["FED_FUNDS_DAILY"];
console.log(`FED_FUNDS_DAILY: ${fed}% on ${fedDate}`);

PHP

<?php
$query = http_build_query([
"symbols" => "FED_FUNDS_DAILY,ECB_MRO",
"api_key" => "YOUR_API_KEY"
]);
$json = file_get_contents("https://interestratesapi.com/api/v1/latest?$query");
$data = json_decode($json, true);
$fed = $data["rates"]["FED_FUNDS_DAILY"];
$fedDate = $data["dates"]["FED_FUNDS_DAILY"];
echo "FED_FUNDS_DAILY: $fed% on $fedDate\n";

Sample JSON

How to read it: rates is a symbol-to-percentage map, dates maps symbols to effective dates, and currencies maps symbols to ISO currency codes. Cache invalidation: if your stored dates["FED_FUNDS_DAILY"] differs from the last seen value, refresh downstream calculations.

Official sample (verbatim)

The following example is an official sample for SOFR. It demonstrates the same latest endpoint and response structure:

Endpoint: Historical — value on a specific date

Use historical when you need the rate for a particular day (for example, to compute loan accruals or to backtest strategies). For daily series, if the target date is a non-business day, request the nearest day with data you need by adjusting dates in your logic; the endpoint itself expects a precise date and returns data only for dates with a value.

cURL

Python (requests)

import requests

payload = {"date": "2025-06-15", "symbols": "FED_FUNDS_DAILY", "api_key": "YOUR_API_KEY"}
res = requests.get("https://interestratesapi.com/api/v1/historical", params=payload, timeout=30)
hist = res.json()
print(hist["rates"]["FED_FUNDS_DAILY"], hist["date"])

JavaScript (fetch)

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

PHP

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

Sample JSON

Endpoint: Time Series — daily FED_FUNDS_DAILY between two dates

Time series returns a dictionary of date-to-rate pairs between start and end, inclusive on dates with data. This powers charts, rolling averages, and volatility metrics. Consider caching per-day results and recomputing derived aggregates client-side to reduce repeated calls.

cURL

Python (requests)

import requests

q = {
"start": "2025-10-01",
"end": "2026-10-01",
"symbols": "FED_FUNDS_DAILY",
"api_key": "YOUR_API_KEY"
}
js = requests.get("https://interestratesapi.com/api/v1/timeseries", params=q, timeout=30).json()
series = js["rates"]["FED_FUNDS_DAILY"] # dict: "YYYY-MM-DD" -> float
# Example: compute a simple average (unweighted across available business days)
avg = sum(series.values()) / len(series)
print("Observations:", len(series), "Average:", round(avg, 4))

JavaScript (fetch)

const url = "https://interestratesapi.com/api/v1/timeseries?start=2025-10-01&end=2026-10-01&symbols=FED_FUNDS_DAILY&api_key=YOUR_API_KEY";
const resp = await fetch(url);
const body = await resp.json();
const fedSeries = body.rates["FED_FUNDS_DAILY"];
const dates = Object.keys(fedSeries).sort();
console.log("First date/value:", dates[0], fedSeries[dates[0]]);

PHP

<?php
$q = http_build_query([
"start" => "2025-10-01",
"end" => "2026-10-01",
"symbols" => "FED_FUNDS_DAILY",
"api_key" => "YOUR_API_KEY"
]);
$d = json_decode(file_get_contents("https://interestratesapi.com/api/v1/timeseries?$q"), true);
$series = $d["rates"]["FED_FUNDS_DAILY"];
echo "Count: " . count($series) . PHP_EOL;

Sample JSON

Key fields: rates.FED_FUNDS_DAILY is a date-to-value map; frequencies confirms periodicity; currencies confirms USD. Gaps: weekends/holidays are not included—loop robustly over keys rather than assuming contiguous dates.

Endpoint: Fluctuation — changes, highs, lows

Use fluctuation to summarize moves over a range—useful for dashboards or compliance triggers. The API returns absolute and percentage change, plus range highs and lows, computed from the underlying daily series.

cURL

Python (requests)

import requests

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

JavaScript (fetch)

const f = await fetch(
"https://interestratesapi.com/api/v1/fluctuation?start=2025-10-01&end=2026-10-01&symbols=FED_FUNDS_DAILY&api_key=YOUR_API_KEY"
);
const s = await f.json();
console.log(s.rates["FED_FUNDS_DAILY"]);

PHP

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

Sample JSON

Key fields: change is end_value - start_value; change_pct is percent change relative to start_value (null only if start_value is zero). Use high and low for range indicators.

Endpoint: OHLC — aggregated candlesticks from daily FED_FUNDS_DAILY

The OHLC endpoint computes open, high, low, close for FED_FUNDS_DAILY over a period (weekly, monthly, or quarterly). This is derived from daily data at request time—no separate OHLC table, which keeps aggregates consistent with the underlying series.

cURL

Python (requests)

import requests

args = {
"symbols": "FED_FUNDS_DAILY",
"period": "monthly",
"start": "2025-10-01",
"end": "2026-10-01",
"api_key": "YOUR_API_KEY"
}
ohlc = requests.get("https://interestratesapi.com/api/v1/ohlc", params=args, timeout=30).json()
candles = ohlc["rates"]["FED_FUNDS_DAILY"]
for c in candles:
print(c["period"], c["open"], c["high"], c["low"], c["close"], c["data_points"])

JavaScript (fetch)

const o = await fetch(
"https://interestratesapi.com/api/v1/ohlc?symbols=FED_FUNDS_DAILY&period=monthly&start=2025-10-01&end=2026-10-01&api_key=YOUR_API_KEY"
);
const oj = await o.json();
console.log(oj.rates["FED_FUNDS_DAILY"][0]);

PHP

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

Sample JSON

Key fields: period is the bucket (e.g., YYYY-MM), data_points counts the number of daily observations used. Open/close are the first/last available daily values in that bucket.

Endpoint: Convert — loan interest cost comparison powered by FED_FUNDS_DAILY

The Convert API compares the total interest cost of a simple loan at the latest rates of two symbols. This is useful for showing spread impacts on funding cost, pricing workflows, or borrower disclosures. The inputs are from (symbol), to (symbol), amount, and optional term_months.

cURL

Python (requests)

import requests

params = {
"from": "FED_FUNDS_DAILY",
"to": "ECB_MRO",
"amount": 100000,
"term_months": 12,
"api_key": "YOUR_API_KEY"
}
comp = requests.get("https://interestratesapi.com/api/v1/convert", params=params, timeout=30).json()
spread = comp["difference"]["rate_spread"]
print("Rate spread:", spread, "Interest saved:", comp["difference"]["interest_saved"])

JavaScript (fetch)

const url = "https://interestratesapi.com/api/v1/convert?from=FED_FUNDS_DAILY&to=ECB_MRO&amount=100000&term_months=12&api_key=YOUR_API_KEY";
const resp = await fetch(url);
const cmp = await resp.json();
console.log(cmp.difference.rate_spread, cmp.difference.interest_saved);

PHP

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

Sample JSON

How to use in products: display rate_spread and interest_saved to quantify the effect of funding at FED_FUNDS_DAILY versus ECB_MRO for a given notional and tenor. Internally, this endpoint uses the latest values; make sure to surface the effective date fields under from.date and to.date.

Practical integration notes for FED_FUNDS_DAILY

  • Publication cadence: daily, on US banking days. On weekends/holidays, latest will hold the prior business day’s value. Build schedules or retries around US market calendars.
  • Units and scaling: values are returned as annualized percentages. For arithmetic, convert percentages to decimals by dividing by 100 when needed.
  • Caching: cache latest responses keyed by dates["FED_FUNDS_DAILY"]; expire when the date advances. For time series, cache immutable historical windows and re-fetch only the newest few business days.
  • Timezone: dates are ISO “YYYY-MM-DD” effective dates. Treat them as date-only; avoid timezone conversions that could shift a date boundary.
  • Error handling: inspect success=false responses and HTTP status codes. Watch for 401/403 auth issues, 404 when a date or range has no data, and 429 rate limiting with Retry-After and X-RateLimit-* headers.

If you need to build a robust ingestion service, see https://interestratesapi.com and the MCP for model details. To obtain credentials, use Register, or visit Register for Interest Rates API and Get started with Interest Rates API.

Computations you’ll actually need

Rate spreads from latest

Given two latest values rA and rB (percent), compute spread = rA − rB (percent points). This matches difference.rate_spread in the Convert endpoint. If you only need the spread without interest costs, use /latest for both symbols and subtract.

Monthly payment using FED_FUNDS_DAILY

If you need a fixed-payment amortizing loan estimate from a benchmark (e.g., for explanatory analytics), take:

  • annual_rate_percent = rates["FED_FUNDS_DAILY"]
  • monthly_rate_decimal = (annual_rate_percent / 100) / 12
  • n = term_months
  • principal = amount

Then payment = principal × monthly_rate_decimal / (1 − (1 + monthly_rate_decimal)^(-n)). This does not reflect credit spreads or fees; it’s purely illustrative for converting an annualized benchmark to a monthly amortization. To compare across benchmarks, you can call /convert and display total_interest and total_payment for each symbol, alongside the spread.

Rolling averages and vol indicators

From /timeseries, compute rolling 7/30-day averages by sliding window means over the date-to-value map. For realized volatility, compute standard deviation of daily differences within a window. Always operate on available business days from the returned keys, not on assumed contiguous calendars.

Endpoint: Latest — minimal JS sample for FED_FUNDS_DAILY

If you only need a single-value panel component, this is the minimal call you can wire in a frontend. Note: authentication is via query parameter; do not place secrets in public clients unless proxied.

const response = await fetch(
'https://interestratesapi.com/api/v1/latest?symbols=FED_FUNDS_DAILY&api_key=YOUR_API_KEY'
);
const data = await response.json();
const value = data.rates["FED_FUNDS_DAILY"];
const asOf = data.dates["FED_FUNDS_DAILY"];
document.getElementById("ffr").textContent = `${value}%`;
document.getElementById("ffr-date").textContent = asOf;

Operational considerations and errors

  • HTTP method: all endpoints are GET. Do not send POST/PUT/DELETE.
  • Authentication: always pass api_key=YOUR_API_KEY in the query string.
  • Validation: 422 indicates bad parameters (e.g., symbol typo, wrong date format). Ensure date strings are YYYY-MM-DD and symbols are exactly spelled from the catalogue (e.g., FED_FUNDS_DAILY).
  • 404: can occur if no data exists for a symbol in the requested date/range. Adjust dates to business days or consult the symbols metadata for frequency.
  • 429: quota exhausted. Respect Retry-After and X-RateLimit-* headers. Implement exponential backoff and caching to avoid retries on unchanged dates.

Real-world use cases for FED_FUNDS_DAILY

  • Interest rate dashboards: show the latest FED_FUNDS_DAILY with a sparkline from /timeseries, and a monthly OHLC candle to contextualize regime shifts.
  • Lending and mortgage platforms: compute benchmark-based pricing ladders; use /convert to demonstrate how a borrower’s cost would change under different benchmarks.
  • Treasury and ALM: use /fluctuation to monitor period-over-period changes and alert on threshold moves in policy-sensitive tenors.
  • Macro research and quant backtesting: pull long spans via /timeseries to build carry or policy-diff strategies, and summarize with OHLC or fluctuation statistics.

Reference: Endpoint checklist for FED_FUNDS_DAILY

  • /api/v1/symbols — find and validate FED_FUNDS_DAILY (category=central_bank, base=USD)
  • /api/v1/latest — latest value with effective date and currency
  • /api/v1/historical — value on a specific date
  • /api/v1/timeseries — daily values across a range
  • /api/v1/fluctuation — start/end/change/high/low across a range
  • /api/v1/ohlc — weekly/monthly/quarterly OHLC candles from daily data
  • /api/v1/convert — compare simple-loan total interest and payments between FED_FUNDS_DAILY and another benchmark

FAQ

Q: What does the date field represent in latest and timeseries?
A: It’s the effective date of the rate (e.g., the business day the benchmark applies), not the retrieval timestamp. Use dates["FED_FUNDS_DAILY"] to label UIs.

Q: How often should I refresh FED_FUNDS_DAILY?
A: Daily on US business days. Cache until the next business day, or poll after the usual publication window if you need intraday updates to carry forward the same value.

Q: How do I compute a rate spread?
A: From /latest, subtract the two percentage values (e.g., spread = rates["FED_FUNDS_DAILY"] − rates["ECB_MRO"]). The /convert endpoint also returns difference.rate_spread.

Q: How do I handle missing days in the series?
A: Weekend/holiday gaps are normal. Always iterate over the returned date keys. If you need contiguous daily points, forward/backfill explicitly in your application layer.

Q: What’s the unit of the rate values?
A: Percent per annum. Convert to decimals (divide by 100) for amortization formulas or accrual math.

Build your FED_FUNDS_DAILY integration now: fetch symbols, pull the latest and histories, compute aggregates, and compare funding costs with the Convert API. Start by obtaining an API key here: Register. Explore models and docs at MCP and visit interestratesapi.com anytime for product updates.

Ready to get started?

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

Get API Key

Related posts