Open Exchange Rates
Open Exchange Rates provides a JSON REST API delivering real-time and historical currency exchange rates for 200+ currencies, updated hourly, using a USD base on the free tier.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
API key in query parameter is a weak auth pattern that risks key exposure in server logs and browser history; no scope control or key rotation mechanism documented.
⚡ Reliability
Best When
Building a product that needs reliable, broad currency coverage (200+ currencies) with a simple App ID auth model and predictable hourly update cadence for display or conversion purposes.
Avoid When
You need official central bank rates (use Frankfurter for ECB data), live interbank rates, or sub-minute update frequency.
Use Cases
- • Convert transaction amounts between currencies in financial reporting pipelines using the latest or historical rates
- • Build currency conversion widgets or pricing displays that pull live rates on a schedule
- • Backfill historical FX rates for accounting reconciliation using the historical endpoint
- • Monitor rate movements by polling the API periodically and alerting when a threshold is crossed
- • Populate multi-currency product pricing tables by fetching rates and computing prices in all supported currencies
Not For
- • Real-time trading or arbitrage — rates are aggregated and updated hourly, not tick-by-tick
- • Official financial or regulatory reporting requiring central bank certified rates
- • Sub-second rate freshness requirements — use a dedicated FX data feed for high-frequency needs
Interface
Authentication
App ID passed as a query parameter (app_id). No header-based auth option. Free tier restricts base currency to USD; paid tiers unlock arbitrary base currency conversion.
Pricing
Free tier is usable for light workloads. The inability to change base currency on the free tier is a significant limitation for non-USD applications.
Agent Metadata
Known Gotchas
- ⚠ Free tier is locked to USD as the base currency — do not attempt to use other base currencies without a paid plan or the API will return an error
- ⚠ Rates update hourly; caching aggressively is recommended to avoid burning request quota on repeated identical calls
- ⚠ The /latest endpoint returns all currencies in a single response — avoid per-currency polling loops that multiply API calls unnecessarily
- ⚠ Historical rates endpoint requires a date in YYYY-MM-DD format; requesting future dates returns an error not an empty result
- ⚠ App ID is passed in the URL as a query parameter — take care not to log raw request URLs in production systems as this exposes the key
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for Open Exchange Rates.
Scores are editorial opinions as of 2026-03-06.