currencylayer Alternative: Real-Time FX, Bid/Ask, and Quotas
Compare update cadence, bid/ask quotes, quota models, and support for teams stuck on currencylayer's lower tiers.
A developer signs up for currencylayer, wires the live endpoint, and ships a rate widget. Weeks later finance notices that the on-screen figure for EUR/USD live rate lags a bank or broker screen by most of an hour. That gap is rarely a client bug. On free and lower paid currencylayer tiers, refresh is typically hourly or ten minutes, even though the path is named live. The payload is also a single mid-market number: no bid, no ask, and no spread, which leaves a pricing engine guessing how to quote a customer.
Teams hunting a currencylayer alternative are usually not asking for more ISO codes. They need faster updates, dealing-style quotes, and a commercial model that does not punish a dashboard for polling. Live-Rates is aimed at that live-pricing job. currencylayer remains a strong fit for historical research and broad currency coverage. The useful comparison is cadence, quote shape, quotas, and support.
Key takeaways
- currencylayer's live endpoint is mid-only; free and lower paid plans typically refresh hourly or about every ten minutes.
- Professional-style currencylayer plans advertise 60-second updates and still do not supply bid and ask.
- currencylayer is strong on breadth (on the order of 168 currencies) and on historical, convert, timeframe, and change endpoints.
- Live-Rates focuses on real-time FX with bid/ask for dashboards, checkout conversion, and in-app pricing.
- Quota design differs: monthly HTTP caps versus a subscription sized for continuous live use.
The live endpoint is a snapshot, not a stream
currencylayer, an apilayer product, is popular because the REST surface is small. A typical live response includes a Unix timestamp, a source currency (often USD on lower plans), and a flat quotes map such as USDEUR. That shape is easy to cache and easy to teach. The naming is the trap: live means the latest snapshot the current plan is entitled to, not the last print in the market.
Lower-tier friction shows up in the product, not in HTTP status codes. A SaaS invoice converter looks stale next to a treasury screen. A travel checkout prices FX from a rate that moved 40 minutes ago. A job that polls every 15 seconds burns the monthly request cap while the underlying rate still only moves on the hour. Source-currency lock compounds this. When USD is the only allowed source, EUR/GBP becomes a cross the application must compute and own.
Update cadence compared
Published currencylayer cadence has been consistent in vendor docs even as marketplace packaging changed. Free access is built around hourly updates. Lower paid plans typically step to about ten minutes. Professional and enterprise-style plans advertise 60-second updates. Sixty seconds helps accounting-style displays. It remains a long interval for a volatile EUR/USD session, and it remains poll-and-wait rather than a market feed.
Live-Rates is positioned the other way: real-time foreign exchange as the core product, not an upsell from hourly snapshots. Freshness still has to match the SLA—checkout FX, in-app conversion, and dealer-style boards differ—but a lower-tier currencylayer key should not be expected to behave like a dealing board. Cadence is also coupled to quota: a plan that allows 60-second data still meters each HTTP call, so a multi-pair UI can be both slow and request-hungry.
Side-by-side: cadence, quotes, quotas, support
List prices move and should be read on each vendor's current checkout page. The structural differences below do not depend on a promotional rate.
| Dimension | currencylayer (lower and mid tiers) | Live-Rates |
|---|---|---|
| Primary job | Broad FX snapshots, conversion, and history | Real-time FX for live pricing and displays |
| Update cadence | Hourly on free; typically ~10-minute on lower paid; 60-second on professional/enterprise-style plans | Market-focused live quotes, not hourly snapshots |
| Bid / ask | Single mid-market rate per pair | Bid and ask as first-class quote fields |
| Currency breadth | On the order of 168 world currencies | Emphasis on liquid pairs used in live dealing and checkout |
| Historical endpoints | historical, convert, timeframe, and change; many series documented from 1999 | Real-time focus; not a drop-in historical warehouse |
| Quota model | Monthly HTTP request buckets that scale by plan | Subscription access for continuous live use |
| Support | Public docs plus ticket support that improves on higher plans | Commercial plans with product support via subscription |
Bid and ask versus mid-only quotes
A currencylayer quote is one number per pair. That mid is appropriate for last-period reporting, a blog widget, or converting a ledger at a single reference rate. It is the wrong shape for indicating a customer rate, showing a dealing spread, or detecting a wide market. There is no bid, no ask, and therefore no spread to display or to pad.
An API that returns bid and ask lets the application choose: show mid for information, show ask for a buy-side checkout, or apply a treasury margin on top of a true two-way. The illustrative JSON below is the data shape developers need once they leave mid-only snapshots. Inverting a currencylayer mid does not create a real spread; a synthetic margin on a stale mid is still a stale quote.
{
"pair": "EURUSD",
"bid": 1.08421,
"ask": 1.08427,
"mid": 1.08424,
"timestamp": "2026-09-28T14:22:01Z"
}Quotas, 168 currencies, and historical endpoints
currencylayer meters monthly HTTP requests. Caps rise with the plan; a free tier exists for evaluation. Exact ceilings change with packaging, so they should be read on the vendor's current plan sheet rather than copied from an old tutorial. The operational fact is stable: polling frequency, pair count, and extra environments all consume the same bucket. A chatty staging server can exhaust a lower-tier cap without a single production user.
Where currencylayer still wins
Coverage is on the order of 168 world currencies, including names a G10 live feed will never list. Historical, convert, timeframe, and change endpoints are first-class, with many series documented back to 1999. If the job is a dated USD/ZAR print or a 90-day percentage move across a long tail of currencies, currencylayer is built for it. Live-Rates does not pretend to replace that research surface. It focuses on live rates for the pairs that drive pricing right now. Teams that need both often keep a historical API and add a real-time feed rather than forcing one vendor to do both jobs poorly.
Support, integration, and a practical split
currencylayer documentation is public and detailed, which is why so many MVPs start there. Human support is ticket-based and plan-gated. Lower tiers should treat answers as best-effort; named commercial SLAs, when offered, sit on higher enterprise-style plans. That model is normal for a high-volume data API. It is painful when the incident is that rates look an hour old and the plan itself is the reason.
Live-Rates sells subscription access for ongoing live consumption instead of a one-size monthly call bucket. Integration on either side is ordinary JSON over HTTPS. Switching is a mapping exercise—mid versus bid/ask, source-quoted versus pair-quoted—not a rewrite of risk systems. If the product is a live board, checkout FX, or in-app conversion, prioritize cadence and two-way quotes. If the product is a research extract or a 168-currency converter, currencylayer's historical endpoints still earn their keep.
FAQ
Does currencylayer provide real-time rates on lower tiers?
No. Free access typically refreshes about hourly, and lower paid plans are commonly documented at about ten minutes. The live endpoint returns the latest snapshot the plan allows, not a tick-by-tick feed. Professional-style plans advertise 60-second updates.
Does currencylayer include bid and ask prices?
Standard currencylayer quotes are a single mid-market rate per pair. Bid, ask, and spread are not part of the usual live payload, which is why dealing-style UIs look for a real-time alternative.
When is currencylayer still the better API?
When the workload is currency breadth, historical dates, conversions, or change and timeframe queries across a large set of world currencies. Live-Rates is a poor substitute for a multi-year research extract; currencylayer is a poor substitute for real-time bid/ask.
How do request quotas compare?
currencylayer meters monthly HTTP requests, so polling frequency and pair count both consume the cap. Live-Rates sells subscription access aimed at continuous live use; exact entitlements belong on the plans page rather than a copied request number.
Can a team keep currencylayer for history and add Live-Rates for live quotes?
Yes. That split is common: currencylayer or another historical store for backfill and reporting, Live-Rates for the on-screen or in-checkout rate. The two jobs do not have to share one vendor.
Ready to leave hourly snapshots? Compare options on the Live-Rates plans page and inspect a liquid pair such as the EUR/USD live rate before wiring the first request.
Real-time forex rates for your app
Live bid/ask for the pairs you need, updated every second, with a simple JSON & XML API. Try it free for 7 days.