Your team needs the Federal Reserve primary credit discount rate inside dashboards, pricing engines, and risk models—and you can’t afford stale or ambiguous data. By the end of this article, you’ll know exactly how to fetch, interpret, and operationalize the Fed Discount Rate (symbol: FED_DISCOUNT_RATE) from interestratesapi.com, including latest values, historical points, time series, fluctuations, OHLC aggregates, and simple loan comparisons, all via GET requests with an api_key query parameter.
What the Fed Discount Rate (FED_DISCOUNT_RATE) Represents
FED_DISCOUNT_RATE is the Federal Reserve’s primary credit discount rate—what the Fed charges eligible depository institutions for short-term borrowing at the discount window. While this is not the same as the federal funds target, it acts as a policy signal and a liquidity backstop. Developers use it to:
- Track policy stances in rate dashboards and macro monitors.
- Set guardrails on borrowing models and liquidity stress tests.
- Compare with other policy benchmarks for spreads and convergence/divergence analysis.
Key details for implementation:
- Symbol: FED_DISCOUNT_RATE
- Category: central_bank, Currency: USD
- Frequency: daily (the API exposes it as daily; values persist across non-publication days)
- Expression: percent per annum (p.a.), numeric (e.g., 4 means 4.00%)
Data semantics: units, dates, business days, and caching
Units and scaling: the rates map returns numeric percent values per annum. Convert to decimals for computations by dividing by 100 (e.g., 4 becomes 0.04). Use explicit rounding as required by your product logic.
Effective dates: the latest and timeseries endpoints return ISO dates (YYYY-MM-DD). For FED_DISCOUNT_RATE, effective changes can occur on business days; the API exposes a daily series. If there is no new publication on a given calendar day, the last known rate can persist in the time series.
Business days: central bank policy rates may not change daily; weekends and holidays will typically repeat the last available level unless a new effective rate is set. Use the dates map and series dates when aligning with other datasets.
Caching: if you poll frequently, cache the most recent successful response and use conditional refresh cadences based on your SLA (e.g., 5–15 minutes for dashboards, longer for batch analytics). Handle 429 responses by using the Retry-After header and X-RateLimit-* headers.
Authentication and HTTP method: all endpoints are GET and require the api_key query parameter. No headers-based auth. Base URL is always https://interestratesapi.com/api/v1/
Docs and developer tools: browse the product and docs at interestratesapi.com and MCP. When you’re ready to run requests, Register to obtain an API key.
Get the latest FED_DISCOUNT_RATE
Use the latest endpoint to pull the current discount rate and its effective date. The following cURL and JSON are official samples. Copy them verbatim to validate your setup.
cURL (official sample)
curl -s "https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=FED_DISCOUNT_RATE"
JSON response (official sample)
{
"success": true,
"date": "2026-10-06",
"base": "USD",
"rates": {
"FED_DISCOUNT_RATE": 4
},
"dates": {
"FED_DISCOUNT_RATE": "2026-10-06"
},
"currencies": {
"FED_DISCOUNT_RATE": "USD"
},
"base_filter_note": null
}
How to read it:
- rates.FED_DISCOUNT_RATE is the percent p.a. value (4 means 4.00%).
- dates.FED_DISCOUNT_RATE is the effective date of that rate in YYYY-MM-DD.
- currencies.FED_DISCOUNT_RATE confirms USD.
- date (top-level) indicates the response’s reference date.
Python
import requests
url = "https://interestratesapi.com/api/v1/latest"
params = {
"symbols": "FED_DISCOUNT_RATE",
"api_key": "YOUR_API_KEY"
}
resp = requests.get(url, params=params)
data = resp.json()
rate_pct = data["rates"]["FED_DISCOUNT_RATE"] # e.g., 4
effective_date = data["dates"]["FED_DISCOUNT_RATE"] # e.g., "2026-10-06"
currency = data["currencies"]["FED_DISCOUNT_RATE"] # "USD"
# Convert to decimal for math:
rate_decimal = rate_pct / 100.0
JavaScript
const response = await fetch(
"https://interestratesapi.com/api/v1/latest?symbols=FED_DISCOUNT_RATE&api_key=YOUR_API_KEY"
);
const data = await response.json();
const ratePct = data.rates.FED_DISCOUNT_RATE; // 4
const effDate = data.dates.FED_DISCOUNT_RATE; // "2026-10-06"
const ccy = data.currencies.FED_DISCOUNT_RATE; // "USD"
const rateDecimal = ratePct / 100.0;
PHP
<?php
$url = "https://interestratesapi.com/api/v1/latest?symbols=FED_DISCOUNT_RATE&api_key=YOUR_API_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
$ratePct = $data["rates"]["FED_DISCOUNT_RATE"];
$effDate = $data["dates"]["FED_DISCOUNT_RATE"];
$ccy = $data["currencies"]["FED_DISCOUNT_RATE"];
$rateDecimal = $ratePct / 100.0;
Discover the symbol via /symbols
Validate availability and metadata using the catalogue. Filter by USD and central_bank to see FED_DISCOUNT_RATE in context.
cURL
JSON response (example)
Notes:
- The structure shows how metadata is returned. FED_DISCOUNT_RATE will appear with its own attributes when included in the filter result set.
Python
import requests
resp = requests.get(
"https://interestratesapi.com/api/v1/symbols",
params={"category": "central_bank", "base": "USD", "api_key": "YOUR_KEY"}
)
catalog = resp.json()
# Iterate catalog["symbols"] to locate "FED_DISCOUNT_RATE" and read its frequency and description.
JavaScript
const url = "https://interestratesapi.com/api/v1/symbols?category=central_bank&base=USD&api_key=YOUR_KEY";
const res = await fetch(url);
const catalog = await res.json();
// Find catalog.symbols.find(s => s.symbol === "FED_DISCOUNT_RATE")
PHP
<?php
$url = "https://interestratesapi.com/api/v1/symbols?category=central_bank&base=USD&api_key=YOUR_KEY";
$json = file_get_contents($url);
$catalog = json_decode($json, true);
// Search array_column($catalog['symbols'], 'symbol') for 'FED_DISCOUNT_RATE'
Get a historical value by date
Use historical to retrieve the level on a given date. For daily series, if the date is a weekend/holiday with no change, the API returns the last available within that date context.
cURL
JSON response (example)
Interpretation: rates.FED_DISCOUNT_RATE is the percent p.a. level for that date. Use this to anchor point-in-time pricing or audit historical calculations.
Python
import requests
resp = requests.get(
"https://interestratesapi.com/api/v1/historical",
params={"date": "2025-06-15", "symbols": "FED_DISCOUNT_RATE", "api_key": "YOUR_KEY"}
)
hist = resp.json()
value = hist["rates"]["FED_DISCOUNT_RATE"]
ccy = hist["currencies"]["FED_DISCOUNT_RATE"]
JavaScript
const res = await fetch(
"https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=FED_DISCOUNT_RATE&api_key=YOUR_KEY"
);
const hist = await res.json();
const value = hist.rates.FED_DISCOUNT_RATE;
PHP
<?php
$url = "https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=FED_DISCOUNT_RATE&api_key=YOUR_KEY";
$json = file_get_contents($url);
$hist = json_decode($json, true);
$value = $hist["rates"]["FED_DISCOUNT_RATE"];
Build a time series window
Use timeseries to pull a contiguous date range for FED_DISCOUNT_RATE. This is ideal for charts, regime detection, and backtests.
cURL
JSON response (example)
Interpretation:
- rates.FED_DISCOUNT_RATE is a date-keyed map of percent p.a. values.
- frequencies and currencies confirm cadence and base currency.
Python
import requests
resp = requests.get(
"https://interestratesapi.com/api/v1/timeseries",
params={
"start": "2025-10-09",
"end": "2026-10-09",
"symbols": "FED_DISCOUNT_RATE",
"api_key": "YOUR_KEY"
}
)
ts = resp.json()
series = ts["rates"]["FED_DISCOUNT_RATE"] # dict of date -> percent value
JavaScript
const res = await fetch(
"https://interestratesapi.com/api/v1/timeseries?start=2025-10-09&end=2026-10-09&symbols=FED_DISCOUNT_RATE&api_key=YOUR_KEY"
);
const ts = await res.json();
const series = ts.rates.FED_DISCOUNT_RATE;
PHP
<?php
$url = "https://interestratesapi.com/api/v1/timeseries?start=2025-10-09&end=2026-10-09&symbols=FED_DISCOUNT_RATE&api_key=YOUR_KEY";
$json = file_get_contents($url);
$ts = json_decode($json, true);
$series = $ts["rates"]["FED_DISCOUNT_RATE"];
Compute change stats with /fluctuation
fluctuation summarizes the start/end values and computed change between two dates, including high and low within the period. This is useful for “rate change” cards and alerts.
cURL
JSON response (example)
Field semantics:
- start_value and end_value are percent p.a. levels.
- change is end minus start.
- change_pct is the percentage change relative to start_value (null if start_value is 0).
- high and low are the extrema within the date window.
Python
import requests
resp = requests.get(
"https://interestratesapi.com/api/v1/fluctuation",
params={"start": "2025-10-09", "end": "2026-10-09", "symbols": "FED_DISCOUNT_RATE", "api_key": "YOUR_KEY"}
)
fl = resp.json()
stats = fl["rates"]["FED_DISCOUNT_RATE"]
delta = stats["change"]
pct = stats["change_pct"]
JavaScript
const res = await fetch(
"https://interestratesapi.com/api/v1/fluctuation?start=2025-10-09&end=2026-10-09&symbols=FED_DISCOUNT_RATE&api_key=YOUR_KEY"
);
const fl = await res.json();
const stats = fl.rates.FED_DISCOUNT_RATE;
const delta = stats.change;
const pct = stats.change_pct;
PHP
<?php
$url = "https://interestratesapi.com/api/v1/fluctuation?start=2025-10-09&end=2026-10-09&symbols=FED_DISCOUNT_RATE&api_key=YOUR_KEY";
$json = file_get_contents($url);
$fl = json_decode($json, true);
$stats = $fl["rates"]["FED_DISCOUNT_RATE"];
$delta = $stats["change"];
$pct = $stats["change_pct"];
Create OHLC aggregates
The ohlc endpoint computes periodized open, high, low, close values from daily data. This supports candlestick charts or monthly roll-ups of FED_DISCOUNT_RATE.
cURL
JSON response (example)
Field semantics:
- period is the YYYY-MM bucket (for monthly). weekly and quarterly are also supported.
- open/high/low/close are percent p.a. levels for the bucket.
- data_points is the count of daily observations contributing to that period’s OHLC.
Python
import requests
resp = requests.get(
"https://interestratesapi.com/api/v1/ohlc",
params={
"symbols": "FED_DISCOUNT_RATE",
"period": "monthly",
"start": "2025-10-09",
"end": "2026-10-09",
"api_key": "YOUR_KEY"
}
)
ohlc = resp.json()
rows = ohlc["rates"]["FED_DISCOUNT_RATE"] # list of OHLC buckets
JavaScript
const res = await fetch(
"https://interestratesapi.com/api/v1/ohlc?symbols=FED_DISCOUNT_RATE&period=monthly&start=2025-10-09&end=2026-10-09&api_key=YOUR_KEY"
);
const ohlc = await res.json();
const buckets = ohlc.rates.FED_DISCOUNT_RATE;
PHP
<?php
$url = "https://interestratesapi.com/api/v1/ohlc?symbols=FED_DISCOUNT_RATE&period=monthly&start=2025-10-09&end=2026-10-09&api_key=YOUR_KEY";
$json = file_get_contents($url);
$ohlc = json_decode($json, true);
$buckets = $ohlc["rates"]["FED_DISCOUNT_RATE"];
Compare loan interest using /convert
The convert endpoint compares simple loan interest costs between two benchmarks using their latest rates. For spreads versus another policy rate (e.g., ECB_MRO), this is a quick way to quantify total interest impact for a notional amount.
cURL
JSON response (example)
Field semantics:
- rate is the latest percent p.a. for each symbol.
- total_interest and total_payment reflect a simple loan computation for the given amount and term_months.
- difference.rate_spread is the “from” rate minus the “to” rate; interest_saved is the arithmetic difference of total_interest.
Python
import requests
resp = requests.get(
"https://interestratesapi.com/api/v1/convert",
params={"from": "FED_DISCOUNT_RATE", "to": "ECB_MRO", "amount": 100000, "term_months": 12, "api_key": "YOUR_KEY"}
)
cmp = resp.json()
spread = cmp["difference"]["rate_spread"]
from_rate = cmp["from"]["rate"]
to_rate = cmp["to"]["rate"]
JavaScript
const res = await fetch(
"https://interestratesapi.com/api/v1/convert?from=FED_DISCOUNT_RATE&to=ECB_MRO&amount=100000&term_months=12&api_key=YOUR_KEY"
);
const cmp = await res.json();
const spread = cmp.difference.rate_spread;
PHP
<?php
$url = "https://interestratesapi.com/api/v1/convert?from=FED_DISCOUNT_RATE&to=ECB_MRO&amount=100000&term_months=12&api_key=YOUR_KEY";
$json = file_get_contents($url);
$cmp = json_decode($json, true);
$spread = $cmp["difference"]["rate_spread"];
Practical implementation details
Publication frequency
FED_DISCOUNT_RATE is exposed as daily in the API. The level changes when the Fed sets a new primary credit rate; on other days the value remains the same. Don’t assume day-over-day variation—use fluctuation or compare adjacent dates in timeseries for change detection.
Timezone and date alignment
Dates are provided in YYYY-MM-DD. Align your ETL with your system’s timezone to prevent off-by-one issues. If you are merging with intraday data, keep in mind that these are end-of-day effective values for policy rates.
Handling non-trading days
Weekends and US federal holidays typically carry forward the last effective rate. For reporting, ensure your charting logic either shows flat lines through non-publication days or resamples to business days.
Caching and retries
- Cache GET responses for short intervals in UIs (e.g., 5–15 minutes) and longer in batch jobs.
- On HTTP 429, respect Retry-After and observe X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset headers.
- Implement backoff for transient 5xx errors, and surfacing 4xx messages to operators with the response error text.
Error handling patterns
Common responses:
- 401: Missing/invalid api_key.
- 403: Account without active plan.
- 404: No symbols matched or no data for requested date/range (may include details of available ranges).
- 422: Validation error (date format or invalid symbol).
- 429: Request quota exhausted (Retry-After provided).
Check success=false and error strings; some 404s include details. Log the request URL and params for reproducibility.
Computations: spreads and payments
Rate spreads: subtract two percent p.a. values to get the spread in percentage points. For example, spread_pp = rate_A_pct - rate_B_pct. To express as basis points, multiply by 100 (1 pp = 100 bps). If you need the average spread over a period, join two time series on date and compute daily differences before averaging.
Monthly payments: if you need an amortized monthly payment from FED_DISCOUNT_RATE, convert the annual percent to a decimal (r = pct/100). For a principal P over n months with monthly rate i = r/12, the standard amortization is Payment = P * i / (1 - (1 + i)^(-n)). For simple-interest approximations, use P * r * (n/12). Do not hardcode the discount rate; programmatically fetch it from the latest or historical endpoints to keep pricing aligned with effective dates.
End-to-end: assembling a FED_DISCOUNT_RATE dashboard
For a production-grade panel:
- On load, call latest to render the current value and effective date.
- Call fluctuation for the YTD or rolling 12-month change card (change and change_pct).
- Pull timeseries for the chart range (e.g., last 24 months) and optionally ohlc for monthly candlesticks.
- For loan comparisons, call convert against a benchmark like ECB_MRO to quantify total interest differences on a reference notional.
- Monitor errors and rate limits; cache responses and batch requests where possible.
You can explore endpoints and confirm shapes at interestratesapi.com and the Interest Rates API MCP. When ready to deploy, Get started with Interest Rates API and retrieve your api_key.
FAQ
Q: Is FED_DISCOUNT_RATE expressed as a percentage or decimal?
A: As a percentage per annum (e.g., 4 means 4.00%). Convert to decimal with value/100 for math.
Q: How do I know the effective date for the latest value?
A: Read dates.FED_DISCOUNT_RATE from the latest response; it’s an ISO date string (YYYY-MM-DD) aligned with the rate value in rates.FED_DISCOUNT_RATE.
Q: What happens on weekends and holidays?
A: The rate typically persists until there is a new effective level. Your time series will show flat values for non-publication days.
Q: Can I compute spreads between FED_DISCOUNT_RATE and another policy rate?
A: Yes. Use latest (or timeseries) for both symbols and subtract percentage-point values. For simple loan comparisons, use /convert.
Q: How should I handle rate limits?
A: Inspect X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, and honor Retry-After on 429. Add client-side caching to reduce repeated calls.
Ready to ship FED_DISCOUNT_RATE into production? Fetch live data with a single GET request and scale up to time series, OHLC, and change analytics. Register now and start building with the MCP tools and endpoint docs.




