{"openapi":"3.1.0","info":{"title":"FXRate","version":"0.1.0","contact":{"name":"FXRate","email":"hello@youraitools.co","url":"https://api.youraitools.co/fx/"},"license":{"name":"MIT"},"x-service-name":"FXRate by YourAITools","x-category":"finance","x-categories":["finance","data","currency","agent-tools","x402"],"x-tags":["currency-converter","exchange-rates","fx","forex","finance-data"],"x-logo":{"url":"https://youraitools.co/favicon-192.png"},"description":"Currency converter and exchange rate API for AI agents. Convert an amount between 31 currencies (USD, EUR, GBP, JPY, CNY, INR, CAD, AUD, CHF and more) at the official European Central Bank reference rate, get a full rate table for any base currency, or a daily history for a pair back to 1999. Pay per call in USDC over x402 ($0.001), or free on the remote MCP endpoint (30 calls per day). ECB reference rates are published once per working day around 16:00 CET for information only; they are not live market quotes and should not be used for trading or transactions. Cross rates are derived from the ECB euro rates. Source: ECB statistics.","x-guidance":"GET /v1/convert?from=USD&to=EUR&amount=100 ($0.001); GET /v1/rates?base=USD&quotes=EUR%2CGBP%2CJPY ($0.001); GET /v1/history?base=EUR&quote=USD&start=2026-10-01&end=2026-10-23 ($0.002). POST the same fields as JSON. USDC via x402 (Base, Polygon, Arbitrum One), charged only on HTTP 200. Free: remote MCP at https://api.youraitools.co/fx/mcp (daily free calls per IP)."},"servers":[{"url":"https://api.youraitools.co/fx"}],"externalDocs":{"description":"Source and docs","url":"https://api.youraitools.co/fx/"},"paths":{"/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":["paid"],"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":["paid"],"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)"}}}},"/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":["paid"],"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":["paid"],"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)"}}}},"/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":["paid"],"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-10-23\"}","tags":["paid"],"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)"}}}},"/mcp":{"post":{"operationId":"fxrate_mcp","summary":"Free remote MCP (Streamable HTTP, JSON-RPC): convert_currency, fx_rates, fx_history","security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"JSON-RPC result"},"202":{"description":"Notification accepted"}}}}},"x-x402-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"}]}