SPB Git forge

spb/websensor

Public
33commits 1branches 0releases
3.4 MBsize
maindefault branch
10 days agolast push
TypeScript 55.4% Python 43.2% SQL 1.2%
156.9 KB · 2,862 lines yaml
Raw Blame History
1# config/sources.d/50-cities-regions-public-bodies.yaml — sub-national public bodies: Canadian municipalities (top 60 by2# population), Canadian crown corporations & federal agencies not yet covered, Québec ministries and organismes3# (quebec.ca actualités filtered per organisme + Données Québec CKAN per city), US governors / state open-data portals /4# state emergency management / 40 largest US cities, EU & UK regions and cities (news RSS + CKAN / Socrata / ArcGIS Hub /5# Opendatasoft catalogues). Written 2026-09-11; every sensor validated with apps/engine/src/validate.ts (OK only).6# Every entry carries `country:`; Québec / French bodies carry `language: fr`. Open-data catalogues are `llm: false`,7# tier C/D (dataset churn is not news).8#9# Endpoint recipes used here:10#   canada.ca news API  https://api.io.canada.ca/io-server/gc/news/en/v2?dept=<code>&sort=publishedDate&orderBy=desc&pick=50&format=atom11#   quebec.ca actualités https://www.quebec.ca/nouvelles/actualites?tx_solr[filter][]=mo_cabinets:<id>&tx_solr[sort]=newest desc12#                        (server-rendered TYPO3 Solr list, selector #tx-solr-search; the fil-de-presse.rss ignores filters)13#   Données Québec CKAN  …/api/3/action/package_search?fq=organization:<slug>&sort=metadata_modified+desc&rows=5014#   ArcGIS Hub           https://<site>/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified15#   Socrata discovery    https://api.us.socrata.com/api/catalog/v1?domains=<host>&order=updatedAt&limit=5016#   Opendatasoft         https://<portal>/api/explore/v2.1/catalog/datasets?order_by=modified%20desc&limit=5017#18# Not listed because blocked or without any server-rendered endpoint (2026-09-11): Ottawa city news (Incapsula) — Open19# Ottawa hub used instead; Vancouver news (sitemap only); Terrebonne, Chatham-Kent, Trois-Rivières (v3r.net feeds empty),20# Richmond BC, Vaughan, Milton, Kelowna (no news feed or index; hubs used where they exist); Guelph (Cloudflare challenge on21# feed); RTC Québec, STM alerts (API key), Winnipeg Transit alerts (API key); Loto-Québec, SAQ, LCBO, BCLC, Hydro One22# (client-rendered media rooms), Investissement Québec (no feed), Nova Scotia Power (403), SGI (no feed), WCB Alberta23# (no feed); quebec.ca fil-de-presse per-ministry RSS (filters ignored); US governors CA/FL/NY/TX/WA already in 25;24# Illinois / Massachusetts / Michigan / Minnesota / New Jersey / Oregon / Pennsylvania / Wisconsin governor sites (JS25# shells or 403); state Socrata portals without a catalogue (Hawaii, Iowa, Utah, Virginia, Wisconsin, Nevada…); Manchester,26# Birmingham, Glasgow, Cardiff (no feed / 403), Amsterdam DCAT API (404), Frankfurt, Rotterdam, Oslo, Prague, Lisbon,27# Madrid city (no server-rendered news, no CKAN reachable), Zurich media releases (client-rendered) — CKAN portals kept;28# Comunidad de Madrid RSS (404), MEL Opendatasoft (HTML instead of JSON), data.gov.ie (429), Barcelona CKAN (timeouts),29# Sherbrooke actualités (404), Windsor newsroom (client-rendered), Virginia governor / Cal OES / VDEM (incomplete TLS chain),30# Connecticut / Indiana / Louisiana / South Carolina governors, NYC mayor, Denver, Long Beach, GLA media centre (JS shells).31# quebec.ca answers HTTP 202 (placeholder) to bursts of filtered actualités requests: the ministries and the larger32# organismes validated, ~30 smaller organismes did not under the validator's concurrency and were left out (or kept33# sensor-less with discover flags when the body matters: Revenu Québec, Retraite Québec, SAQ, Investissement Québec, BAnQ,34# Héma-Québec, SHQ).35sources:36  # ───────────────────────────── CANADA — municipalities (extensions of existing ids first) ─────────────────────────────37  - id: ttc38    extend: true39    sensors:40      - { name: news, url: "https://www.ttc.ca/news", type: HTML, connector: http, tier: C }41  - id: oc-transpo42    extend: true43    sensors:44      - { name: service alerts, url: "https://www.octranspo.com/en/alerts/", type: HTML, connector: http, tier: B }45  - id: metrolinx46    extend: true47    sensors:48      - { name: GO Transit service updates, url: "https://www.gotransit.com/en/service-updates/service-updates", type: HTML, connector: http, tier: B }49  - id: hamilton50    extend: true51    sensors:52      - { name: open data hub (ArcGIS), url: "https://open.hamilton.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://open.hamilton.ca/datasets/{key}" } }53  - id: ville-de-quebec54    extend: true55    sensors:56      - { name: données ouvertes (Données Québec CKAN), url: "https://www.donneesquebec.ca/recherche/api/3/action/package_search?fq=organization:ville-de-quebec&sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://www.donneesquebec.ca/recherche/dataset/{key}" } }57  - id: gatineau58    extend: true59    sensors:60      - { name: données ouvertes (Données Québec CKAN), url: "https://www.donneesquebec.ca/recherche/api/3/action/package_search?fq=organization:ville-de-gatineau&sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://www.donneesquebec.ca/recherche/dataset/{key}" } }61  - id: longueuil62    extend: true63    sensors:64      - { name: données ouvertes (Données Québec CKAN), url: "https://www.donneesquebec.ca/recherche/api/3/action/package_search?fq=organization:ville-de-longueuil&sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://www.donneesquebec.ca/recherche/dataset/{key}" } }65  - id: city-of-ottawa66    name: City of Ottawa67    domain: ottawa.ca68    categories: [government, open-data]69    tier: C70    weight: 1.171    aliases: [city of ottawa, ville d'ottawa, open ottawa]72    country: CA73    llm: false74    notes: "ottawa.ca news is behind Incapsula (bot challenge); the Open Ottawa ArcGIS Hub search API is the only pollable endpoint."75    sensors:76      - { name: Open Ottawa datasets (ArcGIS Hub), url: "https://open.ottawa.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://open.ottawa.ca/datasets/{key}" } }77  - id: city-of-winnipeg78    name: City of Winnipeg79    domain: winnipeg.ca80    categories: [government, open-data]81    tier: C82    weight: 1.183    aliases: [city of winnipeg, winnipeg]84    country: CA85    sensors:86      - { name: media releases (RSS), url: "https://www.winnipeg.ca/rss/en/media-releases.xml", type: RSS, connector: rss, tier: C }87      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.winnipeg.ca&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }88  - id: city-of-mississauga89    name: City of Mississauga90    domain: mississauga.ca91    categories: [government, open-data]92    tier: C93    aliases: [city of mississauga, mississauga]94    country: CA95    sensors:96      - { name: news, url: "https://www.mississauga.ca/city-of-mississauga-news/news/", type: HTML, connector: http, tier: C }97      - { name: open data hub (ArcGIS), url: "https://data.mississauga.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.mississauga.ca/datasets/{key}" } }98  - id: city-of-vancouver99    name: City of Vancouver100    domain: vancouver.ca101    categories: [government]102    tier: C103    weight: 1.1104    aliases: [city of vancouver]105    country: CA106    discover: { rss: true, sitemap: true, pages: true }107    notes: "vancouver.ca news is 403 to non-browser clients; only the sitemap answers — kept for discovery (open data lives in vancouver-open-data). Open data catalogue is the vancouver-open-data source (Opendatasoft)."108  - id: city-of-brampton109    name: City of Brampton110    domain: brampton.ca111    categories: [government, open-data]112    tier: C113    aliases: [city of brampton, brampton]114    country: CA115    sensors:116      - { name: news, url: "https://www.brampton.ca/EN/City-Hall/News/", type: HTML, connector: http, tier: C }117      - { name: GeoHub datasets (ArcGIS), url: "https://geohub.brampton.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://geohub.brampton.ca/datasets/{key}" } }118  - id: city-of-surrey119    name: City of Surrey120    domain: surrey.ca121    categories: [government]122    tier: C123    aliases: [city of surrey, surrey bc]124    country: CA125    sensors:126      - { name: news, url: "https://www.surrey.ca/news-events/news", type: HTML, connector: http, tier: C }127  - id: halifax-regional-municipality128    name: Halifax Regional Municipality129    domain: halifax.ca130    categories: [government, transport, open-data]131    tier: C132    weight: 1.1133    aliases: [halifax, hrm, halifax regional municipality, halifax transit]134    country: CA135    sensors:136      - { name: news, url: "https://www.halifax.ca/home/news", type: HTML, connector: http, tier: C }137      - { name: nouvelles (RSS fr), url: "https://www.halifax.ca/fr/rss.xml", type: RSS, connector: rss, tier: C }138      - { name: Halifax Transit service alerts, url: "https://www.halifax.ca/transportation/halifax-transit/service-alerts", type: HTML, connector: http, tier: B }139      - { name: open data hub (ArcGIS), url: "https://data-hrm.hub.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data-hrm.hub.arcgis.com/datasets/{key}" } }140  - id: ville-de-laval141    name: Ville de Laval142    domain: laval.ca143    categories: [government, open-data]144    tier: C145    aliases: [ville de laval, laval]146    country: CA147    language: fr148    sensors:149      - { name: nouvelles (RSS), url: "https://www.laval.ca/feed/", type: RSS, connector: rss, tier: C }150      - { name: données ouvertes (Données Québec CKAN), url: "https://www.donneesquebec.ca/recherche/api/3/action/package_search?fq=organization:ville-de-laval&sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://www.donneesquebec.ca/recherche/dataset/{key}" } }151  - id: city-of-london-ontario152    name: City of London (Ontario)153    domain: london.ca154    categories: [government, open-data]155    tier: C156    aliases: [city of london ontario, london ontario]157    country: CA158    sensors:159      - { name: newsroom, url: "https://london.ca/newsroom", type: HTML, connector: http, tier: C }160      - { name: open data hub (ArcGIS), url: "https://opendata.london.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.london.ca/datasets/{key}" } }161  - id: city-of-markham162    name: City of Markham163    domain: markham.ca164    categories: [government, open-data]165    tier: C166    aliases: [city of markham, markham]167    country: CA168    sensors:169      - { name: news, url: "https://www.markham.ca/news", type: HTML, connector: http, tier: C }170      - { name: open data hub (ArcGIS), url: "https://data-markham.opendata.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data-markham.opendata.arcgis.com/datasets/{key}" } }171  - id: city-of-vaughan172    name: City of Vaughan173    domain: vaughan.ca174    categories: [government]175    tier: C176    aliases: [city of vaughan, vaughan]177    country: CA178    sensors:179      - { name: news, url: "https://www.vaughan.ca/news", type: HTML, connector: http, tier: C }180  - id: city-of-saskatoon181    name: City of Saskatoon182    domain: saskatoon.ca183    categories: [government]184    tier: C185    aliases: [city of saskatoon, saskatoon]186    country: CA187    sensors:188      - { name: news releases, url: "https://www.saskatoon.ca/news-releases", type: HTML, connector: http, tier: C }189  - id: city-of-kitchener190    name: City of Kitchener191    domain: kitchener.ca192    categories: [government, open-data]193    tier: C194    aliases: [city of kitchener, kitchener]195    country: CA196    sensors:197      - { name: news (RSS), url: "https://www.kitchener.ca/news/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }198      - { name: open data hub (ArcGIS), url: "https://open-kitchenergis.opendata.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://open-kitchenergis.opendata.arcgis.com/datasets/{key}" } }199  - id: city-of-burnaby200    name: City of Burnaby201    domain: burnaby.ca202    categories: [government, open-data]203    tier: C204    aliases: [city of burnaby, burnaby]205    country: CA206    sensors:207      - { name: news, url: "https://www.burnaby.ca/news", type: HTML, connector: http, tier: C }208      - { name: open data hub (ArcGIS), url: "https://data.burnaby.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.burnaby.ca/datasets/{key}" } }209  - id: city-of-regina210    name: City of Regina211    domain: regina.ca212    categories: [government]213    tier: C214    aliases: [city of regina, regina]215    country: CA216    sensors:217      - { name: news, url: "https://www.regina.ca/news", type: HTML, connector: http, tier: C }218  - id: town-of-oakville219    name: Town of Oakville220    domain: oakville.ca221    categories: [government, open-data]222    tier: C223    aliases: [town of oakville, oakville]224    country: CA225    llm: false226    sensors:227      - { name: Explore Oakville datasets (ArcGIS), url: "https://portal-exploreoakville.opendata.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://portal-exploreoakville.opendata.arcgis.com/datasets/{key}" } }228  - id: city-of-richmond-hill229    name: City of Richmond Hill230    domain: richmondhill.ca231    categories: [government]232    tier: C233    aliases: [city of richmond hill, richmond hill]234    country: CA235    sensors:236      - { name: news, url: "https://www.richmondhill.ca/news", type: HTML, connector: http, tier: C }237  - id: city-of-burlington238    name: City of Burlington239    domain: burlington.ca240    categories: [government, open-data]241    tier: C242    aliases: [city of burlington, burlington ontario]243    country: CA244    sensors:245      - { name: news and notices, url: "https://www.burlington.ca/news", type: HTML, connector: http, tier: C }246      - { name: open data hub (ArcGIS), url: "https://navburl-burlington.opendata.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://navburl-burlington.opendata.arcgis.com/datasets/{key}" } }247  - id: city-of-oshawa248    name: City of Oshawa249    domain: oshawa.ca250    categories: [government]251    tier: C252    aliases: [city of oshawa, oshawa]253    country: CA254    sensors:255      - { name: news (RSS), url: "https://www.oshawa.ca/news/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }256  - id: ville-de-sherbrooke257    name: Ville de Sherbrooke258    domain: sherbrooke.ca259    categories: [government, open-data]260    tier: C261    aliases: [ville de sherbrooke, sherbrooke]262    country: CA263    language: fr264    sensors:265      - { name: données géomatiques ouvertes (Données Québec CKAN), url: "https://www.donneesquebec.ca/recherche/api/3/action/package_search?fq=organization:ville-de-sherbrooke-donnees-geomatiques&sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://www.donneesquebec.ca/recherche/dataset/{key}" } }266  - id: city-of-greater-sudbury267    name: City of Greater Sudbury268    domain: greatersudbury.ca269    categories: [government, open-data]270    tier: C271    aliases: [city of greater sudbury, greater sudbury, sudbury]272    country: CA273    llm: false274    sensors:275      - { name: open data hub (ArcGIS), url: "https://opendata.greatersudbury.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.greatersudbury.ca/datasets/{key}" } }276  - id: city-of-abbotsford277    name: City of Abbotsford278    domain: abbotsford.ca279    categories: [government]280    tier: C281    aliases: [city of abbotsford, abbotsford]282    country: CA283    sensors:284      - { name: news and media, url: "https://www.abbotsford.ca/news", type: HTML, connector: http, tier: C }285  - id: ville-de-levis286    name: Ville de Lévis287    domain: ville.levis.qc.ca288    categories: [government, open-data]289    tier: C290    aliases: [ville de lévis, lévis, levis]291    country: CA292    language: fr293    sensors:294      - { name: salle de presse, url: "https://ville.levis.qc.ca/fr/salle-de-presse", type: HTML, connector: http, tier: C }295      - { name: données ouvertes (Données Québec CKAN), url: "https://www.donneesquebec.ca/recherche/api/3/action/package_search?fq=organization:ville-de-levis&sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://www.donneesquebec.ca/recherche/dataset/{key}" } }296  - id: city-of-coquitlam297    name: City of Coquitlam298    domain: coquitlam.ca299    categories: [government, open-data]300    tier: C301    aliases: [city of coquitlam, coquitlam]302    country: CA303    sensors:304      - { name: news flash (RSS), url: "https://www.coquitlam.ca/RSSFeed.aspx?ModID=76&CID=All-newsflash.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }305      - { name: open data hub (ArcGIS), url: "https://data.coquitlam.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.coquitlam.ca/datasets/{key}" } }306  - id: city-of-barrie307    name: City of Barrie308    domain: barrie.ca309    categories: [government, open-data]310    tier: C311    aliases: [city of barrie, barrie]312    country: CA313    sensors:314      - { name: news and notices, url: "https://www.barrie.ca/news", type: HTML, connector: http, tier: C }315      - { name: open data hub (ArcGIS), url: "https://opendata.barrie.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.barrie.ca/datasets/{key}" } }316  - id: ville-de-saguenay317    name: Ville de Saguenay318    domain: ville.saguenay.ca319    categories: [government, open-data]320    tier: C321    aliases: [ville de saguenay, saguenay]322    country: CA323    language: fr324    sensors:325      - { name: actualités, url: "https://ville.saguenay.ca/actualites", type: HTML, connector: http, tier: C }326      - { name: données ouvertes (Données Québec CKAN), url: "https://www.donneesquebec.ca/recherche/api/3/action/package_search?fq=organization:ville-de-saguenay&sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://www.donneesquebec.ca/recherche/dataset/{key}" } }327  - id: city-of-kelowna328    name: City of Kelowna329    domain: kelowna.ca330    categories: [government, open-data]331    tier: C332    aliases: [city of kelowna, kelowna]333    country: CA334    llm: false335    sensors:336      - { name: open data hub (ArcGIS), url: "https://opendata.kelowna.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.kelowna.ca/datasets/{key}" } }337  - id: city-of-guelph338    name: City of Guelph339    domain: guelph.ca340    categories: [government]341    tier: C342    aliases: [city of guelph, guelph]343    country: CA344    sensors:345      - { name: news (RSS), url: "https://guelph.ca/feed/", type: RSS, connector: rss, tier: C }346  - id: ville-de-trois-rivieres347    name: Ville de Trois-Rivières348    domain: v3r.net349    categories: [government, open-data]350    tier: C351    aliases: [ville de trois-rivières, trois-rivières, trois-rivieres]352    country: CA353    language: fr354    llm: false355    sensors:356      - { name: données ouvertes (Données Québec CKAN), url: "https://www.donneesquebec.ca/recherche/api/3/action/package_search?fq=organization:ville-de-trois-rivieres&sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://www.donneesquebec.ca/recherche/dataset/{key}" } }357  - id: town-of-whitby358    name: Town of Whitby359    domain: whitby.ca360    categories: [government]361    tier: C362    aliases: [town of whitby, whitby]363    country: CA364    sensors:365      - { name: news (RSS), url: "https://www.whitby.ca/news/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }366  - id: city-of-cambridge367    name: City of Cambridge (Ontario)368    domain: cambridge.ca369    categories: [government]370    tier: C371    aliases: [city of cambridge, cambridge ontario]372    country: CA373    sensors:374      - { name: news (RSS), url: "https://www.cambridge.ca/news/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }375  - id: city-of-st-catharines376    name: City of St. Catharines377    domain: stcatharines.ca378    categories: [government]379    tier: C380    aliases: [city of st. catharines, st. catharines, st catharines]381    country: CA382    sensors:383      - { name: news (RSS), url: "https://www.stcatharines.ca/news/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }384  - id: niagara-region385    name: Niagara Region386    domain: niagararegion.ca387    categories: [government, open-data]388    tier: C389    aliases: [niagara region, regional municipality of niagara, niagara open data]390    country: CA391    llm: false392    sensors:393      - { name: Niagara Open Data (CKAN), url: "https://niagaraopendata.ca/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://niagaraopendata.ca/dataset/{key}" } }394  - id: township-of-langley395    name: Township of Langley396    domain: tol.ca397    categories: [government]398    tier: C399    aliases: [township of langley, langley township, langley bc]400    country: CA401    sensors:402      - { name: news, url: "https://www.tol.ca/news", type: HTML, connector: http, tier: C }403  - id: city-of-kingston404    name: City of Kingston405    domain: cityofkingston.ca406    categories: [government, open-data]407    tier: C408    aliases: [city of kingston, kingston ontario]409    country: CA410    sensors:411      - { name: news (RSS), url: "https://www.cityofkingston.ca/news/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }412      - { name: open data hub (ArcGIS), url: "https://opendatakingston.cityofkingston.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendatakingston.cityofkingston.ca/datasets/{key}" } }413  - id: town-of-ajax414    name: Town of Ajax415    domain: ajax.ca416    categories: [government, open-data]417    tier: C418    aliases: [town of ajax, ajax ontario]419    country: CA420    sensors:421      - { name: community news and notices, url: "https://www.ajax.ca/en/news", type: HTML, connector: http, tier: C }422      - { name: open data hub (ArcGIS), url: "https://opendata.ajax.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.ajax.ca/datasets/{key}" } }423  - id: city-of-waterloo424    name: City of Waterloo425    domain: waterloo.ca426    categories: [government, open-data]427    tier: C428    aliases: [city of waterloo, waterloo ontario]429    country: CA430    sensors:431      - { name: news (RSS), url: "https://www.waterloo.ca/news/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }432      - { name: open data hub (ArcGIS), url: "https://data.waterloo.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.waterloo.ca/datasets/{key}" } }433  - id: region-of-waterloo434    name: Region of Waterloo435    domain: regionofwaterloo.ca436    categories: [government, open-data]437    tier: C438    aliases: [region of waterloo, regional municipality of waterloo, waterloo region]439    country: CA440    llm: false441    sensors:442      - { name: open data hub (ArcGIS), url: "https://rowopendata-rmw.opendata.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://rowopendata-rmw.opendata.arcgis.com/datasets/{key}" } }443  - id: district-of-saanich444    name: District of Saanich445    domain: saanich.ca446    categories: [government]447    tier: C448    aliases: [district of saanich, saanich]449    country: CA450    sensors:451      - { name: latest news, url: "https://www.saanich.ca/news", type: HTML, connector: http, tier: C }452  - id: city-of-st-johns453    name: City of St. John's454    domain: stjohns.ca455    categories: [government]456    tier: C457    aliases: [city of st. john's, st. john's, st john's newfoundland]458    country: CA459    sensors:460      - { name: news (RSS), url: "https://www.stjohns.ca/news/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }461  - id: city-of-thunder-bay462    name: City of Thunder Bay463    domain: thunderbay.ca464    categories: [government, open-data]465    tier: C466    aliases: [city of thunder bay, thunder bay]467    country: CA468    sensors:469      - { name: city news, url: "https://www.thunderbay.ca/news", type: HTML, connector: http, tier: C }470      - { name: open data hub (ArcGIS), url: "https://opendata.thunderbay.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.thunderbay.ca/datasets/{key}" } }471  - id: city-of-delta472    name: City of Delta473    domain: delta.ca474    categories: [government]475    tier: C476    aliases: [city of delta, delta bc]477    country: CA478    sensors:479      - { name: news, url: "https://www.delta.ca/news", type: HTML, connector: http, tier: C }480  - id: city-of-brantford481    name: City of Brantford482    domain: brantford.ca483    categories: [government]484    tier: C485    aliases: [city of brantford, brantford]486    country: CA487    sensors:488      - { name: news (RSS), url: "https://www.brantford.ca/news/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }489  - id: city-of-red-deer490    name: City of Red Deer491    domain: reddeer.ca492    categories: [government]493    tier: C494    aliases: [city of red deer, red deer]495    country: CA496    sensors:497      - { name: news (RSS), url: "https://www.reddeer.ca/rss/rss_news.xml", type: RSS, connector: rss, tier: C }498  - id: strathcona-county499    name: Strathcona County500    domain: strathcona.ca501    categories: [government]502    tier: C503    aliases: [strathcona county, sherwood park]504    country: CA505    sensors:506      - { name: news (RSS), url: "https://www.strathcona.ca/news/feed/", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }507  - id: city-of-lethbridge508    name: City of Lethbridge509    domain: lethbridge.ca510    categories: [government, open-data]511    tier: C512    aliases: [city of lethbridge, lethbridge]513    country: CA514    sensors:515      - { name: news (RSS), url: "https://www.lethbridge.ca/news/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }516      - { name: open data hub (ArcGIS), url: "https://opendata.lethbridge.ca/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.lethbridge.ca/datasets/{key}" } }517  - id: city-of-kamloops518    name: City of Kamloops519    domain: kamloops.ca520    categories: [government, open-data]521    tier: C522    aliases: [city of kamloops, kamloops]523    country: CA524    sensors:525      - { name: news releases, url: "https://www.kamloops.ca/news", type: HTML, connector: http, tier: C }526      - { name: open data hub (ArcGIS), url: "https://mydata-kamloops.opendata.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://mydata-kamloops.opendata.arcgis.com/datasets/{key}" } }527  - id: city-of-nanaimo528    name: City of Nanaimo529    domain: nanaimo.ca530    categories: [government]531    tier: C532    aliases: [city of nanaimo, nanaimo]533    country: CA534    sensors:535      - { name: news releases (Atom), url: "https://www.nanaimo.ca/NewsReleases/rss", type: ATOM, connector: rss, tier: C }536      - { name: newsroom, url: "https://www.nanaimo.ca/newsroom", type: HTML, connector: http, tier: C }537  - id: ville-de-repentigny538    name: Ville de Repentigny539    domain: repentigny.ca540    categories: [government, open-data]541    tier: C542    aliases: [ville de repentigny, repentigny]543    country: CA544    language: fr545    llm: false546    sensors:547      - { name: données ouvertes (Données Québec CKAN), url: "https://www.donneesquebec.ca/recherche/api/3/action/package_search?fq=organization:ville-de-repentigny&sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://www.donneesquebec.ca/recherche/dataset/{key}" } }548  - id: ville-de-brossard549    name: Ville de Brossard550    domain: brossard.ca551    categories: [government]552    tier: C553    aliases: [ville de brossard, brossard]554    country: CA555    language: fr556    sensors:557      - { name: actualités (RSS), url: "https://www.brossard.ca/feed/", type: RSS, connector: rss, tier: C }558  - id: ville-de-drummondville559    name: Ville de Drummondville560    domain: drummondville.ca561    categories: [government]562    tier: C563    aliases: [ville de drummondville, drummondville]564    country: CA565    language: fr566    sensors:567      - { name: nouvelles (RSS), url: "https://www.drummondville.ca/rss.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }568  - id: ville-de-saint-jerome569    name: Ville de Saint-Jérôme570    domain: vsj.ca571    categories: [government]572    tier: C573    aliases: [ville de saint-jérôme, saint-jérôme, saint-jerome]574    country: CA575    language: fr576    sensors:577      - { name: actualités (RSS), url: "https://www.vsj.ca/feed/", type: RSS, connector: rss, tier: C }578  - id: calgary-transit579    name: Calgary Transit580    domain: calgarytransit.com581    categories: [transport, government]582    tier: C583    aliases: [calgary transit]584    country: CA585    sensors:586      - { name: news, url: "https://www.calgarytransit.com/content/transit/en/home/news.html", type: HTML, connector: http, tier: C }587  - id: stl-laval588    name: Société de transport de Laval589    domain: stl.laval.qc.ca590    categories: [transport, government]591    tier: C592    aliases: [stl, société de transport de laval]593    country: CA594    language: fr595    sensors:596      - { name: news, url: "https://www.stl.laval.qc.ca/en/news/", type: HTML, connector: http, tier: C }597  - id: bc-transit598    name: BC Transit599    domain: bctransit.com600    categories: [transport, government]601    tier: C602    aliases: [bc transit]603    country: CA604    sensors:605      - { name: news and media, url: "https://www.bctransit.com/news", type: HTML, connector: http, tier: C }606  # ───────────────────────────── CANADA — crown corporations & federal agencies ─────────────────────────────607  - id: canadian-space-agency608    extend: true609    sensors:610      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=spaceagency&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Canadian%20Space%20Agency", type: ATOM, connector: rss, tier: B }611  - id: cfia612    extend: true613    sensors:614      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=foodinspectionagency&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=CFIA", type: ATOM, connector: rss, tier: B }615  - id: cer616    extend: true617    sensors:618      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=nationalenergyboard&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Canada%20Energy%20Regulator", type: ATOM, connector: rss, tier: B }619  - id: nrc-canada620    extend: true621    sensors:622      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=nationalresearchcouncil&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=NRC", type: ATOM, connector: rss, tier: B }623      - { name: stories, url: "https://nrc.canada.ca/en/stories", type: HTML, connector: http, tier: C }624  - id: cmhc625    extend: true626    sensors:627      - { name: news releases, url: "https://www.cmhc-schl.gc.ca/media-newsroom", type: HTML, connector: http, tier: B }628  - id: bdc629    name: Business Development Bank of Canada630    domain: bdc.ca631    categories: [finance, government]632    tier: C633    weight: 1.1634    aliases: [bdc, business development bank of canada, banque de développement du canada]635    country: CA636    sensors:637      - { name: news releases, url: "https://www.bdc.ca/en/about/mediaroom/news-releases", type: HTML, connector: http, tier: C }638  - id: canada-infrastructure-bank639    name: Canada Infrastructure Bank640    domain: cib-bic.ca641    categories: [finance, infrastructure, government]642    tier: C643    aliases: [cib, canada infrastructure bank, banque de l'infrastructure du canada]644    country: CA645    sensors:646      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=canadainfrastructurebank&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Canada%20Infrastructure%20Bank", type: ATOM, connector: rss, tier: C }647  - id: library-and-archives-canada648    name: Library and Archives Canada649    domain: library-archives.canada.ca650    categories: [government, education]651    tier: C652    aliases: [lac, library and archives canada, bibliothèque et archives canada]653    country: CA654    sensors:655      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=libraryarchives&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Library%20and%20Archives%20Canada", type: ATOM, connector: rss, tier: C }656      - { name: news, url: "https://library-archives.canada.ca/eng/corporate/news/Pages/news.aspx", type: HTML, connector: http, tier: C }657  - id: canadian-human-rights-commission658    name: Canadian Human Rights Commission659    domain: chrc-ccdp.gc.ca660    categories: [government, legal]661    tier: C662    aliases: [chrc, canadian human rights commission, commission canadienne des droits de la personne]663    country: CA664    sensors:665      - { name: news (RSS), url: "https://www.chrc-ccdp.gc.ca/rss.xml", type: RSS, connector: rss, tier: C }666  - id: correctional-service-canada667    name: Correctional Service Canada668    domain: csc-scc.gc.ca669    categories: [government, legal]670    tier: C671    aliases: [csc, correctional service canada, service correctionnel du canada]672    country: CA673    sensors:674      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=correctionalservice&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Correctional%20Service%20Canada", type: ATOM, connector: rss, tier: C }675  - id: parole-board-canada676    name: Parole Board of Canada677    domain: pbc-clcc.gc.ca678    categories: [government, legal]679    tier: C680    aliases: [parole board of canada, commission des libérations conditionnelles du canada]681    country: CA682    sensors:683      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=paroleboard&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Parole%20Board%20of%20Canada", type: ATOM, connector: rss, tier: C }684  - id: rcmp685    name: Royal Canadian Mounted Police686    domain: rcmp.ca687    categories: [government, legal]688    tier: B689    weight: 1.2690    aliases: [rcmp, grc, royal canadian mounted police, gendarmerie royale du canada, mounties]691    country: CA692    notes: "rcmp.ca news index is server-rendered; the canada.ca news API has no RCMP department code (news lives on rcmp.ca)."693    sensors:694      - { name: news, url: "https://rcmp.ca/en/news", type: HTML, connector: http, tier: B }695  - id: canadian-coast-guard696    name: Canadian Coast Guard697    domain: ccg-gcc.gc.ca698    categories: [government, transport]699    tier: C700    aliases: [ccg, canadian coast guard, garde côtière canadienne]701    country: CA702    sensors:703      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=canadiancoastguard&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Canadian%20Coast%20Guard", type: ATOM, connector: rss, tier: C }704      - { name: notices, url: "https://www.ccg-gcc.gc.ca/publications/notices-avis-eng.html", type: HTML, connector: http, tier: C }705  - id: fisheries-and-oceans-canada706    name: Fisheries and Oceans Canada707    domain: dfo-mpo.gc.ca708    categories: [government, agriculture]709    tier: C710    weight: 1.1711    aliases: [dfo, fisheries and oceans canada, pêches et océans canada, mpo]712    country: CA713    sensors:714      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=fisheriesoceans&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Fisheries%20and%20Oceans%20Canada", type: ATOM, connector: rss, tier: C }715  - id: canada-water-agency716    name: Canada Water Agency717    domain: canada.ca718    categories: [government, climate]719    tier: C720    aliases: [canada water agency, agence de l'eau du canada]721    country: CA722    sensors:723      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=canadawateragency&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Canada%20Water%20Agency", type: ATOM, connector: rss, tier: C }724  - id: public-services-and-procurement-canada725    name: Public Services and Procurement Canada726    domain: tpsgc-pwgsc.gc.ca727    categories: [government]728    tier: C729    weight: 1.1730    aliases: [pspc, public services and procurement canada, spac, services publics et approvisionnement canada]731    country: CA732    sensors:733      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=departmentofpublicworksandgovernmentservices&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=PSPC", type: ATOM, connector: rss, tier: C }734  - id: shared-services-canada735    name: Shared Services Canada736    domain: canada.ca737    categories: [government, cloud]738    tier: C739    aliases: [ssc, shared services canada, services partagés canada]740    country: CA741    sensors:742      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=sharedservices&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Shared%20Services%20Canada", type: ATOM, connector: rss, tier: C }743  - id: public-service-commission-canada744    name: Public Service Commission of Canada745    domain: canada.ca746    categories: [government, labour]747    tier: D748    aliases: [psc, public service commission of canada, commission de la fonction publique du canada]749    country: CA750    sensors:751      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=publicservicecommission&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Public%20Service%20Commission", type: ATOM, connector: rss, tier: D }752  - id: canadian-transportation-agency753    name: Canadian Transportation Agency754    domain: otc-cta.gc.ca755    categories: [government, transport]756    tier: C757    aliases: [canadian transportation agency, office des transports du canada]758    country: CA759    sensors:760      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=transportationagency&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Canadian%20Transportation%20Agency", type: ATOM, connector: rss, tier: C }761  - id: ccohs762    name: Canadian Centre for Occupational Health and Safety763    domain: ccohs.ca764    categories: [government, labour, health]765    tier: D766    aliases: [ccohs, canadian centre for occupational health and safety, cchst]767    country: CA768    sensors:769      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=canadiancentreforoccupationalhealthandsafety&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=CCOHS", type: ATOM, connector: rss, tier: D }770  - id: pmprb771    name: Patented Medicine Prices Review Board772    domain: canada.ca773    categories: [government, pharma]774    tier: C775    aliases: [pmprb, patented medicine prices review board, cepmb]776    country: CA777    sensors:778      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=patentedmedicinepricesreviewboard&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=PMPRB", type: ATOM, connector: rss, tier: C }779  - id: national-film-board780    name: National Film Board of Canada781    domain: nfb.ca782    categories: [government, entertainment]783    tier: D784    aliases: [nfb, national film board, onf, office national du film]785    country: CA786    sensors:787      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=nationalfilmboard&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=NFB", type: ATOM, connector: rss, tier: D }788  - id: national-capital-commission789    name: National Capital Commission790    domain: ncc-ccn.gc.ca791    categories: [government]792    tier: D793    aliases: [ncc, national capital commission, commission de la capitale nationale]794    country: CA795    sensors:796      - { name: news, url: "https://ncc-ccn.gc.ca/news", type: HTML, connector: http, tier: D }797  - id: canada-council-for-the-arts798    name: Canada Council for the Arts799    domain: canadacouncil.ca800    categories: [government, entertainment]801    tier: D802    aliases: [canada council for the arts, conseil des arts du canada]803    country: CA804    sensors:805      - { name: press, url: "https://canadacouncil.ca/press", type: HTML, connector: http, tier: D }806  - id: acoa807    name: Atlantic Canada Opportunities Agency808    domain: canada.ca809    categories: [government, finance]810    tier: D811    aliases: [acoa, atlantic canada opportunities agency, apeca]812    country: CA813    sensors:814      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=atlanticcanadaopportunities&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=ACOA", type: ATOM, connector: rss, tier: D }815  - id: ced-quebec-regions816    name: Canada Economic Development for Quebec Regions817    domain: canada.ca818    categories: [government, finance]819    tier: D820    aliases: [ced, canada economic development for quebec regions, dec, développement économique canada pour les régions du québec]821    country: CA822    language: fr823    sensors:824      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=economicdevelopmentquebecregions&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=CED", type: ATOM, connector: rss, tier: D }825  - id: prairiescan826    name: Prairies Economic Development Canada827    domain: canada.ca828    categories: [government, finance]829    tier: D830    aliases: [prairiescan, prairies economic development canada]831    country: CA832    sensors:833      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=prairieseconomicdevelopment&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=PrairiesCan", type: ATOM, connector: rss, tier: D }834  - id: pacifican835    name: Pacific Economic Development Canada836    domain: canada.ca837    categories: [government, finance]838    tier: D839    aliases: [pacifican, pacific economic development canada]840    country: CA841    sensors:842      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=pacificeconomicdevelopment&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=PacifiCan", type: ATOM, connector: rss, tier: D }843  - id: feddev-ontario844    name: Federal Economic Development Agency for Southern Ontario845    domain: canada.ca846    categories: [government, finance]847    tier: D848    aliases: [feddev ontario, federal economic development agency for southern ontario]849    country: CA850    sensors:851      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=economicdevelopmentsouthernontario&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=FedDev%20Ontario", type: ATOM, connector: rss, tier: D }852  - id: fednor853    name: FedNor854    domain: canada.ca855    categories: [government, finance]856    tier: D857    aliases: [fednor, federal economic development agency for northern ontario]858    country: CA859    sensors:860      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=fednor&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=FedNor", type: ATOM, connector: rss, tier: D }861  - id: cannor862    name: Canadian Northern Economic Development Agency863    domain: canada.ca864    categories: [government, finance]865    tier: D866    aliases: [cannor, canadian northern economic development agency]867    country: CA868    sensors:869      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=canadiannortherneconomicdevelopmentagency&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=CanNor", type: ATOM, connector: rss, tier: D }870  - id: polar-knowledge-canada871    name: Polar Knowledge Canada872    domain: canada.ca873    categories: [government, science]874    tier: D875    aliases: [polar knowledge canada, savoir polaire canada]876    country: CA877    sensors:878      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=polarknowledge&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Polar%20Knowledge%20Canada", type: ATOM, connector: rss, tier: D }879  - id: defence-investment-agency880    name: Defence Investment Agency881    domain: canada.ca882    categories: [government]883    tier: C884    aliases: [defence investment agency, agence d'investissement pour la défense]885    country: CA886    sensors:887      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=defenceinvestmentagency&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Defence%20Investment%20Agency", type: ATOM, connector: rss, tier: C }888  - id: canada-research-chairs889    name: Canada Research Chairs890    domain: chairs-chaires.gc.ca891    categories: [government, research]892    tier: D893    aliases: [canada research chairs, chaires de recherche du canada]894    country: CA895    sensors:896      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=researchchairs&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Canada%20Research%20Chairs", type: ATOM, connector: rss, tier: D }897  - id: atssc898    name: Administrative Tribunals Support Service of Canada899    domain: canada.ca900    categories: [government, legal]901    tier: D902    aliases: [atssc, administrative tribunals support service of canada]903    country: CA904    sensors:905      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=administrativetribunalssupportservice&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=ATSSC", type: ATOM, connector: rss, tier: D }906  - id: military-police-complaints-commission907    name: Military Police Complaints Commission of Canada908    domain: mpcc-cppm.gc.ca909    categories: [government, legal]910    tier: D911    aliases: [mpcc, military police complaints commission]912    country: CA913    sensors:914      - { name: news releases (canada.ca API), url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=militarypolicecomplaints&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=MPCC", type: ATOM, connector: rss, tier: D }915  # provincial crown corporations & agencies916  - id: saskpower917    name: SaskPower918    domain: saskpower.com919    categories: [energy, government]920    tier: C921    aliases: [saskpower, saskatchewan power corporation]922    country: CA923    sensors:924      - { name: news releases, url: "https://www.saskpower.com/about-us/media-information/news-releases", type: HTML, connector: http, tier: C }925  - id: manitoba-hydro926    name: Manitoba Hydro927    domain: hydro.mb.ca928    categories: [energy, government]929    tier: C930    aliases: [manitoba hydro]931    country: CA932    sensors:933      - { name: news and media, url: "https://www.hydro.mb.ca/corporate/news_media/", type: HTML, connector: http, tier: C }934  - id: nb-power935    name: NB Power936    domain: nbpower.com937    categories: [energy, government]938    tier: C939    aliases: [nb power, énergie nb, new brunswick power]940    country: CA941    sensors:942      - { name: news, url: "https://www.nbpower.com/en/about-us/news-media-centre/news/", type: HTML, connector: http, tier: C }943  - id: nl-hydro944    name: Newfoundland and Labrador Hydro945    domain: nlhydro.com946    categories: [energy, government]947    tier: C948    aliases: [nl hydro, newfoundland and labrador hydro]949    country: CA950    sensors:951      - { name: news, url: "https://nlhydro.com/news/", type: HTML, connector: http, tier: C }952  - id: manitoba-public-insurance953    name: Manitoba Public Insurance954    domain: mpi.mb.ca955    categories: [finance, government, automotive]956    tier: C957    aliases: [mpi, manitoba public insurance]958    country: CA959    sensors:960      - { name: news releases (RSS), url: "https://www.mpi.mb.ca/feed/", type: RSS, connector: rss, tier: C }961  - id: worksafebc962    extend: true963    sensors:964      - { name: news releases, url: "https://www.worksafebc.com/en/about-us/news-events/news-releases", type: HTML, connector: http, tier: C }965  - id: edmonton-international-airport966    name: Edmonton International Airport967    domain: flyeia.com968    categories: [aviation, transport]969    tier: C970    aliases: [yeg, edmonton international airport, flyeia]971    country: CA972    sensors:973      - { name: news (RSS), url: "https://flyeia.com/feed/", type: RSS, connector: rss, tier: C }974  - id: halifax-stanfield-airport975    name: Halifax Stanfield International Airport976    domain: halifaxstanfield.ca977    categories: [aviation, transport]978    tier: C979    aliases: [yhz, halifax stanfield, halifax international airport authority]980    country: CA981    sensors:982      - { name: media centre, url: "https://halifaxstanfield.ca/media-centre/", type: HTML, connector: http, tier: C }983  # ───────────────────────────── CANADA — Québec : ministères (quebec.ca actualités filtrées par organisme) ─────────────────────────────984  - id: msss985    extend: true986    sensors:987      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A23&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }988  - id: rbq989    extend: true990    sensors:991      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A118&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }992  - id: regie-energie-quebec993    extend: true994    sensors:995      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A114&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }996  - id: cnesst997    extend: true998    sensors:999      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A149&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1000  - id: opc-quebec1001    extend: true1002    sensors:1003      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A106&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1004  - id: surete-du-quebec1005    extend: true1006    sensors:1007      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A357&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1008  - id: saaq1009    extend: true1010    sensors:1011      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A125&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1012  - id: ramq1013    extend: true1014    sensors:1015      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A113&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1016  - id: inspq1017    extend: true1018    sensors:1019      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A98&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1020  - id: inesss1021    extend: true1022    sensors:1023      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A97&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1024  - id: isq1025    extend: true1026    sensors:1027      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A95&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1028  - id: vgq1029    extend: true1030    sensors:1031      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A150&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1032  - id: protecteur-du-citoyen1033    extend: true1034    sensors:1035      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A155&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1036  - id: cai-quebec1037    extend: true1038    sensors:1039      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A60&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1040  - id: sante-quebec1041    extend: true1042    sensors:1043      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A4418&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1044  - id: bape1045    extend: true1046    sensors:1047      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A47&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1048  - id: artm1049    extend: true1050    sensors:1051      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A256&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1052  - id: frq1053    extend: true1054    sensors:1055      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A4237&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1056  - id: tal-quebec1057    extend: true1058    sensors:1059      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A119&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1060  - id: mei-quebec1061    name: Ministère de l'Économie, de l'Innovation et de l'Énergie du Québec1062    domain: economie.gouv.qc.ca1063    categories: [government, finance, energy]1064    tier: B1065    weight: 1.11066    aliases: [mei, ministère de l'économie de l'innovation et de l'énergie, économie québec]1067    country: CA1068    language: fr1069    sensors:1070      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A26&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: B, config: { selector: "#tx-solr-search" } }1071  - id: mtq1072    name: Ministère des Transports et de la Mobilité durable du Québec1073    domain: transports.gouv.qc.ca1074    categories: [government, transport]1075    tier: B1076    weight: 1.11077    aliases: [mtq, mtmd, ministère des transports et de la mobilité durable, transports québec]1078    country: CA1079    language: fr1080    sensors:1081      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A44&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: B, config: { selector: "#tx-solr-search" } }1082  - id: melccfp1083    name: Ministère de l'Environnement, de la Lutte contre les changements climatiques, de la Faune et des Parcs1084    domain: environnement.gouv.qc.ca1085    categories: [government, climate]1086    tier: B1087    weight: 1.11088    aliases: [melccfp, melcc, ministère de l'environnement du québec, environnement québec]1089    country: CA1090    language: fr1091    sensors:1092      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A34&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: B, config: { selector: "#tx-solr-search" } }1093  - id: mapaq1094    name: Ministère de l'Agriculture, des Pêcheries et de l'Alimentation du Québec1095    domain: mapaq.gouv.qc.ca1096    categories: [government, agriculture, food]1097    tier: B1098    weight: 1.01099    aliases: [mapaq, ministère de l'agriculture des pêcheries et de l'alimentation]1100    country: CA1101    language: fr1102    sensors:1103      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A25&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: B, config: { selector: "#tx-solr-search" } }1104  - id: mfq1105    name: Ministère des Finances du Québec1106    domain: finances.gouv.qc.ca1107    categories: [government, finance]1108    tier: B1109    weight: 1.21110    aliases: [mfq, ministère des finances du québec, finances québec]1111    country: CA1112    language: fr1113    sensors:1114      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A30&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: B, config: { selector: "#tx-solr-search" } }1115  - id: mess-quebec1116    name: Ministère de l'Emploi et de la Solidarité sociale1117    domain: mess.gouv.qc.ca1118    categories: [government, labour]1119    tier: C1120    weight: 1.01121    aliases: [mess, ministère de l'emploi et de la solidarité sociale, emploi québec]1122    country: CA1123    language: fr1124    sensors:1125      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A4&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1126  - id: meq1127    name: Ministère de l'Éducation du Québec1128    domain: education.gouv.qc.ca1129    categories: [government, education]1130    tier: B1131    weight: 1.01132    aliases: [meq, ministère de l'éducation du québec, éducation québec]1133    country: CA1134    language: fr1135    sensors:1136      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A5&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: B, config: { selector: "#tx-solr-search" } }1137  - id: mes-quebec1138    name: Ministère de l'Enseignement supérieur du Québec1139    domain: enseignementsuperieur.gouv.qc.ca1140    categories: [government, education]1141    tier: C1142    weight: 1.01143    aliases: [mes, ministère de l'enseignement supérieur]1144    country: CA1145    language: fr1146    sensors:1147      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A365&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1148  - id: msp-quebec1149    name: Ministère de la Sécurité intérieure du Québec1150    domain: securitepublique.gouv.qc.ca1151    categories: [government]1152    tier: B1153    weight: 1.11154    aliases: [msp, ministère de la sécurité publique, ministère de la sécurité intérieure, sécurité publique québec]1155    country: CA1156    language: fr1157    sensors:1158      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A4657&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: B, config: { selector: "#tx-solr-search" } }1159  - id: justice-quebec1160    name: Ministère de la Justice du Québec1161    domain: justice.gouv.qc.ca1162    categories: [government, legal]1163    tier: C1164    weight: 1.01165    aliases: [ministère de la justice du québec, justice québec]1166    country: CA1167    language: fr1168    sensors:1169      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A22&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1170  - id: mcc-quebec1171    name: Ministère de la Culture et des Communications du Québec1172    domain: mcc.gouv.qc.ca1173    categories: [government, entertainment]1174    tier: C1175    weight: 1.01176    aliases: [mcc, ministère de la culture et des communications]1177    country: CA1178    language: fr1179    sensors:1180      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A20&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1181  - id: tourisme-quebec1182    name: Ministère du Tourisme du Québec1183    domain: tourisme.gouv.qc.ca1184    categories: [government, travel]1185    tier: C1186    weight: 1.01187    aliases: [ministère du tourisme, tourisme québec]1188    country: CA1189    language: fr1190    sensors:1191      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A35&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1192  - id: mamh1193    name: Ministère des Affaires municipales et de l'Habitation1194    domain: mamh.gouv.qc.ca1195    categories: [government, real-estate]1196    tier: B1197    weight: 1.01198    aliases: [mamh, ministère des affaires municipales et de l'habitation, affaires municipales québec]1199    country: CA1200    language: fr1201    sensors:1202      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A29&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: B, config: { selector: "#tx-solr-search" } }1203  - id: mfa-quebec1204    name: Ministère de la Famille du Québec1205    domain: mfa.gouv.qc.ca1206    categories: [government]1207    tier: C1208    weight: 1.01209    aliases: [mfa, ministère de la famille]1210    country: CA1211    language: fr1212    sensors:1213      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A21&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1214  - id: mri-quebec1215    name: Ministère des Relations internationales et de la Francophonie1216    domain: mri.gouv.qc.ca1217    categories: [government, international]1218    tier: C1219    weight: 1.01220    aliases: [mri, mrif, ministère des relations internationales et de la francophonie]1221    country: CA1222    language: fr1223    sensors:1224      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A32&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1225  - id: travail-quebec1226    name: Ministère du Travail du Québec1227    domain: travail.gouv.qc.ca1228    categories: [government, labour]1229    tier: C1230    weight: 1.01231    aliases: [ministère du travail du québec, travail québec]1232    country: CA1233    language: fr1234    sensors:1235      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A4284&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1236  - id: mrnf-quebec1237    name: Ministère des Ressources naturelles et des Forêts1238    domain: mrnf.gouv.qc.ca1239    categories: [government, energy, climate]1240    tier: C1241    weight: 1.01242    aliases: [mrnf, ministère des ressources naturelles et des forêts]1243    country: CA1244    language: fr1245    sensors:1246      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A27&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1247  - id: mifi1248    name: Ministère de l'Immigration, de la Francisation et de l'Intégration1249    domain: immigration-quebec.gouv.qc.ca1250    categories: [government]1251    tier: C1252    weight: 1.01253    aliases: [mifi, ministère de l'immigration de la francisation et de l'intégration, immigration québec]1254    country: CA1255    language: fr1256    sensors:1257      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A28&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1258  - id: mcn-quebec1259    name: Ministère de la Cybersécurité et du Numérique1260    domain: cybersecurite.gouv.qc.ca1261    categories: [government, cyber]1262    tier: C1263    weight: 1.01264    aliases: [mcn, ministère de la cybersécurité et du numérique]1265    country: CA1266    language: fr1267    sensors:1268      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A4244&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1269  - id: mlf-quebec1270    name: Ministère de la Langue française1271    domain: quebec.ca1272    categories: [government]1273    tier: D1274    weight: 1.01275    aliases: [ministère de la langue française]1276    country: CA1277    language: fr1278    sensors:1279      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A4245&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: D, config: { selector: "#tx-solr-search" } }1280  - id: conseil-executif-quebec1281    name: Ministère du Conseil exécutif du Québec1282    domain: quebec.ca1283    categories: [government, politics]1284    tier: B1285    weight: 1.11286    aliases: [mce, ministère du conseil exécutif, conseil exécutif québec]1287    country: CA1288    language: fr1289    sensors:1290      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A33&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: B, config: { selector: "#tx-solr-search" } }1291  - id: sct-quebec1292    name: Secrétariat du Conseil du trésor du Québec1293    domain: tresor.gouv.qc.ca1294    categories: [government, finance]1295    tier: C1296    weight: 1.01297    aliases: [sct, secrétariat du conseil du trésor, conseil du trésor québec]1298    country: CA1299    language: fr1300    sensors:1301      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A43&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1302  # ───────────────────────────── CANADA — Québec : organismes ─────────────────────────────1303  - id: amp-quebec1304    name: Autorité des marchés publics1305    domain: amp.quebec1306    categories: [government, legal]1307    tier: C1308    aliases: [amp, autorité des marchés publics]1309    country: CA1310    language: fr1311    sensors:1312      - { name: actualités, url: "https://amp.quebec/actualites/", type: HTML, connector: http, tier: C }1313      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A159&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1314  - id: tat-quebec1315    name: Tribunal administratif du travail1316    domain: tat.gouv.qc.ca1317    categories: [government, legal, labour]1318    tier: D1319    aliases: [tat, tribunal administratif du travail]1320    country: CA1321    language: fr1322    sensors:1323      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A147&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: D, config: { selector: "#tx-solr-search" } }1324  - id: curateur-public-quebec1325    name: Curateur public du Québec1326    domain: curateur.gouv.qc.ca1327    categories: [government, legal]1328    tier: D1329    aliases: [curateur public du québec]1330    country: CA1331    language: fr1332    sensors:1333      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A84&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: D, config: { selector: "#tx-solr-search" } }1334  - id: dpcp1335    name: Directeur des poursuites criminelles et pénales1336    domain: dpcp.gouv.qc.ca1337    categories: [government, legal]1338    tier: C1339    aliases: [dpcp, directeur des poursuites criminelles et pénales]1340    country: CA1341    language: fr1342    sensors:1343      - { name: actualités (quebec.ca, filtre organisme), url: "https://www.quebec.ca/nouvelles/actualites?tx_solr%5Bfilter%5D%5B%5D=mo_cabinets%3A85&tx_solr%5Bsort%5D=newest%20desc", type: HTML, connector: http, tier: C, config: { selector: "#tx-solr-search" } }1344  - id: retraite-quebec1345    name: Retraite Québec1346    domain: retraitequebec.gouv.qc.ca1347    categories: [government, finance]1348    tier: C1349    aliases: [retraite québec, rrq, régime de rentes du québec]1350    country: CA1351    discover: { rss: true, sitemap: true, pages: true }1352    notes: "quebec.ca actualités filter mo_cabinets:120 throttled (202) under load; retraitequebec.gouv.qc.ca news moved (404). Kept for discovery."1353    language: fr1354  - id: revenu-quebec1355    name: Revenu Québec1356    domain: revenuquebec.ca1357    categories: [government, finance]1358    tier: B1359    aliases: [revenu québec, agence du revenu du québec]1360    country: CA1361    discover: { rss: true, sitemap: true, pages: true }1362    notes: "quebec.ca actualités filtered on mo_cabinets:45 answers 202 (throttled placeholder) under validation load; revenuquebec.ca news is 403. Kept for discovery."1363    language: fr1364  - id: banq1365    name: Bibliothèque et Archives nationales du Québec1366    domain: banq.qc.ca1367    categories: [government, education]1368    tier: D1369    aliases: [banq, bibliothèque et archives nationales du québec]1370    country: CA1371    discover: { rss: true, sitemap: true, pages: true }1372    notes: "quebec.ca actualités filter mo_cabinets:6 throttled (202) under load; banq.qc.ca news 404. Kept for discovery."1373    language: fr1374  - id: cdpdj1375    name: Commission des droits de la personne et des droits de la jeunesse1376    domain: cdpdj.qc.ca1377    categories: [government, legal]1378    tier: C1379    aliases: [cdpdj, commission des droits de la personne et des droits de la jeunesse]1380    country: CA1381    language: fr1382    sensors:1383      - { name: actualités, url: "https://www.cdpdj.qc.ca/fr/actualites", type: HTML, connector: http, tier: C }1384  - id: cmq-quebec1385    name: Commission municipale du Québec1386    domain: cmq.gouv.qc.ca1387    categories: [government, legal]1388    tier: C1389    aliases: [cmq, commission municipale du québec]1390    country: CA1391    language: fr1392    sensors:1393      - { name: accueil (nouvelles) (site), url: "https://www.cmq.gouv.qc.ca/", type: HTML, connector: http, tier: C }1394  - id: coroner-quebec1395    name: Bureau du coroner du Québec1396    domain: coroner.gouv.qc.ca1397    categories: [government, legal, health]1398    tier: C1399    aliases: [bureau du coroner, coroner québec]1400    country: CA1401    language: fr1402    sensors:1403      - { name: accueil (site), url: "https://www.coroner.gouv.qc.ca/", type: HTML, connector: http, tier: C }1404  - id: bei-quebec1405    name: Bureau des enquêtes indépendantes1406    domain: bei.gouv.qc.ca1407    categories: [government, legal]1408    tier: C1409    aliases: [bei, bureau des enquêtes indépendantes]1410    country: CA1411    language: fr1412    sensors:1413      - { name: communiqués, url: "https://www.bei.gouv.qc.ca/communiques", type: HTML, connector: http, tier: C }1414  - id: upac1415    name: Commissaire à la lutte contre la corruption (UPAC)1416    domain: upac.gouv.qc.ca1417    categories: [government, legal]1418    tier: C1419    aliases: [upac, unité permanente anticorruption, commissaire à la lutte contre la corruption]1420    country: CA1421    language: fr1422    sensors:1423      - { name: accueil (communiqués) (site), url: "https://www.upac.gouv.qc.ca/", type: HTML, connector: http, tier: C }1424  - id: sqi-quebec1425    name: Société québécoise des infrastructures1426    domain: sqi.gouv.qc.ca1427    categories: [government, infrastructure, real-estate]1428    tier: C1429    aliases: [sqi, société québécoise des infrastructures]1430    country: CA1431    language: fr1432    sensors:1433      - { name: accueil (nouvelles) (site), url: "https://www.sqi.gouv.qc.ca/", type: HTML, connector: http, tier: C }1434  - id: sodec1435    name: Société de développement des entreprises culturelles1436    domain: sodec.gouv.qc.ca1437    categories: [government, entertainment]1438    tier: D1439    aliases: [sodec, société de développement des entreprises culturelles]1440    country: CA1441    language: fr1442    sensors:1443      - { name: actualités (RSS), url: "https://sodec.gouv.qc.ca/feed/", type: RSS, connector: rss, tier: D }1444  - id: saq1445    name: Société des alcools du Québec1446    domain: saq.com1447    categories: [retail, government]1448    tier: C1449    aliases: [saq, société des alcools du québec]1450    country: CA1451    discover: { rss: true, sitemap: true, pages: true }1452    notes: "quebec.ca actualités filter mo_cabinets:128 throttled (202) under load; saq.com press room is client-rendered. Kept for discovery."1453    language: fr1454  - id: investissement-quebec1455    name: Investissement Québec1456    domain: investquebec.com1457    categories: [finance, government]1458    tier: B1459    aliases: [investissement québec, iq]1460    country: CA1461    discover: { rss: true, sitemap: true, pages: true }1462    notes: "quebec.ca actualités filter mo_cabinets:100 throttled (202) under load; investquebec.com press pages 404 to non-browser clients. Kept for discovery."1463    language: fr1464  - id: hema-quebec1465    name: Héma-Québec1466    domain: hema-quebec.qc.ca1467    categories: [health, government]1468    tier: C1469    aliases: [héma-québec, hema-quebec]1470    country: CA1471    discover: { rss: true, sitemap: true, pages: true }1472    notes: "quebec.ca actualités filter mo_cabinets:93 throttled (202) under load. Kept for discovery."1473    language: fr1474  - id: shq1475    name: Société d'habitation du Québec1476    domain: habitation.gouv.qc.ca1477    categories: [government, real-estate]1478    tier: C1479    aliases: [shq, société d'habitation du québec]1480    country: CA1481    discover: { rss: true, sitemap: true, pages: true }1482    notes: "quebec.ca actualités filter mo_cabinets:121 throttled (202) under load; habitation.gouv.qc.ca is 403. Kept for discovery."1483    language: fr1484  # ───────────────────────────── UNITED STATES — governors ─────────────────────────────1485  - id: alabama-governor1486    name: Governor of Alabama1487    domain: governor.alabama.gov1488    categories: [government, politics]1489    tier: B1490    aliases: [governor of alabama, alabama governor, office of the governor alabama]1491    country: US1492    sensors:1493      - { name: news (RSS), url: "https://governor.alabama.gov/feed/", type: RSS, connector: rss, tier: B, config: { maxItems: 50 } }1494  - id: georgia-governor1495    name: Governor of Georgia1496    domain: gov.georgia.gov1497    categories: [government, politics]1498    tier: B1499    aliases: [governor of georgia, georgia governor, office of the governor georgia]1500    country: US1501    sensors:1502      - { name: news (RSS), url: "https://gov.georgia.gov/rss.xml", type: RSS, connector: rss, tier: B }1503  - id: hawaii-governor1504    name: Governor of Hawaii1505    domain: governor.hawaii.gov1506    categories: [government, politics]1507    tier: B1508    aliases: [governor of hawaii, hawaii governor, office of the governor hawaii]1509    country: US1510    sensors:1511      - { name: news (RSS), url: "https://governor.hawaii.gov/feed/", type: RSS, connector: rss, tier: B }1512  - id: mississippi-governor1513    name: Governor of Mississippi1514    domain: governorreeves.ms.gov1515    categories: [government, politics]1516    tier: B1517    aliases: [governor of mississippi, mississippi governor, office of the governor mississippi]1518    country: US1519    sensors:1520      - { name: news (RSS), url: "https://governorreeves.ms.gov/feed/", type: RSS, connector: rss, tier: B }1521  - id: missouri-governor1522    name: Governor of Missouri1523    domain: governor.mo.gov1524    categories: [government, politics]1525    tier: B1526    aliases: [governor of missouri, missouri governor, office of the governor missouri]1527    country: US1528    sensors:1529      - { name: news (RSS), url: "https://governor.mo.gov/rss.xml", type: RSS, connector: rss, tier: B }1530  - id: nebraska-governor1531    name: Governor of Nebraska1532    domain: governor.nebraska.gov1533    categories: [government, politics]1534    tier: B1535    aliases: [governor of nebraska, nebraska governor, office of the governor nebraska]1536    country: US1537    sensors:1538      - { name: news (RSS), url: "https://governor.nebraska.gov/rss.xml", type: RSS, connector: rss, tier: B }1539  - id: north-carolina-governor1540    name: Governor of North Carolina1541    domain: governor.nc.gov1542    categories: [government, politics]1543    tier: B1544    aliases: [governor of north carolina, north carolina governor, office of the governor north carolina]1545    country: US1546    sensors:1547      - { name: news (RSS), url: "https://governor.nc.gov/news/feed/", type: RSS, connector: rss, tier: B }1548  - id: north-dakota-governor1549    name: Governor of North Dakota1550    domain: governor.nd.gov1551    categories: [government, politics]1552    tier: B1553    aliases: [governor of north dakota, north dakota governor, office of the governor north dakota]1554    country: US1555    sensors:1556      - { name: news (RSS), url: "https://governor.nd.gov/rss.xml", type: RSS, connector: rss, tier: B }1557  - id: utah-governor1558    name: Governor of Utah1559    domain: governor.utah.gov1560    categories: [government, politics]1561    tier: B1562    aliases: [governor of utah, utah governor, office of the governor utah]1563    country: US1564    sensors:1565      - { name: news (RSS), url: "https://governor.utah.gov/feed/", type: RSS, connector: rss, tier: B }1566  - id: vermont-governor1567    name: Governor of Vermont1568    domain: governor.vermont.gov1569    categories: [government, politics]1570    tier: B1571    aliases: [governor of vermont, vermont governor, office of the governor vermont]1572    country: US1573    sensors:1574      - { name: news (RSS), url: "https://governor.vermont.gov/rss.xml", type: RSS, connector: rss, tier: B }1575  - id: west-virginia-governor1576    name: Governor of West Virginia1577    domain: governor.wv.gov1578    categories: [government, politics]1579    tier: B1580    aliases: [governor of west virginia, west virginia governor, office of the governor west virginia]1581    country: US1582    sensors:1583      - { name: news (RSS), url: "https://governor.wv.gov/rss.xml", type: RSS, connector: rss, tier: B, config: { maxItems: 50 } }1584  - id: arkansas-governor1585    name: Governor of Arkansas1586    domain: governor.arkansas.gov1587    categories: [government, politics]1588    tier: B1589    aliases: [governor of arkansas, arkansas governor, office of the governor arkansas]1590    country: US1591    sensors:1592      - { name: newsroom, url: "https://governor.arkansas.gov/newsroom", type: HTML, connector: http, tier: B }1593  - id: colorado-governor1594    name: Governor of Colorado1595    domain: colorado.gov1596    categories: [government, politics]1597    tier: B1598    aliases: [governor of colorado, colorado governor, office of the governor colorado]1599    country: US1600    sensors:1601      - { name: press releases, url: "https://colorado.gov/governor/news", type: HTML, connector: http, tier: B }1602  - id: delaware-governor1603    name: Governor of Delaware1604    domain: governor.delaware.gov1605    categories: [government, politics]1606    tier: B1607    aliases: [governor of delaware, delaware governor, office of the governor delaware]1608    country: US1609    sensors:1610      - { name: press releases, url: "https://governor.delaware.gov/press-releases", type: HTML, connector: http, tier: B }1611  - id: illinois-governor1612    name: Governor of Illinois1613    domain: gov.illinois.gov1614    categories: [government, politics]1615    tier: B1616    aliases: [governor of illinois, illinois governor, office of the governor illinois]1617    country: US1618    sensors:1619      - { name: newsroom, url: "https://gov.illinois.gov/newsroom", type: HTML, connector: http, tier: B }1620  - id: iowa-governor1621    name: Governor of Iowa1622    domain: governor.iowa.gov1623    categories: [government, politics]1624    tier: B1625    aliases: [governor of iowa, iowa governor, office of the governor iowa]1626    country: US1627    sensors:1628      - { name: newsroom, url: "https://governor.iowa.gov/newsroom", type: HTML, connector: http, tier: B }1629  - id: kentucky-governor1630    name: Governor of Kentucky1631    domain: governor.ky.gov1632    categories: [government, politics]1633    tier: B1634    aliases: [governor of kentucky, kentucky governor, office of the governor kentucky]1635    country: US1636    sensors:1637      - { name: news, url: "https://governor.ky.gov/news", type: HTML, connector: http, tier: B }1638  - id: maryland-governor1639    name: Governor of Maryland1640    domain: governor.maryland.gov1641    categories: [government, politics]1642    tier: B1643    aliases: [governor of maryland, maryland governor, office of the governor maryland]1644    country: US1645    sensors:1646      - { name: press releases, url: "https://governor.maryland.gov/news/press-releases", type: HTML, connector: http, tier: B }1647  - id: nevada-governor1648    name: Governor of Nevada1649    domain: gov.nv.gov1650    categories: [government, politics]1651    tier: B1652    aliases: [governor of nevada, nevada governor, office of the governor nevada]1653    country: US1654    sensors:1655      - { name: press releases, url: "https://gov.nv.gov/newsroom", type: HTML, connector: http, tier: B }1656  - id: new-mexico-governor1657    name: Governor of New Mexico1658    domain: governor.nm.gov1659    categories: [government, politics]1660    tier: B1661    aliases: [governor of new mexico, new mexico governor, office of the governor new mexico]1662    country: US1663    sensors:1664      - { name: press releases, url: "https://governor.nm.gov/press-releases", type: HTML, connector: http, tier: B }1665  - id: oklahoma-governor1666    name: Governor of Oklahoma1667    domain: oklahoma.gov1668    categories: [government, politics]1669    tier: B1670    aliases: [governor of oklahoma, oklahoma governor, office of the governor oklahoma]1671    country: US1672    sensors:1673      - { name: newsroom, url: "https://oklahoma.gov/governor/newsroom", type: HTML, connector: http, tier: B }1674  - id: tennessee-governor1675    name: Governor of Tennessee1676    domain: tn.gov1677    categories: [government, politics]1678    tier: B1679    aliases: [governor of tennessee, tennessee governor, office of the governor tennessee]1680    country: US1681    sensors:1682      - { name: news, url: "https://www.tn.gov/governor/news", type: HTML, connector: http, tier: B }1683  # ───────────────────────────── UNITED STATES — state open-data portals & emergency management ─────────────────────────────1684  - id: connecticut-open-data1685    name: Connecticut Open Data1686    domain: data.ct.gov1687    categories: [open-data, government, statistics]1688    tier: D1689    aliases: [connecticut open data, data.ct.gov]1690    country: US1691    llm: false1692    sensors:1693      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.ct.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1694  - id: delaware-open-data1695    name: Delaware Open Data1696    domain: data.delaware.gov1697    categories: [open-data, government, statistics]1698    tier: D1699    aliases: [delaware open data, data.delaware.gov]1700    country: US1701    llm: false1702    sensors:1703      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.delaware.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1704  - id: maryland-open-data1705    name: Maryland Open Data1706    domain: opendata.maryland.gov1707    categories: [open-data, government, statistics]1708    tier: D1709    aliases: [maryland open data, opendata.maryland.gov]1710    country: US1711    llm: false1712    sensors:1713      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=opendata.maryland.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1714  - id: michigan-open-data1715    name: Michigan Open Data1716    domain: data.michigan.gov1717    categories: [open-data, government, statistics]1718    tier: D1719    aliases: [michigan open data, data.michigan.gov]1720    country: US1721    llm: false1722    sensors:1723      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.michigan.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1724  - id: new-jersey-open-data1725    name: New Jersey Open Data1726    domain: data.nj.gov1727    categories: [open-data, government, statistics]1728    tier: D1729    aliases: [new jersey open data, data.nj.gov]1730    country: US1731    llm: false1732    sensors:1733      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.nj.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1734  - id: oregon-open-data1735    name: Oregon Open Data1736    domain: data.oregon.gov1737    categories: [open-data, government, statistics]1738    tier: D1739    aliases: [oregon open data, data.oregon.gov]1740    country: US1741    llm: false1742    sensors:1743      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.oregon.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1744  - id: pennsylvania-open-data1745    name: Pennsylvania Open Data1746    domain: data.pa.gov1747    categories: [open-data, government, statistics]1748    tier: D1749    aliases: [pennsylvania open data, data.pa.gov]1750    country: US1751    llm: false1752    sensors:1753      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.pa.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1754  - id: vermont-open-data1755    name: Vermont Open Data1756    domain: data.vermont.gov1757    categories: [open-data, government, statistics]1758    tier: D1759    aliases: [vermont open data, data.vermont.gov]1760    country: US1761    llm: false1762    sensors:1763      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.vermont.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1764  - id: washington-state-open-data1765    name: Washington State Open Data1766    domain: data.wa.gov1767    categories: [open-data, government, statistics]1768    tier: D1769    aliases: [washington state open data, data.wa.gov]1770    country: US1771    llm: false1772    sensors:1773      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.wa.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1774  - id: colorado-open-data1775    name: Colorado Open Data1776    domain: data.colorado.gov1777    categories: [open-data, government, statistics]1778    tier: D1779    aliases: [colorado open data, data.colorado.gov]1780    country: US1781    llm: false1782    sensors:1783      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.colorado.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1784  - id: missouri-open-data1785    name: Missouri Open Data1786    domain: data.mo.gov1787    categories: [open-data, government, statistics]1788    tier: D1789    aliases: [missouri open data, data.mo.gov]1790    country: US1791    llm: false1792    sensors:1793      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.mo.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1794  - id: oklahoma-open-data1795    name: Oklahoma Open Data1796    domain: data.ok.gov1797    categories: [open-data, government, statistics]1798    tier: D1799    aliases: [oklahoma open data, data.ok.gov]1800    country: US1801    llm: false1802    sensors:1803      - { name: open data catalogue (CKAN), url: "https://data.ok.gov/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.ok.gov/dataset/{key}" } }1804  - id: new-york-state-gis1805    name: New York State GIS Clearinghouse1806    domain: gis.ny.gov1807    categories: [open-data, government]1808    tier: D1809    aliases: [nys gis clearinghouse, gis.ny.gov]1810    country: US1811    llm: false1812    sensors:1813      - { name: open data hub (ArcGIS), url: "https://data.gis.ny.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.gis.ny.gov/datasets/{key}" } }1814  - id: alabama-ema1815    name: Alabama Emergency Management Agency1816    domain: ema.alabama.gov1817    categories: [government, weather]1818    tier: C1819    aliases: [alabama ema, alabama emergency management agency]1820    country: US1821    sensors:1822      - { name: news (RSS), url: "https://ema.alabama.gov/feed/", type: RSS, connector: rss, tier: C }1823  - id: ny-dhses1824    name: New York State Division of Homeland Security and Emergency Services1825    domain: dhses.ny.gov1826    categories: [government, weather]1827    tier: C1828    aliases: [dhses, new york homeland security and emergency services]1829    country: US1830    sensors:1831      - { name: news, url: "https://www.dhses.ny.gov/news", type: HTML, connector: http, tier: C }1832  - id: washington-military-department1833    name: Washington State Military Department / Emergency Management Division1834    domain: mil.wa.gov1835    categories: [government, weather]1836    tier: C1837    aliases: [washington emergency management division, wa emd, washington military department]1838    country: US1839    sensors:1840      - { name: news, url: "https://mil.wa.gov/news", type: HTML, connector: http, tier: C }1841  - id: njoem1842    name: New Jersey Office of Emergency Management1843    domain: ready.nj.gov1844    categories: [government, weather]1845    tier: C1846    aliases: [njoem, new jersey office of emergency management]1847    country: US1848    sensors:1849      - { name: news releases, url: "https://www.ready.nj.gov/news", type: HTML, connector: http, tier: C }1850  - id: gema1851    name: Georgia Emergency Management and Homeland Security Agency1852    domain: gema.georgia.gov1853    categories: [government, weather]1854    tier: C1855    aliases: [gema, georgia emergency management]1856    country: US1857    sensors:1858      - { name: press releases, url: "https://gema.georgia.gov/press-releases", type: HTML, connector: http, tier: C }1859  - id: tema1860    name: Tennessee Emergency Management Agency1861    domain: tn.gov1862    categories: [government, weather]1863    tier: C1864    aliases: [tema, tennessee emergency management agency]1865    country: US1866    sensors:1867      - { name: news, url: "https://www.tn.gov/tema/news.html", type: HTML, connector: http, tier: C }1868  - id: scemd1869    name: South Carolina Emergency Management Division1870    domain: scemd.org1871    categories: [government, weather]1872    tier: C1873    aliases: [scemd, south carolina emergency management division]1874    country: US1875    sensors:1876      - { name: news, url: "https://www.scemd.org/news/", type: HTML, connector: http, tier: C }1877  - id: indiana-dhs1878    name: Indiana Department of Homeland Security1879    domain: in.gov1880    categories: [government, weather]1881    tier: C1882    aliases: [indiana department of homeland security, idhs]1883    country: US1884    sensors:1885      - { name: newsroom, url: "https://www.in.gov/dhs/news/", type: HTML, connector: http, tier: C }1886  # ───────────────────────────── UNITED STATES — cities ─────────────────────────────1887  - id: city-of-los-angeles1888    name: City of Los Angeles (Mayor's Office)1889    domain: lacity.gov1890    categories: [government]1891    tier: C1892    weight: 1.21893    aliases: [los angeles mayor, city of los angeles, la city hall]1894    country: US1895    sensors:1896      - { name: mayor press releases, url: "https://mayor.lacity.gov/news", type: HTML, connector: http, tier: B }1897      - { name: city news, url: "https://www.lacity.gov/news", type: HTML, connector: http, tier: C }1898  - id: city-of-chicago1899    name: City of Chicago (Mayor's Office)1900    domain: chicago.gov1901    categories: [government]1902    tier: C1903    weight: 1.21904    aliases: [chicago mayor, city of chicago]1905    country: US1906    sensors:1907      - { name: mayor press releases, url: "https://www.chicago.gov/city/en/depts/mayor/press_room/press_releases.html", type: HTML, connector: http, tier: B }1908  - id: city-of-houston1909    name: City of Houston1910    domain: houstontx.gov1911    categories: [government, open-data]1912    tier: C1913    weight: 1.11914    aliases: [city of houston, houston mayor]1915    country: US1916    sensors:1917      - { name: mayor press releases, url: "https://www.houstontx.gov/mayor/press/index.html", type: HTML, connector: http, tier: B }1918      - { name: open data catalogue (CKAN), url: "https://data.houstontx.gov/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.houstontx.gov/dataset/{key}" } }1919  - id: city-of-phoenix1920    name: City of Phoenix1921    domain: phoenix.gov1922    categories: [government, open-data]1923    tier: C1924    aliases: [city of phoenix]1925    country: US1926    sensors:1927      - { name: newsroom, url: "https://www.phoenix.gov/newsroom", type: HTML, connector: http, tier: C }1928      - { name: open data catalogue (CKAN), url: "https://phoenixopendata.com/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://phoenixopendata.com/dataset/{key}" } }1929  - id: city-of-philadelphia1930    name: City of Philadelphia1931    domain: phila.gov1932    categories: [government]1933    tier: C1934    weight: 1.11935    aliases: [city of philadelphia, philly]1936    country: US1937    sensors:1938      - { name: the latest news, url: "https://www.phila.gov/the-latest/", type: HTML, connector: http, tier: C }1939  - id: city-of-san-antonio1940    name: City of San Antonio1941    domain: sanantonio.gov1942    categories: [government, open-data]1943    tier: C1944    aliases: [city of san antonio]1945    country: US1946    llm: false1947    sensors:1948      - { name: open data catalogue (CKAN), url: "https://data.sanantonio.gov/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.sanantonio.gov/dataset/{key}" } }1949  - id: city-of-san-diego1950    name: City of San Diego1951    domain: sandiego.gov1952    categories: [government]1953    tier: C1954    aliases: [city of san diego]1955    country: US1956    sensors:1957      - { name: news (RSS), url: "https://www.sandiego.gov/rss.xml", type: RSS, connector: rss, tier: C }1958  - id: city-of-dallas1959    name: City of Dallas1960    domain: dallascityhall.com1961    categories: [government, open-data]1962    tier: C1963    aliases: [city of dallas, dallas city news]1964    country: US1965    sensors:1966      - { name: Dallas City News (RSS), url: "https://www.dallascitynews.net/feed/", type: RSS, connector: rss, tier: C }1967      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=www.dallasopendata.com&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1968  - id: city-of-austin1969    name: City of Austin1970    domain: austintexas.gov1971    categories: [government]1972    tier: C1973    aliases: [city of austin]1974    country: US1975    sensors:1976      - { name: news, url: "https://www.austintexas.gov/news", type: HTML, connector: http, tier: C }1977  - id: city-of-fort-worth1978    name: City of Fort Worth1979    domain: fortworthtexas.gov1980    categories: [government, open-data]1981    tier: C1982    aliases: [city of fort worth]1983    country: US1984    llm: false1985    sensors:1986      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.fortworthtexas.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }1987  - id: city-of-columbus1988    name: City of Columbus1989    domain: columbus.gov1990    categories: [government, open-data]1991    tier: C1992    aliases: [city of columbus ohio]1993    country: US1994    llm: false1995    sensors:1996      - { name: open data hub (ArcGIS), url: "https://opendata.columbus.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.columbus.gov/datasets/{key}" } }1997  - id: city-of-charlotte1998    name: City of Charlotte1999    domain: charlottenc.gov2000    categories: [government, open-data]2001    tier: C2002    aliases: [city of charlotte]2003    country: US2004    llm: false2005    sensors:2006      - { name: open data hub (ArcGIS), url: "https://data.charlottenc.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.charlottenc.gov/datasets/{key}" } }2007  - id: city-of-indianapolis2008    name: City of Indianapolis2009    domain: indy.gov2010    categories: [government, open-data]2011    tier: C2012    aliases: [city of indianapolis, indy]2013    country: US2014    llm: false2015    sensors:2016      - { name: open data hub (ArcGIS), url: "https://data.indy.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.indy.gov/datasets/{key}" } }2017  - id: city-of-seattle2018    name: City of Seattle2019    domain: seattle.gov2020    categories: [government]2021    tier: C2022    weight: 1.12023    aliases: [city of seattle]2024    country: US2025    sensors:2026      - { name: news (RSS), url: "https://news.seattle.gov/feed/", type: RSS, connector: rss, tier: C }2027  - id: city-of-denver2028    name: City and County of Denver2029    domain: denvergov.org2030    categories: [government, open-data]2031    tier: C2032    aliases: [city of denver, denver]2033    country: US2034    sensors:2035      - { name: open data hub (ArcGIS), url: "https://opendata-geospatialdenver.hub.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata-geospatialdenver.hub.arcgis.com/datasets/{key}" } }2036  - id: city-of-oklahoma-city2037    name: City of Oklahoma City2038    domain: okc.gov2039    categories: [government, open-data]2040    tier: C2041    aliases: [city of oklahoma city, okc]2042    country: US2043    llm: false2044    sensors:2045      - { name: open data hub (ArcGIS), url: "https://data.okc.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.okc.gov/datasets/{key}" } }2046  - id: city-of-nashville2047    name: Metropolitan Government of Nashville2048    domain: nashville.gov2049    categories: [government]2050    tier: C2051    aliases: [city of nashville, metro nashville]2052    country: US2053    sensors:2054      - { name: mayor's office newsroom, url: "https://www.nashville.gov/departments/mayor/news", type: HTML, connector: http, tier: C }2055  - id: city-of-el-paso2056    name: City of El Paso2057    domain: elpasotexas.gov2058    categories: [government]2059    tier: C2060    aliases: [city of el paso]2061    country: US2062    sensors:2063      - { name: news, url: "https://www.elpasotexas.gov/news", type: HTML, connector: http, tier: C }2064  - id: district-of-columbia2065    name: District of Columbia (Mayor's Office)2066    domain: dc.gov2067    categories: [government, open-data]2068    tier: C2069    weight: 1.22070    aliases: [dc mayor, district of columbia, washington dc government]2071    country: US2072    sensors:2073      - { name: mayor's office news (RSS), url: "https://mayor.dc.gov/rss.xml", type: RSS, connector: rss, tier: B }2074      - { name: dc.gov news (RSS), url: "https://www.dc.gov/rss.xml", type: RSS, connector: rss, tier: C }2075      - { name: open data hub (ArcGIS), url: "https://opendata.dc.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.dc.gov/datasets/{key}" } }2076  - id: city-of-las-vegas2077    name: City of Las Vegas2078    domain: lasvegasnevada.gov2079    categories: [government, open-data]2080    tier: C2081    aliases: [city of las vegas]2082    country: US2083    sensors:2084      - { name: news, url: "https://www.lasvegasnevada.gov/News", type: HTML, connector: http, tier: C }2085      - { name: open data hub (ArcGIS), url: "https://opendataportal-lasvegas.opendata.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendataportal-lasvegas.opendata.arcgis.com/datasets/{key}" } }2086  - id: city-of-boston2087    name: City of Boston2088    domain: boston.gov2089    categories: [government, open-data]2090    tier: C2091    weight: 1.12092    aliases: [city of boston]2093    country: US2094    sensors:2095      - { name: news (RSS), url: "https://www.boston.gov/rss.xml", type: RSS, connector: rss, tier: C }2096      - { name: open data catalogue (CKAN), url: "https://data.boston.gov/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.boston.gov/dataset/{key}" } }2097  - id: city-of-portland2098    name: City of Portland (Oregon)2099    domain: portland.gov2100    categories: [government, open-data]2101    tier: C2102    aliases: [city of portland, portland oregon]2103    country: US2104    sensors:2105      - { name: news, url: "https://www.portland.gov/news", type: HTML, connector: http, tier: C }2106      - { name: open data hub (ArcGIS), url: "https://gis-pdx.opendata.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://gis-pdx.opendata.arcgis.com/datasets/{key}" } }2107  - id: city-of-louisville2108    name: Louisville Metro Government2109    domain: louisvilleky.gov2110    categories: [government, open-data]2111    tier: C2112    aliases: [louisville metro, city of louisville]2113    country: US2114    llm: false2115    sensors:2116      - { name: open data hub (ArcGIS), url: "https://data.louisvilleky.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.louisvilleky.gov/datasets/{key}" } }2117  - id: city-of-memphis2118    name: City of Memphis2119    domain: memphistn.gov2120    categories: [government]2121    tier: C2122    aliases: [city of memphis]2123    country: US2124    sensors:2125      - { name: news (RSS), url: "https://www.memphistn.gov/feed/", type: RSS, connector: rss, tier: C }2126  - id: city-of-detroit2127    name: City of Detroit2128    domain: detroitmi.gov2129    categories: [government, open-data]2130    tier: C2131    weight: 1.12132    aliases: [city of detroit]2133    country: US2134    sensors:2135      - { name: news (RSS), url: "https://www.detroitmi.gov/rss.xml", type: RSS, connector: rss, tier: C }2136      - { name: open data hub (ArcGIS), url: "https://data.detroitmi.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.detroitmi.gov/datasets/{key}" } }2137  - id: city-of-baltimore2138    name: City of Baltimore2139    domain: baltimorecity.gov2140    categories: [government, open-data]2141    tier: C2142    aliases: [city of baltimore, baltimore mayor]2143    country: US2144    sensors:2145      - { name: mayor's office news, url: "https://mayor.baltimorecity.gov/news", type: HTML, connector: http, tier: C }2146      - { name: open data hub (ArcGIS), url: "https://data.baltimorecity.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.baltimorecity.gov/datasets/{key}" } }2147  - id: city-of-milwaukee2148    name: City of Milwaukee2149    domain: milwaukee.gov2150    categories: [government, open-data]2151    tier: C2152    aliases: [city of milwaukee]2153    country: US2154    llm: false2155    sensors:2156      - { name: open data catalogue (CKAN), url: "https://data.milwaukee.gov/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.milwaukee.gov/dataset/{key}" } }2157  - id: city-of-albuquerque2158    name: City of Albuquerque2159    domain: cabq.gov2160    categories: [government]2161    tier: C2162    aliases: [city of albuquerque, cabq]2163    country: US2164    sensors:2165      - { name: news (RSS), url: "https://www.cabq.gov/rss.xml", type: RSS, connector: rss, tier: C }2166  - id: city-of-tucson2167    name: City of Tucson2168    domain: tucsonaz.gov2169    categories: [government, open-data]2170    tier: C2171    aliases: [city of tucson]2172    country: US2173    llm: false2174    sensors:2175      - { name: open data hub (ArcGIS), url: "https://gisdata.tucsonaz.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://gisdata.tucsonaz.gov/datasets/{key}" } }2176  - id: city-of-sacramento2177    name: City of Sacramento2178    domain: cityofsacramento.gov2179    categories: [government, open-data]2180    tier: C2181    aliases: [city of sacramento, sacramento city express]2182    country: US2183    sensors:2184      - { name: Sacramento City Express (RSS), url: "https://www.sacramentocityexpress.com/feed/", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }2185      - { name: open data hub (ArcGIS), url: "https://data.cityofsacramento.org/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.cityofsacramento.org/datasets/{key}" } }2186  - id: city-of-kansas-city2187    name: City of Kansas City (Missouri)2188    domain: kcmo.gov2189    categories: [government, open-data]2190    tier: C2191    aliases: [city of kansas city, kcmo]2192    country: US2193    llm: false2194    sensors:2195      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.kcmo.org&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2196  - id: city-of-mesa2197    name: City of Mesa2198    domain: mesaaz.gov2199    categories: [government, open-data]2200    tier: C2201    aliases: [city of mesa]2202    country: US2203    llm: false2204    sensors:2205      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.mesaaz.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2206  - id: city-of-colorado-springs2207    name: City of Colorado Springs2208    domain: coloradosprings.gov2209    categories: [government]2210    tier: C2211    aliases: [city of colorado springs]2212    country: US2213    sensors:2214      - { name: news (RSS), url: "https://www.coloradosprings.gov/rss.xml", type: RSS, connector: rss, tier: C }2215  - id: city-of-raleigh2216    name: City of Raleigh2217    domain: raleighnc.gov2218    categories: [government, open-data]2219    tier: C2220    aliases: [city of raleigh]2221    country: US2222    llm: false2223    sensors:2224      - { name: open data hub (ArcGIS), url: "https://data.raleighnc.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.raleighnc.gov/datasets/{key}" } }2225  - id: city-of-miami2226    name: City of Miami2227    domain: miami.gov2228    categories: [government, open-data]2229    tier: C2230    aliases: [city of miami]2231    country: US2232    llm: false2233    sensors:2234      - { name: open data hub (ArcGIS), url: "https://datahub-miamigis.opendata.arcgis.com/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://datahub-miamigis.opendata.arcgis.com/datasets/{key}" } }2235  - id: city-of-minneapolis2236    name: City of Minneapolis2237    domain: minneapolismn.gov2238    categories: [government, open-data]2239    tier: C2240    aliases: [city of minneapolis]2241    country: US2242    llm: false2243    sensors:2244      - { name: open data hub (ArcGIS), url: "https://opendata.minneapolismn.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.minneapolismn.gov/datasets/{key}" } }2245  - id: city-of-tampa2246    name: City of Tampa2247    domain: tampa.gov2248    categories: [government]2249    tier: C2250    aliases: [city of tampa]2251    country: US2252    sensors:2253      - { name: news (RSS), url: "https://www.tampa.gov/rss.xml", type: RSS, connector: rss, tier: C }2254  - id: city-of-arlington-tx2255    name: City of Arlington (Texas)2256    domain: arlingtontx.gov2257    categories: [government, open-data]2258    tier: C2259    aliases: [city of arlington texas]2260    country: US2261    llm: false2262    sensors:2263      - { name: open data hub (ArcGIS), url: "https://opendata.arlingtontx.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://opendata.arlingtontx.gov/datasets/{key}" } }2264  - id: city-of-new-orleans2265    name: City of New Orleans2266    domain: nola.gov2267    categories: [government, open-data]2268    tier: C2269    aliases: [city of new orleans, nola]2270    country: US2271    sensors:2272      - { name: news, url: "https://www.nola.gov/news", type: HTML, connector: http, tier: C }2273      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.nola.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2274  - id: city-of-wichita2275    name: City of Wichita2276    domain: wichita.gov2277    categories: [government]2278    tier: C2279    aliases: [city of wichita]2280    country: US2281    sensors:2282      - { name: news, url: "https://www.wichita.gov/news", type: HTML, connector: http, tier: C }2283  - id: city-of-cleveland2284    name: City of Cleveland2285    domain: clevelandohio.gov2286    categories: [government, open-data]2287    tier: C2288    aliases: [city of cleveland]2289    country: US2290    sensors:2291      - { name: news (RSS), url: "https://www.clevelandohio.gov/rss.xml", type: RSS, connector: rss, tier: C }2292      - { name: open data hub (ArcGIS), url: "https://data.clevelandohio.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.clevelandohio.gov/datasets/{key}" } }2293  - id: city-of-honolulu2294    name: City and County of Honolulu2295    domain: honolulu.gov2296    categories: [government, open-data]2297    tier: C2298    aliases: [city of honolulu, honolulu]2299    country: US2300    sensors:2301      - { name: news, url: "https://www.honolulu.gov/news", type: HTML, connector: http, tier: C }2302      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.honolulu.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2303  - id: city-of-saint-paul2304    name: City of Saint Paul2305    domain: stpaul.gov2306    categories: [government]2307    tier: C2308    aliases: [city of saint paul, st. paul minnesota]2309    country: US2310    sensors:2311      - { name: news, url: "https://www.stpaul.gov/news", type: HTML, connector: http, tier: C }2312  - id: city-of-cincinnati2313    name: City of Cincinnati2314    domain: cincinnati-oh.gov2315    categories: [government, open-data]2316    tier: C2317    aliases: [city of cincinnati]2318    country: US2319    llm: false2320    sensors:2321      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.cincinnati-oh.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2322  - id: city-of-pittsburgh2323    name: City of Pittsburgh2324    domain: pittsburghpa.gov2325    categories: [government, open-data]2326    tier: C2327    aliases: [city of pittsburgh, wprdc]2328    country: US2329    llm: false2330    sensors:2331      - { name: open data catalogue (CKAN), url: "https://data.wprdc.org/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.wprdc.org/dataset/{key}" } }2332  - id: city-of-buffalo2333    name: City of Buffalo2334    domain: buffalony.gov2335    categories: [government, open-data]2336    tier: C2337    aliases: [city of buffalo]2338    country: US2339    sensors:2340      - { name: news flash, url: "https://www.buffalony.gov/CivicAlerts.aspx", type: HTML, connector: http, tier: C }2341      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.buffalony.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2342  - id: city-of-providence2343    name: City of Providence2344    domain: providenceri.gov2345    categories: [government, open-data]2346    tier: C2347    aliases: [city of providence]2348    country: US2349    sensors:2350      - { name: news (RSS), url: "https://www.providenceri.gov/feed/", type: RSS, connector: rss, tier: C }2351      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.providenceri.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2352  - id: city-of-baton-rouge2353    name: City of Baton Rouge / East Baton Rouge Parish2354    domain: brla.gov2355    categories: [government, open-data]2356    tier: C2357    aliases: [city of baton rouge, east baton rouge parish]2358    country: US2359    sensors:2360      - { name: news flash (RSS), url: "https://www.brla.gov/RSSFeed.aspx?ModID=1&CID=All-newsflash.xml", type: RSS, connector: rss, tier: C }2361      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.brla.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2362  - id: city-of-lexington2363    name: Lexington-Fayette Urban County Government2364    domain: lexingtonky.gov2365    categories: [government, open-data]2366    tier: C2367    aliases: [city of lexington kentucky, lfucg]2368    country: US2369    llm: false2370    sensors:2371      - { name: open data hub (ArcGIS), url: "https://data.lexingtonky.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.lexingtonky.gov/datasets/{key}" } }2372  - id: city-of-greensboro2373    name: City of Greensboro2374    domain: greensboro-nc.gov2375    categories: [government, open-data]2376    tier: C2377    aliases: [city of greensboro]2378    country: US2379    llm: false2380    sensors:2381      - { name: open data hub (ArcGIS), url: "https://data.greensboro-nc.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.greensboro-nc.gov/datasets/{key}" } }2382  - id: city-of-chattanooga2383    name: City of Chattanooga2384    domain: chattanooga.gov2385    categories: [government, open-data]2386    tier: C2387    aliases: [city of chattanooga]2388    country: US2389    llm: false2390    sensors:2391      - { name: open data hub (ArcGIS), url: "https://data.chattanooga.gov/api/search/v1/collections/all/items?limit=50&sortBy=-properties.modified", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: features, keyField: id, titleField: properties.title, summaryField: properties.snippet, compareFields: [properties.modified], maxItems: 50, urlTemplate: "https://data.chattanooga.gov/datasets/{key}" } }2392  - id: city-of-st-louis2393    name: City of St. Louis2394    domain: stlouis-mo.gov2395    categories: [government]2396    tier: C2397    aliases: [city of st. louis, st louis]2398    country: US2399    sensors:2400      - { name: mayor's office news, url: "https://www.stlouis-mo.gov/government/departments/mayor/news/index.cfm", type: HTML, connector: http, tier: C }2401  - id: city-of-oakland2402    name: City of Oakland2403    domain: oaklandca.gov2404    categories: [government, open-data]2405    tier: C2406    aliases: [city of oakland]2407    country: US2408    llm: false2409    sensors:2410      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.oaklandca.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2411  - id: city-of-richmond-va2412    name: City of Richmond (Virginia)2413    domain: rva.gov2414    categories: [government, open-data]2415    tier: C2416    aliases: [city of richmond virginia, rva]2417    country: US2418    llm: false2419    sensors:2420      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.richmondgov.com&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2421  - id: city-of-norfolk2422    name: City of Norfolk2423    domain: norfolk.gov2424    categories: [government, open-data]2425    tier: C2426    aliases: [city of norfolk]2427    country: US2428    llm: false2429    sensors:2430      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.norfolk.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2431  - id: city-of-cambridge-ma2432    name: City of Cambridge (Massachusetts)2433    domain: cambridgema.gov2434    categories: [government, open-data]2435    tier: C2436    aliases: [city of cambridge massachusetts]2437    country: US2438    llm: false2439    sensors:2440      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.cambridgema.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2441  - id: city-of-somerville2442    name: City of Somerville2443    domain: somervillema.gov2444    categories: [government, open-data]2445    tier: C2446    aliases: [city of somerville]2447    country: US2448    llm: false2449    sensors:2450      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.somervillema.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2451  - id: city-of-berkeley2452    name: City of Berkeley2453    domain: berkeleyca.gov2454    categories: [government, open-data]2455    tier: C2456    aliases: [city of berkeley]2457    country: US2458    llm: false2459    sensors:2460      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.cityofberkeley.info&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2461  - id: city-of-gainesville2462    name: City of Gainesville2463    domain: gainesvillefl.gov2464    categories: [government, open-data]2465    tier: C2466    aliases: [city of gainesville]2467    country: US2468    llm: false2469    sensors:2470      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.cityofgainesville.org&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2471  - id: montgomery-county-md2472    name: Montgomery County (Maryland)2473    domain: montgomerycountymd.gov2474    categories: [government, open-data]2475    tier: C2476    aliases: [montgomery county maryland]2477    country: US2478    llm: false2479    sensors:2480      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.montgomerycountymd.gov&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2481  - id: santa-clara-county2482    name: County of Santa Clara2483    domain: sccgov.org2484    categories: [government, open-data]2485    tier: C2486    aliases: [santa clara county, county of santa clara]2487    country: US2488    llm: false2489    sensors:2490      - { name: open data catalogue (Socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.sccgov.org&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }2491  # ───────────────────────────── UNITED KINGDOM & IRELAND — cities ─────────────────────────────2492  - id: greater-london-authority2493    name: Greater London Authority2494    domain: london.gov.uk2495    categories: [government, open-data]2496    tier: B2497    weight: 1.22498    aliases: [gla, greater london authority, london city hall, mayor of london, london datastore]2499    country: GB2500    sensors:2501      - { name: news (RSS), url: "https://london.gov.uk/rss.xml", type: RSS, connector: rss, tier: B }2502      - { name: open data catalogue (CKAN), url: "https://data.london.gov.uk/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.result, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.london.gov.uk/dataset/{key}" } }2503  - id: city-of-edinburgh-council2504    name: City of Edinburgh Council2505    domain: edinburgh.gov.uk2506    categories: [government]2507    tier: C2508    aliases: [city of edinburgh council, edinburgh council]2509    country: GB2510    sensors:2511      - { name: news (RSS), url: "https://edinburgh.gov.uk/rss/news", type: RSS, connector: rss, tier: C }2512  - id: belfast-city-council2513    name: Belfast City Council2514    domain: belfastcity.gov.uk2515    categories: [government]2516    tier: C2517    aliases: [belfast city council]2518    country: GB2519    sensors:2520      - { name: news, url: "https://belfastcity.gov.uk/news", type: HTML, connector: http, tier: C }2521  - id: open-data-ni2522    name: OpenDataNI (Northern Ireland)2523    domain: opendatani.gov.uk2524    categories: [open-data, government]2525    tier: D2526    aliases: [opendatani, open data northern ireland]2527    country: GB2528    llm: false2529    sensors:2530      - { name: open data catalogue (CKAN), url: "https://admin.opendatani.gov.uk/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://admin.opendatani.gov.uk/dataset/{key}" } }2531  - id: cardiff-council2532    name: Cardiff Council2533    domain: cardiff.gov.uk2534    categories: [government]2535    tier: C2536    aliases: [cardiff council, cardiff newsroom]2537    country: GB2538    sensors:2539      - { name: newsroom, url: "https://www.cardiffnewsroom.co.uk/", type: HTML, connector: http, tier: C }2540  - id: dublin-city-council2541    name: Dublin City Council2542    domain: dublincity.ie2543    categories: [government, open-data]2544    tier: C2545    aliases: [dublin city council, smart dublin]2546    country: IE2547    sensors:2548      - { name: news (RSS), url: "https://www.dublincity.ie/rss.xml", type: RSS, connector: rss, tier: C }2549      - { name: open data catalogue (CKAN), url: "https://data.smartdublin.ie/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.smartdublin.ie/dataset/{key}" } }2550  - id: ville-de-paris2551    name: Ville de Paris2552    domain: paris.fr2553    categories: [government]2554    tier: B2555    weight: 1.22556    aliases: [ville de paris, mairie de paris, paris presse]2557    country: FR2558    language: fr2559    sensors:2560      - { name: communiqués de presse, url: "https://presse.paris.fr/communiques", type: HTML, connector: http, tier: B }2561      - { name: actualités, url: "https://paris.fr/actualites", type: HTML, connector: http, tier: C }2562  - id: grand-lyon2563    name: Métropole de Lyon2564    domain: grandlyon.com2565    categories: [government]2566    tier: C2567    aliases: [grand lyon, métropole de lyon, ville de lyon]2568    country: FR2569    language: fr2570    sensors:2571      - { name: actualités (RSS), url: "https://www.grandlyon.com/actualites.xml", type: RSS, connector: rss, tier: C }2572  - id: ville-de-marseille2573    name: Ville de Marseille2574    domain: marseille.fr2575    categories: [government]2576    tier: C2577    aliases: [ville de marseille, mairie de marseille]2578    country: FR2579    language: fr2580    sensors:2581      - { name: actualités (RSS), url: "https://www.marseille.fr/actualites/rss", type: RSS, connector: rss, tier: C }2582  - id: aix-marseille-provence-metropole2583    name: Métropole Aix-Marseille-Provence2584    domain: ampmetropole.fr2585    categories: [government, open-data]2586    tier: D2587    aliases: [métropole aix-marseille-provence, amp métropole]2588    country: FR2589    language: fr2590    llm: false2591    sensors:2592      - { name: open data catalogue (Opendatasoft), url: "https://data.ampmetropole.fr/api/explore/v2.1/catalog/datasets?order_by=modified%20desc&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: dataset_id, titleField: metas.default.title, summaryField: metas.default.description, dateField: metas.default.modified, compareFields: [metas.default.modified], maxItems: 50, urlTemplate: "https://data.ampmetropole.fr/explore/dataset/{key}/" } }2593  - id: toulouse-metropole2594    name: Toulouse Métropole / Mairie de Toulouse2595    domain: toulouse.fr2596    categories: [government, open-data]2597    tier: C2598    aliases: [toulouse métropole, mairie de toulouse, ville de toulouse]2599    country: FR2600    language: fr2601    sensors:2602      - { name: actualités, url: "https://metropole.toulouse.fr/actualites", type: HTML, connector: http, tier: C }2603      - { name: open data catalogue (Opendatasoft), url: "https://data.toulouse-metropole.fr/api/explore/v2.1/catalog/datasets?order_by=modified%20desc&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: dataset_id, titleField: metas.default.title, summaryField: metas.default.description, dateField: metas.default.modified, compareFields: [metas.default.modified], maxItems: 50, urlTemplate: "https://data.toulouse-metropole.fr/explore/dataset/{key}/" } }2604  - id: ville-de-bordeaux2605    name: Ville de Bordeaux2606    domain: bordeaux.fr2607    categories: [government]2608    tier: C2609    aliases: [ville de bordeaux, mairie de bordeaux]2610    country: FR2611    language: fr2612    sensors:2613      - { name: actualités (RSS), url: "https://www.bordeaux.fr/rss.xml", type: RSS, connector: rss, tier: C }2614  - id: bordeaux-metropole2615    name: Bordeaux Métropole2616    domain: bordeaux-metropole.fr2617    categories: [government, open-data]2618    tier: C2619    aliases: [bordeaux métropole]2620    country: FR2621    language: fr2622    sensors:2623      - { name: actualités (RSS), url: "https://www.bordeaux-metropole.fr/rss.xml", type: RSS, connector: rss, tier: C }2624      - { name: open data catalogue (Opendatasoft), url: "https://opendata.bordeaux-metropole.fr/api/explore/v2.1/catalog/datasets?order_by=modified%20desc&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: dataset_id, titleField: metas.default.title, summaryField: metas.default.description, dateField: metas.default.modified, compareFields: [metas.default.modified], maxItems: 50, urlTemplate: "https://opendata.bordeaux-metropole.fr/explore/dataset/{key}/" } }2625  - id: ville-de-lille2626    name: Ville de Lille2627    domain: lille.fr2628    categories: [government]2629    tier: C2630    aliases: [ville de lille, mairie de lille]2631    country: FR2632    language: fr2633    sensors:2634      - { name: actualités, url: "https://lille.fr/Actualites", type: HTML, connector: http, tier: C }2635  - id: metropole-europeenne-de-lille2636    name: Métropole Européenne de Lille2637    domain: lillemetropole.fr2638    categories: [government, open-data]2639    tier: C2640    aliases: [mel, métropole européenne de lille]2641    country: FR2642    language: fr2643    sensors:2644      - { name: actualités, url: "https://www.lillemetropole.fr/actualites", type: HTML, connector: http, tier: C }2645  - id: nantes-metropole2646    name: Nantes Métropole / Ville de Nantes2647    domain: metropole.nantes.fr2648    categories: [government, open-data]2649    tier: C2650    aliases: [nantes métropole, ville de nantes]2651    country: FR2652    language: fr2653    sensors:2654      - { name: actualités, url: "https://metropole.nantes.fr/actualites", type: HTML, connector: http, tier: C }2655      - { name: open data catalogue (Opendatasoft), url: "https://data.nantesmetropole.fr/api/explore/v2.1/catalog/datasets?order_by=modified%20desc&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: dataset_id, titleField: metas.default.title, summaryField: metas.default.description, dateField: metas.default.modified, compareFields: [metas.default.modified], maxItems: 50, urlTemplate: "https://data.nantesmetropole.fr/explore/dataset/{key}/" } }2656  - id: region-ile-de-france2657    name: Région Île-de-France2658    domain: iledefrance.fr2659    categories: [government, open-data]2660    tier: C2661    weight: 1.12662    aliases: [région île-de-france, conseil régional d'île-de-france, idf]2663    country: FR2664    language: fr2665    sensors:2666      - { name: toutes les actualités, url: "https://www.iledefrance.fr/toutes-les-actualites", type: HTML, connector: http, tier: C }2667      - { name: open data catalogue (Opendatasoft), url: "https://data.iledefrance.fr/api/explore/v2.1/catalog/datasets?order_by=modified%20desc&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: dataset_id, titleField: metas.default.title, summaryField: metas.default.description, dateField: metas.default.modified, compareFields: [metas.default.modified], maxItems: 50, urlTemplate: "https://data.iledefrance.fr/explore/dataset/{key}/" } }2668  # ───────────────────────────── GERMANY, AUSTRIA, SWITZERLAND ─────────────────────────────2669  - id: berlin2670    extend: true2671    sensors:2672      - { name: open data catalogue (CKAN), url: "https://datenregister.berlin.de/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://datenregister.berlin.de/dataset/{key}" } }2673  - id: stadt-muenchen2674    name: Landeshauptstadt München2675    domain: muenchen.de2676    categories: [government, open-data]2677    tier: C2678    weight: 1.12679    aliases: [stadt münchen, city of munich, rathaus umschau]2680    country: DE2681    language: de2682    sensors:2683      - { name: Rathaus Umschau (RSS), url: "https://ru.muenchen.de/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }2684      - { name: open data catalogue (CKAN), url: "https://opendata.muenchen.de/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://opendata.muenchen.de/dataset/{key}" } }2685  - id: stadt-hamburg2686    name: Freie und Hansestadt Hamburg2687    domain: hamburg.de2688    categories: [government, open-data]2689    tier: C2690    weight: 1.12691    aliases: [stadt hamburg, hamburger senat, city of hamburg, transparenzportal hamburg]2692    country: DE2693    language: de2694    sensors:2695      - { name: Pressemeldungen des Senats, url: "https://www.hamburg.de/pressemeldungen", type: HTML, connector: http, tier: C }2696      - { name: open data catalogue (CKAN), url: "https://suche.transparenz.hamburg.de/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://suche.transparenz.hamburg.de/dataset/{key}" } }2697  - id: stadt-koeln2698    name: Stadt Köln2699    domain: stadt-koeln.de2700    categories: [government]2701    tier: C2702    aliases: [stadt köln, city of cologne]2703    country: DE2704    language: de2705    sensors:2706      - { name: Pressemitteilungen, url: "https://www.stadt-koeln.de/politik-und-verwaltung/presse/mitteilungen/", type: HTML, connector: http, tier: C }2707  - id: land-nrw2708    name: Land Nordrhein-Westfalen2709    domain: land.nrw2710    categories: [government, open-data]2711    tier: C2712    weight: 1.12713    aliases: [nrw, nordrhein-westfalen, north rhine-westphalia, landesregierung nrw, open.nrw]2714    country: DE2715    language: de2716    sensors:2717      - { name: Pressemitteilungen (RSS), url: "https://land.nrw/rss.xml", type: RSS, connector: rss, tier: C }2718      - { name: open data catalogue (CKAN), url: "https://open.nrw/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://open.nrw/dataset/{key}" } }2719  - id: stadt-wien2720    name: Stadt Wien2721    domain: wien.gv.at2722    categories: [government]2723    tier: C2724    weight: 1.12725    aliases: [stadt wien, city of vienna, rathauskorrespondenz]2726    country: AT2727    language: de2728    sensors:2729      - { name: Presse-Service (RSS), url: "https://presse.wien.gv.at/rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }2730  - id: stadt-zuerich2731    name: Stadt Zürich2732    domain: stadt-zuerich.ch2733    categories: [government, open-data]2734    tier: D2735    aliases: [stadt zürich, city of zurich, open data zürich]2736    country: CH2737    language: de2738    llm: false2739    sensors:2740      - { name: open data catalogue (CKAN), url: "https://data.stadt-zuerich.ch/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.stadt-zuerich.ch/dataset/{key}" } }2741  - id: ville-de-geneve2742    name: Ville de Genève2743    domain: geneve.ch2744    categories: [government]2745    tier: C2746    aliases: [ville de genève, city of geneva]2747    country: CH2748    language: fr2749    sensors:2750      - { name: actualités, url: "https://www.geneve.ch/actualites", type: HTML, connector: http, tier: C }2751  # ───────────────────────────── SPAIN, ITALY, BENELUX, NORDICS, POLAND ─────────────────────────────2752  - id: comunidad-de-madrid2753    name: Comunidad de Madrid2754    domain: comunidad.madrid2755    categories: [government, open-data]2756    tier: C2757    weight: 1.12758    aliases: [comunidad de madrid, gobierno regional de madrid]2759    country: ES2760    language: es2761    sensors:2762      - { name: open data catalogue (CKAN), url: "https://datos.comunidad.madrid/catalogo/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://datos.comunidad.madrid/catalogo/dataset/{key}" } }2763  - id: barcelona2764    extend: true2765    sensors:2766      - { name: open data catalogue (CKAN), url: "https://opendata-ajuntament.barcelona.cat/data/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://opendata-ajuntament.barcelona.cat/data/dataset/{key}" } }2767  - id: roma-capitale2768    name: Roma Capitale2769    domain: comune.roma.it2770    categories: [government, open-data]2771    tier: C2772    weight: 1.12773    aliases: [roma capitale, comune di roma, city of rome]2774    country: IT2775    language: it2776    sensors:2777      - { name: notizie, url: "https://www.comune.roma.it/web/it/notizie.page", type: HTML, connector: http, tier: C }2778      - { name: open data catalogue (CKAN), url: "https://dati.comune.roma.it/catalog/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://dati.comune.roma.it/catalog/dataset/{key}" } }2779  - id: comune-di-milano2780    name: Comune di Milano2781    domain: comune.milano.it2782    categories: [government, open-data]2783    tier: D2784    aliases: [comune di milano, city of milan]2785    country: IT2786    language: it2787    llm: false2788    sensors:2789      - { name: open data catalogue (CKAN), url: "https://dati.comune.milano.it/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://dati.comune.milano.it/dataset/{key}" } }2790  - id: citta-di-torino2791    name: Città di Torino2792    domain: comune.torino.it2793    categories: [government, open-data]2794    tier: C2795    aliases: [città di torino, comune di torino, city of turin]2796    country: IT2797    language: it2798    sensors:2799      - { name: notizie (RSS), url: "https://comune.torino.it/rss.xml", type: RSS, connector: rss, tier: C }2800      - { name: open data catalogue (CKAN), url: "https://aperto.comune.torino.it/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://aperto.comune.torino.it/dataset/{key}" } }2801  - id: gemeente-amsterdam2802    name: Gemeente Amsterdam2803    domain: amsterdam.nl2804    categories: [government]2805    tier: C2806    weight: 1.12807    aliases: [gemeente amsterdam, city of amsterdam]2808    country: NL2809    language: nl2810    sensors:2811      - { name: nieuws, url: "https://amsterdam.nl/actueel/nieuws/", type: HTML, connector: http, tier: C }2812  - id: city-of-brussels2813    name: City of Brussels2814    domain: brussels.be2815    categories: [government, open-data]2816    tier: C2817    aliases: [city of brussels, ville de bruxelles, stad brussel]2818    country: BE2819    sensors:2820      - { name: news (RSS), url: "https://www.brussels.be/rss.xml", type: RSS, connector: rss, tier: C }2821      - { name: open data catalogue (Opendatasoft), url: "https://opendata.brussels.be/api/explore/v2.1/catalog/datasets?order_by=modified%20desc&limit=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: results, keyField: dataset_id, titleField: metas.default.title, summaryField: metas.default.description, dateField: metas.default.modified, compareFields: [metas.default.modified], maxItems: 50, urlTemplate: "https://opendata.brussels.be/explore/dataset/{key}/" } }2822  - id: stockholms-stad2823    name: Stockholms stad2824    domain: start.stockholm2825    categories: [government]2826    tier: C2827    aliases: [stockholms stad, city of stockholm]2828    country: SE2829    language: sv2830    sensors:2831      - { name: aktuellt, url: "https://start.stockholm/aktuellt/nyheter/", type: HTML, connector: http, tier: C }2832  - id: kobenhavns-kommune2833    name: Københavns Kommune2834    domain: kk.dk2835    categories: [government]2836    tier: C2837    aliases: [københavns kommune, city of copenhagen]2838    country: DK2839    language: da2840    sensors:2841      - { name: nyheder, url: "https://kk.dk/nyheder", type: HTML, connector: http, tier: C }2842  - id: city-of-helsinki2843    name: City of Helsinki2844    domain: hel.fi2845    categories: [government, open-data]2846    tier: C2847    aliases: [city of helsinki, helsingin kaupunki, helsinki region infoshare]2848    country: FI2849    sensors:2850      - { name: news (RSS), url: "https://hel.fi/en/news/rss", type: RSS, connector: rss, tier: C }2851      - { name: open data catalogue (CKAN), url: "https://hri.fi/data/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: D, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://hri.fi/data/dataset/{key}" } }2852  - id: miasto-warszawa2853    name: Miasto Warszawa2854    domain: um.warszawa.pl2855    categories: [government]2856    tier: C2857    aliases: [miasto warszawa, city of warsaw, urząd m.st. warszawy]2858    country: PL2859    language: pl2860    sensors:2861      - { name: aktualności, url: "https://um.warszawa.pl/aktualnosci", type: HTML, connector: http, tier: C }2862