YourAITools FX Rate API
The FXRate API from YourAITools — 4 operation(s) for fxrate.
Operations 7
POST
/fx/v1/history
Same as GET, POST {"base":"EUR","quote":"USD","start":"2026-10-01","end":"2026-1…
#
The FXRate API from YourAITools — 4 operation(s) for fxrate.
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/youraitools-co:youraitools-co-fxrate-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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: YourAITools FX Rate API
version: 1.0.0
description: Pay-per-call tools for AI agents, paid per request in USDC via x402 on Base, Polygon, Arbitrum One or Solana, with each tool's own spec at https://api.youraitools.co//openapi.json.
contact:
email: hello@youraitools.co
url: https://youraitools.co/built-by-us
servers:
- url: https://api.youraitools.co
tags:
- name: FXRate
paths:
/fx/v1/convert:
get:
operationId: fxrate_convert
summary: Convert an amount between two currencies at the ECB reference rate ($0.001)
description: 'Currency converter API for AI agents. Convert an amount from one currency to another (USD, EUR, GBP, JPY, CNY, INR, CAD, AUD, CHF and 22 more) at the official European Central Bank reference rate, today or on a past date back to 1999. Returns rate, result, inverse rate and the rate date. Search intents: currency converter api, fx convert, exchange rate api, convert usd to eur, forex rate, money conversion for agents.'
tags:
- FXRate
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.001'
protocols:
- x402: {}
x-x402:
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
amount: '1000'
assetSymbol: USDC
x402Versions:
- 2
- 1
networks:
- network: eip155:8453
name: Base
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:137
name: Polygon
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:42161
name: Arbitrum One
asset: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
parameters:
- name: from
in: query
required: true
schema:
type: string
description: 'From currency: ISO 4217 code, e.g. USD, EUR, GBP, JPY (31 supported)'
- name: to
in: query
required: true
schema:
type: string
description: 'To currency: ISO 4217 code, e.g. USD, EUR, GBP, JPY (31 supported)'
- name: amount
in: query
required: false
schema:
type: number
description: Amount to convert (default 1), up to 1e15
- name: date
in: query
required: false
schema:
type: string
description: 'Optional YYYY-MM-DD (default: latest). Weekends/holidays use the previous ECB rate.'
responses:
'200':
description: from, to, amount, rate, result, inverse_rate, date (ECB reference date), derived flag, source. (payment settled)
content:
application/json:
example:
from: USD
to: EUR
amount: 100
rate: 0.89342
result: 89.342
inverse_rate: 1.119294
date: '2026-10-23'
derived: true
source: 'Source: ECB statistics (euro foreign exchange reference rates), via the open-source Frankfurter API.'
'400':
description: Invalid input (never charged)
'402':
description: Payment Required (x402 v2 terms in the PAYMENT-REQUIRED header, v1 terms in the body)
'404':
description: Unknown pin (never charged)
'413':
description: Body too large (never charged)
'422':
description: Remote MCP server could not be listed (never charged)
'503':
description: Timeout or pin store unavailable (never charged)
post:
operationId: fxrate_convert_post
summary: Same as GET, POST {"from":"USD","to":"EUR","amount":100}
tags:
- FXRate
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.001'
protocols:
- x402: {}
x-x402:
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
amount: '1000'
assetSymbol: USDC
x402Versions:
- 2
- 1
networks:
- network: eip155:8453
name: Base
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:137
name: Polygon
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:42161
name: Arbitrum One
asset: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
from:
type: string
description: 'From currency: ISO 4217 code, e.g. USD, EUR, GBP, JPY (31 supported)'
to:
type: string
description: 'To currency: ISO 4217 code, e.g. USD, EUR, GBP, JPY (31 supported)'
amount:
type: number
description: Amount to convert (default 1), up to 1e15
date:
type: string
description: 'Optional YYYY-MM-DD (default: latest). Weekends/holidays use the previous ECB rate.'
required:
- from
- to
responses:
'200':
description: from, to, amount, rate, result, inverse_rate, date (ECB reference date), derived flag, source. (payment settled)
content:
application/json:
example:
from: USD
to: EUR
amount: 100
rate: 0.89342
result: 89.342
inverse_rate: 1.119294
date: '2026-10-23'
derived: true
source: 'Source: ECB statistics (euro foreign exchange reference rates), via the open-source Frankfurter API.'
'400':
description: Invalid input (never charged)
'402':
description: Payment Required (x402 v2 terms in the PAYMENT-REQUIRED header, v1 terms in the body)
'404':
description: Unknown pin (never charged)
'413':
description: Body too large (never charged)
'422':
description: Remote MCP server could not be listed (never charged)
'503':
description: Timeout or pin store unavailable (never charged)
description: 'Currency converter API for AI agents. Same as GET, POST {"from":"USD","to":"EUR","amount":100}. Search intents: currency converter api, fx convert, exchange rate api, convert usd to eur, forex rate, money conversion for agents.'
/fx/v1/rates:
get:
operationId: fxrate_rates
summary: Exchange rate table for a base currency (ECB reference rates) ($0.001)
description: 'Exchange rates API for AI agents. Every ECB reference rate for a base currency (or just the quotes you list) on the latest or a past date. Search intents: exchange rates api, fx rates table, currency rates today, usd exchange rates, ecb reference rates.'
tags:
- FXRate
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.001'
protocols:
- x402: {}
x-x402:
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
amount: '1000'
assetSymbol: USDC
x402Versions:
- 2
- 1
networks:
- network: eip155:8453
name: Base
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:137
name: Polygon
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:42161
name: Arbitrum One
asset: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
parameters:
- name: base
in: query
required: false
schema:
type: string
description: 'Base currency (default EUR): ISO 4217 code, e.g. USD, EUR, GBP, JPY (31 supported)'
- name: quotes
in: query
required: false
schema:
type: string
description: 'Optional comma-separated currency codes (default: all 30)'
- name: date
in: query
required: false
schema:
type: string
description: 'Optional YYYY-MM-DD (default: latest). Weekends/holidays use the previous ECB rate.'
responses:
'200':
description: 'base, date, rates {code: rate}, count, source. (payment settled)'
content:
application/json:
example:
base: USD
date: '2026-10-23'
rates:
EUR: 0.89342
GBP: 0.74805
JPY: 156.8
count: 3
derived: true
source: 'Source: ECB statistics (euro foreign exchange reference rates), via the open-source Frankfurter API.'
'400':
description: Invalid input (never charged)
'402':
description: Payment Required (x402 v2 terms in the PAYMENT-REQUIRED header, v1 terms in the body)
'404':
description: Unknown pin (never charged)
'413':
description: Body too large (never charged)
'422':
description: Remote MCP server could not be listed (never charged)
'503':
description: Timeout or pin store unavailable (never charged)
post:
operationId: fxrate_rates_post
summary: Same as GET, POST {"base":"USD","quotes":"EUR,GBP,JPY"}
tags:
- FXRate
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.001'
protocols:
- x402: {}
x-x402:
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
amount: '1000'
assetSymbol: USDC
x402Versions:
- 2
- 1
networks:
- network: eip155:8453
name: Base
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:137
name: Polygon
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:42161
name: Arbitrum One
asset: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
base:
type: string
description: 'Base currency (default EUR): ISO 4217 code, e.g. USD, EUR, GBP, JPY (31 supported)'
quotes:
type: string
description: 'Optional comma-separated currency codes (default: all 30)'
date:
type: string
description: 'Optional YYYY-MM-DD (default: latest). Weekends/holidays use the previous ECB rate.'
responses:
'200':
description: 'base, date, rates {code: rate}, count, source. (payment settled)'
content:
application/json:
example:
base: USD
date: '2026-10-23'
rates:
EUR: 0.89342
GBP: 0.74805
JPY: 156.8
count: 3
derived: true
source: 'Source: ECB statistics (euro foreign exchange reference rates), via the open-source Frankfurter API.'
'400':
description: Invalid input (never charged)
'402':
description: Payment Required (x402 v2 terms in the PAYMENT-REQUIRED header, v1 terms in the body)
'404':
description: Unknown pin (never charged)
'413':
description: Body too large (never charged)
'422':
description: Remote MCP server could not be listed (never charged)
'503':
description: Timeout or pin store unavailable (never charged)
description: 'Exchange rates API for AI agents. Same as GET, POST {"base":"USD","quotes":"EUR,GBP,JPY"}. Search intents: exchange rates api, fx rates table, currency rates today, usd exchange rates, ecb reference rates.'
/fx/v1/history:
get:
operationId: fxrate_history
summary: Daily exchange rate history for a currency pair (up to 366 days) ($0.002)
description: 'Historical exchange rate API for AI agents. Daily ECB reference rates for one currency pair between two dates (up to 366 days, back to 1999), with first, last, min, max and percent change. Search intents: historical exchange rates api, fx time series, currency history, eur usd chart data, forex history.'
tags:
- FXRate
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.002'
protocols:
- x402: {}
x-x402:
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
amount: '2000'
assetSymbol: USDC
x402Versions:
- 2
- 1
networks:
- network: eip155:8453
name: Base
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:137
name: Polygon
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:42161
name: Arbitrum One
asset: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
parameters:
- name: base
in: query
required: true
schema:
type: string
description: 'Base currency: ISO 4217 code, e.g. USD, EUR, GBP, JPY (31 supported)'
- name: quote
in: query
required: true
schema:
type: string
description: 'Quote currency: ISO 4217 code, e.g. USD, EUR, GBP, JPY (31 supported)'
- name: start
in: query
required: true
schema:
type: string
description: YYYY-MM-DD start date
- name: end
in: query
required: false
schema:
type: string
description: 'YYYY-MM-DD end date (default: today); max 366 days after start'
responses:
'200':
description: base, quote, start, end, points [{date, rate}], stats {first, last, min, max, change_pct}, source. (payment settled)
content:
application/json:
example:
base: EUR
quote: USD
start: '2026-10-01'
end: '2026-10-23'
count: 17
points:
- date: '2026-10-01'
rate: 1.1298
- date: '2026-10-02'
rate: 1.1225
- date: '2026-10-23'
rate: 1.1193
stats:
first: 1.1298
last: 1.1193
min: 1.1172
max: 1.1298
change_pct: -0.93
source: 'Source: ECB statistics (euro foreign exchange reference rates), via the open-source Frankfurter API.'
'400':
description: Invalid input (never charged)
'402':
description: Payment Required (x402 v2 terms in the PAYMENT-REQUIRED header, v1 terms in the body)
'404':
description: Unknown pin (never charged)
'413':
description: Body too large (never charged)
'422':
description: Remote MCP server could not be listed (never charged)
'503':
description: Timeout or pin store unavailable (never charged)
post:
operationId: fxrate_history_post
summary: Same as GET, POST {"base":"EUR","quote":"USD","start":"2026-10-01","end":"2026-1…
tags:
- FXRate
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.002'
protocols:
- x402: {}
x-x402:
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
amount: '2000'
assetSymbol: USDC
x402Versions:
- 2
- 1
networks:
- network: eip155:8453
name: Base
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:137
name: Polygon
asset: '0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
- network: eip155:42161
name: Arbitrum One
asset: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831'
symbol: USDC
payTo: '0x3c1A1E01e790Cd326495631B3b38Bd7068F08d6F'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
base:
type: string
description: 'Base currency: ISO 4217 code, e.g. USD, EUR, GBP, JPY (31 supported)'
quote:
type: string
description: 'Quote currency: ISO 4217 code, e.g. USD, EUR, GBP, JPY (31 supported)'
start:
type: string
description: YYYY-MM-DD start date
end:
type: string
description: 'YYYY-MM-DD end date (default: today); max 366 days after start'
required:
- base
- quote
- start
responses:
'200':
description: base, quote, start, end, points [{date, rate}], stats {first, last, min, max, change_pct}, source. (payment settled)
content:
application/json:
example:
base: EUR
quote: USD
start: '2026-10-01'
end: '2026-10-23'
count: 17
points:
- date: '2026-10-01'
rate: 1.1298
- date: '2026-10-02'
rate: 1.1225
- date: '2026-10-23'
rate: 1.1193
stats:
first: 1.1298
last: 1.1193
min: 1.1172
max: 1.1298
change_pct: -0.93
source: 'Source: ECB statistics (euro foreign exchange reference rates), via the open-source Frankfurter API.'
'400':
description: Invalid input (never charged)
'402':
description: Payment Required (x402 v2 terms in the PAYMENT-REQUIRED header, v1 terms in the body)
'404':
description: Unknown pin (never charged)
'413':
description: Body too large (never charged)
'422':
description: Remote MCP server could not be listed (never charged)
'503':
description: Timeout or pin store unavailable (never charged)
description: 'Historical exchange rate API for AI agents. Same as GET, POST {"base":"EUR","quote":"USD","start":"2026-10-01","end":"2026-10-23"}. Search intents: historical exchange rates api, fx time series, currency history, eur usd chart data, forex history.'
/fx/mcp:
post:
operationId: fxrate_mcp
summary: 'Free remote MCP (Streamable HTTP, JSON-RPC): convert_currency, fx_rates…'
security: []
requestBody:
required: true
content:
application/json:
schema:
type: object
responses:
'200':
description: JSON-RPC result
'202':
description: Notification accepted
tags:
- FXRate
components:
securitySchemes:
creditsKey:
type: http
scheme: bearer
description: yatc_... credits key