Integrations
Migrate from CurrencyAPI
Move a currencyapi.com v3 integration to CurrencyCore: apikey to bearer auth, latest, historical, convert and range mapping, response envelope changes, and cutover checks.
currencyapi.com authenticates with an apikey header or query parameter and wraps every response in a data object. CurrencyCore uses a bearer header and returns either a flat rates map or a results array. Currency codes and decimal arithmetic survive the move; key placement and response unwrapping do not.
Public currencyapi.com pricing and coverage below were checked on 2026-11-10. Verify the vendor’s current plan before you budget.
What changes at a glance
| Area | currencyapi.com | CurrencyCore |
|---|---|---|
| Currencies | 171 fiat, plus 16 crypto and 4 metals | 160 fiat currencies |
| History | Daily history back to 1999 on every plan | 1949 parity for GBP/USD and USD/INR, daily majors from 1971, EUR pairs from 1999; Free has the last 30 days |
| Free quota | 300 requests/mo, private use, 10 requests/min | 1,000 requests/mo, 60/min |
| Entry paid plan | Small, $12.99/mo billed monthly for 15,000 requests | Starter, $9/mo for 50,000 requests, full history |
| Auth | apikey header or query parameter | Authorization: Bearer or x-api-key |
| Base | Any supported currency, USD by default | Base in the path, for example /v1/rates/EUR |
| Cadence | Daily on Free, hourly on Small, 15 minutes on Pro, 60 seconds from Medium | Central-bank reference rates polled hourly, daily fixings |
| Conversion | Starts on Small; not included on Free | /v1/convert on every plan |
| Analytics | OHLC, fluctuation, averages, and official central bank rates | Volatility, correlation, drawdown, safe haven, and more on Growth |
1. Move the key out of the URL
# Before
curl "https://api.currencyapi.com/v3/latest?apikey=YOUR_KEY&base_currency=USD¤cies=EUR,INR"
# After
curl "https://api.currency-core.com/v1/rates/USD" \
-H "Authorization: Bearer cc_test_your_key"
currencyapi.com accepts the key in an apikey header or query parameter. CurrencyCore accepts only headers. Remove the query form from URLs and logs, and use a test key until the integration is stable.
2. Map endpoints
| currencyapi.com | CurrencyCore | Note |
|---|---|---|
/v3/latest?base_currency=USD¤cies=EUR,INR | /v1/rates/USD | No currencies filter; read the codes you need from rates |
/v3/historical?date=2026-11-10&base_currency=USD | /v1/rates/USD?date=2026-11-10 | One dated snapshot |
/v3/convert?value=100&from=USD&to=INR | /v1/convert?from=USD&to=INR&amount=100 | value becomes amount |
/v3/range?datetime_start=&datetime_end=&base_currency=USD | /v1/history?currency=INR&base=USD&from=&to= | One currency per call, inclusive UTC dates |
The base code stays; only its location changes: base_currency becomes the path segment on /v1/rates or the base parameter on /v1/history.
3. Unwrap the v3 envelope
A currencyapi.com latest response nests one object per code:
{
"meta": { "last_updated_at": "2026-11-10T23:59:59Z" },
"data": {
"EUR": { "code": "EUR", "value": 0.8924 },
"INR": { "code": "INR", "value": 94.13 }
}
}
CurrencyCore returns a flat map:
{ "base": "USD", "date": "2026-11-10", "rates": { "USD": 1, "EUR": 0.8924, "INR": 94.13 } }
For conversions, v3 returns data keyed by target with a value. CurrencyCore returns a results array with to, result, and rate. For range requests, v3 returns a date-keyed data object; /v1/history returns a date-keyed rates map of numbers. Update the readers, not the rounding rules. meta.last_updated_at has no direct equivalent; use date, plus asOf on dated reads.
4. Cut over
- Inventory every
apikeyusage, including query strings in cron jobs and notebooks. - Create a CurrencyCore organization and a
cc_test_key. - Map
/v3/latestto/v1/rates/{base}and filter codes locally. - Map
/v3/convertto/v1/convertand readresults[0].result. - Map
/v3/rangeto/v1/history, one currency per call. - Run both APIs for a day and compare the same dates, including a weekend.
- Watch
401,403on the Free history window, and429, then revoke the old key.
When CurrencyAPI is the better fit
currencyapi.com includes daily history back to 1999 on its 300-request Free tier, which is simpler if deep history on a tiny quota is the main requirement. It also covers 16 crypto and 4 metals, while CurrencyCore is fiat only, and sells 60-second updates from Medium. Stay if you need those assets, that cadence, or the dashboard. Move for PPP, 1949 parity, or Growth analytics.