{"openapi":"3.1.0","info":{"title":"Bank of Canada Rates API","version":"0.1.0","description":"Bank of Canada Rates reads the Bank of Canada's public Valet API (JSON, no key; the Bank describes each series as a daily average exchange rate) so an agent can convert foreign-currency invoices and price quotes with the rate date always shown. fx_rate returns one currency's daily exchange rate against the Canadian dollar (Canadian dollars per one unit of the currency) for the latest day or a...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://ca-boc-rates.connectorbay.com/mcp.\n\nDisclaimer: General information only, not legal, tax, accounting or payment advice. Bank of Canada Rates is an independent tool: it is not affiliated with, endorsed by or operated by any government body, central bank, standards body or scheme operator. Rates, thresholds and rules change; check the cited official source and confirm with a qualified professional before you rely on a result.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/ca-boc-rates/docs"},"termsOfService":"https://connectorbay.com/ca-boc-rates/terms"},"servers":[{"url":"https://ca-boc-rates.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/ca-boc-rates/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/fx_rate":{"post":{"operationId":"fx_rate","summary":"One currency's Bank of Canada daily exchange rate against CAD for the latest day or a chosen date. Use for \"What is the ","description":"One currency's Bank of Canada daily exchange rate against CAD for the latest day or a chosen date. Use for \"What is the Bank of Canada USD/CAD rate for 2026-09-28?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"description":"ISO 4217 code of the foreign currency, for example USD","title":"Currency","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Observation date, YYYY-MM-DD; default is the latest observation","title":"On Date"}},"required":["currency"],"title":"fx_rateArguments","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/convert_amount":{"post":{"operationId":"convert_amount","summary":"Convert an amount between CAD and a listed currency, or between two listed currencies through CAD, with the rate date. U","description":"Convert an amount between CAD and a listed currency, or between two listed currencies through CAD, with the rate date. Use for \"How many Canadian dollars is USD 1,000 at the Bank of Canada rate of 2026-09-28?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"amount":{"description":"Amount to convert as a plain decimal string, for example 1250.50","title":"Amount","type":"string"},"from_currency":{"description":"ISO 4217 code of the amount's currency, or CAD","title":"From Currency","type":"string"},"to_currency":{"description":"ISO 4217 code to convert into, or CAD","title":"To Currency","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Observation date, YYYY-MM-DD; default is the latest observation","title":"On Date"},"use_previous_if_unpublished":{"default":false,"description":"If the series has no observation on on_date, use the previous observation and say so; default false, which returns no conversion","title":"Use Previous If Unpublished","type":"boolean"}},"required":["amount","from_currency","to_currency"],"title":"convert_amountArguments","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/fx_history":{"post":{"operationId":"fx_history","summary":"A currency's daily exchange-rate observations over a date range, with first, last, high, low and change. Use for \"How di","description":"A currency's daily exchange-rate observations over a date range, with first, last, high, low and change. Use for \"How did USD/CAD move between 2026-09-24 and 2026-09-28?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"description":"ISO 4217 code of the foreign currency, for example USD","title":"Currency","type":"string"},"start_date":{"description":"First date, YYYY-MM-DD","title":"Start Date","type":"string"},"end_date":{"description":"Last date, YYYY-MM-DD (at most 366 days after start_date)","title":"End Date","type":"string"}},"required":["currency","start_date","end_date"],"title":"fx_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_fx_pairs":{"post":{"operationId":"list_fx_pairs","summary":"The daily exchange-rate series the Bank of Canada publishes against CAD, with labels and the latest rate. Use for \"Which","description":"The daily exchange-rate series the Bank of Canada publishes against CAD, with labels and the latest rate. Use for \"Which currencies does the Bank of Canada publish daily rates for?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_fx_pairsArguments","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/policy_rate":{"post":{"operationId":"policy_rate","summary":"The Bank of Canada target for the overnight rate (series V39079) with its observation date. Use for \"What is the Bank of","description":"The Bank of Canada target for the overnight rate (series V39079) with its observation date. Use for \"What is the Bank of Canada policy rate?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date to look up, YYYY-MM-DD; the latest observation on or before it is returned; default is the latest observation","title":"On Date"}},"title":"policy_rateArguments","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/prime_rate":{"post":{"operationId":"prime_rate","summary":"The prime rate (series V80691311) with its observation date. Use for \"What is the Canadian prime rate?\".","description":"The prime rate (series V80691311) with its observation date. Use for \"What is the Canadian prime rate?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date to look up, YYYY-MM-DD; the latest observation on or before it is returned; default is the latest observation","title":"On Date"}},"title":"prime_rateArguments","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/rate_snapshot":{"post":{"operationId":"rate_snapshot","summary":"USD, EUR and GBP rates against CAD with the policy rate and prime rate in one answer. Use for \"Give me today's Bank of C","description":"USD, EUR and GBP rates against CAD with the policy rate and prime rate in one answer. Use for \"Give me today's Bank of Canada snapshot: the dollar, euro and pound rates, the policy rate and the prime rate.\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date, YYYY-MM-DD; default is the latest observations","title":"On Date"}},"title":"rate_snapshotArguments","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/fx_move_alert":{"post":{"operationId":"fx_move_alert","summary":"Whether a currency's rate against CAD moved by more than a threshold between a start date and the latest or a chosen dat","description":"Whether a currency's rate against CAD moved by more than a threshold between a start date and the latest or a chosen date. Use for \"Has USD/CAD moved by more than 0.5% since 2026-09-24?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"currency":{"description":"ISO 4217 code of the foreign currency, for example USD","title":"Currency","type":"string"},"since_date":{"description":"Start date, YYYY-MM-DD (within 366 days before the end date)","title":"Since Date","type":"string"},"threshold_percent":{"description":"Threshold in percent as a plain decimal, for example 0.5","title":"Threshold Percent","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Observation date, YYYY-MM-DD; default is the latest observation","title":"On Date"},"use_previous_if_unpublished":{"default":false,"description":"If there is no observation on since_date or on_date, use the previous observation and say so; default false","title":"Use Previous If Unpublished","type":"boolean"}},"required":["currency","since_date","threshold_percent"],"title":"fx_move_alertArguments","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}}}}