| Type: | Package |
| Title: | R Interface to 'FFIEC Central Data Repository REST API' Service |
| Version: | 0.1.3 |
| Description: | Provides a simplified interface to the Central Data Repository 'REST API' service made available by the United States Federal Financial Institutions Examination Council ('FFIEC'). Contains functions to retrieve reports of Condition and Income (Call Reports) and Uniform Bank Performance Reports ('UBPR') in list or tidy data frame format for most 'FDIC' insured institutions. See https://cdr.ffiec.gov/public/Files/SIS611_-_Retrieve_Public_Data_via_Web_Service.pdf for the official 'REST API' documentation published by the 'FFIEC'. |
| License: | MIT + file LICENSE |
| Encoding: | UTF-8 |
| RoxygenNote: | 7.3.3 |
| Depends: | R (≥ 4.1) |
| Imports: | cli, dplyr, httr2, jsonlite, purrr, rlang, stringr, tibble, xml2 |
| Suggests: | testthat (≥ 3.0.0) |
| URL: | https://github.com/ketchbrookanalytics/ffiec, https://ketchbrookanalytics.github.io/ffiec/ |
| BugReports: | https://github.com/ketchbrookanalytics/ffiec/issues |
| Config/testthat/edition: | 3 |
| NeedsCompilation: | no |
| Packaged: | 2025-10-21 13:28:04 UTC; root |
| Author: | Michael Thomas [aut, cre], Ketchbrook Analytics [cph, fnd] |
| Maintainer: | Michael Thomas <mthomas@ketchbrookanalytics.com> |
| Repository: | CRAN |
| Date/Publication: | 2025-10-25 12:40:17 UTC |
Retrieve Facsimile
Description
Retrieves Call Report or UBPR facsimile data from the FFIEC Central Data Repository API for the requested financial institution.
Usage
get_facsimile(
user_id = Sys.getenv("FFIEC_USER_ID"),
bearer_token = Sys.getenv("FFIEC_BEARER_TOKEN"),
reporting_period_end_date,
fi_id_type = c("ID_RSSD", "FDICCertNumber", "OCCChartNumber", "OTSDockNumber"),
fi_id
)
get_ubpr_facsimile(
user_id = Sys.getenv("FFIEC_USER_ID"),
bearer_token = Sys.getenv("FFIEC_BEARER_TOKEN"),
reporting_period_end_date,
fi_id_type = c("ID_RSSD", "FDICCertNumber", "OCCChartNumber", "OTSDockNumber"),
fi_id
)
Arguments
user_id |
(String) The UserID for authenticating against the FFIEC API |
bearer_token |
(String) The Bearer Token for authenticating against the FFIEC API |
reporting_period_end_date |
(String) The reporting period end date, formatted as "MM/DD/YYYY" |
fi_id_type |
(String) The type of identifier being provided; one of
|
fi_id |
(String) The financial institution's identifier (can also be supplied as an integer instead of a string) |
Value
A tibble containing the facsimile data.
References
https://cdr.ffiec.gov/public/Files/SIS611_-_Retrieve_Public_Data_via_Web_Service.pdf
Examples
if (!no_creds_available()) {
# Assume you have set the following environment variables:
# - FFIEC_USER_ID
# - FFIEC_BEARER_TOKEN
# Retrieve facsimile data for reporting period 2025-03-31 for institution
# with ID RSSD "480228"
get_facsimile(
reporting_period_end_date = "03/31/2025",
fi_id = 480228
)
# Retrieve UBPR facsimile data for reporting period 2025-03-31 for
# instutition with FDIC Cert Number "3510"
get_ubpr_facsimile(
reporting_period_end_date = "03/31/2025",
fi_id_type = "FDICCertNumber",
fi_id = "3510"
)
}
Retrieve Filers Since Date
Description
Retrieves filer information from the FFIEC Central Data Repository API for filers updated since a specified date.
Usage
get_filers_since_date(
user_id = Sys.getenv("FFIEC_USER_ID"),
bearer_token = Sys.getenv("FFIEC_BEARER_TOKEN"),
reporting_period_end_date,
last_update_date_time,
as_data_frame = FALSE
)
Arguments
user_id |
(String) The UserID for authenticating against the FFIEC API |
bearer_token |
(String) The Bearer Token for authenticating against the FFIEC API |
reporting_period_end_date |
(String) The reporting period end date, formatted as "MM/DD/YYYY". |
last_update_date_time |
(String) Filter for records updated
since this date/time. See |
as_data_frame |
(Logical) Should the result be returned as a tibble?
Default is |
Details
Set the last_update_date_time value to the last time you ran the
method to retrieve only those institutions that have filed a newer report.
Possible formatting options include:
"04/15/2025"
"2025-04-15 21:00:00.000"
"04/15/2025 9:00 PM"
Value
A list containing the parsed JSON response from the API, where each
element in the list represents an RSSD ID value. If
as_data_frame = TRUE, then the list is converted to a tibble (and
returned as such).
References
https://cdr.ffiec.gov/public/Files/SIS611_-_Retrieve_Public_Data_via_Web_Service.pdf
Examples
if (!no_creds_available()) {
# Assume you have set the following environment variables:
# - FFIEC_USER_ID
# - FFIEC_BEARER_TOKEN
# Retrieve filers since 2025-03-31, as of 2025-04-15 and return as a list
get_filers_since_date(
reporting_period_end_date = "03/31/2025",
last_update_date_time = "04/15/2025"
)
# Retrieve filers since 2025-03-31, as of 2025-04-15 21:00:00.000 and return
# as a tibble
get_filers_since_date(
reporting_period_end_date = "03/31/2025",
last_update_date_time = "04/15/2025 21:00:00.000",
as_data_frame = TRUE
)
}
Retrieve Filers Submission Date Time
Description
Retrieves filer information from the FFIEC Central Data Repository API for the ID RSSDs and submission date and time of the reporters who have filed after the provided 'last_update_date_time“ and whose new filings are available for public distribution.
Usage
get_filers_submission_datetime(
user_id = Sys.getenv("FFIEC_USER_ID"),
bearer_token = Sys.getenv("FFIEC_BEARER_TOKEN"),
reporting_period_end_date,
last_update_date_time,
as_data_frame = TRUE
)
Arguments
user_id |
(String) The UserID for authenticating against the FFIEC API |
bearer_token |
(String) The Bearer Token for authenticating against the FFIEC API |
reporting_period_end_date |
(String) The reporting period end date, formatted as "MM/DD/YYYY". |
last_update_date_time |
(String) Filter for records updated
since this date/time. See |
as_data_frame |
(Logical) Should the result be returned as a tibble?
Default is |
Details
Set the last_update_date_time value to the last time you ran the
method to retrieve only those institutions that have filed a newer report.
Possible formatting options include:
"04/15/2025"
"04/15/2025 9:00 PM"
Value
A list containing the parsed JSON response from the API, where each
element in the list represents an RSSD ID value. If
as_data_frame = TRUE, then the list is converted to a tibble (and
returned as such).
References
https://cdr.ffiec.gov/public/Files/SIS611_-_Retrieve_Public_Data_via_Web_Service.pdf
Examples
if (!no_creds_available()) {
# Assume you have set the following environment variables:
# - FFIEC_USER_ID
# - FFIEC_BEARER_TOKEN
# Retrieve filers since 2025-03-31, as of 2025-04-15 and return as a tibble
get_filers_submission_datetime(
reporting_period_end_date = "03/31/2025",
last_update_date_time = "04/15/2025"
)
# Retrieve filers since 2025-03-31, as of 2025-04-15 21:00:00.000 and return
# as a list
get_filers_submission_datetime(
reporting_period_end_date = "03/31/2025",
last_update_date_time = "04/15/2025 21:00:00.000",
as_data_frame = FALSE
)
}
Retrieve Panel of Reporters
Description
Retrieves filer information from the FFIEC Central Data Repository API for the financial institutions in the Panel of Reporters (POR) expected to file for a given Call reporting period.
Usage
get_panel_of_reporters(
user_id = Sys.getenv("FFIEC_USER_ID"),
bearer_token = Sys.getenv("FFIEC_BEARER_TOKEN"),
reporting_period_end_date,
as_data_frame = TRUE
)
Arguments
user_id |
(String) The UserID for authenticating against the FFIEC API |
bearer_token |
(String) The Bearer Token for authenticating against the FFIEC API |
reporting_period_end_date |
(String) The reporting period end date, formatted as "MM/DD/YYYY". |
as_data_frame |
(Logical) Should the result be returned as a tibble?
Default is |
Value
A tibble containing the parsed JSON response from the API of filer
information since the given reporting_period_end_date date value. If
as_data_frame = FALSE, then the result is returned as a nested list
object, where each element represents a unique ID_RSSD value.
References
https://cdr.ffiec.gov/public/Files/SIS611_-_Retrieve_Public_Data_via_Web_Service.pdf
Examples
if (!no_creds_available()) {
# Assume you have set the following environment variables:
# - FFIEC_USER_ID
# - FFIEC_BEARER_TOKEN
# Retrieve expected filers for reporting period 2025-03-31 and return as a
# tibble
get_panel_of_reporters(
reporting_period_end_date = "03/31/2025"
)
# Retrieve expected filers for reporting period 2025-03-31 and return as a
# list
get_panel_of_reporters(
reporting_period_end_date = "03/31/2025",
as_data_frame = FALSE
)
}
Retrieve Reporting Periods
Description
Retrieves Call Report or UBPR filer information from the FFIEC Central Data Repository API for available reporating periods.
Usage
get_reporting_periods(
user_id = Sys.getenv("FFIEC_USER_ID"),
bearer_token = Sys.getenv("FFIEC_BEARER_TOKEN"),
as_data_frame = FALSE
)
get_ubpr_reporting_periods(
user_id = Sys.getenv("FFIEC_USER_ID"),
bearer_token = Sys.getenv("FFIEC_BEARER_TOKEN"),
as_data_frame = FALSE
)
Arguments
user_id |
(String) The UserID for authenticating against the FFIEC API |
bearer_token |
(String) The Bearer Token for authenticating against the FFIEC API |
as_data_frame |
(Logical) Should the result be returned as a tibble?
Default is |
Value
A list containing the parsed JSON response from the API, where each
element in the list represents an available reporting period. If
as_data_frame = TRUE, then the list is converted to a tibble (and
returned as such).
References
https://cdr.ffiec.gov/public/Files/SIS611_-_Retrieve_Public_Data_via_Web_Service.pdf
Examples
if (!no_creds_available()) {
# Assume you have set the following environment variables:
# - FFIEC_USER_ID
# - FFIEC_BEARER_TOKEN
# Retrieve reporting periods and return as a list
get_reporting_periods()
# Retrieve UBPR reporting periods and return as a tibble
get_ubpr_reporting_periods(as_data_frame = TRUE)
}
Handle missing UserID / Bearer Token values without throwing an error for unit testing purposes
Description
Handle missing UserID / Bearer Token values without throwing an error for unit testing purposes
Usage
no_creds_available(
user_id = Sys.getenv("FFIEC_USER_ID"),
bearer_token = Sys.getenv("FFIEC_BEARER_TOKEN")
)
Arguments
user_id |
(String) The UserID for authenticating against the FFIEC API |
bearer_token |
(String) The Bearer Token for authenticating against the FFIEC API |
Details
Intended for internal use.
Value
(Logical) FALSE if a valid user_id and bearer_token are
available; otherwise TRUE.