fdic_institution_history
Retrieve FDIC-insured banks' structural-change events — mergers, failures, name/location changes, and branch activity — filtered by certificate, change code, state, or year, with merger lineage via acquirer/outgoing/surviving CERTs.
Instructions
Institution-level STRUCTURAL-CHANGE event log for FDIC-insured banks (keyless; api.fdic.gov/banks/history) — mergers, absorptions, consolidations, failures, name/location/charter/regulator changes, branch open/close, trust-power grants & FRS-membership. CERT-linked merger lineage: each row carries acquiring/outgoing/surviving institution CERT + name, linking to fdic_search_institutions / fdic_bank_failures. Filters (all optional, AND-combined): cert (→CERT, PRIMARY lookup), changeCode (→CHANGECODE; e.g. 223=merger, 211=failure, 721=branch closing), effYear (→EFFYEAR), state (2-letter → PSTALP — NOTE: /history uses PSTALP, NOT STALP). limit (≤1000), offset (≤100000), sortBy (EFFDATE/PROCDATE/CHANGECODE/TRANSNUM), sortOrder. Returns { history:[{ cert, instName, state, changeCode, changeDescription, effectiveDate, processDate, effYear, transNum, acquirerCert, acquirerName, outgoingCert, outgoingName, survivingCert, survivingName, id }] }. NO name/city filter — FDIC /history search returns 0 for INSTNAME (a false-empty); resolve CERT via fdic_search_institutions first. HONESTY: totalAvailable is EXACT meta.total; changeDescription is FDIC's CHANGECODE_DESC verbatim (changeCode is authoritative — never hand-mapped); effectiveDate/processDate normalized to ISO YYYY-MM-DD (unrecognized → surfaced raw); acquirer/outgoing/surviving CERTs null on non-merger events (null-never-0); ONLY honest empty is meta.total:0/data:[] → complete:true/total:0; any other envelope THROWS (never fake-empty). NOTE: FDIC keys on CERT, not SAM UEI/DUNS.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cert | No | Filter by FDIC certificate number (the STABLE entity key; → CERT filter — the PRIMARY lookup). Resolve a bank's CERT via fdic_search_institutions. e.g. 3510 → Bank of America's 13,794-row structural-change history. | |
| limit | No | Rows per page, 1..1000, default 100. | |
| state | No | Filter by 2-letter US state code (uppercase; → PSTALP filter — the /history state field is PSTALP, NOT STALP). e.g. 'CA'. | |
| offset | No | 0-based row offset for pagination, 0..100000, default 0. | |
| sortBy | No | Sort field (allowlisted enum; default EFFDATE = effective date). An unknown field is rejected before fetch. | |
| effYear | No | Filter by the year the structural change took effect (→ EFFYEAR filter). 1782..current UTC year (1782 = the oldest observed EFFYEAR). | |
| sortOrder | No | Sort direction, default DESC (newest structural change first). | |
| changeCode | No | Filter by FDIC structural-change code (→ CHANGECODE filter). e.g. 223 = Merger (Without Assistance), 211 = Failure (Whole Institution), 721 = Branch Closing, 520 = Change in Physical Location, 110 = New Institution. Each row also carries FDIC's own changeDescription (CHANGECODE_DESC). |