{"openapi":"3.1.0","info":{"title":"UniRate (BYOK) API","version":"0.1.0","description":"UniRate (BYOK) lets an AI assistant read your own UniRate data through the UniRate API with a key you supply (UniRate API key). Read-only: 12 tools (get_exchange_rates, get_historical_rates, get_rate_time_series, list_currencies, get_vat_rates, get_commodity_rates, get_policy_rates, get_policy_rate_history, get_inflation, get_inflation_history, list_trading_exchanges, get_exchange_schedule). The...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-unirate.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-unirate/docs"},"termsOfService":"https://connectorbay.com/byok-unirate/terms"},"servers":[{"url":"https://byok-unirate.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-unirate/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_exchange_rates":{"post":{"operationId":"get_exchange_rates","summary":"Get current exchange rates from a base currency to one currency (with an optional amount converted) or to all currencies","description":"Get current exchange rates from a base currency to one currency (with an optional amount converted) or to all currencies. Use for \"How much is 100 USD in EUR right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":"USD","description":"ISO 4217 currency code such as USD, EUR or INR. Base currency (default USD).","title":"From Currency"},"to":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 4217 currency code such as USD, EUR or INR. Target currency; omit for rates to all currencies.","title":"To"},"amount":{"anyOf":[{"type":"number"},{"type":"null"}],"default":1,"description":"Amount to convert (default 1).","title":"Amount"}},"title":"get_exchange_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 exchange rates as of a past date, for one currency pair or for all currencies. Use for \"What was the USD to EUR rate","description":"Get exchange rates as of a past date, for one currency pair or for all currencies. Use for \"What was the USD to EUR rate on 2025-01-15\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date":{"description":"Date YYYY-MM-DD.","maxLength":10,"title":"Date","type":"string"},"from_currency":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":"USD","description":"ISO 4217 currency code such as USD, EUR or INR. Base currency (default USD).","title":"From Currency"},"to":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"ISO 4217 currency code such as USD, EUR or INR. Target currency; omit for all.","title":"To"},"amount":{"anyOf":[{"type":"number"},{"type":"null"}],"default":1,"description":"Amount to convert (default 1).","title":"Amount"}},"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/get_rate_time_series":{"post":{"operationId":"get_rate_time_series","summary":"Get daily exchange rates for a date range (at most 5 years) for a base currency and chosen target currencies. Use for \"S","description":"Get daily exchange rates for a date range (at most 5 years) for a base currency and chosen target currencies. Use for \"Show the EUR and GBP rate against USD for each day of January 2025\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"start_date":{"description":"Start date YYYY-MM-DD.","maxLength":10,"title":"Start Date","type":"string"},"end_date":{"description":"End date YYYY-MM-DD.","maxLength":10,"title":"End Date","type":"string"},"base":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":"USD","description":"ISO 4217 currency code such as USD, EUR or INR. Base currency (default USD).","title":"Base"},"currencies":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated target currency codes, for example 'EUR,GBP'.","title":"Currencies"}},"required":["start_date","end_date"],"title":"get_rate_time_seriesArguments","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 all currency codes UniRate supports. Use for \"Which currencies does UniRate support\".","description":"List all currency codes UniRate supports. Use for \"Which currencies does UniRate support\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"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_vat_rates":{"post":{"operationId":"get_vat_rates","summary":"Get standard VAT rates for all covered countries or one country. Use for \"What is the VAT rate in Germany\".","description":"Get standard VAT rates for all covered countries or one country. Use for \"What is the VAT rate in Germany\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country":{"anyOf":[{"maxLength":2,"type":"string"},{"type":"null"}],"default":null,"description":"Two-letter country code such as DE or FR; omit for all countries.","title":"Country"}},"title":"get_vat_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_commodity_rates":{"post":{"operationId":"get_commodity_rates","summary":"Get live commodity prices (gold, silver, platinum, palladium, crude oil, gas, base metals, grains, softs) relative to US","description":"Get live commodity prices (gold, silver, platinum, palladium, crude oil, gas, base metals, grains, softs) relative to USD. Needs a Pro subscription. Use for \"How many ounces of gold does 10000 USD buy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"from_currency":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":"USD","description":"Base symbol: a commodity code such as XAU, BRENT or WHEAT, or USD (default).","title":"From Currency"},"to":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Target symbol; omit for all commodities.","title":"To"},"amount":{"anyOf":[{"type":"number"},{"type":"null"}],"default":1,"description":"Amount to convert (default 1).","title":"Amount"}},"title":"get_commodity_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_policy_rates":{"post":{"operationId":"get_policy_rates","summary":"Get the latest central bank policy interest rates (Fed, ECB, BoE, BoJ, RBI and about 40 others) from the BIS dataset, fo","description":"Get the latest central bank policy interest rates (Fed, ECB, BoE, BoJ, RBI and about 40 others) from the BIS dataset, for chosen countries or all. Use for \"What are the current Fed and ECB policy rates\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated ISO country codes and/or currency codes, at most 50, for example 'US,EUR,GB'; omit for all.","title":"Country"}},"title":"get_policy_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_policy_rate_history":{"post":{"operationId":"get_policy_rate_history","summary":"Get the rate changes of one central bank between two dates, plus the rate already in force at the start date. Use for \"H","description":"Get the rate changes of one central bank between two dates, plus the rate already in force at the start date. Use for \"How did the ECB policy rate change over the last two years\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country":{"description":"One ISO country code or currency code, for example US or EUR.","maxLength":3,"title":"Country","type":"string"},"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start date YYYY-MM-DD (default: start of the series).","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End date YYYY-MM-DD (default: today).","title":"End Date"}},"required":["country"],"title":"get_policy_rate_historyArguments","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_inflation":{"post":{"operationId":"get_inflation","summary":"Get the latest year-on-year consumer price inflation for about 65 economies from the BIS dataset, for chosen countries o","description":"Get the latest year-on-year consumer price inflation for about 65 economies from the BIS dataset, for chosen countries or all. Use for \"What is the latest CPI inflation in the US, Germany and Japan\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated ISO country codes and/or currency codes, at most 50, for example 'US,DE,JP'; omit for all.","title":"Country"}},"title":"get_inflationArguments","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_inflation_history":{"post":{"operationId":"get_inflation_history","summary":"Get monthly year-on-year CPI inflation history for one country between two dates (some series go back decades). Use for ","description":"Get monthly year-on-year CPI inflation history for one country between two dates (some series go back decades). Use for \"Show Japan's monthly inflation for 2025\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"country":{"description":"One ISO country code or currency code, for example JP.","maxLength":3,"title":"Country","type":"string"},"start_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Start YYYY-MM or YYYY-MM-DD (default: start of the series).","title":"Start Date"},"end_date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"End YYYY-MM or YYYY-MM-DD (default: current month).","title":"End Date"}},"required":["country"],"title":"get_inflation_historyArguments","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_trading_exchanges":{"post":{"operationId":"list_trading_exchanges","summary":"List the stock and futures exchanges (ISO 10383 MIC codes) covered by the trading calendar tools. Use for \"Which exchang","description":"List the stock and futures exchanges (ISO 10383 MIC codes) covered by the trading calendar tools. Use for \"Which exchanges does the trading calendar cover\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_trading_exchangesArguments","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_exchange_schedule":{"post":{"operationId":"get_exchange_schedule","summary":"Check whether an exchange is open on a date (or now): session open and close times, holiday name, early close and previo","description":"Check whether an exchange is open on a date (or now): session open and close times, holiday name, early close and previous and next trading day. Use for \"Is the NYSE open on 2026-11-27 and when does it close\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"mic":{"description":"ISO 10383 market code such as XNYS, XLON, XTKS or XHKG (see list_trading_exchanges).","maxLength":4,"title":"Mic","type":"string"},"date":{"anyOf":[{"maxLength":10,"type":"string"},{"type":"null"}],"default":null,"description":"Date YYYY-MM-DD; omit for today's schedule and live open/closed status.","title":"Date"}},"required":["mic"],"title":"get_exchange_scheduleArguments","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}}}}