Fetch the latest or historical foreign exchange reference rates from the Bank of Canada (BoC).
Arguments
- start_date
(
NULL
|Date(1)
|character(1)
)
Start date of the data. DefaultNULL
.- end_date
(
NULL
|Date(1)
|character(1)
)
End date of the data. DefaultNULL
.- limit
(
NULL
|integer(1)
)
Maximum number of records to return. DefaultNULL
(all records).- skip
(
NULL
|integer(1)
)
Number of records to skip. DefaultNULL
(do not skip any records).
Value
A data.table::data.table()
with the exchange rates.
Details
The recorded rates indicate the number of Canadian dollars required to buy a single unit of the foreign currency. New rates are released by the Bank of Canada (BoC) daily at 4:30 pm. The Canada Border Services (CBSA) retrieves these updates between 4:30 pm and 5 pm ET.
BoC provides 23 foreign exchange rates. All other rates are maintained by the CBSA.
Exchange rates from the BoC are updated daily in the system while other exchange rates are updated by the CBSA at set intervals. The updated rates are available for retrieval between 7 pm and 11:59 pm ET.
As BoC publishes exchange rates every business day, it is recommended that exchange rate data be retrieved on a daily basis. This retrieval should occur after 7 pm ET to ensure retrieval of the latest updates.
Examples
# \donttest{
# fetch latest exchange rates
boc_fx_rates()
#> exchange_rate_id rate exchange_rate_effective_timestamp
#> <int> <num> <POSc>
#> 1: 5786797 0.094000 2025-09-17
#> 2: 5786798 1.000000 2025-09-17
#> 3: 5786799 1.000300 2025-09-17
#> 4: 5786800 0.000001 2025-09-17
#> 5: 5786801 0.003760 2025-09-17
#> ---
#> 150: 5786946 0.034960 2025-09-17
#> 151: 5786947 0.000560 2025-09-17
#> 152: 5786948 0.000050 2025-09-17
#> 153: 5786949 0.057780 2025-09-17
#> 154: 5786950 0.008710 2025-09-17
#> exchange_rate_expiry_timestamp exchange_rate_source from_currency
#> <POSc> <char> <char>
#> 1: 2025-09-17 23:59:59 CBSA EEK
#> 2: 2025-09-17 23:59:59 CBSA CAD
#> 3: 2025-09-17 23:59:59 CBSA ERP
#> 4: 2025-09-17 23:59:59 CBSA XXD
#> 5: 2025-09-17 23:59:59 CBSA ZWL
#> ---
#> 150: 2025-09-17 23:59:59 CBSA SRD
#> 151: 2025-09-17 23:59:59 CBSA TZS
#> 152: 2025-09-17 23:59:59 CBSA VND
#> 153: 2025-09-17 23:59:59 CBSA ZMW
#> 154: 2025-09-17 23:59:59 CBSA VES
#> from_currency_csn to_currency to_currency_csn
#> <int> <char> <int>
#> 1: 59 CAD 36
#> 2: 36 CAD 36
#> 3: 62 CAD 36
#> 4: 223 CAD 36
#> 5: 238 CAD 36
#> ---
#> 150: 183 CAD 36
#> 151: 202 CAD 36
#> 152: 215 CAD 36
#> 153: 229 CAD 36
#> 154: 214 CAD 36
# fetch historical exchange rates
boc_fx_rates(start_date = "2021-10-22", end_date = "2021-10-23", limit = 10, skip = 2)
#> exchange_rate_id rate exchange_rate_effective_timestamp
#> <int> <num> <POSc>
#> 1: 5546931 0.193100 2021-10-22
#> 2: 5546932 1.437200 2021-10-22
#> 3: 5546933 0.158900 2021-10-22
#> 4: 5546934 0.016500 2021-10-22
#> 5: 5546935 0.000087 2021-10-22
#> 6: 5546936 0.010850 2021-10-22
#> 7: 5546937 0.060900 2021-10-22
#> 8: 5546938 0.884600 2021-10-22
#> 9: 5546939 0.147900 2021-10-22
#> 10: 5546940 0.312500 2021-10-22
#> exchange_rate_expiry_timestamp exchange_rate_source from_currency
#> <POSc> <char> <char>
#> 1: 2021-10-22 23:59:59 BoC CNY
#> 2: 2021-10-22 23:59:59 BoC EUR
#> 3: 2021-10-22 23:59:59 BoC HKD
#> 4: 2021-10-22 23:59:59 BoC INR
#> 5: 2021-10-22 23:59:59 BoC IDR
#> 6: 2021-10-22 23:59:59 BoC JPY
#> 7: 2021-10-22 23:59:59 BoC MXN
#> 8: 2021-10-22 23:59:59 BoC NZD
#> 9: 2021-10-22 23:59:59 BoC NOK
#> 10: 2021-10-22 23:59:59 BoC PEN
#> from_currency_csn to_currency to_currency_csn
#> <int> <char> <int>
#> 1: 42 CAD 36
#> 2: 66 CAD 36
#> 3: 87 CAD 36
#> 4: 95 CAD 36
#> 5: 92 CAD 36
#> 6: 102 CAD 36
#> 7: 138 CAD 36
#> 8: 150 CAD 36
#> 9: 148 CAD 36
#> 10: 154 CAD 36
# }