Docs/Sources/Bank Lookup

Bank Lookup

US Banks and Credit Unions

OperationalCredits 10 per callp50 284msFinance

Overview

A bank lookup API for KYB, payments and vendor onboarding. One registry joins the FDIC BankFind data (all ~28,000 bank charters, active, merged, failed and closed) with NCUA credit union filings, then attaches the routing numbers and SWIFT codes we hold for each active institution. Every match carries its status and status date, the establishment date, headquarters address and coordinates, website, regulator, FDIC certificate or NCUA charter and RSSD id. Look up a routing number and routingCheck tells you whether it still belongs to an active institution. Look up an IBAN or a SWIFT code outside the US and you get the bank from our SWIFT directory. Paid plans add the successor for merged charters, failure details for failed banks, the LEI, quarterly total assets, deposits, net income and credit union membership, plus branches=true for the branch list.

Live Test Bank Lookup Source →

Formula

One function covers the whole catalog: the first argument names the source, the next are its inputs, and the field after them says which single value lands in the cell. Formulas covers the grammar that applies to all of them.

=VERVE("banklookup", "count")

Inputs

Required inputs are positional, in the order below, followed by the field. Everything else is passed as a "name", value pair after that — the same shape as SUMIFS. Premium inputs are accepted on every plan but only take effect on plans that include them.

InputTypeWhere it goesDescription
nameOptionalstring"name", valueInstitution name or part of it; former and trade names match too
length 0–120
idOptionalstring"id", valueOur institution id, e.g. fdic-3511 or ncua-5536
length 0–30
fdicCertOptionalstring"fdicCert", valueFDIC certificate number
length 0–10
ncuaCharterOptionalstring"ncuaCharter", valueNCUA credit union charter number
length 0–10
routingOptionalstring"routing", valueNine-digit ABA routing number
length 9–9
swiftOptionalstring"swift", valueSWIFT/BIC code (8 or 11 characters); non-US codes answer from our SWIFT directory
length 8–11
leiOptionalstring"lei", valueLegal Entity Identifier (20 characters)
length 20–20
domainOptionalstring"domain", valueWebsite domain, URL or email address of the institution
length 0–253
ibanOptionalstring"iban", valueIBAN; names the bank where the IBAN carries a BIC-style bank code (GB, IE, NL and others)
length 0–42
stateOptionalstring"state", valueTwo-letter US state of the headquarters, to narrow a name search
length 2–2
typeOptionalstring"type", valueNarrow a name search to one institution type
banksavings_institutioncredit_union
statusOptionalstring"status", valueactive, inactive (merged, failed or closed) or any; any searches active institutions first and falls back to closed ones
anyactiveinactive
default any
countryOptionalstring"country", valueTwo-letter country code; a non-US country searches banks by name in our SWIFT directory
length 2–2
branchesOptionalPremiumboolean"branches", valueInclude the branch list for the first five institutions
limitOptionalinteger"limit", valueMaximum institutions to return (1-50)
default 10 · range 1–50

Passing an option

=VERVE("banklookup", "count", "name", "Wells Fargo")

What lands in your sheet

The field — the argument after the inputs — is what makes the formula resolve to one cell. Its value is a dot-path from the table below, so swapping it is how you pull a different value — one formula per column.

Seeing everything at once

Leave the field out and the formula returns the whole response instead: two columns, field name on the left and value on the right, spilling from the cell you typed in.

=VERVE("banklookup")
Good for exploring, not for filling down

The second row's table would land on top of the first's, and every cell after the first reads #REF! (#SPILL! in Excel). Keep one per sheet, or name a field, and leave the cells below and to the right empty.

Response fields

Paths are relative to data. Each one is exactly what the field argument accepts, so swapping it is how you pull a different value into a cell. On a plan without a Premium field the cell reads #PREMIUM(field) rather than a value, so a locked field never looks like a real answer.

