canonical: https://jentic.com/apis/openexchangerates.org/openexchangerates

# Open Exchange Rates API

The Open Exchange Rates API returns real-time and historical foreign exchange rates for more than 170 currencies, published against a USD base. It serves spot rates from the latest feed, dated historical rates, time-series ranges between two dates, and a direct value conversion between any two currency codes. A currencies listing supplies the full set of supported codes and names, and a usage endpoint reports the calls remaining on your plan.

## For AI agents

Fetch live and historical FX rates for 170+ currencies, convert an amount between two currencies, and check your plan usage. Returns JSON keyed by ISO currency code.

## Scope

Does not handle payments, money transfers, or stock market data. Use for currency exchange rate data only.

## Capabilities

- Retrieve the latest exchange rates for 170+ currencies against a USD or custom base
- Look up historical exchange rates for any past date
- Pull a time series of daily rates between a start and end date
- Convert a specific amount from one currency code to another
- List every supported currency code and read remaining calls on your plan

## Use cases

### AI Agent Currency Conversion

An AI agent handling invoices or quotes can convert amounts between currencies on demand through Jentic. The agent supplies the amount and the source and target currency codes, then receives the converted value computed from current rates, without the developer wiring the App ID or parsing the rates feed by hand.

Example prompt: Call GET `/convert/{value}/{from}/{to}` to convert 100 USD to EUR and return the converted amount

### Multi-Currency Pricing

Online stores and SaaS billing systems localize prices by reading the latest rates and applying them to a base currency. The latest-rates feed returns every supported currency against a chosen base, so a pricing service can refresh its conversion table on a schedule and display local prices to each customer.

Example prompt: Call GET /latest.json with base set to EUR and read the USD and GBP rates for a pricing table

### Historical Rate Analysis

Finance and reporting tools reconcile past transactions at the rate that applied on the transaction date. The historical endpoint returns rates for a specific day, and the time-series endpoint returns a range, so an agent can rebuild the exact conversion used on any date or chart how a currency moved over a period.

Example prompt: Call GET `/historical/2024-03-01.json` with symbols set to EUR,GBP to read the rates for that date

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/latest.json` | Latest exchange rates for all or specified currencies |
| GET | `/historical/{date}.json` | Historical exchange rates for a specific date |
| GET | `/time-series.json` | Exchange rates across a date range |
| GET | `/convert/{value}/{from}/{to}` | Convert a value between two currencies |
| GET | `/currencies.json` | List supported currency codes and names |
| GET | `/usage.json` | Plan usage statistics for your App ID |

## Key resources

- **Rates** — Latest, historical, and time-series exchange rate feeds
- **Conversion** — Direct value conversion between two currency codes
- **Currencies** — Supported currency codes and names, plus plan usage

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 45 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 93 / 100
  - Developer Experience & Jentic Compatibility: 59 / 100
  - AI-Readiness & Agent Experience: 43 / 100
  - Agent Usability: 94 / 100
  - Security: 15 / 100
  - AI Discoverability: 50 / 100
- **View full report:** https://jentic.com/apis/openexchangerates.org/openexchangerates/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Open Exchange Rates API by hand means passing your App ID as a query parameter on every call, choosing a base currency, and parsing the rates feed yourself. Through Jentic you install once, import Open Exchange Rates from the API Directory, store the App ID once, and your agent calls it.
- **Permission scoping:** This API is read-only, so a rule can bound your agent to the specific rate lookups it needs, such as the latest-rates and conversion operations, and exclude the rest. You choose the operation set, so the agent can read rates but cannot reach anything you did not grant.
- **Credential handling:** Your App ID 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 USD to EUR' or 'get historical exchange rates', and Jentic returns the matching Open Exchange Rates operation with its input schema so the agent calls the right endpoint without reading the reference docs.

## Related APIs

- **currencylayer** — Real-time and historical FX rates with a similar query-parameter API key model
- **apilayer** — Marketplace of data APIs that includes currency and exchange-rate feeds
- **TaxRates.io** — Sales-tax and VAT rate lookups to pair with currency conversion

## FAQ

### What authentication does the Open Exchange Rates API use?

The Open Exchange Rates API authenticates with an App ID passed as the `app_id` query parameter on every request, per its OpenAPI spec. Through Jentic the App ID is stored encrypted by your own Jentic One instance and injected when a call runs, so it never appears in the agent's prompt or logs.

### Can I convert between two currencies with the Open Exchange Rates API?

Yes. The conversion operation takes an amount and a source and target currency code in the URL path and returns the converted value computed from current rates. You can also read the latest or historical rates and apply them yourself for bulk conversions.

### What are the rate limits for the Open Exchange Rates API?

The OpenAPI spec does not specify rate limits; your request allowance depends on your subscription plan. The usage operation reports the calls remaining on your plan, and current limits are listed in the vendor documentation at https://docs.openexchangerates.org/.

### How do I fetch exchange rates with the Open Exchange Rates API through Jentic?

Install Jentic One with `curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh`, import Open Exchange Rates from the API Directory, and store your App ID once. Your agent then searches for an intent such as 'get the latest exchange rates', and Jentic returns the matching operation with its input schema. To run it on your own infrastructure, install Jentic One from its GitHub repo.

### Is there an Open Exchange Rates MCP server?

You do not need an MCP server to give your agent the Open Exchange Rates API. Jentic connects it directly from the API Directory: import the API, store your App ID once, and your agent calls the rate and conversion operations on demand. That keeps your agent's context free of an extra server's tool definitions.

### Can I limit what my agent is allowed to do with the Open Exchange Rates API?

Yes. Every operation in this API is a read, so you can allow just the ones the agent needs, such as reading the latest rates and converting a value, while leaving out the currencies listing or the plan-usage endpoint. Because you run Jentic One yourself, the agent holds no access beyond the read operations you grant, and every call it makes is logged.
