canonical: https://jentic.com/apis/exchangeratesapi.io/exchangeratesapi-io

# Exchangeratesapi.io API

exchangeratesapi.io delivers real-time and historical foreign-exchange data for 168+ world currencies and precious metals through a clean REST API. The spec covers latest rates, supported symbols, conversions between two currencies, historical rates by date, time-series ranges, and rate fluctuation summaries. Agents use it for both live pricing and historical reporting workflows.

## For AI agents

Look up live and historical FX rates, convert between currencies, and pull time-series data for 168+ currencies and precious metals.

## Scope

Does not handle live order placement, crypto pairs, or trading execution - use for FX rate lookups, conversion, historical data, and time-series only.

## Capabilities

- Fetch the latest exchange rates against a chosen base currency
- List the full set of supported currency and metal symbols
- Convert an amount from one currency to another in a single call
- Retrieve historical rates for a specific past date
- Pull a time-series of rates between two dates for charting and analysis
- Fetch a rate-fluctuation summary showing change and percentage change over a window

## Use cases

### Historical rate reporting for accounting

An accounting agent reconciles a foreign-currency invoice from last year. It calls /{date} with the invoice's issue date and the base currency, retrieves the historical rate, and books the corresponding domestic-currency value into the ledger - no manual rate hunting required.

Example prompt: Call GET /2024-03-15 with base USD and symbols=GBP, then book the GBP-to-USD rate against the corresponding invoice.

### Quarter-over-quarter FX trend chart

A finance dashboard renders a chart of EUR-to-USD movements over the previous quarter. The agent calls /timeseries with start and end dates, returns the daily rate series, and feeds it into a chart component for the FX commentary section of a board pack.

Example prompt: Call GET /timeseries with start_date=2026-01-01, end_date=2026-03-31, base=EUR, and symbols=USD, then return the daily rate series.

### Currency conversion in a price-display widget

A SaaS pricing page lets visitors switch the displayed price into their local currency. The frontend calls a backend agent that uses /convert to compute the local amount once per session and caches the result for the rest of the visit, keeping the widget snappy.

Example prompt: Call GET /convert?from=USD&to=EUR&amount=49.99, return the converted amount, and cache it for 5 minutes per user session.

### AI agent FX lookup via Jentic

An AI assistant integrated through Jentic answers natural-language FX questions like 'what was 1 USD in JPY on the 4th of July?' by calling the historical endpoint. Jentic isolates the API key in your Jentic One instance and exposes only the operation schema to the agent.

Example prompt: Use Jentic to search for 'historical exchange rate', load the GET /{date} operation, and return the USD-to-JPY rate for 2024-07-04.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | /latest | Fetch the latest exchange rates |
| GET | /symbols | List supported currency and metal symbols |
| GET | /convert | Convert an amount between two currencies |
| GET | /{date} | Fetch historical rates for a specific date |
| GET | /timeseries | Fetch daily rates across a date range |
| GET | /fluctuation | Fetch rate fluctuation over a window |

## Key resources

- **Latest rates** — Real-time exchange rates against a chosen base
- **Symbols** — Full list of supported currency and metal symbols
- **Conversion** — Direct two-currency conversion endpoint
- **Historical rates** — Rates for a specific past date
- **Time-series** — Daily rates across a date range
- **Fluctuation** — Change and percentage change over a window

## Why Jentic

- **Setup:** Wiring exchangeratesapi.io by hand means passing its access_key on every query, and tracking the latest, convert, historical, time-series, and fluctuation endpoints yourself. Through Jentic you install once, import exchangeratesapi.io from the API Directory, store the API key once, and your agent calls it.
- **Permission scoping:** exchangeratesapi.io takes its parameters in the query string rather than resource paths, so scope the agent to the operations it needs, such as latest rates, convert, or timeseries. These are read operations, so the agent fetches rate data and can perform no writes.
- **Credential handling:** Your exchangeratesapi.io API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'convert currency' or 'get a historical exchange rate', and Jentic returns the matching exchangeratesapi.io operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **ExchangeRate-API** — Free, unauthenticated latest-rates endpoint with no historical data
- **CurrencyAPI** — FX rates with crypto coverage and historical data
- **APILayer** — API marketplace that hosts FX and many other data APIs under one key

## FAQ

### What authentication does the exchangeratesapi.io API use?

exchangeratesapi.io uses API key authentication. Through Jentic, the key is stored encrypted in your Jentic One instance and replaced with a scoped token at call time, so the raw key never enters the agent's context.

### Can I get historical exchange rates from this API?

Yes. GET /{date} returns rates for a specific past date, GET /timeseries returns daily rates across a range, and GET /fluctuation returns change and percentage change over a window - covering both point-in-time and trend queries.

### How do I convert one currency to another in a single call?

Use GET /convert with from, to, and amount query parameters. The response includes the converted amount and the rate used, removing the need to call /latest and compute the multiplication client-side.

### What are the rate limits for exchangeratesapi.io?

Rate limits depend on the subscription tier and are enforced at the gateway. The OpenAPI spec does not pin specific numbers, so agents should handle 429 responses with backoff and respect any Retry-After header returned by the service.

### How do I fetch a time-series of rates through Jentic?

Run pip install jentic, search for 'fx rate timeseries', load the GET /timeseries operation, and execute with start_date, end_date, base, and symbols. Jentic returns the parsed payload so the agent can chart or report on it.

### Does exchangeratesapi.io support precious metals?

Yes. The /symbols endpoint includes metal symbols such as XAU (gold) and XAG (silver). They can be used as base or target in /latest, /{date}, and /timeseries calls just like a regular currency code.

### Can I limit what my agent is allowed to do with the exchangeratesapi.io API?

Yes. Because you run Jentic One yourself, your own rules decide which operations and credentials the agent may use, so you can scope it to only the endpoints it needs, such as GET /latest, GET /convert, or GET /timeseries, and withhold the rest. Every exchangeratesapi.io operation is a read-only GET that takes its parameters in the query string rather than resource paths, so a scoped agent can fetch rate data and perform no writes. Your API key stays with your Jentic One instance and is injected only when an allowed operation runs.
