Currency Converter avatar

Currency Converter

Pricing

from $4.00 / 1,000 results

Go to Apify Store
Currency Converter

Currency Converter

Convert currencies & compare live rates, free by default (Frankfurter, open.er-api.com). Optional support for your own exchangeratesapi.io, fixer.io, openexchangerates.org or currencylayer.com key. Multi-currency, historical dates, source comparison.

Pricing

from $4.00 / 1,000 results

Rating

0.0

(0)

Developer

Pinto Studio

Pinto Studio

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

6 days ago

Last modified

Categories

Share

Currency Converter & Live Exchange Rate API

Convert currencies and compare live exchange rates with a free, no-signup Apify Actor and API. Works out of the box using free sources (Frankfurter/ECB and open.er-api.com), and can also pull rates from your own exchangeratesapi.io, fixer.io, openexchangerates.org or currencylayer.com account. Use it as a one-off Actor run, a scheduled Task, a REST API, or a tool for AI agents via the Apify MCP server.

What does Currency Converter do?

Currency Converter turns a from currency, one or more to currencies, and an amount into up-to-date converted values and exchange rates. It supports:

  • Single or multi-currency conversion (to accepts one currency or a list, e.g. ["EUR", "GBP", "JPY"]).
  • Historical rates for any past date, alongside the latest rate.
  • A compareSources mode that queries every available provider at once and returns the best, worst and spread between them.
  • Six interchangeable rate providers, with automatic fallback when the default free sources are unavailable.
  • A live HTTP API (Standby mode) for on-demand conversions with no cold start, in addition to normal Actor runs.

Why use this instead of a single free API?

Public exchange-rate APIs each have gaps: Frankfurter only covers ECB currencies, open.er-api.com has no historical data, and the free tiers of exchangeratesapi.io, fixer.io, openexchangerates.org and currencylayer.com all force a fixed base currency (EUR or USD) that doesn't match what you actually asked for. This Actor normalizes all of that: it computes correct cross-rates for any from/to pair regardless of a provider's base-currency restriction, and falls back automatically between free sources so a single outage doesn't break your pipeline.

Input parameters

FieldTypeRequiredDescription
fromstringYes3-letter source currency code, e.g. USD.
tostring or arrayYesOne target currency code, or a list of codes, e.g. ["EUR", "GBP"].
amountstring/numberNo (default 1)Amount to convert.
datestringNoHistorical date as YYYY-MM-DD. Omit for the latest rate.
sourcestringNo (default auto)auto, frankfurter, open_er_api, exchangeratesapi, fixer, openexchangerates or currencylayer.
compareSourcesbooleanNoWhen true, queries every provider you have access to and returns the best, worst and spread.
apiKeystring (secret)NoYour own API key, required only for exchangeratesapi.io, fixer.io, openexchangerates.org or currencylayer.com.

Example input

{
"from": "USD",
"to": ["EUR", "GBP"],
"amount": "100",
"compareSources": true
}

Example output (dataset item)

{
"from": "USD",
"to": "EUR",
"amount": 100,
"convertedAmount": 86.27,
"rate": 0.8627,
"source": "frankfurter",
"sourceLabel": "Frankfurter (ECB)",
"date": "latest",
"mode": "single",
"fetchedAt": "2026-09-14T09:01:22.700Z"
}

Every run also writes a run summary to the key-value store under the OUTPUT key, and each dataset item follows the published dataset schema, so results render as a clean table in Apify Console and in any tool that reads Apify's Actor output schema.

Ready-made Tasks

This Actor ships with pre-configured Apify Tasks you can run immediately or trigger via the API without writing any input JSON yourself:

  • Quick USD to EUR Conversion – convert 100 USD to EUR using the best free live rate.
  • Compare All Rate Sources – convert USD to EUR, GBP and JPY and compare every available provider.
  • Multi-Currency Basket from EUR – convert 1000 EUR into USD, GBP, JPY, CHF and CAD in one run.
  • Historical Rate Lookup – look up the USD/EUR rate for a specific past date.

Run it with the Apify API (curl)

curl "https://api.apify.com/v2/acts/pintostudio~currency-converter/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"from": "USD", "to": ["EUR", "GBP"], "amount": "100"}'

Live HTTP API (Standby mode)

This Actor also runs as an always-on web server (Standby mode), so you can call it like a normal REST API without starting a new run each time:

$curl "https://pintostudio--currency-converter.apify.actor/convert?from=USD&to=EUR&amount=100"
$curl "https://pintostudio--currency-converter.apify.actor/convert?from=USD&to=EUR,GBP,JPY&amount=100&compareSources=true"

The endpoint, parameters and response shape are fully described by the Actor's published OpenAPI schema, so any OpenAPI-aware client or code generator can consume it directly.

Use it from AI agents (MCP)

Currency Converter can be called by Claude, ChatGPT and other MCP-compatible agents through the Apify MCP Server, so an agent can convert currencies or fetch live rates as one of its tools instead of guessing at exchange rates from memory:

{
"mcpServers": {
"apify": {
"command": "npx",
"args": ["-y", "@apify/actors-mcp-server", "--actors", "pintostudio/currency-converter"],
"env": {
"APIFY_TOKEN": "YOUR_TOKEN"
}
}
}
}

Frequently asked questions

Is this currency converter free to use?

Yes. The default auto source uses Frankfurter (ECB) and open.er-api.com, both free with no API key and no signup. You only need an API key if you explicitly choose exchangeratesapi, fixer, openexchangerates or currencylayer as the source.

How many currencies does it support?

Frankfurter and open.er-api.com together cover over 160 world currencies. Coverage for a specific pair depends on the provider: Frankfurter is limited to major/ECB-tracked currencies, while open.er-api.com covers a much wider set, which is why auto mode tries Frankfurter first and falls back to open.er-api.com.

Can I get historical exchange rates, not just the latest?

Yes. Pass a date in YYYY-MM-DD format and the Actor returns the rate for that day instead of the latest rate. This works with the free auto source as well as the named providers.

What does compareSources do?

When compareSources is true, the Actor queries every rate provider you have access to (the two free ones, plus any paid provider you supplied an apiKey for) and returns the best rate, the worst rate, the spread between them, and every individual quote, so you can see whether providers disagree.

Why is my exchangeratesapi.io/fixer.io/openexchangerates.org/currencylayer.com result correct even though their free plan only allows one base currency?

Those providers' free tiers force base=EUR (exchangeratesapi.io, fixer.io) or base=USD (openexchangerates.org, currencylayer.com) and ignore any other base you request. This Actor detects that restriction and computes the correct cross-rate for your actual from/to pair from the forced-base data, so you get the right answer even on a free plan.

Can I call this without starting a new Actor run each time?

Yes. The Actor supports Standby mode, which keeps an HTTP server warm so GET /convert requests are answered immediately, the same way you'd call any REST API.

Can AI agents use this Actor as a tool?

Yes. It is compatible with the Apify MCP Server, so agents built with Claude, the OpenAI Agents SDK, LangChain or similar frameworks can call it directly for live currency conversion instead of relying on outdated training data.

What happens if a provider is down or returns an error?

In auto mode, the Actor tries Frankfurter first and automatically falls back to open.er-api.com if it fails or doesn't cover the requested currency pair. If every provider fails for a given target currency, that result row includes an error field instead of stopping the whole run, so the rest of your requested conversions still complete.

Getting your own API key (optional)

You only need this if you want to use a named paid provider instead of the free defaults:

Paste the key into the apiKey input field and set source to the matching provider (or leave compareSources on to use it alongside the free sources automatically).