Bank Branch Closings & Merger Radar (FDIC) avatar

Bank Branch Closings & Merger Radar (FDIC)

Pricing

$15.00 / 1,000 bank events

Go to Apify Store
Bank Branch Closings & Merger Radar (FDIC)

Bank Branch Closings & Merger Radar (FDIC)

Find new US bank branch closings, openings, relocations and mergers from the FDIC, filterable by event type and state, with acquirer/target, branches transferred and local branch-count context. No FDIC key needed.

Pricing

$15.00 / 1,000 bank events

Rating

0.0

(0)

Developer

Luke Hunter

Luke Hunter

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 hours ago

Last modified

Categories

Share

For CRE brokers, competing banks/credit unions and core-banking/fintech vendors who need to know the moment a bank branch closes, opens or a bank gets acquired. One run returns a clean, priced event feed straight from the FDIC — no FDIC key, no scraping, no manual "bank mergers this month" searches. Pay-per-result: $0.015 per event — 100 events = $1.50. Try it free with Apify's monthly platform credit.

This Actor calls the FDIC's own BankFind Suite API (api.fdic.gov, public and keyless) and turns its raw structure-change log into a clean, priced event feed: which branch closed or opened, which bank acquired which bank, how many branches moved in that merger, and how the branch-count in that ZIP and county looks right now.

Quick start (2 minutes)

  1. Open the Input tab (no FDIC key or account needed — the source is public).
  2. Use this prefill, adjusted to your states and asset threshold:
{
"eventTypes": ["BRANCH_CLOSING", "MERGER"],
"states": ["TX", "IL"],
"sinceDays": 30,
"minBankAssetsUsd": 10000000000,
"fullServiceOnly": true,
"includeBranchCounts": true,
"maxItems": 200
}
  1. Click Start. The dataset is ready in seconds — export to CSV/JSON or pull it via API into your CRM or territory list.

Bank branch closings list, bank mergers this month

If you have ever wanted "a list of bank branches that just closed" or "bank mergers this month" without reading FDIC press releases one at a time, this is that list, refreshed on demand:

  • Branch closings and openings (FDIC change codes 721 / 711), with the branch's address, city, county and whether it was a full-service branch or a drive-through/loan-production office.
  • Bank mergers without FDIC assistance (code 223), with acquirer, target, total assets on both sides, and how many branches transferred in that single transaction.
  • Branch/main-office relocations (code 520) — filtered to real address changes only; a ZIP+4 records correction is not sold as a relocation.

Use cases

  • Commercial real-estate brokers tracking newly vacated bank branch space as it's announced, before it hits a listing site.
  • Competing banks and credit unions targeting the ZIP/county of a closure to capture deposits the closing bank leaves behind.
  • Core-banking, fintech and compliance vendors who sell into a bank right after it acquires another — a merger is a known trigger for new vendor evaluations.
  • Market researchers and analysts tracking branch-network consolidation trends by state or asset tier.

Run it weekly

  1. Set your filters, then click Schedule on the run page (or create one under Schedules in the Apify Console).
  2. Run it weekly with sinceDays: 7 (or daily with sinceDays: 1) so each run mostly returns new events, not repeats.
  3. Use eventId as your dedupe key — it's stable across runs, so a scheduled pull never double-charges or double-lists an event you already have.
  4. Route BRANCH_CLOSING events to your prospecting list and MERGER events to your vendor/account-team alert channel separately, since they call for different outreach.

Example output

A branch closing:

{
"eventId": "fdic-2719260ea84a1fb3d80630e26e4e49f6",
"eventType": "BRANCH_CLOSING",
"changeDescription": "Branch Closing",
"effectiveDate": "2026-09-10",
"processedDate": "2026-09-17",
"isBackdated": false,
"institutionName": "JPMorgan Chase Bank, National Association",
"officeName": "OAK LAWN 95TH STREET BANKING CENTER BRANCH",
"address": "5705 W 95TH ST", "city": "OAK LAWN", "state": "IL", "zip": "60453",
"branchesInZip": 18, "sameBankBranchesInZip": 2, "bankExitedZip": false
}

A merger, with its branch-transfer roll-up (real output, captured live):

{
"eventId": "fdic-2026025588_223_16132_41323_16132",
"eventType": "MERGER",
"changeDescription": "Merger -Without Assistance",
"acquirerName": "Banner Bank", "acquirerState": "WA", "acquirerTotalAssetsUsd": 16586212000,
"targetName": "Bank of the Pacific", "targetState": "WA", "targetTotalAssetsUsd": 1263711000,
"branchesTransferred": 20,
"transferredBranchStates": ["OR", "WA"],
"targetsInTransaction": 1
}

Every field above came from a live run against api.fdic.gov on 2026-09-24; none is invented.

FieldClosing exampleMerger example
eventTypeBRANCH_CLOSINGMERGER
institutionName / acquirerNameJPMorgan Chase Bank, National AssociationBanner Bank
targetName—Bank of the Pacific
officeNameOAK LAWN 95TH STREET BANKING CENTER BRANCH—
city / stateOAK LAWN, IL—
branchesInZip / bankExitedZip18 / false—
branchesTransferred—20
transferredBranchStates—["OR", "WA"]

Why one merger is one charge, not twenty

The FDIC logs a merger's branch handoff as a separate history row per branch (change code 713 — "Branch Acquired in Merger/Consolidation/Failure"). A naive feed would turn a 20-branch acquisition into 20 billable rows. This Actor fetches every 713 row for the merger's transaction number and rolls it into the merger event as branchesTransferred and transferredBranchStates — one merger, one charge, however many branches moved.

