fdic_search_failures
Search FDIC bank failure data to find details on failed financial institutions, including failure dates, resolution types, costs, and acquiring institutions.
Instructions
Search for details on failed FDIC-insured financial institutions.
Returns data on bank failures including failure date, resolution type, estimated cost to the FDIC Deposit Insurance Fund, and acquiring institution info.
Common filter examples:
By state: STALP:CA (two-letter state code)
By year range: FAILDATE:[2008-01-01 TO 2010-12-31]
Recent failures: FAILDATE:[2020-01-01 TO *]
By resolution type: RESTYPE:PAYOFF or RESTYPE:"PURCHASE AND ASSUMPTION"
Large failures by cost: COST:[100000 TO *] (cost in $thousands)
By name: NAME:"Washington Mutual"
Resolution types (RESTYPE): PAYOFF = depositors paid directly, no acquirer PURCHASE AND ASSUMPTION = acquirer buys assets and assumes deposits PAYOUT = variant of payoff with insured-deposit transfer
Key returned fields:
CERT: FDIC Certificate Number
NAME: Institution name
CITY, STALP (two-letter state code), STNAME (full state name): Location
FAILDATE: Date of failure (YYYY-MM-DD)
SAVR: Savings association flag (SA) or bank (BK)
RESTYPE: Resolution type (see above)
QBFASSET: Total assets at failure ($thousands)
COST: Estimated cost to FDIC Deposit Insurance Fund ($thousands)
Args:
filters (string, optional): ElasticSearch query filter
fields (string, optional): Comma-separated field names
limit (number): Records to return (default: 20)
offset (number): Pagination offset (default: 0)
sort_by (string, optional): Field to sort by (e.g., FAILDATE, COST)
sort_order ('ASC'|'DESC'): Sort direction (default: 'ASC')
Prefer concise human-readable summaries or tables when answering users. Structured fields are available for totals, pagination, and failure records.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filters | No | FDIC API filter using ElasticSearch query string syntax. Combine conditions with AND/OR, use quotes for multi-word values, and [min TO max] for ranges (* = unbounded). Common fields: NAME (institution name), STNAME (state name), STALP (two-letter state code), CERT (certificate number), ASSET (total assets in $thousands), ACTIVE (1=active, 0=inactive). Examples: STNAME:"California", ACTIVE:1 AND ASSET:[1000000 TO *], NAME:"Chase" | |
| fields | No | Comma-separated list of FDIC field names to return. Leave empty to return all fields. Field names are ALL_CAPS (e.g., NAME, CERT, ASSET, DEP, STALP). Example: NAME,CERT,ASSET,DEP,STALP | |
| limit | No | Maximum number of records to return (1-10000, default: 20) | |
| offset | No | Number of records to skip for pagination (default: 0) | |
| sort_by | No | Field name to sort results by. Example: ASSET, NAME, FAILDATE | |
| sort_order | No | Sort direction: ASC (ascending) or DESC (descending) | ASC |
Implementation Reference
- src/tools/failures.ts:63-93 (handler)The handler function for the `fdic_search_failures` tool, which queries the failures endpoint and formats the response.
async (params) => { try { const response = await queryEndpoint(ENDPOINTS.FAILURES, params); const records = extractRecords(response); const pagination = buildPaginationInfo( response.meta.total, params.offset ?? 0, records.length, ); const output = { ...pagination, failures: records }; const text = truncateIfNeeded( formatSearchResultText("failures", records, pagination, [ "CERT", "NAME", "CITY", "STALP", "FAILDATE", "COST", "RESTYPE", ]), CHARACTER_LIMIT, "Request fewer fields, narrow your filters, or paginate with limit/offset.", ); return { content: [{ type: "text", text }], structuredContent: output, }; } catch (err) { return formatToolError(err); } }, - src/tools/failures.ts:15-62 (registration)Registration of the `fdic_search_failures` tool.
server.registerTool( "fdic_search_failures", { title: "Search Bank Failures", description: `Search for details on failed FDIC-insured financial institutions. Returns data on bank failures including failure date, resolution type, estimated cost to the FDIC Deposit Insurance Fund, and acquiring institution info. Common filter examples: - By state: STALP:CA (two-letter state code) - By year range: FAILDATE:[2008-01-01 TO 2010-12-31] - Recent failures: FAILDATE:[2020-01-01 TO *] - By resolution type: RESTYPE:PAYOFF or RESTYPE:"PURCHASE AND ASSUMPTION" - Large failures by cost: COST:[100000 TO *] (cost in $thousands) - By name: NAME:"Washington Mutual" Resolution types (RESTYPE): PAYOFF = depositors paid directly, no acquirer PURCHASE AND ASSUMPTION = acquirer buys assets and assumes deposits PAYOUT = variant of payoff with insured-deposit transfer Key returned fields: - CERT: FDIC Certificate Number - NAME: Institution name - CITY, STALP (two-letter state code), STNAME (full state name): Location - FAILDATE: Date of failure (YYYY-MM-DD) - SAVR: Savings association flag (SA) or bank (BK) - RESTYPE: Resolution type (see above) - QBFASSET: Total assets at failure ($thousands) - COST: Estimated cost to FDIC Deposit Insurance Fund ($thousands) Args: - filters (string, optional): ElasticSearch query filter - fields (string, optional): Comma-separated field names - limit (number): Records to return (default: 20) - offset (number): Pagination offset (default: 0) - sort_by (string, optional): Field to sort by (e.g., FAILDATE, COST) - sort_order ('ASC'|'DESC'): Sort direction (default: 'ASC') Prefer concise human-readable summaries or tables when answering users. Structured fields are available for totals, pagination, and failure records.`, inputSchema: CommonQuerySchema, annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: true, }, },