{"openapi":"3.1.0","info":{"title":"Exchange Rates","version":"1.0.0","description":"Real-time foreign-exchange rates and currency conversion — live rates, historical rates, and amount conversion.","contact":{"email":"support@payweave.app"},"x-guidance":"Real-time foreign-exchange rates and currency conversion — live rates, historical rates, and amount conversion.\nEach endpoint takes a JSON request and returns either a 200 with the result or a 402 Payment Required challenge (MPP / x402). Pricing is fixed per endpoint in USD; the per-operation `x-payment-info` block carries the exact challenge metadata (price, accepted protocols, payment realm).\nFor per-endpoint schemas, examples, and detailed usage, fetch https://api.payweave.app/app/app_oboqgmuigwtxeyqyltno29cf/skill.md or `<this-origin>/<path>/skill.md` for a single endpoint."},"x-service-info":{"categories":["Market data","Currency","FX"]},"servers":[{"url":"https://abstract-exchange-rates.payweave.services"}],"paths":{"/convert":{"post":{"summary":"Abstract: Currency Convert","description":"Convert an amount from one currency to another at the live rate, or at a historical rate when `date` (YYYY-MM-DD) is provided.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50","network":"eip155:4217","amount":"6000"}},{"mpp":{"method":"solana","intent":"charge","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"6000"}},{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"6000","extra":{"name":"USD Coin","version":"2"}}},{"x402":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"6000"}}],"description":"Convert an amount from one currency to another at the live rate, or at a historical rate when `date` (YYYY-MM-DD) is provided."},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","description":"The base currency the rates are expressed against."},"last_updated":{"type":"number","description":"Unix timestamp of the quoted rates."},"exchange_rates":{"type":"object","additionalProperties":{"type":"number"},"description":"Map of target currency code → rate against `base` (for /live and /historical)."}},"additionalProperties":true,"description":"Exchange-rate JSON forwarded verbatim from Abstract."}}}},"402":{"description":"Payment Required"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","minLength":3,"maxLength":3,"pattern":"^[A-Za-z]{3}$","description":"3-letter base currency code, e.g. USD"},"target":{"type":"string","minLength":3,"maxLength":3,"pattern":"^[A-Za-z]{3}$","description":"3-letter target currency code, e.g. EUR"},"base_amount":{"type":"number","exclusiveMinimum":0,"description":"Amount in base currency to convert. Defaults to 1."},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Historical date (YYYY-MM-DD) to convert at. Omit for live rate."}},"required":["base","target"],"additionalProperties":false}}}}}},"/historical":{"post":{"summary":"Abstract: Historical Exchange Rates","description":"Historical exchange rates on a given date (YYYY-MM-DD, from 1999-01-01 onward) for 150+ currencies. Returns the rate of each `target` currency against `base` on that date.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50","network":"eip155:4217","amount":"6000"}},{"mpp":{"method":"solana","intent":"charge","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"6000"}},{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"6000","extra":{"name":"USD Coin","version":"2"}}},{"x402":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"6000"}}],"description":"Historical exchange rates on a given date (YYYY-MM-DD, from 1999-01-01 onward) for 150+ currencies. Returns the rate of each `target` currency against `base` on that date."},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","description":"The base currency the rates are expressed against."},"last_updated":{"type":"number","description":"Unix timestamp of the quoted rates."},"exchange_rates":{"type":"object","additionalProperties":{"type":"number"},"description":"Map of target currency code → rate against `base` (for /live and /historical)."}},"additionalProperties":true,"description":"Exchange-rate JSON forwarded verbatim from Abstract."}}}},"402":{"description":"Payment Required"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","minLength":3,"maxLength":3,"pattern":"^[A-Za-z]{3}$","description":"3-letter base currency code, e.g. USD"},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Historical date (YYYY-MM-DD), from 1999-01-01 onward"},"target":{"type":"string","pattern":"^[A-Za-z]{3}(,[A-Za-z]{3})*$","description":"Optional comma-separated target codes (e.g. \"EUR,GBP\")."}},"required":["base","date"],"additionalProperties":false}}}}}},"/live":{"post":{"summary":"Abstract: Live Exchange Rates","description":"Live exchange rates for 150+ currencies. Returns the latest rate of each `target` currency against `base`. Omit `target` to return every supported currency.","x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.006000"},"protocols":[{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50","network":"eip155:4217","amount":"6000"}},{"mpp":{"method":"solana","intent":"charge","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","amount":"6000"}},{"x402":{"scheme":"exact","network":"eip155:8453","currency":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","amount":"6000","extra":{"name":"USD Coin","version":"2"}}},{"x402":{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","currency":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","amount":"6000"}}],"description":"Live exchange rates for 150+ currencies. Returns the latest rate of each `target` currency against `base`. Omit `target` to return every supported currency."},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","description":"The base currency the rates are expressed against."},"last_updated":{"type":"number","description":"Unix timestamp of the quoted rates."},"exchange_rates":{"type":"object","additionalProperties":{"type":"number"},"description":"Map of target currency code → rate against `base` (for /live and /historical)."}},"additionalProperties":true,"description":"Exchange-rate JSON forwarded verbatim from Abstract."}}}},"402":{"description":"Payment Required"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","minLength":3,"maxLength":3,"pattern":"^[A-Za-z]{3}$","description":"3-letter base currency code, e.g. USD"},"target":{"type":"string","pattern":"^[A-Za-z]{3}(,[A-Za-z]{3})*$","description":"Optional comma-separated target codes (e.g. \"EUR,GBP,JPY\"). Omit to return all supported currencies."}},"required":["base"],"additionalProperties":false}}}}}}}}