Input

FieldDefaultMeaning
eventTypes["BRANCH_CLOSING","MERGER"]Any of BRANCH_CLOSING (721), BRANCH_OPENING (711), MERGER (223, unassisted only), RELOCATION (520)
states[] (all US)Two-letter state codes. Branch events match the branch's state; mergers match the acquirer's, target's or any transferred branch's state
sinceDays30Events the FDIC processed in the last 1–90 days
minBankAssetsUsd0Only events whose bank (the acquirer, for mergers) reports at least this much in total assets
fullServiceOnlyfalseSkip drive-throughs, loan-production and administrative offices
includeBranchCountstrueAdd how many FDIC-insured branches are currently listed in the event's ZIP and county
maxItems500Hard cap on events delivered and charged this run (newest-processed first)

Output fields

FieldMeaning
eventId, eventType, changeCode, changeDescriptionFDIC record identity and the exact FDIC change-code description
effectiveDate, processedDate, processingLagDays, isBackdatedWhen it happened vs. when the FDIC recorded it — see Limitations
institutionName, cert, institutionTotalAssetsUsd, institutionAssetsAsOfThe bank (the acquirer, for a merger) and its latest reported total assets
officeName, officeServiceType, isMainOffice, address, city, state, zip, county, countyFipsThe branch (branch/opening/relocation events only)
previousAddress/previousCity/previousState/previousZipPrior location (relocation events only)
acquirerName/acquirerCert/acquirerCity/acquirerState/acquirerTotalAssetsUsd, targetName/targetCert/...Merger acquirer and target (merger events only)
branchesTransferred, transferredBranchStatesDerived: count and states of branches rolled up from the merger's 713 rows. null if the count could not be confirmed (never a guessed number)
targetsInTransactionHow many targets this FDIC transaction number covers (almost always 1)
branchesInZip, branchesInCounty, sameBankBranchesInZip, bankExitedZipDerived, current-snapshot FDIC branch counts, not historical — see Limitations
sourceUrl, retrievedAtThe exact FDIC API query used and when this row was fetched

Limitations — read before you build automation on this

  • Processing lag. sinceDays filters on PROCDATE (when the FDIC recorded the change), not effectiveDate (when it happened). The FDIC sometimes processes an event weeks after the fact; isBackdated is true when the gap exceeds 60 days, and processingLagDays gives the exact number. A monitor that only trusts effectiveDate will miss late-processed rows.
  • Backdated corrections. effectiveDate can occasionally be a correction to a much older record. Treat isBackdated: true rows as historical corrections, not fresh news.
  • Branch counts are a snapshot, not history. branchesInZip/branchesInCounty/sameBankBranchesInZip reflect the FDIC's current /locations index, refreshed roughly weekly (branchCountsAsOf gives the exact index timestamp) — they are not recomputed as of the event's effective date. On a very recent closing the closed branch itself may still or no longer appear in that snapshot depending on when the index last refreshed.
  • bankExitedZip is derived, not an FDIC field. It is true only when a closing's own bank shows zero remaining branches in that ZIP in the current snapshot; it is null for anything other than a closing.
  • Mergers are unassisted only. FDIC-assisted (failed-bank) mergers use different change codes and are out of scope; this Actor is about ordinary consolidation, not failures.
  • branchesTransferred: null means the count could not be confirmed within this run's lookup limits — it is left blank rather than under-reported as zero.
  • Cosmetic relocations are dropped. A "relocation" row whose address, city, state and ZIP are unchanged (e.g. a ZIP+4 correction) is not delivered or charged.

Pricing and cost control

Pay-per-event: $0.015 per delivered bank event. Benchmarked against the closest live comparables on the Apify Store — malonestar/fdic-structure-change-delta-monitor ($0.015), malonestar/fdic-branch-network-churn-rollup ($0.015) and scrapesignal_labs/fdic-bank-branch-change-monitor ($0.0025) — all of which charge per raw dataset row with no merger roll-up or asset/branch-count enrichment. This Actor matches the better-featured comparables rather than racing to the lowest price.

  • maxItems is a hard cap on both delivered rows and total charge for the run.
  • Delivered rows always equal charged rows: if your run's own "Maximum cost per run" budget runs out mid-run, the Actor stops, finishes SUCCEEDED, and its status message says exactly how many of the matching events were delivered and that only those were charged — never a silent under-charge or a failed run.
  • If the Actor is not monetized (e.g. running it yourself), every matching row is delivered free.

FAQ

Do I need an FDIC API key? No. api.fdic.gov/banks is public and keyless.

Does this include credit unions? No — FDIC BankFind covers FDIC-insured banks only (not NCUA-insured credit unions).

Does "merger" include bank failures? No. This Actor reports unassisted mergers (ordinary acquisitions), not FDIC-assisted failed-bank transactions.

Why did a branch I know closed not show up? Either it processed outside your sinceDays window, or it was recorded under a code this Actor doesn't request (e.g. an assisted transaction). Widen sinceDays (up to 90) and re-run.

Can I get everything since a specific date? sinceDays covers up to 90 days per run; for a longer backfill, run it repeatedly with different windows, or schedule it daily and store the results yourself — each event's eventId is stable, so de-duplication is straightforward.

Why do some rows have null branch counts? Either includeBranchCounts is off, the event is a merger (branch counts apply to physical branches, not the merger itself), or this run's lookup cap was reached (rare; a warning is logged when it happens).

Other data tools from the same developer, built to the same standard: official or public sources, hard cost caps, and honest documentation of limits.