How to connect Open Exchange Rates to Google Sheets with OWOX Data Marts
There is no direct Open Exchange Rates to Google Sheets connector any more. The route that holds up is Open Exchange Rates, then a data warehouse, then Sheets – and OWOX Data Marts runs all of it.
Exchange rates look like the easy part of reporting until two ad accounts bill in different currencies. Then you need one source of rates, with history, that every report uses.
The route that holds up is not a direct pipe from Open Exchange Rates into a sheet. It is Open Exchange Rates, then a data warehouse, then Google Sheets. OWOX Data Marts runs that whole path: a Open Exchange Rates data mart loads your ad data into your data warehouse, and Google Sheets reads it from there – through a report, or through the OWOX Data Marts extension. The quickest start is OWOX Cloud, but you can also run OWOX Data Marts yourself as free open source.
Why we made this free connector
Why we made this free connector
At OWOX, we’ve always believed that businesses shouldn’t have to rent their own data. So the Open Exchange Rates connector is free and open source: run OWOX Data Marts yourself and there is no paid tier and no hidden features. The longer story is in why we built free data connectors for analysts.
Join the open-source movement
We’re not just releasing a free connector – we’re inviting you to help shape the future of open marketing analytics tools.
At OWOX, we believe that data access and transparency should be a right, not a luxury. That’s why this connector is 100% open-source – giving you full control over how it works, what it does, and how far it can go.
If you like what we do, please ⭐ star our GitHub repo to show your support – it helps us reach more analysts and grow the number of available connectors.
Also, feel free to:
- Explore the code and customize it to fit your needs.
- Contribute to this data connectivity ecosystem: suggest new connectors, pull new connectors, and/or provide documentation to support the wider community.
- Join our community and share your feedback.
We’ve built the core, the foundation – now it’s your turn to take it further.
Why bring Open Exchange Rates data into Google Sheets?
Why bring Open Exchange Rates data into Google Sheets?
Currency rates are not a report on their own. They are an input that other numbers depend on:
- Convert spend and revenue to one currency: join rates to ad cost and order data once, in the data warehouse, instead of pasting rates into each sheet.
- Keep the rate that was true on the day: a historical table lets you restate last quarter at last quarter’s rates, not today’s.
- One governed source: every report, and sheet reads the same rates.
Sheets is where marketers want to work, and that part is right. The open question is where the data should live while they do.
OWOX Data Marts
See your first report built in real time. 15 minutes.
- Connect your data warehouse
- Pick your metrics
- Get a live Google Sheets report
In the time it takes to write a ticket. Then imagine never writing that ticket again.
Book a DemoWe'll use your actual use case
Why the data goes through a data warehouse
Why the data goes through a data warehouse
A sheet is where people read data, not where it should live. That is why OWOX Data Marts puts a data warehouse in the middle, and why there is no direct Open Exchange Rates-to-sheet connector. Four things follow.
The sheet has a ceiling
A Google Sheets file holds at most 10 million cells. Ad data eats cells quietly: every ad, every day and every breakdown is a row, and every field you pull is a column, so a wide import burns through the limit faster than the row count suggests.
The data warehouse holds the full rate history, while the sheet report holds only the currencies and dates you choose. A backfill loads a custom date range once, and a trigger keeps the rates fresh afterwards.
History outlives the sheet
Data loaded into a data warehouse stays there. A tab that gets overwritten, a sheet someone re-copies or an upstream API that changes its schema does not take last year’s numbers with it. That continuity is what restating last year’s revenue at last year’s rates depends on.
Rates are worth most next to your spend and revenue
A rates sheet on its own is a lookup table. The value comes from joining it to ad spend, CRM data and orders, so every amount is reported in one currency.
In the data warehouse that join is written once, in SQL, by the analyst who owns it. OWOX Data Marts publishes the result to Sheets like any other data mart, so the marketers reading the sheet never copy a rate by hand.
OWOX Data Marts does not model the data for you. It publishes and governs the query the analyst wrote, so everyone reads the same definition.
One number, every place you read it
The same data mart can feed a Google Sheets report, a Looker Studio dashboard, a Slack channel or an email, so the number in the sheet is the number in the dashboard. Business users read it without needing data warehouse credentials.

