{"openapi":"3.1.0","info":{"title":"Open Exchange Rates (BYOK) API","version":"0.1.0","description":"Open Exchange Rates (BYOK) lets an AI assistant read your own Open Exchange Rates data through the Open Exchange Rates API with a key you supply (App ID). Read-only: 4 tools (get_latest_rates, get_historical_rates, list_currencies, get_usage). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-openexchangerates.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-openexchangerates/docs"},"termsOfService":"https://connectorbay.com/byok-openexchangerates/terms"},"servers":[{"url":"https://byok-openexchangerates.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-openexchangerates/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/get_latest_rates":{"post":{"operationId":"get_latest_rates","summary":"Get the latest exchange rates of currencies against the base currency (US dollars on the free plan), with the publicatio","description":"Get the latest exchange rates of currencies against the base currency (US dollars on the free plan), with the publication time. Use for \"What are the latest USD to EUR, GBP and JPY exchange rates\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"symbols":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated 3-letter currency codes to return, for example 'EUR,GBP,JPY'. Omit for all currencies.","title":"Symbols"},"base":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"3-letter code of the base currency (default USD). Changing the base needs a paid Open Exchange Rates plan.","title":"Base"},"show_alternative":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to also include alternative, digital and black-market currency rates.","title":"Show Alternative"}},"title":"get_latest_ratesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_historical_rates":{"post":{"operationId":"get_historical_rates","summary":"Get the exchange rates published on a past date (from 1999-01-01), against US dollars on the free plan. The symbols and ","description":"Get the exchange rates published on a past date (from 1999-01-01), against US dollars on the free plan. The symbols and base options need a paid plan. Use for \"What was the USD to EUR rate on 2024-01-15\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date":{"description":"Day to look up in UTC, formatted YYYY-MM-DD, from 1999-01-01 onward.","maxLength":10,"title":"Date","type":"string"},"symbols":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated 3-letter currency codes to return. Paid plans only; on the free plan all currencies are returned.","title":"Symbols"},"base":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"3-letter base currency code (default USD). Paid plans only.","title":"Base"},"show_alternative":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to also include alternative, digital and black-market currency rates.","title":"Show Alternative"}},"required":["date"],"title":"get_historical_ratesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_currencies":{"post":{"operationId":"list_currencies","summary":"List the currency codes Open Exchange Rates supports with their names, as a code-to-name map. Use for \"Which currencies ","description":"List the currency codes Open Exchange Rates supports with their names, as a code-to-name map. Use for \"Which currencies does Open Exchange Rates support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"show_alternative":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include alternative, digital and black-market currencies.","title":"Show Alternative"},"show_inactive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to include historical currencies that are no longer active.","title":"Show Inactive"}},"title":"list_currenciesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_usage":{"post":{"operationId":"get_usage","summary":"Show your Open Exchange Rates plan name, monthly request quota, requests used and remaining, and which features your pla","description":"Show your Open Exchange Rates plan name, monthly request quota, requests used and remaining, and which features your plan includes. Use for \"How many Open Exchange Rates requests do I have left this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_usageArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}