Analysts, bookkeepers, students, and operations teams
Historical exchange rates in Excel with source CSV
Short answer
To import historical exchange rates into a spreadsheet, use a parameterized FXpeek CSV URL and retain that URL, pair direction, date range, retrieval time, field definitions, and reference-data limitation in a source tab.
Pasted FX numbers go stale and lose their source. Import dated rows through a stable CSV URL and retain pair, date, source and retrieval context in the...
FXpeek provenanceSource link per row·ECB / Frankfurter reference·CSV · JSON · API·Not a transaction quote
Problem to proof · Analysts, bookkeepers, students, and operations teams
The spreadsheet works today, but nobody knows which cells are stale or where their rates came from.
Import historical exchange-rate rows into Excel or Google Sheets without manual copy-paste.
01
The problem
The spreadsheet works today, but nobody knows which cells are stale or where their rates came from.
Manual copy-paste removes the request URL, source date, pair direction, and refresh method. A changed cell can no longer be distinguished from a changed source.
02
What good looks like
The workbook imports from a stable CSV URL and keeps a source tab with parameters, retrieval time, field definitions, and limitations.
Source URL is visible in the workbook.
Dates and pair direction are columns, not assumptions.
A refresh does not erase the evidence trail.
03
FXpeek workflow
Give the spreadsheet a reproducible data source
Build the CSV URLSet from, to, and date range explicitly for the supported pair.
Import without retypingUse Excel data import, Power Query, Google Sheets IMPORTDATA, or a direct CSV reader.
Preserve source metadataKeep the URL, retrieval time, field meanings, and reference-data limitation in a source tab.
04
Reproducible worked example
A finance workbook refreshes USD/IDR history
Input
A monthly workbook needs USD/IDR daily rows for reconciliation and a reviewer-visible source.
Before
Rates are pasted into 30 cells and the original web page is lost.
After
One source tab imports the CSV and records URL, pair, date range, retrieved_at, and field notes.
How to verify
Refresh the import, then compare row dates and source URL with the original request.
Demonstration only. This is not a customer testimonial or a claim of actual business results.
Citation-ready answer
To import historical exchange rates into a spreadsheet, use a parameterized FXpeek CSV URL and retain that URL, pair direction, date range, retrieval time, field definitions, and reference-data limitation in a source tab.
Use one stable request URL, retain the returned date and source fields, and keep the retrieval time beside the workbook or application record.
Field
What to retain
business_date
The invoice, receipt, payout, or reporting date selected by policy
base / quote
USD / IDR; direction must remain explicit
rate
The reference value returned for the actual available data date
actual_data_date
The observation date used after weekend or holiday handling
source / source_url
The provider label and exact human-readable or machine-readable URL
retrieved_at
ISO 8601 timestamp recorded when the result was collected
timezone / frequency
The source publication context and expected update cadence
fill / fallback
Whether the requested date used an earlier available observation
method / transform
Direct, inverse, cross, dated, period-end, or average; do not mix methods silently
limitation
Reference data only; not a bank, settlement, tax, accounting, or trading quote
Run the same lookup again
GET https://fxpeek.com/api/history?from=USD&to=IDR&days=365
GET https://fxpeek.com/api/csv?from=USD&to=IDR&days=365
=IMPORTDATA("https://fxpeek.com/api/csv?from=USD&to=IDR&days=365")
Primary and workflow references used to define this evidence pattern:
Minimal reusable templates: single invoice-date lookup + range export
CSV columns: date = actual data date (weekends/holidays fall back to the nearest working day), base_currency/quote_currency = direction, rate = reference value, source = provider, fill = actual or filled. Auto-refresh is not real-time; verify sheet cache and upstream delay.
Single invoice date: call /api/history?from=USD&to=JPY&date=YOUR_INVOICE_DATE — the returned date field is the actual data date; do not assume it equals the invoice date.
Import historical exchange-rate rows into Excel or Google Sheets without manual copy-paste.
Manual copy-paste removes the request URL, source date, pair direction, and refresh method. A changed cell can no longer be distinguished from a changed source.
The workbook imports from a stable CSV URL and keeps a source tab with parameters, retrieval time, field definitions, and limitations.
A monthly workbook needs USD/IDR daily rows for reconciliation and a reviewer-visible source.
FAQ
Can Excel import FXpeek historical exchange rates?
Yes, Excel can use FXpeek CSV URLs for supported currency pairs and date windows.
Can Google Sheets import historical exchange rates from FXpeek?
Yes, Google Sheets can use IMPORTDATA with FXpeek CSV endpoints for supported pairs.
Which FXpeek endpoint is best for spreadsheets?
Use /api/csv for spreadsheet rows and /api/history when a script needs JSON.
Can I import FXpeek rates into Excel without VBA?
Yes, use Excel Data from Web or Power Query with an FXpeek /api/csv URL.
Are FXpeek spreadsheet rates transaction quotes?
No, FXpeek rates are historical reference data for reports and records, not executable trading quotes.
How do I import historical exchange rates into Excel?
To import historical exchange rates into a spreadsheet, use a parameterized FXpeek CSV URL and retain that URL, pair direction, date range, retrieval time, field definitions, and reference-data limitation in a source tab.
How can the worked example be verified?
Refresh the import, then compare row dates and source URL with the original request.
Is this a customer testimonial or an official-rate conclusion?
No. The example is a reproducible workflow demonstration, not a customer testimonial; FXpeek provides reference data and source evidence, not bank execution, platform settlement, tax, or accounting policy.
Important limitations
The worked example is a reproducible workflow demonstration, not a customer testimonial or a claim of actual business results.
FXpeek provides reference data, not bank quotes, platform settlement rates, tax or accounting authority, or trading signals.
Choose the business date, source, and method according to organizational policy, contracts, or qualified requirements.
Reference note
To import historical exchange rates into a spreadsheet, use a parameterized FXpeek CSV URL and retain that URL, pair direction, date range, retrieval time, field definitions, and reference-data limitation in a source tab.
GET https://fxpeek.com/api/history?from=USD&to=IDR&days=365
GET https://fxpeek.com/api/csv?from=USD&to=IDR&days=365
GET https://fxpeek.com/api/stablecoin?pair=USDT-CNY
Historical exchange rates in Excel with source CSV | FXpeek