How it works
- A Open Exchange Rates data mart of the Connector type loads your ad data into tables in your data warehouse. A manual run backfills history, and a trigger keeps it fresh.
- Google Sheets is connected as a destination. The data mart publishes its data there.
- You read it in Sheets with a report created on the data mart, or by pulling it with the OWOX Data Marts extension inside Google Sheets.
- Or you just ask. Through OWOX MCP you can blend the same data with other Open Exchange Rates endpoints, other ad platforms, or your CRM and GA4 data, using the data model.
OWOX Data Marts does not transform your data. It loads, publishes and governs it, and any SQL on top is written by an analyst.
What you need
- An Open Exchange Rates account and its App ID.
- A data warehouse. OWOX Data Marts supports BigQuery, Snowflake, Databricks, AWS Athena and AWS Redshift. The examples here use BigQuery.
- OWOX Data Marts: OWOX Cloud for the quickest start, or self-managed with Node.js and the OWOX CLI (free and open source).
- A Google account for the Google Sheets report.
Step-by-step: send Open Exchange Rates data to Google Sheets
Step-by-step: send Open Exchange Rates data to Google Sheets
Seven steps. The first five load your Open Exchange Rates data into your data warehouse. The last two bring it into Google Sheets.
Step 1: Start OWOX Data Marts ( ~2 min)
Choose how to run it:
-
OWOX Cloud: sign in or sign up and you are ready for step 2.
-
Self-managed (open source): install Node.js 22.22.0 or later, then run:
npm install -g owox owox serveOpen
http://localhost:3000and you are in. The OWOX docs cover deployment options beyond a local machine.
Step 2: Connect your data warehouse ( ~3 min)
Open Storages in the left menu and add your data warehouse, for example BigQuery. This is where the Open Exchange Rates tables will be created. The BigQuery walkthrough, including the service account, is in the Open Exchange Rates → BigQuery guide.
Step 3: Create the Open Exchange Rates Data Mart ( ~2 min)
- Click New Data Mart, give it a title and select the data warehouse from step 2.
- Set the type to Connector and choose Open Exchange Rates (the Open Exchange Rates data source).
- Add your App ID. Open Exchange Rates uses an API key rather than a sign-in, so there is no OAuth step. In your Open Exchange Rates dashboard, open App IDs in the left menu and copy the App ID.

- Optionally set the base currency. The default is USD, and which base currencies you can use depends on your Open Exchange Rates plan.
Step 4: Choose what to load and backfill your history ( ~3 min)
- Select the endpoint: the latest rates, historical rates for a day, the list of currencies, or a time series over a date range.
- Set the dataset, or keep the default.
- Click Publish Data Mart.
- Click Manual Run and choose Backfill for the first run. Add the start and end dates and click Run. This puts the historical rates into the data warehouse.
- Open Run History and check for Success.
Step 5: Schedule the refresh ( ~1 min)
- Open the Triggers tab of the data mart and click Add Trigger.
- Choose Connector Run as the trigger type, then set daily, weekly, monthly or interval, plus the time, days and time zone.
- Click Create Trigger. Open Exchange Rates data now refreshes on its own.
Step 6: Connect Google Sheets as a destination ( ~2 min)
Open Destinations in the left menu, click New Destination and choose Google Sheets (more on the Google Sheets destination). A destination is where a data mart can deliver its data; the same list also holds Looker Studio, Slack and email.
Step 7: Bring the data into Google Sheets ( ~2 min)
You have two ways to read the data mart in Sheets. Both are part of spreadsheet reporting in OWOX Data Marts.
Option A: a report on the data mart. Reports live on the Destinations tab.
- Open the data mart, go to the Destinations tab and click New Report under your Google Sheets destination.
- Give the report a title and share the Google document with the address the form shows.
- Paste the URL of your Google Sheet, or click New Sheet to create one.
- Choose the report columns you want in the sheet.
- Click Create & Run report.

