Use GOOGLEFINANCE when the answer belongs in a Google Sheets cell and its limits fit your workflow. Use exchangerate.dev for JSON, historical date ranges, conversion, or source and freshness fields. You can also call exchangerate.dev from Apps Script while staying in Sheets.
GOOGLEFINANCEis a Google Sheets function; quotes may be delayed up to 20 minutes.- Historical
GOOGLEFINANCEdata cannot be read through the Sheets API or Apps Script. - exchangerate.dev Free includes 5,000 requests per month; Free and keyless rates are 15 minutes late, while paid plans are live.
- Keep Sheets with
GOOGLEFINANCEor use the exchangerate.dev Apps Script tutorial.
What Google offers for currency conversion
Google Sheets provides the `GOOGLEFINANCE` function. Google documents quote delays of up to 20 minutes and daily or weekly history. We found no named rate sources or currency count on that page as of 18 Oct 2026.
=GOOGLEFINANCE("CURRENCY:USDEUR")GOOGLEFINANCE vs exchangerate.dev
The main choice is how you use the data: a Sheets formula or a JSON API. Compare delays, history access, and response fields before choosing.
| Feature | GOOGLEFINANCE | exchangerate.dev |
|---|---|---|
| Interface | Google Sheets function | JSON API; MCP on every plan |
| Access | Formula in a sheet | First request without a key; Free includes 5,000 requests/month |
| Rate delay | Up to 20 minutes | 15 minutes on Free and keyless calls; live on paid plans |
| History | Daily or weekly intervals | Daily: 30 days Free, 1 year Basic, from 1999 on Plus and Pro; some currencies start later |
| History in code | Sheets API and Apps Script return #N/A for historical data | /v1/range for date ranges |
| Currency attributes | Open, low, high, and volume are not returned | Rate, source, market_session, data_updated_at |
| Dates | Treated as noon in coordinated universal time; may shift a day | Daily date ranges through /v1/range |
| Rate sources and coverage | Rate sources and currency count not stated | source field in responses |
| Freshness context | Quotes may be delayed | market_session and data_updated_at fields |
| Conversion | Currency rate in a sheet | Conversion endpoint |
| Intended use | Google says it is not intended for professional financial use | Indicative rates; Free permits commercial display with visible linked credit |
Use a JSON exchange-rate endpoint instead
Try the first request without a key. exchangerate.dev returns JSON with source, market_session, and data_updated_at. Free includes 5,000 requests per month, with rates 15 minutes late on Free and keyless calls. Paid plans are live, and MCP is included on every plan.
curl "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR"Use /v1/range for daily date ranges, or check a past rate in the historical exchange-rate lookup. Free includes 30 days, Basic 1 year, and Plus and Pro reach 1999, with later starts for some currencies.
When GOOGLEFINANCE is still the right choice
Keep GOOGLEFINANCE when its quote delay and history restrictions fit your spreadsheet. Google treats dates as noon in coordinated universal time, which can shift results by a day. To use exchangerate.dev in Sheets, follow the Apps Script FXRATE() tutorial.
Google says GOOGLEFINANCE is not intended for professional financial use. exchangerate.dev rates are indicative; Free permits commercial display with visible linked credit.