{"openapi":"3.1.0","info":{"title":"Canada Rules Change Radar API","version":"0.1.0","description":"Change radar for Canadian small-business reference data. It reads the public open.canada.ca dataset records (the CKAN package_show API) of five watched datasets: the CRA GST/HST rate table, Job Bank wages, CanadaBuys tender notices, the Business Benefits Finder programs and the Recalls and Safety Alerts data. It reports each record's published modified date, update frequency and resource dates,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://ca-change-radar.connectorbay.com/mcp.\n\nDisclaimer: General information only, not legal, tax, accounting or payment advice. Canada Rules Change Radar 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-change-radar/docs"},"termsOfService":"https://connectorbay.com/ca-change-radar/terms"},"servers":[{"url":"https://ca-change-radar.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/ca-change-radar/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/list_watched_sources":{"post":{"operationId":"list_watched_sources","summary":"The watched open.canada.ca datasets with their identifiers, links, stated update frequency and the baseline modified dat","description":"The watched open.canada.ca datasets with their identifiers, links, stated update frequency and the baseline modified date read on 2026-09-29. Use for \"Which sources does the radar watch and what was their date when you last read them?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_watched_sourcesArguments","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/check_changes":{"post":{"operationId":"check_changes","summary":"Fetch the watched dataset records now and report which show a newer modified date than the baseline or than a date you g","description":"Fetch the watched dataset records now and report which show a newer modified date than the baseline or than a date you give, with links to read. Use for \"Which official open datasets behind Canadian business rates have changed since last week?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only flag records modified on or after this date (YYYY-MM-DD); default seven days before today (UTC)","title":"Since"},"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"Optional list of watched source keys to check: gsthst_rates, jobbank_wages, canadabuys_tenders, business_benefits, recalls; default all five","title":"Sources"}},"title":"check_changesArguments","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/summarize_change":{"post":{"operationId":"summarize_change","summary":"Plain-language summary of one watched source: its published modified date now, the baseline read on 2026-09-29, whether ","description":"Plain-language summary of one watched source: its published modified date now, the baseline read on 2026-09-29, whether it moved since a date, and the link to read. Use for \"Has the GST/HST rate table dataset been updated since 1 January 2026?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"source":{"description":"One watched source key: gsthst_rates, jobbank_wages, canadabuys_tenders, business_benefits, recalls","title":"Source","type":"string"},"since":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Date to compare with (YYYY-MM-DD); default seven days before today (UTC)","title":"Since"}},"required":["source"],"title":"summarize_changeArguments","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/dataset_status":{"post":{"operationId":"dataset_status","summary":"The open.canada.ca record of a watched source or of any dataset identifier: title, licence, update frequency, modified d","description":"The open.canada.ca record of a watched source or of any dataset identifier: title, licence, update frequency, modified dates and files (first 50). Use for \"Show me the record, licence and files of an open.canada.ca dataset by its identifier.\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dataset":{"description":"A watched source key (gsthst_rates, jobbank_wages, canadabuys_tenders, business_benefits, recalls) or a dataset identifier (a lower-case UUID such as 5584a2cf-12af-4b2d-aff5-418410cf5375)","title":"Dataset","type":"string"}},"required":["dataset"],"title":"dataset_statusArguments","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/resource_freshness":{"post":{"operationId":"resource_freshness","summary":"Age in days of each file of a dataset from its last_modified date, set against the update frequency the record states (o","description":"Age in days of each file of a dataset from its last_modified date, set against the update frequency the record states (only ISO durations such as P1D, P1M or P1Y are compared). Use for \"How old are the files in the Job Bank wages dataset compared with its stated update frequency?\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"dataset":{"description":"A watched source key (gsthst_rates, jobbank_wages, canadabuys_tenders, business_benefits, recalls) or a dataset identifier (a lower-case UUID such as 5584a2cf-12af-4b2d-aff5-418410cf5375)","title":"Dataset","type":"string"},"on_date":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO date the age is measured on (default today, UTC)","title":"On Date"}},"required":["dataset"],"title":"resource_freshnessArguments","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}}}}