Forex API for Developers — Fast, Free, REST-Based
A forex API built for developers: real-time mid-market rates, free tier, official SDKs for JavaScript, Python, PHP, and React, and predictable EUR pricing.
If you're a developer adding currency conversion to a product, you don't need an enterprise sales cycle, an XML feed, or a 30-page PDF spec. You need a clean REST endpoint, a free key, and code samples that compile on the first try. That's what AllRatesToday is built for.
What you get
- Real-time mid-market rates sourced from Reuters/Refinitiv and interbank feeds.
- 160+ currencies, base-currency switching on every plan.
- Free tier with HTTPS — 300 requests/month, no credit card.
- Official SDKs for JavaScript, Python, PHP, and React.
- Status page at status.allratestoday.com, 99.99% uptime target.
The endpoints you'll actually use
GET /api/rate — single pair (public)
curl 'https://allratestoday.com/api/rate?source=USD&target=EUR'
{ "rate": 0.92145, "source": "refinitiv" } GET /api/v1/rates — multi-target, authenticated
curl 'https://allratestoday.com/api/v1/rates?source=USD&target=EUR,GBP,JPY' \
-H 'Authorization: Bearer art_live_xxxxx'
[
{ "rate": 0.924, "source": "USD", "target": "EUR", "time": "..." },
{ "rate": 0.791, "source": "USD", "target": "GBP", "time": "..." },
{ "rate": 154.21, "source": "USD", "target": "JPY", "time": "..." }
] GET /api/historical-rates — historical (authenticated)
curl 'https://allratestoday.com/api/historical-rates?source=USD&target=INR&period=7d' \
-H 'Authorization: Bearer art_live_xxxxx'
# period accepts 1d (hourly), 7d, 30d, or 1y SDK quickstarts
JavaScript / TypeScript
import AllRatesToday from '@allratestoday/sdk';
const client = new AllRatesToday({ apiKey: process.env.ALLRATES_API_KEY });
const { rates } = await client.latest({ base: 'USD', symbols: ['EUR', 'GBP'] }); Python
from allratestoday import AllRatesToday
client = AllRatesToday(api_key=os.environ['ALLRATES_API_KEY'])
data = client.latest(base='USD', symbols=['EUR', 'GBP']) PHP
use AllRatesToday\AllRatesToday;
$client = new AllRatesToday(getenv('ALLRATES_API_KEY'));
$data = $client->latest(['base' => 'USD', 'symbols' => ['EUR', 'GBP']]); Picking the right plan
- Side project / prototype: Free — 300 req/mo is plenty.
- Indie SaaS, MVP: Small (€4.99) — 5,000 req/mo with historical and commercial use.
- Production app: Medium (€9.99) — 10,000 req/mo, no rate limit.
- High-traffic platform: Large (€49.99) — 100,000 req/mo, 3 keys.
FAQ
Do I need a credit card to start?
No. The free tier is fully usable without payment details.
Can I use it from a browser?
Yes — HTTPS by default. For client-side use, restrict your key to specific origins in the dashboard.
Is the data good enough for fintech?
Yes — institutional providers, mid-market rates. For settlement-grade workflows you'd typically still pair this with a regulated FX provider.