{"openapi":"3.1.0","info":{"title":"ArgonautWorks ECB FX Reference API","version":"0.1.1","description":"Source-cited ECB foreign-exchange reference conversion with explicit cross-rate math. Underlying ECB statistics are available free; the fee covers validation, calculation, and machine-ready delivery.","license":{"name":"MIT","identifier":"MIT"},"contact":{"name":"ArgonautWorks","url":"https://github.com/ArgonautWorks/ecb-fx-reference"},"x-guidance":"Use this API for source-cited informational FX reference conversion, accounting context, or reproducible cross-rate calculations. It is not an executable market quote. The response includes the unmodified ECB reference observations used and labels all derived values."},"servers":[{"url":"https://official-fx-reference.vercel.app"}],"paths":{"/api/v1/convert":{"get":{"operationId":"convertEcbFxReference","summary":"Convert using ECB reference rates","parameters":[{"name":"base","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{3}$","default":"USD"}},{"name":"quote","in":"query","required":false,"schema":{"type":"string","pattern":"^[A-Za-z]{3}$","default":"EUR"}},{"name":"amount","in":"query","required":false,"schema":{"type":"number","exclusiveMinimum":0,"maximum":999999999,"default":1}}],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0015"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"ECB-sourced reference conversion","content":{"application/json":{"schema":{"type":"object","required":["base","quote","input_amount","converted_amount","reference_rate","reference_rates_per_eur","published_date","observed_at","calculation","source","underlying_data_notice","disclaimer","cache"],"properties":{"base":{"type":"string"},"quote":{"type":"string"},"input_amount":{"type":"number"},"converted_amount":{"type":"number"},"reference_rate":{"type":"number"},"reference_rates_per_eur":{"type":"object","additionalProperties":{"type":"number"}},"published_date":{"type":"string","format":"date"},"observed_at":{"type":"string","format":"date-time"},"calculation":{"type":"string"},"source":{"type":"object"},"underlying_data_notice":{"type":"string"},"disclaimer":{"type":"string"},"cache":{"type":"object"}}}}}},"400":{"description":"Invalid or unsupported currency input; no charge"},"402":{"description":"x402 Base-USDC payment challenge"},"502":{"description":"Payment facilitator unavailable; no charge"},"503":{"description":"ECB source unavailable and stale cache exhausted; no charge"}}},"post":{"operationId":"convertEcbFxReferenceFromJson","summary":"Convert using ECB reference rates","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","pattern":"^[A-Za-z]{3}$","default":"USD","description":"Three-letter source currency code. Defaults to USD."},"quote":{"type":"string","pattern":"^[A-Za-z]{3}$","default":"EUR","description":"Three-letter destination currency code. Defaults to EUR."},"amount":{"type":"number","exclusiveMinimum":0,"maximum":999999999,"default":1}},"additionalProperties":false},"example":{"base":"USD","quote":"JPY","amount":100}}}},"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.0015"},"protocols":[{"x402":{}}]},"responses":{"200":{"description":"ECB-sourced reference conversion","content":{"application/json":{"schema":{"type":"object","required":["base","quote","input_amount","converted_amount","reference_rate","reference_rates_per_eur","published_date","observed_at","calculation","source","underlying_data_notice","disclaimer","cache"],"properties":{"base":{"type":"string"},"quote":{"type":"string"},"input_amount":{"type":"number"},"converted_amount":{"type":"number"},"reference_rate":{"type":"number"},"reference_rates_per_eur":{"type":"object","additionalProperties":{"type":"number"}},"published_date":{"type":"string","format":"date"},"observed_at":{"type":"string","format":"date-time"},"calculation":{"type":"string"},"source":{"type":"object"},"underlying_data_notice":{"type":"string"},"disclaimer":{"type":"string"},"cache":{"type":"object"}}}}}},"400":{"description":"Invalid or unsupported currency input; no charge"},"402":{"description":"x402 Base-USDC payment challenge"},"502":{"description":"Payment facilitator unavailable; no charge"},"503":{"description":"ECB source unavailable and stale cache exhausted; no charge"}}}}}}