Each report is listed on the Destinations tab with its last run and status. Run it again whenever you need fresh data, or put it on a schedule with a report trigger.

Option B: the OWOX Data Marts extension. Install OWOX Data Marts from the Google Workspace Marketplace, open it inside Google Sheets and pull the data mart from there, without leaving the sheet. If your team works in Excel, there is an OWOX Excel add-in too.
Ask the blended question in plain language
Ask the blended question in plain language
Open Exchange Rates data rarely answers a question on its own. With OWOX MCP you can blend it with other Open Exchange Rates endpoints, with other ad platforms, or with your CRM data and GA4 data (GA4 through its native BigQuery export), using the data model, and ask for all of it in plain language.
Once ad spend is a governed data mart, nobody has to write the join to ask about it. Connect Claude to OWOX Data Marts with the OWOX Claude connector and a marketer can ask:
Convert our Facebook Ads and Google Ads spend to USD using the exchange rate for each day.
Claude asks OWOX which data marts are relevant, reads their fields and the joins the analyst defined, and queries the one it picks. Ask it against raw data warehouse tables instead and it has to guess the join.
| Ungoverned | Against the data model | |
|---|---|---|
| What the model sees | Raw data warehouse tables | The published data marts |
| What it does | Invents the join | Reads the analyst’s join |
| What you get | A plausible number, confidently wrong | The number, and the query behind it |
MCP is the interface here, not the guarantee. The guarantee is the governed data mart behind it, and every question is logged in Run History. For how that works end to end, read governed MCP analytics.
What’s next?
This connector is part of our effort to make data ownership simple, transparent and accessible for everyone.
Here are more resources to explore:
- The Open Exchange Rates connector for each data warehouse: BigQuery, Snowflake, Databricks, AWS Athena and AWS Redshift.
- The full data warehouse setup in the Open Exchange Rates → BigQuery guide.
- The same route for another platform: Facebook Ads → Google Sheets, LinkedIn Ads → Google Sheets and TikTok Ads → Google Sheets. More free connectors are on the connectors page.
Check out our GitHub repo, leave us a ⭐ star, and let’s build better tools together.
Turn your data into decisions.
Governed data marts give you the clean foundation ML needs to actually work.
- No AI hallucinations
- Analyst-governed definitions
- Every number traces to SQL
Frequently Asked Questions
Is there a direct Open Exchange Rates to Google Sheets connector?
No. The route is Open Exchange Rates, then a data warehouse, then Google Sheets. An Open Exchange Rates data mart of the Connector type loads the rates into your data warehouse, and Google Sheets reads them from there through a report on the data mart or through the OWOX Data Marts extension.
What do I need to connect Open Exchange Rates?
An Open Exchange Rates account and its App ID, which you copy from the App IDs page of your dashboard. Open Exchange Rates uses an API key, so there is no sign-in step.
Which Open Exchange Rates data can I load?
You choose the endpoint in the data mart: the latest rates, historical rates for a day, the list of currencies, or a time series over a date range. The default base currency is USD, and which base currencies you can use depends on your Open Exchange Rates plan.
How often do exchange rates refresh?
You set it with triggers. A Connector Run trigger loads new rates into your data warehouse daily, weekly, monthly or on an interval, and a Report Run trigger pushes the result to your Google Sheets report. A manual backfill loads a custom date range once.
Can I use exchange rates in Excel?
Yes. Once the rates are in your data warehouse, the OWOX Excel add-in can read the same data mart, so Excel and Google Sheets show the same numbers.
Is the Open Exchange Rates connector free?
OWOX Data Marts is free and open source when you run it yourself, including the Open Exchange Rates connector. For OWOX Cloud, see the pricing page. Open Exchange Rates sets its own plans and request limits.
