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%
52.0 KB · 1,102 lines yaml
Raw Blame History
1# config/sources.d/22-housing-labour-opendata.yaml — housing & real estate, labour & workforce, open-data portals2# (CKAN / Socrata / Opendatasoft / data.gouv.fr / data.europa.eu catalog APIs via jsonlist, llm: false) and national3# statistics offices not yet covered by the founding file. Written 2026-09-08; every sensor validated with4# apps/engine/src/validate.ts (OK only — no empty feeds, no thin pages).5#6# Not listed because blocked by design (bot management / WAF / no server-rendered content) — 2026-09-08:7#   housing: MBA (Cloudflare), Zoopla (Cloudflare), Domain.com.au (Akamai), SeLoger (Datadome), Notaires de France8#     (interstitial), S&P Dow Jones Indices RSS (403), ICE Mortgage Technology / ir.theice.com (Cloudflare),9#     Blackstone, RioCan, Cadillac Fairview, Colliers, CBRE (Cloudflare), Minto (403), ACQ (Cloudflare),10#     SHQ habitation.gouv.qc.ca (403), OREA (every path answers a soft 404), REBGV/gvrealtors.ca (Next.js shell, 403 on11#     reports), Realtor.ca (client-rendered), Halifax HPI (error page), Nationwide HPI microsite (redirects to12#     nationwide.co.uk — covered there), Brookfield Properties / Boardwalk / Simon / Vornado / Public Storage /13#     Ivanhoé Cambridge / Cushman & Wakefield / Sotheby's Canada (no feed, no server-rendered news index),14#     Allied / Canderel / Dream (WordPress feeds present but empty), Offerpad (articles index is a 79-char shell).15#   labour: OSHA (Akamai 403 on every path), Glassdoor Economic Research (403), AFL-CIO (rss.xml has no items,16#     /press 403), SEIU (feeds empty), LinkedIn Economic Graph (research/blog indexes are thin JS shells), Lightcast17#     (client-rendered blog), Ontario Ministry of Labour (news.ontario.ca RSS URLs return a JS shell), Commission des18#     normes du travail (merged into CNESST), ILO (international agents file).19#   open data: catalog.data.gov CKAN API answers 404 "Not Found" on every action (API gateway) — nothing to poll;20#     Open Data Charter feed is empty.21#   statistics: IBGE (Cloudflare), BPS Indonesia (Cloudflare), INEGI (press room 403, noticias.xml empty), INDEC22#     (novedades page is a thin shell), Statistics Norway RSS feeds (statistikk/nyheter) carry zero items,23#     Statistics Finland (client-rendered), Swiss FSO (client-rendered, no feed), DANE Colombia (Joomla shell),24#     e-Stat Japan (no feed; Statistics Bureau stat.go.jp covered instead), MOSPI India (rss.xml is an HTML page,25#     press-release index is a 1 KB shell), Statistics Netherlands press page 404 (news sitemap used instead).26sources:27  # ───────────────────────── Housing & real estate — Canada ─────────────────────────28  - id: cmhc29    name: Canada Mortgage and Housing Corporation30    domain: cmhc-schl.gc.ca31    categories: [real-estate, government]32    tier: B33    weight: 1.334    aliases: [cmhc, schl, société canadienne d'hypothèques et de logement]35    products:36      - { name: Housing Market Outlook, type: product }37      - { name: Rental Market Report, type: product }38    discover: { rss: true, sitemap: true, pages: true }39    notes: "No RSS; the Housing Observer index is server-rendered and lists new reports and press releases."40    sensors:41      - { name: housing observer, url: "https://www.cmhc-schl.gc.ca/observer", type: HTML, connector: http, tier: B }42  - id: crea43    name: Canadian Real Estate Association44    domain: crea.ca45    categories: [real-estate]46    tier: B47    weight: 1.248    aliases: [crea, aci, mls hpi]49    products:50      - { name: MLS Home Price Index, type: index, aliases: [mls hpi] }51      - { name: REALTOR.ca, type: service, aliases: [realtor.ca] }52    discover: { rss: true, sitemap: true }53    notes: "realtor.ca listings are client-rendered (React) — not monitorable without a browser; CREA's WordPress feed carries stats releases and news."54    sensors:55      - { name: news feed, url: "https://www.crea.ca/feed/realtime/", type: RSS, connector: rss, tier: B }56  - id: apciq57    name: Association professionnelle des courtiers immobiliers du Québec58    domain: apciq.ca59    categories: [real-estate]60    tier: B61    aliases: [apciq, qpareb, centris, quebec professional association of real estate brokers]62    products:63      - { name: Centris, type: service }64    discover: { rss: true, sitemap: true }65    sensors:66      - { name: actualités (fr), url: "https://apciq.ca/feed/", type: RSS, connector: rss, tier: B }67      - { name: news (en), url: "https://apciq.ca/en/feed/", type: RSS, connector: rss, tier: B }68  - id: trreb69    name: Toronto Regional Real Estate Board70    domain: trreb.ca71    categories: [real-estate]72    tier: B73    aliases: [trreb, treb, toronto real estate board]74    discover: { rss: true, sitemap: true }75    sensors:76      - { name: news feed, url: "https://trreb.ca/feed/", type: RSS, connector: rss, tier: B }77  - id: tal-quebec78    name: Tribunal administratif du logement79    domain: tal.gouv.qc.ca80    categories: [real-estate, government, legal]81    tier: C82    aliases: [tal, tribunal administratif du logement, régie du logement]83    discover: { rss: true, sitemap: true, pages: true }84    sensors:85      - { name: actualités, url: "https://www.tal.gouv.qc.ca/fr/actualites/", type: HTML, connector: http, tier: C }86  - id: rbq87    name: Régie du bâtiment du Québec88    domain: rbq.gouv.qc.ca89    categories: [real-estate, government]90    tier: C91    aliases: [rbq, régie du bâtiment]92    discover: { rss: true, sitemap: true, pages: true }93    sensors:94      - { name: salle de presse, url: "https://www.rbq.gouv.qc.ca/salle-de-presse/", type: HTML, connector: http, tier: C }95  - id: chba96    name: Canadian Home Builders' Association97    domain: chba.ca98    categories: [real-estate]99    tier: C100    aliases: [chba]101    discover: { rss: true, sitemap: true }102    sensors:103      - { name: news feed, url: "https://www.chba.ca/feed/", type: RSS, connector: rss, tier: C }104  - id: apchq105    name: Association des professionnels de la construction et de l'habitation du Québec106    domain: apchq.com107    categories: [real-estate]108    tier: C109    aliases: [apchq]110    discover: { rss: true, sitemap: true }111    sensors:112      - { name: sitemap (fr), url: "https://www.apchq.com/__sitemap__/fr.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } }113  - id: remax114    name: RE/MAX115    domain: remax.com116    categories: [real-estate]117    tier: C118    aliases: [re/max, remax canada]119    discover: { rss: true }120    sensors:121      - { name: remax canada blog feed, url: "https://blog.remax.ca/feed/", type: RSS, connector: rss, tier: C }122      - { name: remax news feed, url: "https://news.remax.com/feed", type: RSS, connector: rss, tier: C }123  - id: royal-lepage124    name: Royal LePage125    domain: royallepage.ca126    categories: [real-estate]127    tier: C128    aliases: [royal lepage]129    products:130      - { name: Royal LePage House Price Survey, type: product }131    discover: { rss: true, sitemap: false, pages: true }132    notes: "Sitemap index only points to gzipped listing/agent maps (404); the news index is server-rendered."133    sensors:134      - { name: news, url: "https://www.royallepage.ca/en/realestate/news/", type: HTML, connector: http, tier: C }135  - id: capreit136    name: Canadian Apartment Properties REIT137    domain: capreit.ca138    categories: [real-estate, finance]139    tier: C140    aliases: [capreit, cap reit]141    discover: { rss: true }142    sensors:143      - { name: news feed, url: "https://www.capreit.ca/feed/", type: RSS, connector: rss, tier: C }144  - id: first-capital145    name: First Capital REIT146    domain: fcr.ca147    categories: [real-estate, finance]148    tier: C149    aliases: [first capital, fcr]150    discover: { rss: true }151    sensors:152      - { name: news feed, url: "https://fcr.ca/feed/", type: RSS, connector: rss, tier: C }153  - id: smartcentres154    name: SmartCentres REIT155    domain: smartcentres.com156    categories: [real-estate, finance]157    tier: C158    aliases: [smartcentres, smart centres]159    discover: { rss: true }160    sensors:161      - { name: news feed, url: "https://smartcentres.com/feed/", type: RSS, connector: rss, tier: C }162  - id: choice-properties163    name: Choice Properties REIT164    domain: choicereit.ca165    categories: [real-estate, finance]166    tier: C167    aliases: [choice properties, choice reit]168    discover: { rss: true }169    sensors:170      - { name: news feed, url: "https://www.choicereit.ca/feed/", type: RSS, connector: rss, tier: C }171  - id: cominar172    name: Cominar173    domain: cominar.com174    categories: [real-estate, finance]175    tier: C176    aliases: [cominar]177    discover: { rss: false, sitemap: true, pages: true }178    sensors:179      - { name: news, url: "https://www.cominar.com/en/news/", type: HTML, connector: http, tier: C }180  - id: oxford-properties181    name: Oxford Properties182    domain: oxfordproperties.com183    categories: [real-estate, finance]184    tier: C185    aliases: [oxford properties, omers]186    discover: { rss: false, sitemap: true }187    sensors:188      - { name: sitemap, url: "https://www.oxfordproperties.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } }189190  # ───────────────────────── Housing & real estate — United States ─────────────────────────191  - id: zillow192    name: Zillow193    domain: zillow.com194    categories: [real-estate, technology]195    tier: B196    weight: 1.2197    aliases: [zillow group, zillow research]198    products:199      - { name: Zillow Home Value Index, type: index, aliases: [zhvi] }200    discover: { rss: false, sitemap: false }201    notes: "zillow.com (incl. /research/feed/) is behind bot management (403); the press room on mediaroom.com is open."202    sensors:203      - { name: press releases feed, url: "https://zillow.mediaroom.com/press-releases?pagetemplate=rss", type: RSS, connector: rss, tier: B }204  - id: redfin205    name: Redfin206    domain: redfin.com207    categories: [real-estate, technology]208    tier: B209    aliases: [redfin news]210    discover: { rss: true }211    sensors:212      - { name: news feed, url: "https://www.redfin.com/news/feed/", type: RSS, connector: rss, tier: B }213  - id: realtor-com214    name: Realtor.com215    domain: realtor.com216    categories: [real-estate, technology]217    tier: B218    aliases: [realtor.com research, move inc]219    discover: { rss: true }220    sensors:221      - { name: research feed, url: "https://www.realtor.com/research/feed/", type: RSS, connector: rss, tier: B }222  - id: nar223    name: National Association of REALTORS224    domain: nar.realtor225    categories: [real-estate]226    tier: B227    weight: 1.2228    aliases: [nar, national association of realtors, existing-home sales]229    products:230      - { name: Existing-Home Sales, type: index }231      - { name: Pending Home Sales Index, type: index }232    discover: { rss: false, sitemap: true, pages: true }233    notes: "The /rss-feeds page is a Next.js shell with no feed links; the press-release and Economists' Outlook indexes are server-rendered."234    sensors:235      - { name: press releases, url: "https://www.nar.realtor/press-releases", type: HTML, connector: http, tier: B }236      - { name: economists outlook, url: "https://www.nar.realtor/news/economists-outlook", type: HTML, connector: http, tier: C }237  - id: nahb238    name: National Association of Home Builders239    domain: nahb.org240    categories: [real-estate]241    tier: B242    aliases: [nahb, housing market index, hmi]243    products:244      - { name: Housing Market Index, type: index, aliases: [nahb hmi] }245    discover: { rss: true, sitemap: true }246    sensors:247      - { name: blog feed, url: "https://www.nahb.org/blog/feed", type: RSS, connector: rss, tier: B }248      - { name: news sitemap, url: "https://www.nahb.org/news-sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 5000 } }249  - id: attom250    name: ATTOM Data Solutions251    domain: attomdata.com252    categories: [real-estate]253    tier: C254    aliases: [attom, attom data]255    discover: { rss: true }256    sensors:257      - { name: news feed, url: "https://www.attomdata.com/feed/", type: RSS, connector: rss, tier: C }258  - id: freddie-mac259    name: Freddie Mac260    domain: freddiemac.com261    categories: [real-estate, finance]262    tier: B263    weight: 1.2264    aliases: [freddie mac, fhlmc, pmms]265    products:266      - { name: Primary Mortgage Market Survey, type: index, aliases: [pmms, mortgage rates survey] }267    discover: { rss: true, sitemap: true, pages: true }268    sensors:269      - { name: pmms mortgage rates, url: "https://www.freddiemac.com/pmms", type: HTML, connector: http, tier: B }270      - { name: my home blog feed, url: "https://myhome.freddiemac.com/blog/feed", type: RSS, connector: rss, tier: C }271  - id: fannie-mae272    name: Fannie Mae273    domain: fanniemae.com274    categories: [real-estate, finance]275    tier: B276    weight: 1.2277    aliases: [fannie mae, fnma]278    discover: { rss: true, sitemap: true, pages: true }279    sensors:280      - { name: newsroom, url: "https://www.fanniemae.com/newsroom", type: HTML, connector: http, tier: B }281  - id: hud282    name: U.S. Department of Housing and Urban Development283    domain: hud.gov284    categories: [real-estate, government]285    tier: B286    weight: 1.2287    aliases: [hud]288    discover: { rss: true, sitemap: true, pages: true }289    notes: "huduser.gov RSS (pub.xml) answers 202 with an empty WAF challenge and /press is a thin shell; the /news index is server-rendered."290    sensors:291      - { name: news, url: "https://www.hud.gov/news", type: HTML, connector: http, tier: B }292  - id: fhfa293    name: Federal Housing Finance Agency294    domain: fhfa.gov295    categories: [real-estate, finance, government]296    tier: B297    aliases: [fhfa, house price index]298    products:299      - { name: FHFA House Price Index, type: index, aliases: [fhfa hpi] }300    discover: { rss: true, sitemap: true, pages: true }301    sensors:302      - { name: news releases, url: "https://www.fhfa.gov/news/news-release", type: HTML, connector: http, tier: B }303  - id: cotality304    name: Cotality (formerly CoreLogic)305    domain: cotality.com306    categories: [real-estate]307    tier: C308    aliases: [cotality, corelogic, core logic]309    discover: { rss: true, sitemap: true, pages: true }310    sensors:311      - { name: newsroom, url: "https://www.cotality.com/newsroom", type: HTML, connector: http, tier: C }312      - { name: sitemap, url: "https://www.cotality.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 4000 } }313  - id: prologis314    name: Prologis315    domain: prologis.com316    categories: [real-estate, logistics, finance]317    tier: C318    aliases: [prologis, pld]319    discover: { rss: false }320    notes: "prologis.com is behind Cloudflare (403); the investor-relations site publishes an open RSS."321    sensors:322      - { name: press releases feed, url: "https://ir.prologis.com/news-events/press-releases/rss", type: RSS, connector: rss, tier: C }323  - id: habitat-for-humanity324    name: Habitat for Humanity325    domain: habitat.org326    categories: [real-estate, ngo]327    tier: C328    aliases: [habitat for humanity, habitat]329    discover: { rss: true }330    sensors:331      - { name: news feed, url: "https://www.habitat.org/rss.xml", type: RSS, connector: rss, tier: C }332  - id: opendoor333    name: Opendoor334    domain: opendoor.com335    categories: [real-estate, technology]336    tier: C337    aliases: [opendoor]338    discover: { rss: true, sitemap: true, pages: true }339    sensors:340      - { name: newsroom, url: "https://www.opendoor.com/newsroom", type: HTML, connector: http, tier: C }341  - id: compass342    name: Compass343    domain: compass.com344    categories: [real-estate, technology]345    tier: C346    aliases: [compass real estate]347    discover: { rss: false, sitemap: false, pages: true }348    sensors:349      - { name: newsroom, url: "https://www.compass.com/newsroom/", type: HTML, connector: http, tier: C }350  - id: jll351    name: JLL352    domain: jll.com353    categories: [real-estate]354    tier: C355    aliases: [jll, jones lang lasalle]356    discover: { rss: false, sitemap: true, pages: true }357    sensors:358      - { name: newsroom (us), url: "https://www.jll.com/en-us/newsroom", type: HTML, connector: http, tier: C }359  - id: altus-group360    name: Altus Group361    domain: altusgroup.com362    categories: [real-estate]363    tier: C364    aliases: [altus group, altus]365    discover: { rss: false, sitemap: true }366    sensors:367      - { name: sitemap, url: "https://www.altusgroup.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } }368369  # ───────────────────────── Housing & real estate — UK / Europe / Australia ─────────────────────────370  - id: rightmove371    name: Rightmove372    domain: rightmove.co.uk373    categories: [real-estate]374    tier: B375    aliases: [rightmove, rightmove house price index]376    products:377      - { name: Rightmove House Price Index, type: index }378    discover: { rss: true }379    sensors:380      - { name: news feed, url: "https://www.rightmove.co.uk/news/feed/", type: RSS, connector: rss, tier: B }381  - id: nationwide-hpi382    name: Nationwide House Price Index383    domain: nationwide.co.uk384    homepage: https://www.nationwide.co.uk/media/hpi385    categories: [real-estate, finance]386    tier: B387    aliases: [nationwide house price index, nationwide hpi, nationwide building society]388    discover: { rss: false, pages: true }389    notes: "nationwidehousepriceindex.co.uk redirects to the Onclusive-hosted media centre on nationwide.co.uk; the reports index is server-rendered."390    sensors:391      - { name: hpi reports, url: "https://www.nationwide.co.uk/media/hpi/reports", type: HTML, connector: http, tier: B }392  - id: hm-land-registry393    name: HM Land Registry394    domain: gov.uk395    homepage: https://www.gov.uk/government/organisations/land-registry396    categories: [real-estate, government]397    tier: B398    aliases: [hm land registry, land registry, uk house price index]399    products:400      - { name: UK House Price Index, type: index, aliases: [uk hpi] }401    discover: { rss: false }402    sensors:403      - { name: publications feed, url: "https://www.gov.uk/government/organisations/land-registry.atom", type: ATOM, connector: rss, tier: B }404  - id: rea-group405    name: REA Group406    domain: rea-group.com407    categories: [real-estate, technology]408    tier: C409    aliases: [rea group, realestate.com.au]410    products:411      - { name: realestate.com.au, type: service }412    discover: { rss: false, sitemap: true, pages: true }413    notes: "Corporate WordPress feeds exist but carry no items; the blog archive is server-rendered."414    sensors:415      - { name: corporate blog, url: "https://www.rea-group.com/about-us/news-and-insights/blog/", type: HTML, connector: http, tier: C }416      - { name: realestate.com.au news feed, url: "https://www.realestate.com.au/news/feed/", type: RSS, connector: rss, tier: B }417  - id: immobilienscout24418    name: ImmoScout24419    domain: immobilienscout24.de420    categories: [real-estate, technology]421    tier: C422    aliases: [immoscout24, immobilienscout24, scout24]423    discover: { rss: false, sitemap: true }424    sensors:425      - { name: wissen sitemap, url: "https://www.immobilienscout24.de/wissen/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } }426427  # ───────────────────────── Labour & workforce ─────────────────────────428  - id: us-dol429    name: U.S. Department of Labor430    domain: dol.gov431    categories: [labour, government]432    tier: A433    weight: 1.3434    aliases: [dol, department of labor, labor department]435    discover: { rss: true, sitemap: true }436    sensors:437      - { name: news releases feed, url: "https://www.dol.gov/rss/releases.xml", type: RSS, connector: rss, tier: A }438  - id: eeoc439    name: U.S. Equal Employment Opportunity Commission440    domain: eeoc.gov441    categories: [labour, government, legal]442    tier: B443    aliases: [eeoc]444    discover: { rss: true }445    sensors:446      - { name: newsroom feed, url: "https://www.eeoc.gov/rss/newsroom", type: RSS, connector: rss, tier: B }447  - id: nlrb448    name: National Labor Relations Board449    domain: nlrb.gov450    categories: [labour, government, legal]451    tier: B452    aliases: [nlrb]453    discover: { rss: true }454    sensors:455      - { name: news feed, url: "https://www.nlrb.gov/rss.xml", type: RSS, connector: rss, tier: B }456  - id: esdc457    name: Employment and Social Development Canada458    domain: canada.ca459    homepage: https://www.canada.ca/en/employment-social-development.html460    categories: [labour, government]461    tier: B462    weight: 1.2463    aliases: [esdc, edsc, emploi et développement social canada, service canada, labour program]464    discover: { rss: false }465    sensors:466      - { name: news releases feed, url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=departmentofemploymentandsocialdevelopment&type=newsreleases&sort=publishedDate&orderBy=desc&pick=50&format=atom", type: ATOM, connector: rss, tier: B }467  - id: cnesst468    name: Commission des normes, de l'équité, de la santé et de la sécurité du travail469    domain: cnesst.gouv.qc.ca470    categories: [labour, government]471    tier: B472    aliases: [cnesst, csst, commission des normes du travail, cnt]473    discover: { rss: true, sitemap: true, pages: true }474    sensors:475      - { name: communiqués, url: "https://www.cnesst.gouv.qc.ca/fr/salle-presse/communiques", type: HTML, connector: http, tier: B }476  - id: indeed-hiring-lab477    name: Indeed Hiring Lab478    domain: hiringlab.org479    categories: [labour, research]480    tier: B481    aliases: [hiring lab, indeed]482    discover: { rss: true }483    sensors:484      - { name: research feed, url: "https://hiringlab.indeed.com/feed/", type: RSS, connector: rss, tier: B }485  - id: adp-research486    name: ADP Research487    domain: adpresearch.com488    categories: [labour, research]489    tier: B490    aliases: [adp research institute, adp national employment report]491    products:492      - { name: ADP National Employment Report, type: product, aliases: [adp jobs report] }493    discover: { rss: true, sitemap: true }494    sensors:495      - { name: research feed, url: "https://www.adpresearch.com/research/feed.xml", type: RSS, connector: rss, tier: B }496  - id: conference-board497    name: The Conference Board498    domain: conference-board.org499    categories: [labour, research, finance]500    tier: B501    aliases: [conference board, consumer confidence index, leading economic index]502    products:503      - { name: Consumer Confidence Index, type: index }504      - { name: Leading Economic Index, type: index, aliases: [lei] }505    discover: { rss: true }506    sensors:507      - { name: press releases feed, url: "https://www.conference-board.org/rss/rss.cfm?type=press", type: RSS, connector: rss, tier: B }508  - id: challenger-gray509    name: Challenger, Gray & Christmas510    domain: challengergray.com511    categories: [labour, research]512    tier: B513    aliases: [challenger gray, challenger job cuts report]514    products:515      - { name: Challenger Job Cuts Report, type: product }516    discover: { rss: true }517    sensors:518      - { name: news feed, url: "https://www.challengergray.com/feed/", type: RSS, connector: rss, tier: B }519  - id: teamsters520    name: International Brotherhood of Teamsters521    domain: teamster.org522    categories: [labour]523    tier: C524    aliases: [teamsters, ibt]525    discover: { rss: true }526    sensors:527      - { name: news feed, url: "https://teamster.org/feed/", type: RSS, connector: rss, tier: C }528  - id: uaw529    name: United Auto Workers530    domain: uaw.org531    categories: [labour, automotive]532    tier: C533    aliases: [uaw]534    discover: { rss: true }535    sensors:536      - { name: news feed, url: "https://uaw.org/feed/", type: RSS, connector: rss, tier: C }537  - id: cupe538    name: Canadian Union of Public Employees539    domain: cupe.ca540    categories: [labour]541    tier: C542    aliases: [cupe, scfp]543    discover: { rss: true, sitemap: true }544    sensors:545      - { name: news feed, url: "https://cupe.ca/rss/promoted", type: RSS, connector: rss, tier: C }546  - id: unifor547    name: Unifor548    domain: unifor.org549    categories: [labour]550    tier: C551    aliases: [unifor]552    discover: { rss: true }553    sensors:554      - { name: news feed, url: "https://www.unifor.org/rss.xml", type: RSS, connector: rss, tier: C }555  - id: ftq556    name: Fédération des travailleurs et travailleuses du Québec557    domain: ftq.qc.ca558    categories: [labour]559    tier: C560    aliases: [ftq]561    discover: { rss: true }562    sensors:563      - { name: actualités feed, url: "https://ftq.qc.ca/feed/", type: RSS, connector: rss, tier: C }564  - id: csn565    name: Confédération des syndicats nationaux566    domain: csn.qc.ca567    categories: [labour]568    tier: C569    aliases: [csn]570    discover: { rss: true }571    sensors:572      - { name: actualités feed, url: "https://www.csn.qc.ca/feed/", type: RSS, connector: rss, tier: C }573  - id: csq574    name: Centrale des syndicats du Québec575    domain: lacsq.org576    categories: [labour, education]577    tier: C578    aliases: [csq]579    discover: { rss: true }580    sensors:581      - { name: actualités feed, url: "https://www.lacsq.org/feed/", type: RSS, connector: rss, tier: C }582  - id: fiq583    name: Fédération interprofessionnelle de la santé du Québec584    domain: fiqsante.qc.ca585    categories: [labour, health]586    tier: C587    aliases: [fiq]588    discover: { rss: true }589    sensors:590      - { name: actualités feed, url: "https://www.fiqsante.qc.ca/feed/", type: RSS, connector: rss, tier: C }591  - id: clc592    name: Canadian Labour Congress593    domain: canadianlabour.ca594    categories: [labour]595    tier: C596    aliases: [clc, congrès du travail du canada, ctc]597    discover: { rss: true }598    sensors:599      - { name: news feed, url: "https://canadianlabour.ca/feed/", type: RSS, connector: rss, tier: C }600  - id: psac601    name: Public Service Alliance of Canada602    domain: psacunion.ca603    categories: [labour]604    tier: C605    aliases: [psac, afpc]606    discover: { rss: true }607    sensors:608      - { name: news feed, url: "https://psacunion.ca/rss.xml", type: RSS, connector: rss, tier: C }609  - id: wsib610    name: Workplace Safety and Insurance Board (Ontario)611    domain: wsib.ca612    categories: [labour, government]613    tier: C614    aliases: [wsib]615    discover: { rss: true }616    sensors:617      - { name: news feed, url: "https://www.wsib.ca/en/rss.xml", type: RSS, connector: rss, tier: C }618  - id: worksafebc619    name: WorkSafeBC620    domain: worksafebc.com621    categories: [labour, government]622    tier: C623    aliases: [worksafebc, worksafe bc]624    discover: { rss: false, sitemap: true, pages: true }625    sensors:626      - { name: news & events, url: "https://www.worksafebc.com/en/about-us/news-events", type: HTML, connector: http, tier: C }627  - id: lmic628    name: Labour Market Information Council629    domain: lmic-cimt.ca630    categories: [labour, research, statistics]631    tier: C632    aliases: [lmic, cimt]633    discover: { rss: true }634    sensors:635      - { name: news feed, url: "https://lmic-cimt.ca/feed/", type: RSS, connector: rss, tier: C }636637  # ───────────────────────── Open-data portals (catalog APIs, llm: false) ─────────────────────────638  - id: canada639    extend: true640    aliases: [open government canada, open.canada.ca]641    categories: [open-data]642    sensors:643      - { name: open data catalogue (ckan), url: "https://open.canada.ca/data/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://open.canada.ca/data/en/dataset/{key}" } }644  - id: quebec645    extend: true646    aliases: [données québec, donneesquebec]647    categories: [open-data]648    sensors:649      - { name: données québec catalogue (ckan), url: "https://www.donneesquebec.ca/recherche/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: B, 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}" } }650  - id: ontario651    extend: true652    aliases: [ontario data catalogue, data.ontario.ca]653    categories: [open-data]654    sensors:655      - { name: data catalogue (ckan), url: "https://data.ontario.ca/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.ontario.ca/dataset/{key}" } }656  - id: british-columbia657    extend: true658    aliases: [bc data catalogue]659    categories: [open-data]660    sensors:661      - { name: bc data catalogue (ckan), url: "https://catalogue.data.gov.bc.ca/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://catalogue.data.gov.bc.ca/dataset/{key}" } }662  - id: alberta663    extend: true664    aliases: [open alberta]665    categories: [open-data]666    sensors:667      - { name: open alberta catalogue (ckan), url: "https://open.alberta.ca/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://open.alberta.ca/dataset/{key}" } }668  - id: uk-government669    extend: true670    aliases: [data.gov.uk]671    categories: [open-data]672    sensors:673      - { name: data.gov.uk catalogue (ckan), url: "https://ckan.publishing.service.gov.uk/api/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://www.data.gov.uk/dataset/{key}" } }674  - id: nasa675    extend: true676    aliases: [data.nasa.gov]677    categories: [open-data]678    sensors:679      - { name: open data catalogue (ckan), url: "https://data.nasa.gov/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.nasa.gov/dataset/{key}" } }680  - id: montreal-open-data681    name: Ville de Montréal682    domain: montreal.ca683    homepage: https://donnees.montreal.ca684    categories: [open-data, government]685    tier: B686    aliases: [ville de montréal, city of montreal, données ouvertes montréal]687    discover: { rss: false }688    llm: false689    sensors:690      - { name: données ouvertes (ckan), url: "https://donnees.montreal.ca/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://donnees.montreal.ca/dataset/{key}" } }691  - id: toronto-open-data692    name: City of Toronto693    domain: toronto.ca694    homepage: https://open.toronto.ca695    categories: [open-data, government]696    tier: B697    aliases: [city of toronto, toronto open data]698    discover: { rss: false }699    llm: false700    sensors:701      - { name: open data catalogue (ckan), url: "https://ckan0.cf.opendata.inter.prod-toronto.ca/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://open.toronto.ca/dataset/{key}" } }702  - id: vancouver-open-data703    name: City of Vancouver704    domain: vancouver.ca705    homepage: https://opendata.vancouver.ca706    categories: [open-data, government]707    tier: C708    aliases: [city of vancouver, vancouver open data]709    discover: { rss: false }710    llm: false711    sensors:712      - { name: open data catalogue (opendatasoft), url: "https://opendata.vancouver.ca/api/explore/v2.1/catalog/datasets?order_by=modified%20desc&limit=50", type: REST_API, connector: jsonlist, tier: C, 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.vancouver.ca/explore/dataset/{key}/" } }713  - id: calgary-open-data714    name: City of Calgary715    domain: calgary.ca716    homepage: https://data.calgary.ca717    categories: [open-data, government]718    tier: C719    aliases: [city of calgary, calgary open data]720    discover: { rss: false }721    llm: false722    sensors:723      - { name: open data catalogue (socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.calgary.ca&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }724  - id: edmonton-open-data725    name: City of Edmonton726    domain: edmonton.ca727    homepage: https://data.edmonton.ca728    categories: [open-data, government]729    tier: C730    aliases: [city of edmonton, edmonton open data]731    discover: { rss: false }732    llm: false733    sensors:734      - { name: open data catalogue (socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.edmonton.ca&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }735  - id: nyc-open-data736    name: NYC Open Data737    domain: cityofnewyork.us738    homepage: https://opendata.cityofnewyork.us739    categories: [open-data, government]740    tier: B741    aliases: [nyc open data, city of new york, new york city]742    discover: { rss: false }743    llm: false744    sensors:745      - { name: open data catalogue (socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.cityofnewyork.us&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }746  - id: chicago-open-data747    name: Chicago Data Portal748    domain: cityofchicago.org749    homepage: https://data.cityofchicago.org750    categories: [open-data, government]751    tier: C752    aliases: [chicago data portal, city of chicago]753    discover: { rss: false }754    llm: false755    sensors:756      - { name: open data catalogue (socrata), url: "https://api.us.socrata.com/api/catalog/v1?domains=data.cityofchicago.org&order=updatedAt&limit=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: resource.id, titleField: resource.name, summaryField: resource.description, dateField: resource.updatedAt, urlField: link, compareFields: [resource.updatedAt], maxItems: 50 } }757  - id: paris-open-data758    name: Ville de Paris (Open Data)759    domain: paris.fr760    homepage: https://opendata.paris.fr761    categories: [open-data, government]762    tier: C763    aliases: [ville de paris, paris data, opendata paris]764    discover: { rss: false }765    llm: false766    sensors:767      - { name: open data catalogue (opendatasoft), url: "https://opendata.paris.fr/api/explore/v2.1/catalog/datasets?order_by=modified%20desc&limit=50", type: REST_API, connector: jsonlist, tier: C, 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.paris.fr/explore/dataset/{key}/" } }768  - id: data-gouv-fr769    name: data.gouv.fr (Etalab)770    domain: data.gouv.fr771    categories: [open-data, government]772    tier: B773    weight: 1.1774    aliases: [data.gouv.fr, etalab, dinum]775    discover: { rss: false }776    llm: false777    notes: "Sort key is last_update (not last_modified); dataset page URL is in `page`."778    sensors:779      - { name: datasets api, url: "https://www.data.gouv.fr/api/1/datasets/?sort=-last_update&page_size=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: data, keyField: id, titleField: title, summaryField: description_short, dateField: last_modified, urlField: page, compareFields: [last_modified], maxItems: 50 } }780  - id: data-europa-eu781    name: data.europa.eu (EU Open Data Portal)782    domain: data.europa.eu783    categories: [open-data, government, international]784    tier: B785    weight: 1.1786    aliases: [eu open data portal, european data portal, publications office open data]787    discover: { rss: false }788    llm: false789    sensors:790      - { name: datasets search api, url: "https://data.europa.eu/api/hub/search/search?q=&sort=modified%2Bdesc&limit=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: result.results, keyField: id, titleField: title.en, summaryField: description.en, dateField: modified, compareFields: [modified], maxItems: 50, urlTemplate: "https://data.europa.eu/data/datasets/{key}" } }791  - id: data-gov-au792    name: data.gov.au793    domain: data.gov.au794    categories: [open-data, government]795    tier: C796    aliases: [data.gov.au, australian government open data]797    discover: { rss: false }798    llm: false799    sensors:800      - { name: catalogue (ckan), url: "https://data.gov.au/data/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.gov.au/data/dataset/{key}" } }801  - id: hdx802    name: Humanitarian Data Exchange (UN OCHA)803    domain: data.humdata.org804    categories: [open-data, international, ngo]805    tier: B806    aliases: [hdx, humdata, ocha data]807    discover: { rss: false }808    llm: false809    sensors:810      - { name: datasets (ckan), url: "https://data.humdata.org/api/3/action/package_search?sort=metadata_modified+desc&rows=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: result.results, keyField: id, titleField: title, summaryField: notes, dateField: metadata_modified, compareFields: [metadata_modified], maxItems: 50, urlTemplate: "https://data.humdata.org/dataset/{key}" } }811  - id: our-world-in-data812    name: Our World in Data813    domain: ourworldindata.org814    categories: [open-data, research, statistics]815    tier: B816    weight: 1.2817    aliases: [owid, our world in data]818    products:819      - { name: OWID ETL, type: software, aliases: [owid etl] }820    discover: { rss: true, sitemap: false }821    sensors:822      - { name: articles feed, url: "https://ourworldindata.org/atom.xml", type: ATOM, connector: rss, tier: B }823      - { name: datasets repo commits, url: "https://github.com/owid/owid-datasets/commits/master.atom", type: GITHUB_RELEASE, connector: github, tier: C, config: { repo: owid/owid-datasets, kind: commits, branch: master } }824  - id: data-commons825    name: Data Commons (Google)826    domain: datacommons.org827    categories: [open-data, technology]828    tier: C829    aliases: [data commons]830    discover: { rss: true }831    sensors:832      - { name: blog feed, url: "https://blog.datacommons.org/feed/", type: RSS, connector: rss, tier: C }833  - id: open-knowledge-foundation834    name: Open Knowledge Foundation835    domain: okfn.org836    categories: [open-data, ngo, open-source]837    tier: C838    aliases: [okfn, open knowledge, ckan]839    products:840      - { name: CKAN, type: software }841    discover: { rss: true }842    sensors:843      - { name: blog feed, url: "https://blog.okfn.org/feed/", type: RSS, connector: rss, tier: C }844      - { name: ckan releases, url: "https://github.com/ckan/ckan/releases.atom", type: GITHUB_RELEASE, connector: github, tier: C, config: { repo: ckan/ckan, kind: releases } }845846  # ───────────────────────── National statistics offices ─────────────────────────847  - id: ons848    name: Office for National Statistics849    domain: ons.gov.uk850    categories: [statistics, government]851    tier: A852    weight: 1.3853    aliases: [ons, uk statistics]854    discover: { rss: true, sitemap: false, pages: true }855    sensors:856      - { name: release calendar feed, url: "https://www.ons.gov.uk/releasecalendar?rss", type: RSS, connector: rss, tier: A }857  - id: insee858    name: INSEE859    domain: insee.fr860    categories: [statistics, government]861    tier: A862    weight: 1.2863    aliases: [insee, institut national de la statistique et des études économiques]864    discover: { rss: true, sitemap: true, pages: true }865    notes: "No RSS any more; the statistics index (latest publications) is server-rendered."866    sensors:867      - { name: latest statistics (en), url: "https://www.insee.fr/en/statistiques", type: HTML, connector: http, tier: A }868  - id: destatis869    name: Destatis (Statistisches Bundesamt)870    domain: destatis.de871    categories: [statistics, government]872    tier: A873    weight: 1.2874    aliases: [destatis, statistisches bundesamt, federal statistical office of germany]875    discover: { rss: true, sitemap: true, pages: true }876    sensors:877      - { name: press releases (en), url: "https://www.destatis.de/EN/Press/_node.html", type: HTML, connector: http, tier: A }878      - { name: sitemap index, url: "https://www.destatis.de/Sitemap_Index.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000, maxChildren: 2 } }879  - id: istat880    name: ISTAT881    domain: istat.it882    categories: [statistics, government]883    tier: B884    weight: 1.1885    aliases: [istat, istituto nazionale di statistica]886    discover: { rss: true, sitemap: true }887    sensors:888      - { name: news feed (en), url: "https://www.istat.it/en/feed/", type: RSS, connector: rss, tier: B }889      - { name: notizie feed (it), url: "https://www.istat.it/feed/", type: RSS, connector: rss, tier: B }890  - id: ine-spain891    name: INE (Instituto Nacional de Estadística)892    domain: ine.es893    categories: [statistics, government]894    tier: B895    weight: 1.1896    aliases: [ine, ine españa, spanish statistical office]897    discover: { rss: true, sitemap: true, pages: true }898    sensors:899      - { name: sitemap, url: "https://ine.es/sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000 } }900  - id: cbs-netherlands901    name: Statistics Netherlands (CBS)902    domain: cbs.nl903    categories: [statistics, government]904    tier: B905    weight: 1.1906    aliases: [cbs, centraal bureau voor de statistiek, statistics netherlands]907    discover: { rss: true, sitemap: true }908    sensors:909      - { name: news sitemap, url: "https://www.cbs.nl/news-sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000, maxChildren: 8 } }910  - id: statistics-sweden911    name: Statistics Sweden (SCB)912    domain: scb.se913    categories: [statistics, government]914    tier: B915    aliases: [scb, statistiska centralbyrån, statistics sweden]916    discover: { rss: true, sitemap: true, pages: true }917    sensors:918      - { name: statistiknyheter feed, url: "https://www.scb.se/feed/statistiknyheter", type: ATOM, connector: rss, tier: B }919      - { name: statistical news (en), url: "https://www.scb.se/en/finding-statistics/statistical-news/", type: HTML, connector: http, tier: B }920  - id: statistics-norway921    name: Statistics Norway (SSB)922    domain: ssb.no923    categories: [statistics, government]924    tier: B925    aliases: [ssb, statistisk sentralbyrå, statistics norway]926    discover: { rss: false, sitemap: true, pages: true }927    notes: "The RSS feeds (/rss/statistikk, /rss/nyheter) are served but empty; the upcoming-releases page is server-rendered."928    sensors:929      - { name: upcoming releases (en), url: "https://www.ssb.no/en/kommende-publiseringer", type: HTML, connector: http, tier: B }930  - id: statistics-denmark931    name: Statistics Denmark932    domain: dst.dk933    categories: [statistics, government]934    tier: B935    aliases: [dst, danmarks statistik, statistics denmark]936    discover: { rss: true, sitemap: true, pages: true }937    sensors:938      - { name: scheduled releases, url: "https://www.dst.dk/en/Statistik/planlagte", type: HTML, connector: http, tier: B }939  - id: statistics-austria940    name: Statistics Austria941    domain: statistik.at942    categories: [statistics, government]943    tier: C944    aliases: [statistik austria, statistics austria]945    discover: { rss: true, sitemap: true }946    sensors:947      - { name: sitemap index, url: "https://www.statistik.at/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000, maxChildren: 3 } }948  - id: statbel949    name: Statbel (Statistics Belgium)950    domain: statbel.fgov.be951    categories: [statistics, government]952    tier: B953    aliases: [statbel, statistics belgium]954    discover: { rss: true, sitemap: true }955    sensors:956      - { name: news feed (en), url: "https://statbel.fgov.be/en/rss.xml", type: RSS, connector: rss, tier: B }957  - id: statistics-poland958    name: Statistics Poland (GUS)959    domain: stat.gov.pl960    categories: [statistics, government]961    tier: B962    aliases: [gus, główny urząd statystyczny, statistics poland]963    discover: { rss: true, sitemap: true }964    sensors:965      - { name: news feed (en), url: "https://stat.gov.pl/rss/en/3/3.xml", type: RSS, connector: rss, tier: B }966  - id: czso967    name: Czech Statistical Office968    domain: csu.gov.cz969    categories: [statistics, government]970    tier: C971    aliases: [czso, csu, český statistický úřad]972    discover: { rss: true, sitemap: true, pages: true }973    sensors:974      - { name: news releases feed (en), url: "https://csu.gov.cz/rss/produkty?kodVlastnostiVystupu=RI&jazyk=EN", type: RSS, connector: rss, tier: C }975  - id: statistics-estonia976    name: Statistics Estonia977    domain: stat.ee978    categories: [statistics, government]979    tier: C980    aliases: [statistics estonia, statistikaamet]981    discover: { rss: true, sitemap: true }982    sensors:983      - { name: news feed (en), url: "https://www.stat.ee/en/rss", type: RSS, connector: rss, tier: C }984  - id: statistics-iceland985    name: Statistics Iceland986    domain: statice.is987    categories: [statistics, government]988    tier: C989    aliases: [statistics iceland, hagstofa íslands]990    discover: { rss: true, pages: true }991    sensors:992      - { name: news archive, url: "https://www.statice.is/publications/news-archive/", type: HTML, connector: http, tier: C }993  - id: ine-portugal994    name: Statistics Portugal (INE)995    domain: ine.pt996    categories: [statistics, government]997    tier: C998    aliases: [ine portugal, instituto nacional de estatística, statistics portugal]999    discover: { rss: true, pages: true }1000    sensors:1001      - { name: highlights (en), url: "https://www.ine.pt/xportal/xmain?xpid=INE&xpgid=ine_destaques", type: HTML, connector: http, tier: C }1002  - id: cso-ireland1003    name: Central Statistics Office (Ireland)1004    domain: cso.ie1005    categories: [statistics, government]1006    tier: B1007    aliases: [cso, cso ireland, central statistics office]1008    discover: { rss: false, pages: true }1009    notes: "/en/rss/ answers 403; the press-release index is server-rendered."1010    sensors:1011      - { name: press releases, url: "https://www.cso.ie/en/csolatestnews/pressreleases/", type: HTML, connector: http, tier: B }1012  - id: statistics-bureau-japan1013    name: Statistics Bureau of Japan1014    domain: stat.go.jp1015    categories: [statistics, government]1016    tier: B1017    aliases: [statistics bureau of japan, stat.go.jp, e-stat, sbj]1018    discover: { rss: true, pages: true }1019    notes: "e-Stat (e-stat.go.jp) publishes no feed; the Bureau's English news index is static HTML."1020    sensors:1021      - { name: news (en), url: "https://www.stat.go.jp/english/info/news/index.html", type: HTML, connector: http, tier: B }1022  - id: kostat1023    name: Statistics Korea (Ministry of Data and Statistics)1024    domain: kostat.go.kr1025    categories: [statistics, government]1026    tier: B1027    aliases: [kostat, statistics korea, ministry of data and statistics, mods]1028    discover: { rss: true }1029    notes: "kostat.go.kr now redirects to mods.go.kr (Ministry of Data and Statistics, 2025 reorganisation)."1030    sensors:1031      - { name: press releases feed, url: "https://mods.go.kr/board.es?mid=a20101000000&bid=11737&act=rss", type: RSS, connector: rss, tier: B }1032  - id: nbs-china1033    name: National Bureau of Statistics of China1034    domain: stats.gov.cn1035    categories: [statistics, government]1036    tier: B1037    weight: 1.11038    aliases: [nbs, national bureau of statistics, 国家统计局]1039    discover: { rss: false, pages: true }1040    notes: "No RSS (rss.xml 404); the English press-release index is server-rendered but the host is slow from North America."1041    sensors:1042      - { name: press releases (en), url: "https://www.stats.gov.cn/english/PressRelease/", type: HTML, connector: http, tier: B }1043  - id: abs1044    name: Australian Bureau of Statistics1045    domain: abs.gov.au1046    categories: [statistics, government]1047    tier: A1048    weight: 1.21049    aliases: [abs, australian bureau of statistics]1050    discover: { rss: true, sitemap: true, pages: true }1051    sensors:1052      - { name: media releases, url: "https://www.abs.gov.au/media-centre/media-releases", type: HTML, connector: http, tier: A }1053      - { name: release calendar, url: "https://www.abs.gov.au/release-calendar/future-releases", type: HTML, connector: http, tier: B }1054  - id: stats-nz1055    name: Stats NZ1056    domain: stats.govt.nz1057    categories: [statistics, government]1058    tier: B1059    aliases: [stats nz, statistics new zealand, tatauranga aotearoa]1060    discover: { rss: true, sitemap: true, pages: true }1061    notes: "News and release-calendar pages are client-rendered (thin); the sitemap index is the only server-side signal."1062    sensors:1063      - { name: sitemap index, url: "https://www.stats.govt.nz/sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000, maxChildren: 3 } }1064  - id: statssa1065    name: Statistics South Africa1066    domain: statssa.gov.za1067    categories: [statistics, government]1068    tier: B1069    aliases: [stats sa, statistics south africa]1070    discover: { rss: true }1071    sensors:1072      - { name: news feed, url: "https://www.statssa.gov.za/?feed=rss2", type: RSS, connector: rss, tier: B }1073  - id: israel-cbs1074    name: Israel Central Bureau of Statistics1075    domain: cbs.gov.il1076    categories: [statistics, government]1077    tier: C1078    aliases: [israel cbs, central bureau of statistics israel]1079    discover: { rss: false, pages: true }1080    sensors:1081      - { name: media releases (en), url: "https://www.cbs.gov.il/en/mediarelease/Pages/default.aspx", type: HTML, connector: http, tier: C }1082  - id: singstat1083    name: Singapore Department of Statistics1084    domain: singstat.gov.sg1085    categories: [statistics, government]1086    tier: C1087    aliases: [singstat, department of statistics singapore, dos]1088    discover: { rss: false, sitemap: true, pages: true }1089    sensors:1090      - { name: news, url: "https://www.singstat.gov.sg/news", type: HTML, connector: http, tier: C }1091      - { name: sitemap, url: "https://www.singstat.gov.sg/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } }1092  - id: isq1093    name: Institut de la statistique du Québec1094    domain: statistique.quebec.ca1095    categories: [statistics, government]1096    tier: B1097    weight: 1.11098    aliases: [isq, institut de la statistique du québec]1099    discover: { rss: true, sitemap: false, pages: true }1100    sensors:1101      - { name: communiqués, url: "https://statistique.quebec.ca/fr/institut/salle-de-presse/communiques", type: HTML, connector: http, tier: B }1102