Tutorial/n8n quickstart

Get exchange rates in n8n with the HTTP Request node

Build a small n8n workflow that fetches current FX rates, exposes each rate as an expression, and runs on a schedule. No community node is required.

ERexchangerate.dev·Aug 5, 2026·4 min read

The useful n8n setup is only three nodes: a Schedule Trigger, an HTTP Request, and whatever should receive the rates next. Start with an anonymous request so you can see the payload, then add a free API key as a header credential before you activate the workflow. The example below fetches EUR, GBP, and JPY against USD.

Key points
Use n8n’s built-in HTTP Request node. There is nothing extra to install.
A single /v1/latest/USD?symbols=EUR,GBP,JPY request returns all three rates.
Read values with expressions such as {{$json.rates.EUR}} and keep the freshness fields beside them.
Store the API key in a Header Auth credential instead of typing it into every node.
An hourly workflow makes about 720 calls in a 30-day month, well inside the 10,000-call free tier.

Create the three-node workflow

Add Schedule Trigger → HTTP Request → Edit Fields. During setup, Manual Trigger is handy because you can run the flow on demand. Edit Fields is optional, but it gives the next node a tidy set of names instead of the full API payload.

Configure the HTTP Request node

Choose GET, paste the URL below, and set the response format to JSON. The symbols query asks for three currencies in one call. Click Execute step and inspect the output before wiring up the destination.

curlcopy
curl "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP,JPY"

Turn the response into named fields

In Edit Fields, switch each value to Expression and add the fields below. Keep source and data_updated_at; they are what explain a weekend value or a daily-reference currency later.

n8n · expressionscopy
EUR  {{$json.rates.EUR}}
GBP  {{$json.rates.GBP}}
JPY  {{$json.rates.JPY}}
source  {{$json.source}}
updated  {{$json.data_updated_at}}

Add the API key as a credential

Create a free key at exchangerate.dev/signup, then add a Header Auth credential in n8n. Use Authorization as the name and Bearer exr_live_your_key_here as the value. Select that credential in the HTTP Request node.

Keep credentials out of workflow exports
n8n credentials are stored separately from node parameters. That matters when you export a workflow JSON or send it to a teammate: the workflow keeps the credential reference, not the secret value.

Choose a schedule that matches the job

For a daily finance sheet, run once a day. For an operational dashboard, hourly is often enough and uses about 720 calls in a 30-day month. Put every needed currency in one symbols list instead of creating one HTTP Request node per currency.

Indicative rates, not a settlement price
Use these values for automations, estimates, reporting, and analytics. Do not use them as an executable dealing quote or to settle a regulated transaction.
ER
exchangerate.dev
Integration guides for developers.

Keep reading

ReferenceExchange rate API quickstartRead TutorialLive exchange rates in Google SheetsRead TutorialLoad exchange rates into Power BIRead
More ComparisonsFixer vs exchangerate.devOpen Exchange Rates vs exchangerate.devCurrencylayer vs exchangerate.devCurrencylayer vs ExchangeRate-API
LearnReading source and market_session in your pipelineIndicative vs executable FX rates: what a rates API actually gives youECB reference rates, explained
Live RatesEUR/USDGBP/USDUSD/JPY