# FDIC Bank Data Scraper (`crawlerbros/fdic-bank-data-scraper`) Actor

Scrape the FDIC BankFind Suite API - search active U.S. banks by state/name/asset size, get financial details by CERT number, list historical bank failures, and get state-level financial summaries. Free, no API key required.

- **URL**: https://apify.com/crawlerbros/fdic-bank-data-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Developer tools, Integrations
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## FDIC Bank Data Scraper

Extract comprehensive data on U.S. FDIC-insured banks using the **FDIC BankFind Suite API** — a free, public government data source with no API key or authentication required.

Search active banks by state and name, retrieve detailed financial data by CERT number, explore the full history of U.S. bank failures, or get aggregate financial summaries by state. Ideal for financial research, regulatory compliance analysis, market intelligence, and banking sector monitoring.

---

### Data Source

All data is sourced from the **[FDIC BankFind Suite API](https://banks.data.fdic.gov/docs/)**, a publicly accessible REST API maintained by the Federal Deposit Insurance Corporation (FDIC). The API is free to use with no registration or API key.

---

### Features

- **Search active banks** — filter by state, partial bank name, and minimum asset size
- **Financial details by CERT** — fetch institution data plus recent quarterly financials for specific banks using FDIC Certificate numbers
- **Bank failure history** — full catalog of FDIC-insured bank failures (500+ since 2000), filterable by state
- **State financial summaries** — aggregate total assets, deposits, and branch office counts by U.S. state
- **No proxy required** — direct API access, completely free
- **Pagination** — automatically paginates through large result sets up to your `maxItems` limit

---

### Input Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `mode` | Select | What to fetch: `searchBanks`, `getBankDetails`, `getBankFailures`, `getStateSummary` |
| `state` | Select | Filter by U.S. state (2-letter code, e.g. `TX`). Leave blank for all states. |
| `bankName` | Text | Partial bank name search, e.g. `Chase` or `Wells Fargo` (used in `searchBanks` mode) |
| `certNumbers` | String list | FDIC Certificate numbers for specific banks (required for `getBankDetails` mode) |
| `minAssets` | Integer | Minimum total assets in millions of dollars (e.g. `1000` = $1 billion+) |
| `sortBy` | Select | Sort results by `ASSET`, `NAME`, `DEP`, or `CERT` |
| `maxItems` | Integer | Maximum records to return (1–500, default 50) |

#### Finding a Bank's CERT Number

Each FDIC-insured bank has a unique **Certificate Number (CERT)**. You can find CERT numbers by:
1. Running the actor in `searchBanks` mode — the `certNumber` field is included in every result
2. Using the [FDIC BankFind Suite website](https://banks.data.fdic.gov/docs/)

---

### Output Fields

#### searchBanks mode

| Field | Description |
|-------|-------------|
| `certNumber` | FDIC Certificate number (unique bank identifier) |
| `bankName` | Full legal name of the bank |
| `city` | City where the bank is headquartered |
| `state` | 2-letter state code |
| `stateName` | Full state name |
| `totalAssets` | Total assets in thousands of dollars |
| `totalDeposits` | Total deposits in thousands of dollars |
| `netIncome` | Net income in thousands of dollars |
| `netLoans` | Net loans and leases in thousands of dollars |
| `isHoldingCompany` | Whether the bank is part of a multi-bank holding company |
| `reportDate` | Date of the most recent regulatory report (YYYYMMDD) |
| `scrapedAt` | ISO 8601 timestamp of when the record was scraped |

#### getBankDetails mode

Includes all `searchBanks` fields plus:

| Field | Description |
|-------|-------------|
| `recentFinancials` | Array of up to 5 recent quarterly financial snapshots |
| `recentFinancials[].reportDate` | Quarter end date |
| `recentFinancials[].totalAssets` | Total assets that quarter |
| `recentFinancials[].totalDeposits` | Total deposits that quarter |
| `recentFinancials[].netIncome` | Net income that quarter |
| `recentFinancials[].interestIncome` | Interest income that quarter |
| `recentFinancials[].netLoans` | Net loans and leases that quarter |

#### getBankFailures mode

| Field | Description |
|-------|-------------|
| `certNumber` | FDIC Certificate number |
| `bankName` | Name of the failed bank |
| `city` | City of failed bank |
| `state` | State code |
| `stateName` | Full state name |
| `failureDate` | Date of failure (YYYY-MM-DD) |
| `savingsType` | Institution savings type code (e.g. `SA`, `OI`) |
| `resolutionType` | Resolution method (e.g. `P&A`, `IDT`, `OA`) |
| `estimatedCost` | Estimated cost to the FDIC in millions |
| `totalAssets` | Total assets at time of failure (in thousands) |
| `scrapedAt` | ISO 8601 timestamp |

#### getStateSummary mode

| Field | Description |
|-------|-------------|
| `stateName` | Full state name |
| `reportDate` | Report period end date (YYYYMMDD) |
| `totalAssets` | Total assets across all banks in state (thousands) |
| `totalDeposits` | Total deposits in state (thousands) |
| `numberOfOffices` | Total number of bank branch offices in state |
| `scrapedAt` | ISO 8601 timestamp |

---

### Example Use Cases

#### Find the 10 largest U.S. banks by assets
```json
{
  "mode": "searchBanks",
  "sortBy": "ASSET",
  "maxItems": 10
}
````

#### Search for banks in Texas

```json
{
  "mode": "searchBanks",
  "state": "TX",
  "maxItems": 100
}
```

#### Get details for JPMorgan Chase (CERT 628)

```json
{
  "mode": "getBankDetails",
  "certNumbers": ["628"]
}
```

#### List all bank failures in California

```json
{
  "mode": "getBankFailures",
  "state": "CA",
  "maxItems": 200
}
```

#### Get aggregate banking stats for all 50 states

```json
{
  "mode": "getStateSummary",
  "maxItems": 52
}
```

#### Find mid-size community banks in the Midwest

```json
{
  "mode": "searchBanks",
  "state": "OH",
  "minAssets": 100,
  "sortBy": "ASSET",
  "maxItems": 50
}
```

***

### FAQs

**Is an API key required?**
No. The FDIC BankFind Suite API is a free, public government data source. No registration or API key is required.

**How current is the data?**
The FDIC updates its data quarterly. Most financial figures reflect the most recent Call Report submission period.

**What is a CERT number?**
CERT (Certificate Number) is the unique identifier assigned by the FDIC to each insured institution. It remains constant even if the bank changes its name or is acquired.

**What does "total assets in thousands" mean?**
The FDIC API reports all dollar amounts in thousands of dollars. A value of `3,386,071,000` means $3.386 trillion (JPMorgan Chase).

**What is the `isHoldingCompany` field?**
`true` means the bank is a member of a multi-bank holding company (HCTMULT=1 in FDIC data). `false` means it is not.

**How far back does bank failure data go?**
The FDIC failures database covers failures back to the 1930s. Modern coverage from 2000 onward is comprehensive.

**Can I search by bank name across all states?**
Yes — set `mode=searchBanks` and leave `state` blank. Use `bankName` for a partial name search.

**What is the resolution type in bank failures?**
Common codes: `P&A` (Purchase & Assumption), `IDT` (Insured Deposit Transfer), `OA` (Open Bank Assistance), `PAYOFF` (straight deposit payoff).

***

### Rate Limits

The FDIC BankFind Suite API is a public government API with generous rate limits. This scraper adds a small delay between requests to be a good API citizen. No proxy is required.

# Actor input Schema

## `mode` (type: `string`):

What data to fetch from the FDIC BankFind Suite API.

## `state` (type: `string`):

Filter by U.S. state (2-letter code). Leave blank for all states.

## `bankName` (type: `string`):

Partial name search, e.g. 'Chase' or 'Wells Fargo'. Case-insensitive. Used in searchBanks mode.

## `certNumbers` (type: `array`):

FDIC Certificate (CERT) numbers for specific banks, e.g. \['628', '3511']. Required for getBankDetails mode.

## `minAssets` (type: `integer`):

Only return banks with total assets at or above this threshold (in millions of dollars). E.g. 1000 = $1 billion.

## `sortBy` (type: `string`):

Sort results by this field.

## `maxItems` (type: `integer`):

Maximum number of records to return.

## Actor input object example

```json
{
  "mode": "searchBanks",
  "state": "",
  "certNumbers": [],
  "sortBy": "ASSET",
  "maxItems": 50
}
```

# Actor output Schema

## `banks` (type: `string`):

Dataset containing all scraped FDIC bank records.

# 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 = {
    "mode": "searchBanks",
    "state": "",
    "certNumbers": [],
    "sortBy": "ASSET",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/fdic-bank-data-scraper").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 = {
    "mode": "searchBanks",
    "state": "",
    "certNumbers": [],
    "sortBy": "ASSET",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/fdic-bank-data-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "mode": "searchBanks",
  "state": "",
  "certNumbers": [],
  "sortBy": "ASSET",
  "maxItems": 50
}' |
apify call crawlerbros/fdic-bank-data-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/fdic-bank-data-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FDIC Bank Data Scraper",
        "description": "Scrape the FDIC BankFind Suite API - search active U.S. banks by state/name/asset size, get financial details by CERT number, list historical bank failures, and get state-level financial summaries. Free, no API key required.",
        "version": "1.0",
        "x-build-id": "kwx86ZG91pcya57o6"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~fdic-bank-data-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-fdic-bank-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~fdic-bank-data-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-fdic-bank-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~fdic-bank-data-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-fdic-bank-data-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "searchBanks",
                            "getBankDetails",
                            "getBankFailures",
                            "getStateSummary"
                        ],
                        "type": "string",
                        "description": "What data to fetch from the FDIC BankFind Suite API.",
                        "default": "searchBanks"
                    },
                    "state": {
                        "title": "State",
                        "enum": [
                            "",
                            "AL",
                            "AK",
                            "AZ",
                            "AR",
                            "CA",
                            "CO",
                            "CT",
                            "DE",
                            "DC",
                            "FL",
                            "GA",
                            "HI",
                            "ID",
                            "IL",
                            "IN",
                            "IA",
                            "KS",
                            "KY",
                            "LA",
                            "ME",
                            "MD",
                            "MA",
                            "MI",
                            "MN",
                            "MS",
                            "MO",
                            "MT",
                            "NE",
                            "NV",
                            "NH",
                            "NJ",
                            "NM",
                            "NY",
                            "NC",
                            "ND",
                            "OH",
                            "OK",
                            "OR",
                            "PA",
                            "RI",
                            "SC",
                            "SD",
                            "TN",
                            "TX",
                            "UT",
                            "VT",
                            "VA",
                            "WA",
                            "WV",
                            "WI",
                            "WY"
                        ],
                        "type": "string",
                        "description": "Filter by U.S. state (2-letter code). Leave blank for all states.",
                        "default": ""
                    },
                    "bankName": {
                        "title": "Bank Name (partial search)",
                        "type": "string",
                        "description": "Partial name search, e.g. 'Chase' or 'Wells Fargo'. Case-insensitive. Used in searchBanks mode."
                    },
                    "certNumbers": {
                        "title": "CERT Numbers (getBankDetails mode)",
                        "type": "array",
                        "description": "FDIC Certificate (CERT) numbers for specific banks, e.g. ['628', '3511']. Required for getBankDetails mode.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "minAssets": {
                        "title": "Minimum Total Assets (millions $)",
                        "minimum": 1,
                        "maximum": 10000000,
                        "type": "integer",
                        "description": "Only return banks with total assets at or above this threshold (in millions of dollars). E.g. 1000 = $1 billion."
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "ASSET",
                            "NAME",
                            "DEP",
                            "CERT"
                        ],
                        "type": "string",
                        "description": "Sort results by this field.",
                        "default": "ASSET"
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of records to return.",
                        "default": 50
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
