Fixer vs Open Exchange Rates: choose by quota, features, and base currency
Open Exchange Rates gives a prototype ten times the free monthly allowance. Fixer becomes more interesting when its Basic conversion endpoint matches the job. The deciding input is the request you need to run, not the longer feature list.
Start with one question: are you reading a USD-based snapshot, converting between arbitrary currencies, or loading a historical series? The answer points to a different plan in each service. These limits were checked against the vendors’ public pricing pages on September 1, 2026; recheck them before purchase.
Short answer
For a small USD-based latest-rate job, Open Exchange Rates is the easier free test: 1,000 requests per month rather than 100. If the application must convert arbitrary pairs on the server, Fixer lists conversion on Basic while Open Exchange Rates lists it on Unlimited. Historical charts need a separate check because both vendors distinguish single-date history from time-series access.
The numbers below come from Fixer’s pricing page, Fixer’s documentation, Open Exchange Rates’ current plan page, and its API documentation. Last verified September 1, 2026.
Public plan comparison
Fixer’s current public pricing page does not clearly state a Free-plan base-currency restriction. Open Exchange Rates states that USD is the Free-plan base and that paid plans add other bases. Verify the exact Fixer rule in its current account documentation before depending on EUR or another base.
The answer changes with the workload
The quota number is not the request count
A dashboard that contacts the provider on every page view can exhaust either free plan. Count scheduled runs, retries, preview deployments, and production separately. Then fetch upstream once, cache the result on your server, and let browsers read your cached copy. Neither provider key belongs in client-side code.
Test the paid boundary you actually need
Read Fixer's endpoint documentation and Open Exchange Rates' API reference for authentication, response fields, dates, and errors. Their paid conversion requests are also shaped differently: Fixer documents https://data.fixer.io/api/convert?access_key=YOUR_ACCESS_KEY&from=GBP&to=JPY&amount=25; Open Exchange Rates documents https://openexchangerates.org/api/convert/25/GBP/JPY?app_id=YOUR_APP_ID. Run your exact pair through the paid endpoint, save the response as a fixture, and record the plan and verification date beside it.
If neither result fits, run the same request against exchangerate.dev's API documentation and pricing. Keep the provider call in one server-side module so a changed quota or endpoint does not force edits throughout the product.