# Fed Z.1 Financial Accounts API — Flow of Funds Data (`nexgensignal/fed-z1-financial-accounts-flow-of-funds-observations`) Actor

Federal Reserve Z.1 Financial Accounts (flow of funds) as data: household net worth, debt, assets and liabilities by sector and instrument, quarterly and annual, from 1945. Filter by series, sector, instrument and date. No API key. Part of NexGen Signal — official-source data products

- **URL**: https://apify.com/nexgensignal/fed-z1-financial-accounts-flow-of-funds-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 z.1 financial accounts 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 Z.1 Financial Accounts API — Flow of Funds Data

Get the Federal Reserve's Z.1 Financial Accounts of the United States (the "flow of funds") as clean records — household and nonprofit net worth, debt, mortgages, corporate equities, deposits and every other asset and liability, by sector and instrument, quarterly and annual, from 1945 — straight from the Board's official release package.

Economists, analysts, researchers and finance teams use Z.1 to track household balance sheets, credit and sector exposures. The Board publishes 41,716 series as one 620 MB XML file: this actor reads only what you ask for and delivers one record per value, with sector, instrument and measure 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.

### 📊 Sample Output

![Table of Federal Reserve Z.1 observations: household and nonprofit net worth, quarterly, in millions of dollars.](https://api.apify.com/v2/key-value-stores/IXCaMKjxSmUTLHhmq/records/fed-z1-financial-accounts-flow-of-funds-observations.png)

| series_name | date | value | sector | instrument |
|---|---|---|---|---|
| FL152090005.Q | 2026-06-30 | 195870496 | Households and nonprofit organizations (S14+S15) | Net worth |
| FL152090005.Q | 2026-03-31 | 183067096 | Households and nonprofit organizations (S14+S15) | Net worth |
| FL152090005.Q | 2025-12-31 | 182274207 | Households and nonprofit organizations (S14+S15) | Net worth |
| FL152090005.Q | 2025-09-30 | 180509163 | Households and nonprofit organizations (S14+S15) | Net worth |
| FL152090005.Q | 2025-06-30 | 175246515 | Households and nonprofit organizations (S14+S15) | Net worth |

Rows from live run `HPmQeu2l12mH3Hp99` on Apify (input: description "households "net worth"", prefix FL, 40 records). Notice the newest quarter first, and the sector and instrument named on every row (values in millions of dollars).

### ✅ What you get

Every field of each record:

- `record_id` — unique per observation: release, series code and date.
- `release_code` — `Z.1`.
- `series_name` — the Board's series code, e.g. `FL152090005.Q`.
- `series_description`, `series_long_description` — the Board's short and long descriptions.
- `series_prefix_code`, `series_prefix` — measure prefix and its meaning, e.g. `FL` = Level, not seasonally adjusted.
- `sector_code`, `sector` — Z.1 sector, e.g. `15` = Households and nonprofit organizations.
- `instrument_code`, `instrument` — Z.1 instrument, e.g. `20900` = Net worth.
- `series_type_code`, `series_type` — computed or input series, as the Board classifies it.
- `frequency` — `Quarterly` 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 — household net worth**

```json
{
  "seriesNames": ["FL152090005.Q"],
  "maxRecords": 10
}
```

The 10 newest quarters of households and nonprofit organizations' net worth; about $0.50 on the Free plan.

**2. Narrowed — household balance sheet levels since 2020**

```json
{
  "sectorCodes": ["15"],
  "prefixCodes": ["FL"],
  "frequencies": ["quarterly"],
  "dateFrom": "2020",
  "maxRecords": 2000
}
```

Every quarterly level series for households and nonprofits from 2020.

**3. Bulk — latest value of every net-worth series**

```json
{
  "instrumentCodes": ["20900"],
  "latestOnly": true,
  "maxRecords": 500
}
```

One record per series with instrument 20900 (net worth), across sectors and measures: its newest value.

Input fields:

| Field | Meaning |
|---|---|
| `seriesNames` | exact Board series codes, e.g. `FL152090005.Q` |
| `seriesNameStartsWith` | series codes starting with any of these, e.g. `FL15` |
| `descriptionContains` | every word of an entry in the series description, any order; quote a phrase to keep it together |
| `sectorCodes` | two-digit sector codes, e.g. `15`, `10`, `31`, `70` |
| `instrumentCodes` | five-digit instrument codes, e.g. `20900`, `41900` |
| `prefixCodes` | measure prefixes: `FL`, `FA`, `FU`, `FR`, `LM` and others |
| `frequencies` | `quarterly`, `annual` |
| `dateFrom` / `dateTo` | date window (a date or a year) |
| `latestOnly` | one record per series: its newest value in the window |
| `includeNoData` | also deliver values marked no data |
| `order` | `newest_first` (default) or `oldest_first` within each series |
| `maxRecords` | most observations delivered and billed (default 1,000) |

### 🧾 JSON sample record

```json
{
  "record_id": "Z1:FL152090005.Q:2026-06-30",
  "release_code": "Z.1",
  "series_name": "FL152090005.Q",
  "series_description": "Households and nonprofit organizations; net worth",
  "series_long_description": "Households and nonprofit organizations; net worth",
  "series_prefix_code": "FL",
  "series_prefix": "Level, not seasonally adjusted (NSA)",
  "sector_code": "15",
  "sector": "Households and nonprofit organizations (S14+S15)",
  "instrument_code": "20900",
  "instrument": "Net worth",
  "series_type_code": "5",
  "series_type": "Computed series",
  "frequency": "Quarterly",
  "unit": "Currency",
  "unit_multiplier": "Millions",
  "currency": "USD",
  "date": "2026-06-30",
  "value": 195870496,
  "observation_status": "A",
  "observation_status_label": "Normal",
  "release": "Z.1 Statistical Release",
  "release_prepared": "2026-09-11T09:06:17",
  "source": "Board of Governors of the Federal Reserve System — Z.1 Financial Accounts of the United States (statistical release XML package)",
  "source_dataset": "FRB_Z1_xml.zip (Z1_data.xml), Last-Modified Tue, 22 Sep 2026 23:54:57 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), Z.1 Financial Accounts of the United States",
  "observed_at": "2026-10-04T05:12:34Z"
}
```

### 🔧 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_Z1_xml.zip` is a static ZIP on the Board's Z.1 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 3–4 October 2026 (FRB_Z1_xml.zip, 37.6 MB compressed, Last-Modified 22 September 2026; release of 11 September 2026, 2026:Q2 data): **7,783,339 observations in 41,716 series** (20,588 quarterly, 21,128 annual), from 1945-12-31 to 2026-06-30. The planning index counted 7,783,339 observations across 41,716 series — they agree. A filter is required; a run that must read the whole 620 MB data file (an id that does not exist, say) took 133 seconds on Apify in our test, and a full pull is 7,783,339 records, billed per observation. The Board's next Z.1 release is scheduled for 10 December 2026.

### ⚖️ Legal & ToS

Data: Board of Governors of the Federal Reserve System, Z.1 Financial Accounts of the United States, 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 7,783,339 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 Z.1 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.

**What do FL, FA, FU and FR mean?**
Z.1 measure prefixes: FL level (not seasonally adjusted), FA transactions at a seasonally adjusted annual rate, FU transactions not seasonally adjusted, FR revaluations, LM level at market value. The `series_prefix` field spells each out.

### 🆘 Troubleshooting

- **0 records** — check the code on the Board's Z.1 pages; sector codes are two digits and instrument codes five.
- **Too many series** — add `prefixCodes` (e.g. `FL`) or `frequencies`.
- **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

- [US Treasury Fiscal Records — Rates & Debt](https://apify.com/nexgensignal/treasury-fiscal-records) — US Treasury rates and debt to set beside sector balance sheets.
- [US Credit Union Financial Records — NCUA](https://apify.com/nexgensignal/us-credit-union-financial-records) — credit union call-report financials.
- [Fund & ETF Holdings API — SEC Form N-PORT Portfolio Records](https://apify.com/nexgensignal/sec-nport-fund-holdings-records) — fund and ETF holdings behind the mutual-fund sector.
- [ECB Bank Lending & Deposit Rate Records — Euro Area MIR](https://apify.com/nexgensignal/ecb-bank-interest-rate-records) — euro-area bank rates for comparison.

🏢 **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. FL152090005.Q (households and nonprofits; net worth; quarterly).

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

Series whose code starts with any of these, e.g. FL15.

## `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. households "net worth".

## `prefixCodes` (type: `array`):

Two-letter Z.1 prefix: FL level (NSA), FA transactions (SAAR), FU transactions (NSA), FR revaluations, LM market-value level, etc.

## `sectorCodes` (type: `array`):

Two-digit Z.1 sector codes, e.g. 15 households and nonprofit organizations, 10 nonfinancial corporate business, 31 federal government, 70 private depository institutions.

## `instrumentCodes` (type: `array`):

Five-digit Z.1 instrument codes, e.g. 20900 net worth, 41900 total liabilities, 30641 corporate equities (asset), 31651 one-to-four family mortgages (liability).

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

Any of quarterly, 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": [
    "FL152090005.Q"
  ],
  "seriesNameStartsWith": [],
  "descriptionContains": [],
  "prefixCodes": [],
  "sectorCodes": [],
  "instrumentCodes": [],
  "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": [
        "FL152090005.Q"
    ],
    "maxRecords": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgensignal/fed-z1-financial-accounts-flow-of-funds-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": ["FL152090005.Q"],
    "maxRecords": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgensignal/fed-z1-financial-accounts-flow-of-funds-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": [
    "FL152090005.Q"
  ],
  "maxRecords": 10
}' |
apify call nexgensignal/fed-z1-financial-accounts-flow-of-funds-observations --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,nexgensignal/fed-z1-financial-accounts-flow-of-funds-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/FdDimrbAnm3fbbefF/builds/g32CY9tzpq0uQg8g8/openapi.json
