# Fed H.15 Interest Rates API — Fed Funds, Prime & Bond Yields (`nexgensignal/fed-h15-selected-interest-rate-observations`) Actor

Federal Reserve H.15 interest rates as data: federal funds, bank prime, discount window, commercial paper, Treasury bill and constant-maturity yields, Aaa/Baa corporate bonds, daily from 1954. Filter by instrument, maturity and date. No API key. Part of NexGen Signal — official-source data products

- **URL**: https://apify.com/nexgensignal/fed-h15-selected-interest-rate-observations.md
- **Developed by:** [NexGen Signal](https://apify.com/nexgensignal) (community)
- **Categories:** News, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $33.50 / 1,000 h.15 interest-rate observations

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 📈 Fed H.15 Interest Rates API — Fed Funds, Prime & Bond Yields

Get the Federal Reserve's H.15 Selected Interest Rates as clean records — the effective federal funds rate, bank prime loan rate, discount window primary credit, nonfinancial and financial commercial paper, Treasury bill rates, Treasury constant-maturity yields (nominal and inflation-indexed), Moody's Aaa and Baa corporate bond yields and more, business-day, weekly, monthly and annual, with business-day federal funds from 1954 and the longest series back to 1919 — from the Board's official release package.

Economists, treasury and finance teams, lenders and analysts use H.15 as the reference set of US money-market and bond rates. This actor reads the Board's file and delivers one record per value with the instrument and maturity spelled out — no XML, no API key.

The unit of output is one observation (one series, one date). You pay per observation delivered; a run that finds nothing costs nothing.

### Who buys this and for what job

- **Treasury, finance and FP\&A teams** pulling the fed funds, prime and commercial paper rates for pricing, hedging and reporting.
- **Lenders and credit teams** indexing loans to prime or tracking Treasury and corporate bond yields.
- **Economists and markets analysts** following the rate path day by day and month by month.
- **Fintech and dashboard builders** who need the official series as clean records.

Buyers usually search for this as **"fed funds rate data"** or **"h.15 interest rates"**.

### 📊 Sample Output

![Table of Federal Reserve H.15 observations: effective federal funds rate, business day, newest first.](https://api.apify.com/v2/key-value-stores/IXCaMKjxSmUTLHhmq/records/fed-h15-selected-interest-rate-observations.png)

| series_name | date | value | instrument | maturity | frequency |
|---|---|---|---|---|---|
| RIFSPFF_N.B | 2026-10-08 | 3.88 | Federal funds | Overnight | Business day |
| RIFSPFF_N.B | 2026-10-07 | 3.88 | Federal funds | Overnight | Business day |
| RIFSPFF_N.B | 2026-10-06 | 3.88 | Federal funds | Overnight | Business day |
| RIFSPFF_N.B | 2026-10-05 | 3.88 | Federal funds | Overnight | Business day |
| RIFSPFF_N.B | 2026-10-02 | 3.88 | Federal funds | Overnight | Business day |
| RIFSPFF_N.B | 2026-10-01 | 3.88 | Federal funds | Overnight | Business day |

Rows from live run `ry2acWazIfoZN5vnE` on Apify (the Store example: series RIFSPFF_N.B, 10 observations). Notice the newest business days first and the instrument and maturity named on every row (values in percent per year).

### ✅ What you get

Every field of each record:

- `record_id` — unique per observation: release, series code and date.
- `release_code` — `H.15`.
- `series_name` — the Board's series code, e.g. `RIFSPFF_N.B`.
- `series_description`, `series_long_description` — the Board's short and long descriptions.
- `dataset_code`, `dataset` — `H15` current series or `discontinued` series the Board no longer publishes (e.g. Eurodollar deposits, CDs, swaps).
- `instrument_code`, `instrument` — the H.15 instrument from the Board's code list, e.g. `FF` Federal funds, `PRIME` Bank prime loan, `TCMNOM` Treasury constant maturities (nominal).
- `maturity_code`, `maturity` — the maturity from the Board's code list, e.g. `O` Overnight, `M3` 3-month, `Y10` 10-year, `NA` not applicable.
- `frequency` — `Business day`, `Daily`, `Weekly (…)`, `Bi-Weekly (…)`, `Monthly` or `Annual` (from the Board's code list).
- `unit`, `unit_multiplier`, `currency` — unit and multiplier from the Board's code lists (e.g. `Currency`, `Millions`), and the currency where one applies.
- `date` — period end date as published (e.g. `2026-06-30` for the second quarter).
- `value` — the observation as a number.
- `observation_status`, `observation_status_label` — `A` normal; `NC`/`ND` not calculable / no data (delivered only with `includeNoData`).
- `release`, `release_prepared` — release name and when the Board prepared the package.
- `source`, `source_dataset`, `licence`, `attribution`, `observed_at` — provenance on every record: the Board and the release, the package file and its last-modified time, the Board's public-domain notice quoted, the citation the Board asks for, and the UTC read time.

### ⚙️ Sample inputs

**1. Store example — effective federal funds rate**

```json
{
  "seriesNames": ["RIFSPFF_N.B"],
  "maxRecords": 10
}
```

The 10 newest business-day values, returned in run `ry2acWazIfoZN5vnE`; $0.50 on the Free plan.

**2. Treasury constant-maturity yields, monthly, since 2025**

```json
{
  "instruments": ["TCMNOM"],
  "frequencies": ["monthly"],
  "dateFrom": "2025-01-01",
  "maxRecords": 40
}
```

Returned 40 monthly yields in run `scmiX5MdCfJ3xfPhc`; add `maturities` (e.g. `Y10`) to pick one tenor.

**3. Bank prime loan rate, monthly**

```json
{
  "instruments": ["PRIME"],
  "frequencies": ["monthly"],
  "maxRecords": 12
}
```

The 12 newest monthly prime rates, returned in run `tgH8vZ7np8DvbzxC5`.

Input fields:

| Field | Meaning |
|---|---|
| `seriesNames` | exact Board series codes, e.g. `RIFSPFF_N.B` |
| `seriesNameStartsWith` | series codes starting with any of these, e.g. `RIFLGFC` (Treasury constant maturities) |
| `descriptionContains` | every word of an entry in the description; quote a phrase to keep it together |
| `datasets` | `H15` or `discontinued` |
| `instruments` | e.g. `FF`, `PRIME`, `DWPC`, `NFCP`, `FCP`, `TB`, `TCMNOM`, `TCMII`, `AAA`, `BAA` |
| `maturities` | e.g. `O`, `WK4`, `M1`, `M3`, `M6`, `Y1`, `Y2`, `Y5`, `Y10`, `Y30` |
| `frequencies` | `business day`, `daily`, `weekly`, `bi-weekly`, `monthly`, `annual` |
| `dateFrom` / `dateTo` | date window (a date or a year) |
| `latestOnly` | one record per series |
| `includeNoData` | also deliver no-data values |
| `order` | `newest_first` or `oldest_first` |
| `maxRecords` | most observations delivered and billed (default 1,000) |

### 🧾 JSON sample record

```json
{
  "record_id": "H15:RIFSPFF_N.B:2026-10-08",
  "release_code": "H.15",
  "series_name": "RIFSPFF_N.B",
  "series_description": "Federal funds",
  "series_long_description": "Federal funds effective rate",
  "dataset_code": "H15",
  "dataset": "Selected Interest Rates",
  "instrument_code": "FF",
  "instrument": "Federal funds",
  "maturity_code": "O",
  "maturity": "Overnight",
  "frequency": "Business day",
  "unit": "Percent: Per Year",
  "unit_multiplier": "One",
  "currency": null,
  "date": "2026-10-08",
  "value": 3.88,
  "observation_status": "A",
  "observation_status_label": "Normal",
  "release": "H.15 Selected Interest Rates",
  "release_prepared": "2026-10-09T15:40:02",
  "source": "Board of Governors of the Federal Reserve System — H.15 Selected Interest Rates (statistical release XML package)",
  "source_dataset": "FRB_h15_xml.zip (H15_data.xml), Last-Modified Fri, 09 Oct 2026 20:15:08 GMT",
  "licence": "Public domain. Federal Reserve Board: \"Unless otherwise indicated, information on Board's website is in the public domain and may be copied and distributed without permission. Please cite to the Board as the source of the information.\" (federalreserve.gov/disclaimer.htm)",
  "attribution": "Source: Board of Governors of the Federal Reserve System (US), H.15 Selected Interest Rates",
  "observed_at": "2026-10-12T04:08:51Z"
}
```

### 🔧 How it works

1. **Robots check.** `www.federalreserve.gov/robots.txt` is requested on every run. It answers with an HTML "page not found" (HTTP 404): **no robots policy is published (FLAGGED)**. The actor records that and relies on the Board's public-domain notice; a real robots.txt that disallowed the package would stop the run with nothing charged.

2. **Table of contents first.** The release package `FRB_h15_xml.zip` is a static ZIP on the Board's H.15 release page. The actor reads its table of contents and code lists by byte range, then streams and decompresses the data file as it arrives.

3. **Filter while reading.** Each series is checked against your filters as soon as it starts; only matching series keep their observations.

4. **Deliver, then charge.** Matching observations (newest first by default) are pushed in batches, each charged after delivery, so records and charges always match. Reading stops at `maxRecords` or your maximum charge.

5. **Receipt.** `RUN_RECEIPT` records the robots result, the package and its date, bytes read, series matched, and delivered and charged counts.

No login, API key, proxy or bot workaround — one public Board file, and no personal data in it.

### 💰 Pricing example

Per observation delivered, no start fee, no monthly charge:

| Apify plan | Price per observation |
|---|---|
| Free | $0.05 |
| Bronze | $0.045 |
| Silver | $0.04 |
| Gold, Platinum, Diamond | $0.0335 |

- 10 observations (the Store example): $0.50 on the Free plan, $0.335 on Gold.
- 1,000 observations (the default cap): $50 on Free, $45 on Bronze, $40 on Silver, $33.50 on Gold.

**Coverage and size.** Live count from the package read on 12 October 2026 (FRB_h15_xml.zip, 4.3 MB compressed, Last-Modified 9 October 2026; prepared 2026-10-09): **924,369 observations in 263 series** (124 current, 139 discontinued), from 1919-01-31 to 2026-10-08; 767,971 carry a value and the rest are marked no data, not available or not calculable (delivered only with `includeNoData`). A filter is required; a full pull is 767,971 valued records, billed per observation.

### ⚖️ Legal & ToS

Data: Board of Governors of the Federal Reserve System, H.15 Selected Interest Rates, from the XML package on the Board's statistical release page. The Board's notice says: "Unless otherwise indicated, information on Board's website is in the public domain and may be copied and distributed without permission. Please cite to the Board as the source of the information." Every record carries that notice in `licence` and a citation in `attribution`.

**Robots FLAG:** `www.federalreserve.gov/robots.txt` returns a 404 page — no robots policy is published. That is recorded on every run and not treated as permission by itself; the public-domain notice governs reuse. One public file, declared User-Agent, no login, key, proxy or form. Aggregate statistics only — no personal data.

**Data Download Program retirement:** the Board is retiring its Data Download Program ("Build Your Package" goes the week of November 9, 2026; the program later). Its notice (16 July 2026) says historical data "will remain available for download as XML files on statistical release pages" — that release-page XML file is exactly what this actor reads, not the Data Download Program. If the Board ever moves or withdraws it, runs end with a source-unavailable message and nothing is charged.

Not affiliated with or endorsed by the Federal Reserve; figures are the Board's as published.

### ❓ FAQ

**Do I need a FRED key or an account?**
No. The actor reads the Board's public release file, which needs no key, login or registration.

**Why must I give a filter?**
The full release is 924,369 observations. A filter keeps runs fast and bills only what you asked for; an unfiltered run is refused with a clear message.

**How fresh is the data?**
As fresh as the Board's H.15 package: every record carries the package's prepared time and last-modified date.

**What happens when the Data Download Program retires?**
Nothing for this actor: it already reads the release-page XML file the Board says will remain available.

**Is this the same as the Treasury yield curve?**
H.15 includes Treasury constant-maturity yields, and also the fed funds, prime, discount window, commercial paper and corporate bond rates the Treasury curve does not have.

### 🆘 Troubleshooting

- **0 records** — check the instrument and maturity codes; series codes are case-insensitive.
- **Mixed frequencies** — add `frequencies` (e.g. `monthly`).
- **Stopped at maxRecords** — raise `maxRecords` or use `latestOnly`.
- **SOURCE UNAVAILABLE message** — the server did not answer after three tries; nothing was charged — run again later.
- **CAPPED message** — your maximum total charge was reached; raise it in the run options.

### 🔗 Related Actors

- [Fed H.10 Exchange Rates API — Daily FX & Dollar Index](https://apify.com/nexgensignal/fed-h10-foreign-exchange-rate-observations) — Fed H.10 exchange rates.
- [Fed H.8 Bank Assets & Liabilities API — Weekly Bank Data](https://apify.com/nexgensignal/fed-h8-commercial-bank-assets-liabilities-observations) — Fed H.8 bank balance sheets.
- [ECB Bank Lending & Deposit Rate Records — Euro Area MIR](https://apify.com/nexgensignal/ecb-bank-interest-rate-records) — euro-area bank lending and deposit rates.
- [Australia Money Market Rates - RBA](https://apify.com/nexgensignal/au-money-market-interest-rate-series) — Australian money-market rates.
- [Fed Z.1 Financial Accounts API — Flow of Funds Data](https://apify.com/nexgensignal/fed-z1-financial-accounts-flow-of-funds-observations) — Fed Z.1 financial accounts.

🏢 **About NexGen Signal** — official-source data products from government and regulator publications. Browse the catalog: [apify.com/nexgensignal](https://apify.com/nexgensignal)

### ⭐ Found this useful?

If this actor saved you time, a rating on its Apify Store page helps other buyers find it.

Part of NexGen Signal — official-source data products.

# Actor input Schema

## `seriesNames` (type: `array`):

Exact Board series codes, e.g. RIFSPFF_N.B (federal funds effective rate, business day).

## `seriesNameStartsWith` (type: `array`):

Series whose code starts with any of these, e.g. RIFLGFC (Treasury constant maturities).

## `descriptionContains` (type: `array`):

Series whose description has every word of an entry, any order; put a phrase in double quotes to keep it together, e.g. "commercial paper" nonfinancial.

## `datasets` (type: `array`):

H15 for current series, discontinued for series the Board no longer publishes (e.g. Eurodollar deposits, CDs, swaps).

## `instruments` (type: `array`):

H.15 instrument codes, e.g. FF federal funds, PRIME bank prime loan, DWPC discount window primary credit, NFCP/FCP nonfinancial/financial commercial paper, TB Treasury bills, TCMNOM Treasury constant maturities (nominal), TCMII (inflation-indexed), AAA and BAA corporate bonds.

## `maturities` (type: `array`):

O overnight, WK4 4-week, M1/M3/M6 months, Y1/Y2/Y3/Y5/Y7/Y10/Y20/Y30 years, NA not applicable.

## `frequencies` (type: `array`):

Any of business day, daily, weekly, bi-weekly, monthly, annual. Empty = all.

## `dateFrom` (type: `string`):

Only observations on or after this date (2024-01-01, or a year such as 2024).

## `dateTo` (type: `string`):

Only observations on or before this date (2025-12-31, or a year).

## `latestOnly` (type: `boolean`):

One record per series: its most recent observation in the date window.

## `includeNoData` (type: `boolean`):

Also deliver observations the Board marks no data or not calculable, with a null value.

## `order` (type: `string`):

Observation order within each series.

## `maxRecords` (type: `integer`):

Most observations delivered and billed in this run. One record = one value on one date.

## Actor input object example

```json
{
  "seriesNames": [
    "RIFSPFF_N.B"
  ],
  "seriesNameStartsWith": [],
  "descriptionContains": [],
  "datasets": [],
  "instruments": [],
  "maturities": [],
  "frequencies": [],
  "latestOnly": false,
  "includeNoData": false,
  "order": "newest_first",
  "maxRecords": 10
}
```

# Actor output Schema

## `results` (type: `string`):

The delivered (and billed) observations.

## `receipt` (type: `string`):

Package used, series matched, delivered and charged counts.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "seriesNames": [
        "RIFSPFF_N.B"
    ],
    "maxRecords": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgensignal/fed-h15-selected-interest-rate-observations").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "seriesNames": ["RIFSPFF_N.B"],
    "maxRecords": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgensignal/fed-h15-selected-interest-rate-observations").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "seriesNames": [
    "RIFSPFF_N.B"
  ],
  "maxRecords": 10
}' |
apify call nexgensignal/fed-h15-selected-interest-rate-observations --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nexgensignal/fed-h15-selected-interest-rate-observations"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/RqI0oEQu5Jzeez5uv/builds/dDD93D2Kuc3b277r6/openapi.json
