Free Currency API Exchange Rates API
Current and historical exchange rate data
Current and historical exchange rate data
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/freecurrencyapi-exchange-rates-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Free Currency Currencies Exchange Rates API
description: Free Currency API provides real-time and historical currency exchange rate data for 150+ currencies via a simple REST API. No registration is required for basic usage. The API offers daily-updated current exchange rates, historical rates dating back to 1999, and multi-currency support.
version: '1'
contact:
name: Everapi Support
email: support@everapi.com
url: https://freecurrencyapi.com/contact/
termsOfService: https://freecurrencyapi.com/
servers:
- url: https://api.freecurrencyapi.com/v1
description: Production server
security:
- ApiKeyQuery: []
- ApiKeyHeader: []
tags:
- name: Exchange Rates
description: Current and historical exchange rate data
paths:
/latest:
get:
operationId: getLatestRates
summary: Get latest exchange rates
description: Returns the latest daily exchange rates for 150+ currencies. Data is updated daily using end-of-day exchange rate information.
tags:
- Exchange Rates
parameters:
- $ref: '#/components/parameters/ApiKeyQuery'
- name: base_currency
in: query
required: false
description: The base currency to use for conversion. Defaults to USD if not specified.
schema:
type: string
example: USD
- name: currencies
in: query
required: false
description: A comma-separated list of currency codes to return (e.g., EUR,USD,CAD). Returns all available currencies by default.
schema:
type: string
example: EUR,USD,CAD
responses:
'200':
description: Latest exchange rates
content:
application/json:
schema:
$ref: '#/components/schemas/LatestRatesResponse'
example:
data:
AED: 3.67306
AFN: 91.80254
ALL: 108.22904
AMD: 480.41659
EUR: 0.92145
USD: 1.0
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimitExceeded'
/historical:
get:
operationId: getHistoricalRates
summary: Get historical exchange rates
description: Returns end-of-day exchange rates for a specific historical date. Historical data is available dating back to 1999.
tags:
- Exchange Rates
parameters:
- $ref: '#/components/parameters/ApiKeyQuery'
- name: date
in: query
required: true
description: 'The date to retrieve historical rates for (format: YYYY-MM-DD, e.g., 2021-12-31).'
schema:
type: string
format: date
example: '2022-01-01'
- name: base_currency
in: query
required: false
description: The base currency to use for conversion. Defaults to USD if not specified.
schema:
type: string
example: USD
- name: currencies
in: query
required: false
description: A comma-separated list of currency codes to return (e.g., EUR,USD,CAD). Returns all available currencies by default.
schema:
type: string
example: EUR,USD,CAD
responses:
'200':
description: Historical exchange rates for the specified date
content:
application/json:
schema:
$ref: '#/components/schemas/HistoricalRatesResponse'
example:
data:
'2022-01-01':
AED: 3.67306
AFN: 91.80254
ALL: 108.22904
AMD: 480.41659
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
'429':
$ref: '#/components/responses/RateLimitExceeded'
components:
schemas:
HistoricalRatesResponse:
type: object
description: Historical exchange rates response
properties:
data:
type: object
description: Map of date strings to exchange rate objects
additionalProperties:
type: object
additionalProperties:
type: number
ErrorResponse:
type: object
description: Error response
properties:
message:
type: string
description: Error message describing what went wrong
LatestRatesResponse:
type: object
description: Latest exchange rates response
properties:
data:
type: object
description: Map of currency codes to exchange rate values relative to base currency
additionalProperties:
type: number
responses:
Unauthorized:
description: Unauthorized - invalid or missing API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
RateLimitExceeded:
description: Rate limit or monthly quota exceeded. Check response headers for limit details.
headers:
X-RateLimit-Limit-Quota-Minute:
schema:
type: integer
description: Per-minute request limit
X-RateLimit-Limit-Quota-Month:
schema:
type: integer
description: Monthly request limit
X-RateLimit-Remaining-Quota-Minute:
schema:
type: integer
description: Remaining per-minute requests
X-RateLimit-Remaining-Quota-Month:
schema:
type: integer
description: Remaining monthly requests
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
ValidationError:
description: Validation error - invalid request parameters
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
parameters:
ApiKeyQuery:
name: apikey
in: query
required: false
description: Your API key for authentication.
schema:
type: string
securitySchemes:
ApiKeyQuery:
type: apiKey
in: query
name: apikey
description: 'API key passed as a query parameter. Note: this may expose your API key in access logs. Using the header method is recommended.'
ApiKeyHeader:
type: apiKey
in: header
name: apikey
description: API key passed as an HTTP header (recommended method).