| Title: | Interface to 'BankFind Suite API' |
|---|---|
| Description: | Provides a convenient interface to the 'BankFind Suite API' made available by the Federal Deposit Insurance Corporation (FDIC). Contains functions to retrieve data related to qualitative institution information, branch and office locations, Summary of Deposit reporting, financial information, failed financial institutions, structural change events, historic aggregate industry data, and demographics information. See <https://api.fdic.gov/banks/docs/> for the official 'BankFind Suite API' documentation published by the FDIC. |
| Authors: | Dylan Hughes [aut, cre], Michael Thomas [aut], Ketchbrook Analytics [cph, fnd] |
| Maintainer: | Dylan Hughes <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 0.1.2 |
| Built: | 2026-10-14 11:17:19 UTC |
| Source: | https://github.com/ketchbrookanalytics/fdic |
/demographics endpointA data frame describing the fields available when querying the
/demographics endpoint via get_demographics().
fdic_demographicsfdic_demographics
A data frame with 54 rows and 4 columns:
Field name, as passed to the fields or sort_by arguments.
Human-readable title for the field.
Extended description of the field, where available.
Data type of the field ("string" or "number").
This dataset reflects the API field definitions provided by the FDIC at
the time the package was built. The FDIC API may have added, removed, or
renamed fields since then. To confirm which fields are currently available,
call get_demographics() with limit = 1 and no fields argument.
https://api.fdic.gov/banks/docs/
/failures endpointA data frame describing the fields available when querying the
/failures endpoint via get_failures().
fdic_failuresfdic_failures
A data frame with 21 rows and 4 columns:
Field name, as passed to the fields or sort_by arguments.
Human-readable title for the field.
Extended description of the field, where available.
Data type of the field ("string" or "number").
This dataset reflects the API field definitions provided by the FDIC at
the time the package was built. The FDIC API may have added, removed, or
renamed fields since then. To confirm which fields are currently available,
call get_failures() with limit = 1 and no fields argument.
https://api.fdic.gov/banks/docs/
/financials endpointA data frame describing the fields available when querying the
/financials endpoint via get_financials().
fdic_financialsfdic_financials
A data frame with 2,377 rows and 4 columns:
Field name, as passed to the fields or sort_by arguments.
Human-readable title for the field.
Extended description of the field, where available.
Data type of the field ("string" or "number").
This dataset reflects the API field definitions provided by the FDIC at
the time the package was built. The FDIC API may have added, removed, or
renamed fields since then. To confirm which fields are currently available,
call get_financials() with limit = 1 and no fields argument.
https://api.fdic.gov/banks/docs/
/history endpointA data frame describing the fields available when querying the
/history endpoint via get_history().
fdic_historyfdic_history
A data frame with 176 rows and 4 columns:
Field name, as passed to the fields or sort_by arguments.
Human-readable title for the field.
Extended description of the field, where available.
Data type of the field ("string" or "number").
This dataset reflects the API field definitions provided by the FDIC at
the time the package was built. The FDIC API may have added, removed, or
renamed fields since then. To confirm which fields are currently available,
call get_history() with limit = 1 and no fields argument.
https://api.fdic.gov/banks/docs/
/institutions endpointA data frame describing the fields available when querying the
/institutions endpoint via get_institutions().
fdic_institutionsfdic_institutions
A data frame with 151 rows and 4 columns:
Field name, as passed to the fields or sort_by arguments.
Human-readable title for the field.
Extended description of the field, where available.
Data type of the field ("string" or "number").
This dataset reflects the API field definitions provided by the FDIC at
the time the package was built. The FDIC API may have added, removed, or
renamed fields since then. To confirm which fields are currently available,
call get_institutions() with limit = 1 and no fields argument.
https://api.fdic.gov/banks/docs/
/locations endpointA data frame describing the fields available when querying the
/locations endpoint via get_locations().
fdic_locationsfdic_locations
A data frame with 35 rows and 4 columns:
Field name, as passed to the fields or sort_by arguments.
Human-readable title for the field.
Extended description of the field, where available.
Data type of the field ("string" or "number").
This dataset reflects the API field definitions provided by the FDIC at
the time the package was built. The FDIC API may have added, removed, or
renamed fields since then. To confirm which fields are currently available,
call get_locations() with limit = 1 and no fields argument.
https://api.fdic.gov/banks/docs/
/sod endpointA data frame describing the fields available when querying the
/sod endpoint via get_sod().
fdic_sodfdic_sod
A data frame with 82 rows and 4 columns:
Field name, as passed to the fields or sort_by arguments.
Human-readable title for the field.
Extended description of the field, where available.
Data type of the field ("string" or "number").
This dataset reflects the API field definitions provided by the FDIC at
the time the package was built. The FDIC API may have added, removed, or
renamed fields since then. To confirm which fields are currently available,
call get_sod() with limit = 1 and no fields argument.
https://api.fdic.gov/banks/docs/
/summary endpointA data frame describing the fields available when querying the
/summary endpoint via get_summary().
fdic_summaryfdic_summary
A data frame with 203 rows and 4 columns:
Field name, as passed to the fields or sort_by arguments.
Human-readable title for the field.
Extended description of the field, where available.
Data type of the field ("string" or "number").
This dataset reflects the API field definitions provided by the FDIC at
the time the package was built. The FDIC API may have added, removed, or
renamed fields since then. To confirm which fields are currently available,
call get_summary() with limit = 1 and no fields argument.
https://api.fdic.gov/banks/docs/
Queries the /demographics endpoint of the FDIC BankFind Suite API,
returning demographic data for FDIC-insured financial institutions.
get_demographics( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )get_demographics( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )
api_key |
(String) Your FDIC API key. Required: the FDIC does not
accept unauthenticated requests. Defaults to the value of the
|
filters |
(String) An optional Elasticsearch query string to filter results. All field names and values must be uppercase. |
fields |
(String or Character vector) Fields to include in the response.
An |
sort_by |
(String) Field name to sort results by. Defaults to the API default sort order for this endpoint. |
descending |
(Logical) Should results be sorted in descending order?
Only applies when |
limit |
(Integer) Number of records to return. Must be between 1 and 10,000. Defaults to 10,000. |
A tibble containing demographic data for FDIC-insured institutions, with one row per institution.
# Return demographic data for a specific institution suppressMessages(get_demographics(filters = "CERT:10002")) # Return specific fields only suppressMessages(get_demographics( fields = c("CERT", "OFFSTATE", "OFFTOT", "REPDTE"), limit = 5 )) # Sort by report date in descending order suppressMessages(get_demographics( fields = c("CERT", "OFFTOT", "REPDTE"), sort_by = "REPDTE", descending = TRUE, limit = 5 ))# Return demographic data for a specific institution suppressMessages(get_demographics(filters = "CERT:10002")) # Return specific fields only suppressMessages(get_demographics( fields = c("CERT", "OFFSTATE", "OFFTOT", "REPDTE"), limit = 5 )) # Sort by report date in descending order suppressMessages(get_demographics( fields = c("CERT", "OFFTOT", "REPDTE"), sort_by = "REPDTE", descending = TRUE, limit = 5 ))
Queries the /failures endpoint of the FDIC BankFind Suite API,
returning data for failed financial institutions from 1934 to present.
get_failures( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )get_failures( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )
api_key |
(String) Your FDIC API key. Required: the FDIC does not
accept unauthenticated requests. Defaults to the value of the
|
filters |
(String) An optional Elasticsearch query string to filter results. All field names and values must be uppercase. |
fields |
(String or Character vector) Fields to include in the response.
An |
sort_by |
(String) Field name to sort results by. Defaults to the API default sort order for this endpoint. |
descending |
(Logical) Should results be sorted in descending order?
Only applies when |
limit |
(Integer) Number of records to return. Must be between 1 and 10,000. Defaults to 10,000. |
A tibble containing bank failure data for FDIC-insured institutions, with one row per failure event.
# Return the 5 most recent bank failures suppressMessages(get_failures( sort_by = "FAILDATE", descending = TRUE, limit = 5 )) # Filter to failures in a single state suppressMessages(get_failures( filters = "PSTALP:NY", limit = 5 )) # Return specific fields only suppressMessages(get_failures( fields = c("CERT", "FAILDATE", "NAME", "PSTALP"), limit = 5 ))# Return the 5 most recent bank failures suppressMessages(get_failures( sort_by = "FAILDATE", descending = TRUE, limit = 5 )) # Filter to failures in a single state suppressMessages(get_failures( filters = "PSTALP:NY", limit = 5 )) # Return specific fields only suppressMessages(get_failures( fields = c("CERT", "FAILDATE", "NAME", "PSTALP"), limit = 5 ))
Queries the /financials endpoint of the FDIC BankFind Suite API,
returning financial data for FDIC-insured financial institutions.
get_financials( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )get_financials( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )
api_key |
(String) Your FDIC API key. Required: the FDIC does not
accept unauthenticated requests. Defaults to the value of the
|
filters |
(String) An optional Elasticsearch query string to filter results. All field names and values must be uppercase. |
fields |
(String or Character vector) Fields to include in the response.
Defaults to all available fields if not specified. Run |
sort_by |
(String) Field name to sort results by. Defaults to the API default sort order for this endpoint. |
descending |
(Logical) Should results be sorted in descending order?
Only applies when |
limit |
(Integer) Number of records to return. Must be between 1 and 10,000. Defaults to 10,000. Note: when more than 250 fields are requested, the maximum is 500. |
The /financials endpoint returns one row per institution per reporting
period (quarter). Requesting more than 250 fields reduces the maximum
allowed limit to 500 records; exceeding this will raise an error.
A tibble containing financial data for FDIC-insured institutions, with one row per institution per reporting period.
# Return key financial fields for institutions in New York suppressMessages(get_financials( filters = "STALP:NY", fields = c("ASSET", "CERT", "NETINC", "REPDTE"), limit = 5 )) # Sort by total assets descending suppressMessages(get_financials( fields = c("ASSET", "CERT"), sort_by = "ASSET", descending = TRUE, limit = 5 ))# Return key financial fields for institutions in New York suppressMessages(get_financials( filters = "STALP:NY", fields = c("ASSET", "CERT", "NETINC", "REPDTE"), limit = 5 )) # Sort by total assets descending suppressMessages(get_financials( fields = c("ASSET", "CERT"), sort_by = "ASSET", descending = TRUE, limit = 5 ))
Queries the /history endpoint of the FDIC BankFind Suite API,
returning data for structural change events for FDIC-insured financial
institutions.
get_history( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )get_history( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )
api_key |
(String) Your FDIC API key. Required: the FDIC does not
accept unauthenticated requests. Defaults to the value of the
|
filters |
(String) An optional Elasticsearch query string to filter results. All field names and values must be uppercase. |
fields |
(String or Character vector) Fields to include in the response.
An |
sort_by |
(String) Field name to sort results by. Defaults to the API default sort order for this endpoint. |
descending |
(Logical) Should results be sorted in descending order?
Only applies when |
limit |
(Integer) Number of records to return. Must be between 1 and 10,000. Defaults to 10,000. |
A tibble containing structural change events for FDIC-insured institutions, with one row per structural change event.
# Return the 5 most recent structural change events suppressMessages(get_history( sort_by = "PROCDATE", descending = TRUE, limit = 5 )) # Return specific fields only suppressMessages(get_history( fields = c("CERT", "CHANGECODE", "CHANGECODE_DESC", "PROCDATE"), limit = 5 ))# Return the 5 most recent structural change events suppressMessages(get_history( sort_by = "PROCDATE", descending = TRUE, limit = 5 )) # Return specific fields only suppressMessages(get_history( fields = c("CERT", "CHANGECODE", "CHANGECODE_DESC", "PROCDATE"), limit = 5 ))
Queries the /institutions endpoint of the FDIC BankFind Suite API,
returning FDIC-insured financial institution data.
get_institutions( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )get_institutions( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )
api_key |
(String) Your FDIC API key. Required: the FDIC does not
accept unauthenticated requests. Defaults to the value of the
|
filters |
(String) An optional Elasticsearch query string to filter results. All field names and values must be uppercase. |
fields |
(String or Character vector) Fields to include in the response.
An |
sort_by |
(String) Field name to sort results by. Defaults to the API default sort order for this endpoint. |
descending |
(Logical) Should results be sorted in descending order?
Only applies when |
limit |
(Integer) Number of records to return. Must be between 1 and 10,000. Defaults to 10,000. |
A tibble containing FDIC-insured institution information, with one row per institution.
# Return active institutions in New York suppressMessages(get_institutions( filters = "STALP:NY AND ACTIVE:1", limit = 5 )) # Return the 5 largest institutions by total assets suppressMessages(get_institutions( fields = c("ASSET", "CERT", "NAME", "STALP"), sort_by = "ASSET", descending = TRUE, limit = 5 ))# Return active institutions in New York suppressMessages(get_institutions( filters = "STALP:NY AND ACTIVE:1", limit = 5 )) # Return the 5 largest institutions by total assets suppressMessages(get_institutions( fields = c("ASSET", "CERT", "NAME", "STALP"), sort_by = "ASSET", descending = TRUE, limit = 5 ))
Queries the /locations endpoint of the FDIC BankFind Suite API,
returning location data for FDIC-insured financial institutions.
get_locations( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )get_locations( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )
api_key |
(String) Your FDIC API key. Required: the FDIC does not
accept unauthenticated requests. Defaults to the value of the
|
filters |
(String) An optional Elasticsearch query string to filter results. All field names and values must be uppercase. |
fields |
(String or Character vector) Fields to include in the response.
An |
sort_by |
(String) Field name to sort results by. Defaults to the API default sort order for this endpoint. |
descending |
(Logical) Should results be sorted in descending order?
Only applies when |
limit |
(Integer) Number of records to return. Must be between 1 and 10,000. Defaults to 10,000. |
A tibble containing location data for FDIC-insured institutions, with one row per institution location.
# Return branch locations in New York suppressMessages(get_locations( filters = "STALP:NY", limit = 5 )) # Return specific fields only suppressMessages(get_locations( filters = "STALP:NY", fields = c("ADDRESS", "CERT", "CITY", "STALP"), limit = 5 ))# Return branch locations in New York suppressMessages(get_locations( filters = "STALP:NY", limit = 5 )) # Return specific fields only suppressMessages(get_locations( filters = "STALP:NY", fields = c("ADDRESS", "CERT", "CITY", "STALP"), limit = 5 ))
Queries the /sod endpoint of the FDIC BankFind Suite API,
returning summary of deposit data for FDIC-insured financial institutions.
get_sod( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )get_sod( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )
api_key |
(String) Your FDIC API key. Required: the FDIC does not
accept unauthenticated requests. Defaults to the value of the
|
filters |
(String) An optional Elasticsearch query string to filter results. All field names and values must be uppercase. |
fields |
(String or Character vector) Fields to include in the response.
An |
sort_by |
(String) Field name to sort results by. Defaults to the API default sort order for this endpoint. |
descending |
(Logical) Should results be sorted in descending order?
Only applies when |
limit |
(Integer) Number of records to return. Must be between 1 and 10,000. Defaults to 10,000. |
A tibble containing summary of deposits data for FDIC-insured institutions, with one row per institution location.
# Return Summary of Deposit data for institutions in New York suppressMessages(get_sod( filters = "STALP:NY", limit = 5 )) # Return specific fields, sorted by total assets descending suppressMessages(get_sod( filters = "STALP:NY", fields = c("ASSET", "CERT", "CITY", "YEAR"), sort_by = "ASSET", descending = TRUE, limit = 5 ))# Return Summary of Deposit data for institutions in New York suppressMessages(get_sod( filters = "STALP:NY", limit = 5 )) # Return specific fields, sorted by total assets descending suppressMessages(get_sod( filters = "STALP:NY", fields = c("ASSET", "CERT", "CITY", "YEAR"), sort_by = "ASSET", descending = TRUE, limit = 5 ))
Queries the /summary endpoint of the FDIC BankFind Suite API,
returning aggregate data by bank type, state, quarter, and year
for FDIC-insured financial institutions.
get_summary( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )get_summary( api_key = Sys.getenv("FDIC_API_KEY"), filters = NULL, fields = NULL, sort_by = NULL, descending = FALSE, limit = 10000 )
api_key |
(String) Your FDIC API key. Required: the FDIC does not
accept unauthenticated requests. Defaults to the value of the
|
filters |
(String) An optional Elasticsearch query string to filter results. All field names and values must be uppercase. |
fields |
(String or Character vector) Fields to include in the response.
An |
sort_by |
(String) Field name to sort results by. Defaults to the API default sort order for this endpoint. |
descending |
(Logical) Should results be sorted in descending order?
Only applies when |
limit |
(Integer) Number of records to return. Must be between 1 and 10,000. Defaults to 10,000. |
A tibble containing historic aggregate financial and structure data regarding financial institutions, with one row per quarter and year.
# Return summary data for each bank type, state, quarter, and year suppressMessages(get_summary( fields = c("ASSET", "BANKS", "BRANCHES", "CALLYM", "NETINC"), limit = 5 )) # Return summary data sorted by reporting period descending suppressMessages(get_summary( fields = c("ASSET", "BANKS", "CALLYM", "YEAR"), sort_by = "CALLYM", descending = TRUE, limit = 5 ))# Return summary data for each bank type, state, quarter, and year suppressMessages(get_summary( fields = c("ASSET", "BANKS", "BRANCHES", "CALLYM", "NETINC"), limit = 5 )) # Return summary data sorted by reporting period descending suppressMessages(get_summary( fields = c("ASSET", "BANKS", "CALLYM", "YEAR"), sort_by = "CALLYM", descending = TRUE, limit = 5 ))
Handle missing API key without throwing an error for unit testing purposes
no_creds_available(api_key = Sys.getenv("FDIC_API_KEY"))no_creds_available(api_key = Sys.getenv("FDIC_API_KEY"))
api_key |
(String) The API key for authenticating against the FDIC API |
Intended for internal use.
(Logical) FALSE if a non-empty api_key has been supplied;
otherwise TRUE.