Use as the fieldTypeExample cell valueDescription
countnumber1Number of institutions returned
totalMatchesnumber3Number of institutions that matched before the limit
banksarray[1]
banks.0.idstringfdic-3511Our identifier for the institution: fdic-<FDIC certificate> for banks and savings institutions, ncua-<charter> for credit unions, swift-<BIC8> for banks outside the US
banks.0.namestringWells Fargo Bank, National AssociationLegal name of the institution
banks.0.aliasesarray["Crocker National Bank","Crocker-Citizens National Bank","Crocker-Anglo National Bank"]Former names (FDIC) or trade names (NCUA)
banks.0.typestringbankbank, savings_institution or credit_union
banks.0.charterClassstringNational bank (OCC)Charter class in words, e.g. National bank (OCC) or Federal credit union; null for non-US banks
banks.0.statusstringactiveactive, merged (absorbed into another charter), failed (closed by regulators) or closed (any other closure); null for non-US banks
banks.0.statusDateobjectnullDate (YYYY-MM-DD) the institution stopped operating under this charter; null while active
banks.0.successorPremiumobjectnullFor a merged charter, the institution that absorbed it ({name, id}); null otherwise
banks.0.establishedDatestring1870-01-01Date the institution was established (FDIC) or chartered (NCUA), YYYY-MM-DD
banks.0.foundedYearnumber1870Year the institution was established
banks.0.addressstring3201 N 4th AveStreet address of the headquarters or main office
banks.0.citystringSioux FallsCity of the headquarters
banks.0.statestringSDTwo-letter state of the headquarters
banks.0.zipstring57104Five-digit ZIP code of the headquarters
banks.0.countystringMinnehahaCounty of the headquarters
banks.0.countrystringUSISO 3166-1 alpha-2 country code
banks.0.latitudenumber43.580844403981Latitude of the headquarters (FDIC geocode, or the ZIP centroid for credit unions)
banks.0.longitudenumber-96.722917126828Longitude of the headquarters
banks.0.coordinatesSourcestringfdicfdic when FDIC geocoded the address, zip_centroid when the point is the ZIP code centre
banks.0.websitestringhttps://www.wellsfargo.comPrimary website the institution reports to its regulator
banks.0.domainstringwellsfargo.comBare domain of the website, the key the domain parameter matches
banks.0.phoneobjectnullMain office phone number, (XXX) XXX-XXXX; credit unions only (FDIC publishes none)
banks.0.regulatorstringOCCPrimary federal regulator: OCC, FED, FDIC, OTS (historical) or NCUA
banks.0.insurerstringFDICDeposit insurer: FDIC or NCUA
banks.0.fdicCertnumber3511FDIC certificate number; null for credit unions
banks.0.ncuaCharterobjectnullNCUA charter number; null for banks
banks.0.rssdIdnumber451965Federal Reserve RSSD id
banks.0.leiPremiumstringKB1H1DSPRFMYMCUFXT09Legal Entity Identifier the institution reports to the FDIC
banks.0.holdingCompanystringWELLS FARGO&COMPANYName of the top holding company, if any
banks.0.routingNumbersarray["121000248"]Active ABA routing numbers matched to this institution from the Federal Reserve directory
banks.0.swiftCodesarray["WFBIUS6S"]SWIFT/BIC codes matched to this institution
banks.0.branchCountnumber4161Number of domestic offices (banks) or reported sites (credit unions)
banks.0.totalAssetsPremiumnumber1907928000000Total assets in US dollars at the latest quarterly filing
banks.0.totalDepositsPremiumnumber1563534000000Total deposits (banks) or shares and deposits (credit unions) in US dollars
banks.0.netIncomeYtdPremiumnumber12808000000Year-to-date net income in US dollars at the latest filing (banks)
banks.0.membersPremiumobjectnullNumber of members (credit unions)
banks.0.financialsAsOfstring2026-06-30Quarter-end date (YYYY-MM-DD) the financial figures come from
banks.0.failurePremiumobjectnullFor a failed bank: date, acquirer, resolution and size at failure; null otherwise
routingCheckobjectnullRouting number status when routing was given; null otherwise
ibanCheckobjectnullParsed IBAN when iban was given; null otherwise

When a cell doesn't fill

A failed lookup returns readable text starting with #ERR rather than a spreadsheet error, because Excel cannot show a custom message on a real error — you would get a bare #VALUE! with no reason. The trade-off is that IFERROR() will not catch it; test with LEFT(cell, 4) = "#ERR" instead. Error handling covers the rest.

Cell readsWhat happened
#ERR Not connectedNo API key saved. Open the side panel and connect your account.
#ERR Replace <name> with a cell or valueA preview formula was copied as-is. Swap the placeholder for a cell reference.
#ERR No "x" in banklookupAn option name this source does not take. The message lists the ones it does.
#ERR No data point "…"The field path is not in the response. Check it against the table above.
#PREMIUM(field)The field exists but your plan does not include it.
#ERR Out of creditsThe cycle's credits are spent. Usage resets on your billing date.

Before the formula works

The add-in reads the API key you saved once in the side panel — the key never goes in the formula, so a shared sheet does not leak it and a collaborator without access simply sees the last calculated values.

  1. Install the add-in for Google Sheets or Excel.
  2. Open the side panel and sign in, or paste a key from your dashboard.
  3. Type the formula above into any cell.

Use cases

KYB and Vendor Onboarding
Confirm that the bank a business names is a real, insured institution that is still operating, and record its FDIC certificate or NCUA charter with the file.
Payment Instruction Checks
Before paying a new routing number, check that it belongs to an active institution and that its owner matches the bank named on the invoice.
Bank Merger Tracking
Map an old bank name on a cheque or statement to the institution that absorbed it, with the date of the merger.
Market Research
Rank banks and credit unions in a state by assets and branch count from quarterly regulatory filings.

Other ways to use Bank Lookup

Set up Bank Lookup on VerveSheets, or reach the same source a different way. Your VerveSheets account and credits work on all of them — one key, one balance.

Call it as a REST APIOne HTTPS endpoint and an x-api-key header, with SDKs for Node, Python and .NET.APIVerve →Reference →
Give it to an AI agentConnect over MCP and your agent calls it as a native tool — Claude, Cursor, ChatGPT.VerveKit →Reference →
Ground an agent on itA cited, machine-checkable fact your model can't produce on its own.VerveContext →Reference →

More in Finance:

Was this page helpful?