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

Areacurrencyapi.comCurrencyCore
Currencies171 fiat, plus 16 crypto and 4 metals160 fiat currencies
HistoryDaily history back to 1999 on every plan1949 parity for GBP/USD and USD/INR, daily majors from 1971, EUR pairs from 1999; Free has the last 30 days
Free quota300 requests/mo, private use, 10 requests/min1,000 requests/mo, 60/min
Entry paid planSmall, $12.99/mo billed monthly for 15,000 requestsStarter, $9/mo for 50,000 requests, full history
Authapikey header or query parameterAuthorization: Bearer or x-api-key
BaseAny supported currency, USD by defaultBase in the path, for example /v1/rates/EUR
CadenceDaily on Free, hourly on Small, 15 minutes on Pro, 60 seconds from MediumCentral-bank reference rates polled hourly, daily fixings
ConversionStarts on Small; not included on Free/v1/convert on every plan
AnalyticsOHLC, fluctuation, averages, and official central bank ratesVolatility, 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&currencies=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.comCurrencyCoreNote
/v3/latest?base_currency=USD&currencies=EUR,INR/v1/rates/USDNo currencies filter; read the codes you need from rates
/v3/historical?date=2026-11-10&base_currency=USD/v1/rates/USD?date=2026-11-10One dated snapshot
/v3/convert?value=100&from=USD&to=INR/v1/convert?from=USD&to=INR&amount=100value 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

  1. Inventory every apikey usage, including query strings in cron jobs and notebooks.
  2. Create a CurrencyCore organization and a cc_test_ key.
  3. Map /v3/latest to /v1/rates/{base} and filter codes locally.
  4. Map /v3/convert to /v1/convert and read results[0].result.
  5. Map /v3/range to /v1/history, one currency per call.
  6. Run both APIs for a day and compare the same dates, including a weekend.
  7. Watch 401, 403 on the Free history window, and 429, 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.