# config/sources.d/22-housing-labour-opendata.yaml — housing & real estate, labour & workforce, open-data portals # (CKAN / Socrata / Opendatasoft / data.gouv.fr / data.europa.eu catalog APIs via jsonlist, llm: false) and national # statistics offices not yet covered by the founding file. Written 2026-09-08; every sensor validated with # apps/engine/src/validate.ts (OK only — no empty feeds, no thin pages). # # Not listed because blocked by design (bot management / WAF / no server-rendered content) — 2026-09-08: # housing: MBA (Cloudflare), Zoopla (Cloudflare), Domain.com.au (Akamai), SeLoger (Datadome), Notaires de France # (interstitial), S&P Dow Jones Indices RSS (403), ICE Mortgage Technology / ir.theice.com (Cloudflare), # Blackstone, RioCan, Cadillac Fairview, Colliers, CBRE (Cloudflare), Minto (403), ACQ (Cloudflare), # SHQ habitation.gouv.qc.ca (403), OREA (every path answers a soft 404), REBGV/gvrealtors.ca (Next.js shell, 403 on # reports), Realtor.ca (client-rendered), Halifax HPI (error page), Nationwide HPI microsite (redirects to # nationwide.co.uk — covered there), Brookfield Properties / Boardwalk / Simon / Vornado / Public Storage / # Ivanhoé Cambridge / Cushman & Wakefield / Sotheby's Canada (no feed, no server-rendered news index), # Allied / Canderel / Dream (WordPress feeds present but empty), Offerpad (articles index is a 79-char shell). # labour: OSHA (Akamai 403 on every path), Glassdoor Economic Research (403), AFL-CIO (rss.xml has no items, # /press 403), SEIU (feeds empty), LinkedIn Economic Graph (research/blog indexes are thin JS shells), Lightcast # (client-rendered blog), Ontario Ministry of Labour (news.ontario.ca RSS URLs return a JS shell), Commission des # normes du travail (merged into CNESST), ILO (international agents file). # open data: catalog.data.gov CKAN API answers 404 "Not Found" on every action (API gateway) — nothing to poll; # Open Data Charter feed is empty. # statistics: IBGE (Cloudflare), BPS Indonesia (Cloudflare), INEGI (press room 403, noticias.xml empty), INDEC # (novedades page is a thin shell), Statistics Norway RSS feeds (statistikk/nyheter) carry zero items, # Statistics Finland (client-rendered), Swiss FSO (client-rendered, no feed), DANE Colombia (Joomla shell), # e-Stat Japan (no feed; Statistics Bureau stat.go.jp covered instead), MOSPI India (rss.xml is an HTML page, # press-release index is a 1 KB shell), Statistics Netherlands press page 404 (news sitemap used instead). sources: # ───────────────────────── Housing & real estate — Canada ───────────────────────── - id: cmhc name: Canada Mortgage and Housing Corporation domain: cmhc-schl.gc.ca categories: [real-estate, government] tier: B weight: 1.3 aliases: [cmhc, schl, société canadienne d'hypothèques et de logement] products: - { name: Housing Market Outlook, type: product } - { name: Rental Market Report, type: product } discover: { rss: true, sitemap: true, pages: true } notes: "No RSS; the Housing Observer index is server-rendered and lists new reports and press releases." sensors: - { name: housing observer, url: "https://www.cmhc-schl.gc.ca/observer", type: HTML, connector: http, tier: B } - id: crea name: Canadian Real Estate Association domain: crea.ca categories: [real-estate] tier: B weight: 1.2 aliases: [crea, aci, mls hpi] products: - { name: MLS Home Price Index, type: index, aliases: [mls hpi] } - { name: REALTOR.ca, type: service, aliases: [realtor.ca] } discover: { rss: true, sitemap: true } notes: "realtor.ca listings are client-rendered (React) — not monitorable without a browser; CREA's WordPress feed carries stats releases and news." sensors: - { name: news feed, url: "https://www.crea.ca/feed/realtime/", type: RSS, connector: rss, tier: B } - id: apciq name: Association professionnelle des courtiers immobiliers du Québec domain: apciq.ca categories: [real-estate] tier: B aliases: [apciq, qpareb, centris, quebec professional association of real estate brokers] products: - { name: Centris, type: service } discover: { rss: true, sitemap: true } sensors: - { name: actualités (fr), url: "https://apciq.ca/feed/", type: RSS, connector: rss, tier: B } - { name: news (en), url: "https://apciq.ca/en/feed/", type: RSS, connector: rss, tier: B } - id: trreb name: Toronto Regional Real Estate Board domain: trreb.ca categories: [real-estate] tier: B aliases: [trreb, treb, toronto real estate board] discover: { rss: true, sitemap: true } sensors: - { name: news feed, url: "https://trreb.ca/feed/", type: RSS, connector: rss, tier: B } - id: tal-quebec name: Tribunal administratif du logement domain: tal.gouv.qc.ca categories: [real-estate, government, legal] tier: C aliases: [tal, tribunal administratif du logement, régie du logement] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: actualités, url: "https://www.tal.gouv.qc.ca/fr/actualites/", type: HTML, connector: http, tier: C } - id: rbq name: Régie du bâtiment du Québec domain: rbq.gouv.qc.ca categories: [real-estate, government] tier: C aliases: [rbq, régie du bâtiment] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: salle de presse, url: "https://www.rbq.gouv.qc.ca/salle-de-presse/", type: HTML, connector: http, tier: C } - id: chba name: Canadian Home Builders' Association domain: chba.ca categories: [real-estate] tier: C aliases: [chba] discover: { rss: true, sitemap: true } sensors: - { name: news feed, url: "https://www.chba.ca/feed/", type: RSS, connector: rss, tier: C } - id: apchq name: Association des professionnels de la construction et de l'habitation du Québec domain: apchq.com categories: [real-estate] tier: C aliases: [apchq] discover: { rss: true, sitemap: true } sensors: - { name: sitemap (fr), url: "https://www.apchq.com/__sitemap__/fr.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } } - id: remax name: RE/MAX domain: remax.com categories: [real-estate] tier: C aliases: [re/max, remax canada] discover: { rss: true } sensors: - { name: remax canada blog feed, url: "https://blog.remax.ca/feed/", type: RSS, connector: rss, tier: C } - { name: remax news feed, url: "https://news.remax.com/feed", type: RSS, connector: rss, tier: C } - id: royal-lepage name: Royal LePage domain: royallepage.ca categories: [real-estate] tier: C aliases: [royal lepage] products: - { name: Royal LePage House Price Survey, type: product } discover: { rss: true, sitemap: false, pages: true } notes: "Sitemap index only points to gzipped listing/agent maps (404); the news index is server-rendered." sensors: - { name: news, url: "https://www.royallepage.ca/en/realestate/news/", type: HTML, connector: http, tier: C } - id: capreit name: Canadian Apartment Properties REIT domain: capreit.ca categories: [real-estate, finance] tier: C aliases: [capreit, cap reit] discover: { rss: true } sensors: - { name: news feed, url: "https://www.capreit.ca/feed/", type: RSS, connector: rss, tier: C } - id: first-capital name: First Capital REIT domain: fcr.ca categories: [real-estate, finance] tier: C aliases: [first capital, fcr] discover: { rss: true } sensors: - { name: news feed, url: "https://fcr.ca/feed/", type: RSS, connector: rss, tier: C } - id: smartcentres name: SmartCentres REIT domain: smartcentres.com categories: [real-estate, finance] tier: C aliases: [smartcentres, smart centres] discover: { rss: true } sensors: - { name: news feed, url: "https://smartcentres.com/feed/", type: RSS, connector: rss, tier: C } - id: choice-properties name: Choice Properties REIT domain: choicereit.ca categories: [real-estate, finance] tier: C aliases: [choice properties, choice reit] discover: { rss: true } sensors: - { name: news feed, url: "https://www.choicereit.ca/feed/", type: RSS, connector: rss, tier: C } - id: cominar name: Cominar domain: cominar.com categories: [real-estate, finance] tier: C aliases: [cominar] discover: { rss: false, sitemap: true, pages: true } sensors: - { name: news, url: "https://www.cominar.com/en/news/", type: HTML, connector: http, tier: C } - id: oxford-properties name: Oxford Properties domain: oxfordproperties.com categories: [real-estate, finance] tier: C aliases: [oxford properties, omers] discover: { rss: false, sitemap: true } sensors: - { name: sitemap, url: "https://www.oxfordproperties.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } } # ───────────────────────── Housing & real estate — United States ───────────────────────── - id: zillow name: Zillow domain: zillow.com categories: [real-estate, technology] tier: B weight: 1.2 aliases: [zillow group, zillow research] products: - { name: Zillow Home Value Index, type: index, aliases: [zhvi] } discover: { rss: false, sitemap: false } notes: "zillow.com (incl. /research/feed/) is behind bot management (403); the press room on mediaroom.com is open." sensors: - { name: press releases feed, url: "https://zillow.mediaroom.com/press-releases?pagetemplate=rss", type: RSS, connector: rss, tier: B } - id: redfin name: Redfin domain: redfin.com categories: [real-estate, technology] tier: B aliases: [redfin news] discover: { rss: true } sensors: - { name: news feed, url: "https://www.redfin.com/news/feed/", type: RSS, connector: rss, tier: B } - id: realtor-com name: Realtor.com domain: realtor.com categories: [real-estate, technology] tier: B aliases: [realtor.com research, move inc] discover: { rss: true } sensors: - { name: research feed, url: "https://www.realtor.com/research/feed/", type: RSS, connector: rss, tier: B } - id: nar name: National Association of REALTORS domain: nar.realtor categories: [real-estate] tier: B weight: 1.2 aliases: [nar, national association of realtors, existing-home sales] products: - { name: Existing-Home Sales, type: index } - { name: Pending Home Sales Index, type: index } discover: { rss: false, sitemap: true, pages: true } notes: "The /rss-feeds page is a Next.js shell with no feed links; the press-release and Economists' Outlook indexes are server-rendered." sensors: - { name: press releases, url: "https://www.nar.realtor/press-releases", type: HTML, connector: http, tier: B } - { name: economists outlook, url: "https://www.nar.realtor/news/economists-outlook", type: HTML, connector: http, tier: C } - id: nahb name: National Association of Home Builders domain: nahb.org categories: [real-estate] tier: B aliases: [nahb, housing market index, hmi] products: - { name: Housing Market Index, type: index, aliases: [nahb hmi] } discover: { rss: true, sitemap: true } sensors: - { name: blog feed, url: "https://www.nahb.org/blog/feed", type: RSS, connector: rss, tier: B } - { name: news sitemap, url: "https://www.nahb.org/news-sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 5000 } } - id: attom name: ATTOM Data Solutions domain: attomdata.com categories: [real-estate] tier: C aliases: [attom, attom data] discover: { rss: true } sensors: - { name: news feed, url: "https://www.attomdata.com/feed/", type: RSS, connector: rss, tier: C } - id: freddie-mac name: Freddie Mac domain: freddiemac.com categories: [real-estate, finance] tier: B weight: 1.2 aliases: [freddie mac, fhlmc, pmms] products: - { name: Primary Mortgage Market Survey, type: index, aliases: [pmms, mortgage rates survey] } discover: { rss: true, sitemap: true, pages: true } sensors: - { name: pmms mortgage rates, url: "https://www.freddiemac.com/pmms", type: HTML, connector: http, tier: B } - { name: my home blog feed, url: "https://myhome.freddiemac.com/blog/feed", type: RSS, connector: rss, tier: C } - id: fannie-mae name: Fannie Mae domain: fanniemae.com categories: [real-estate, finance] tier: B weight: 1.2 aliases: [fannie mae, fnma] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: newsroom, url: "https://www.fanniemae.com/newsroom", type: HTML, connector: http, tier: B } - id: hud name: U.S. Department of Housing and Urban Development domain: hud.gov categories: [real-estate, government] tier: B weight: 1.2 aliases: [hud] discover: { rss: true, sitemap: true, pages: true } 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." sensors: - { name: news, url: "https://www.hud.gov/news", type: HTML, connector: http, tier: B } - id: fhfa name: Federal Housing Finance Agency domain: fhfa.gov categories: [real-estate, finance, government] tier: B aliases: [fhfa, house price index] products: - { name: FHFA House Price Index, type: index, aliases: [fhfa hpi] } discover: { rss: true, sitemap: true, pages: true } sensors: - { name: news releases, url: "https://www.fhfa.gov/news/news-release", type: HTML, connector: http, tier: B } - id: cotality name: Cotality (formerly CoreLogic) domain: cotality.com categories: [real-estate] tier: C aliases: [cotality, corelogic, core logic] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: newsroom, url: "https://www.cotality.com/newsroom", type: HTML, connector: http, tier: C } - { name: sitemap, url: "https://www.cotality.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 4000 } } - id: prologis name: Prologis domain: prologis.com categories: [real-estate, logistics, finance] tier: C aliases: [prologis, pld] discover: { rss: false } notes: "prologis.com is behind Cloudflare (403); the investor-relations site publishes an open RSS." sensors: - { name: press releases feed, url: "https://ir.prologis.com/news-events/press-releases/rss", type: RSS, connector: rss, tier: C } - id: habitat-for-humanity name: Habitat for Humanity domain: habitat.org categories: [real-estate, ngo] tier: C aliases: [habitat for humanity, habitat] discover: { rss: true } sensors: - { name: news feed, url: "https://www.habitat.org/rss.xml", type: RSS, connector: rss, tier: C } - id: opendoor name: Opendoor domain: opendoor.com categories: [real-estate, technology] tier: C aliases: [opendoor] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: newsroom, url: "https://www.opendoor.com/newsroom", type: HTML, connector: http, tier: C } - id: compass name: Compass domain: compass.com categories: [real-estate, technology] tier: C aliases: [compass real estate] discover: { rss: false, sitemap: false, pages: true } sensors: - { name: newsroom, url: "https://www.compass.com/newsroom/", type: HTML, connector: http, tier: C } - id: jll name: JLL domain: jll.com categories: [real-estate] tier: C aliases: [jll, jones lang lasalle] discover: { rss: false, sitemap: true, pages: true } sensors: - { name: newsroom (us), url: "https://www.jll.com/en-us/newsroom", type: HTML, connector: http, tier: C } - id: altus-group name: Altus Group domain: altusgroup.com categories: [real-estate] tier: C aliases: [altus group, altus] discover: { rss: false, sitemap: true } sensors: - { name: sitemap, url: "https://www.altusgroup.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } } # ───────────────────────── Housing & real estate — UK / Europe / Australia ───────────────────────── - id: rightmove name: Rightmove domain: rightmove.co.uk categories: [real-estate] tier: B aliases: [rightmove, rightmove house price index] products: - { name: Rightmove House Price Index, type: index } discover: { rss: true } sensors: - { name: news feed, url: "https://www.rightmove.co.uk/news/feed/", type: RSS, connector: rss, tier: B } - id: nationwide-hpi name: Nationwide House Price Index domain: nationwide.co.uk homepage: https://www.nationwide.co.uk/media/hpi categories: [real-estate, finance] tier: B aliases: [nationwide house price index, nationwide hpi, nationwide building society] discover: { rss: false, pages: true } notes: "nationwidehousepriceindex.co.uk redirects to the Onclusive-hosted media centre on nationwide.co.uk; the reports index is server-rendered." sensors: - { name: hpi reports, url: "https://www.nationwide.co.uk/media/hpi/reports", type: HTML, connector: http, tier: B } - id: hm-land-registry name: HM Land Registry domain: gov.uk homepage: https://www.gov.uk/government/organisations/land-registry categories: [real-estate, government] tier: B aliases: [hm land registry, land registry, uk house price index] products: - { name: UK House Price Index, type: index, aliases: [uk hpi] } discover: { rss: false } sensors: - { name: publications feed, url: "https://www.gov.uk/government/organisations/land-registry.atom", type: ATOM, connector: rss, tier: B } - id: rea-group name: REA Group domain: rea-group.com categories: [real-estate, technology] tier: C aliases: [rea group, realestate.com.au] products: - { name: realestate.com.au, type: service } discover: { rss: false, sitemap: true, pages: true } notes: "Corporate WordPress feeds exist but carry no items; the blog archive is server-rendered." sensors: - { name: corporate blog, url: "https://www.rea-group.com/about-us/news-and-insights/blog/", type: HTML, connector: http, tier: C } - { name: realestate.com.au news feed, url: "https://www.realestate.com.au/news/feed/", type: RSS, connector: rss, tier: B } - id: immobilienscout24 name: ImmoScout24 domain: immobilienscout24.de categories: [real-estate, technology] tier: C aliases: [immoscout24, immobilienscout24, scout24] discover: { rss: false, sitemap: true } sensors: - { name: wissen sitemap, url: "https://www.immobilienscout24.de/wissen/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } } # ───────────────────────── Labour & workforce ───────────────────────── - id: us-dol name: U.S. Department of Labor domain: dol.gov categories: [labour, government] tier: A weight: 1.3 aliases: [dol, department of labor, labor department] discover: { rss: true, sitemap: true } sensors: - { name: news releases feed, url: "https://www.dol.gov/rss/releases.xml", type: RSS, connector: rss, tier: A } - id: eeoc name: U.S. Equal Employment Opportunity Commission domain: eeoc.gov categories: [labour, government, legal] tier: B aliases: [eeoc] discover: { rss: true } sensors: - { name: newsroom feed, url: "https://www.eeoc.gov/rss/newsroom", type: RSS, connector: rss, tier: B } - id: nlrb name: National Labor Relations Board domain: nlrb.gov categories: [labour, government, legal] tier: B aliases: [nlrb] discover: { rss: true } sensors: - { name: news feed, url: "https://www.nlrb.gov/rss.xml", type: RSS, connector: rss, tier: B } - id: esdc name: Employment and Social Development Canada domain: canada.ca homepage: https://www.canada.ca/en/employment-social-development.html categories: [labour, government] tier: B weight: 1.2 aliases: [esdc, edsc, emploi et développement social canada, service canada, labour program] discover: { rss: false } sensors: - { 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 } - id: cnesst name: Commission des normes, de l'équité, de la santé et de la sécurité du travail domain: cnesst.gouv.qc.ca categories: [labour, government] tier: B aliases: [cnesst, csst, commission des normes du travail, cnt] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: communiqués, url: "https://www.cnesst.gouv.qc.ca/fr/salle-presse/communiques", type: HTML, connector: http, tier: B } - id: indeed-hiring-lab name: Indeed Hiring Lab domain: hiringlab.org categories: [labour, research] tier: B aliases: [hiring lab, indeed] discover: { rss: true } sensors: - { name: research feed, url: "https://hiringlab.indeed.com/feed/", type: RSS, connector: rss, tier: B } - id: adp-research name: ADP Research domain: adpresearch.com categories: [labour, research] tier: B aliases: [adp research institute, adp national employment report] products: - { name: ADP National Employment Report, type: product, aliases: [adp jobs report] } discover: { rss: true, sitemap: true } sensors: - { name: research feed, url: "https://www.adpresearch.com/research/feed.xml", type: RSS, connector: rss, tier: B } - id: conference-board name: The Conference Board domain: conference-board.org categories: [labour, research, finance] tier: B aliases: [conference board, consumer confidence index, leading economic index] products: - { name: Consumer Confidence Index, type: index } - { name: Leading Economic Index, type: index, aliases: [lei] } discover: { rss: true } sensors: - { name: press releases feed, url: "https://www.conference-board.org/rss/rss.cfm?type=press", type: RSS, connector: rss, tier: B } - id: challenger-gray name: Challenger, Gray & Christmas domain: challengergray.com categories: [labour, research] tier: B aliases: [challenger gray, challenger job cuts report] products: - { name: Challenger Job Cuts Report, type: product } discover: { rss: true } sensors: - { name: news feed, url: "https://www.challengergray.com/feed/", type: RSS, connector: rss, tier: B } - id: teamsters name: International Brotherhood of Teamsters domain: teamster.org categories: [labour] tier: C aliases: [teamsters, ibt] discover: { rss: true } sensors: - { name: news feed, url: "https://teamster.org/feed/", type: RSS, connector: rss, tier: C } - id: uaw name: United Auto Workers domain: uaw.org categories: [labour, automotive] tier: C aliases: [uaw] discover: { rss: true } sensors: - { name: news feed, url: "https://uaw.org/feed/", type: RSS, connector: rss, tier: C } - id: cupe name: Canadian Union of Public Employees domain: cupe.ca categories: [labour] tier: C aliases: [cupe, scfp] discover: { rss: true, sitemap: true } sensors: - { name: news feed, url: "https://cupe.ca/rss/promoted", type: RSS, connector: rss, tier: C } - id: unifor name: Unifor domain: unifor.org categories: [labour] tier: C aliases: [unifor] discover: { rss: true } sensors: - { name: news feed, url: "https://www.unifor.org/rss.xml", type: RSS, connector: rss, tier: C } - id: ftq name: Fédération des travailleurs et travailleuses du Québec domain: ftq.qc.ca categories: [labour] tier: C aliases: [ftq] discover: { rss: true } sensors: - { name: actualités feed, url: "https://ftq.qc.ca/feed/", type: RSS, connector: rss, tier: C } - id: csn name: Confédération des syndicats nationaux domain: csn.qc.ca categories: [labour] tier: C aliases: [csn] discover: { rss: true } sensors: - { name: actualités feed, url: "https://www.csn.qc.ca/feed/", type: RSS, connector: rss, tier: C } - id: csq name: Centrale des syndicats du Québec domain: lacsq.org categories: [labour, education] tier: C aliases: [csq] discover: { rss: true } sensors: - { name: actualités feed, url: "https://www.lacsq.org/feed/", type: RSS, connector: rss, tier: C } - id: fiq name: Fédération interprofessionnelle de la santé du Québec domain: fiqsante.qc.ca categories: [labour, health] tier: C aliases: [fiq] discover: { rss: true } sensors: - { name: actualités feed, url: "https://www.fiqsante.qc.ca/feed/", type: RSS, connector: rss, tier: C } - id: clc name: Canadian Labour Congress domain: canadianlabour.ca categories: [labour] tier: C aliases: [clc, congrès du travail du canada, ctc] discover: { rss: true } sensors: - { name: news feed, url: "https://canadianlabour.ca/feed/", type: RSS, connector: rss, tier: C } - id: psac name: Public Service Alliance of Canada domain: psacunion.ca categories: [labour] tier: C aliases: [psac, afpc] discover: { rss: true } sensors: - { name: news feed, url: "https://psacunion.ca/rss.xml", type: RSS, connector: rss, tier: C } - id: wsib name: Workplace Safety and Insurance Board (Ontario) domain: wsib.ca categories: [labour, government] tier: C aliases: [wsib] discover: { rss: true } sensors: - { name: news feed, url: "https://www.wsib.ca/en/rss.xml", type: RSS, connector: rss, tier: C } - id: worksafebc name: WorkSafeBC domain: worksafebc.com categories: [labour, government] tier: C aliases: [worksafebc, worksafe bc] discover: { rss: false, sitemap: true, pages: true } sensors: - { name: news & events, url: "https://www.worksafebc.com/en/about-us/news-events", type: HTML, connector: http, tier: C } - id: lmic name: Labour Market Information Council domain: lmic-cimt.ca categories: [labour, research, statistics] tier: C aliases: [lmic, cimt] discover: { rss: true } sensors: - { name: news feed, url: "https://lmic-cimt.ca/feed/", type: RSS, connector: rss, tier: C } # ───────────────────────── Open-data portals (catalog APIs, llm: false) ───────────────────────── - id: canada extend: true aliases: [open government canada, open.canada.ca] categories: [open-data] sensors: - { 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}" } } - id: quebec extend: true aliases: [données québec, donneesquebec] categories: [open-data] sensors: - { 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}" } } - id: ontario extend: true aliases: [ontario data catalogue, data.ontario.ca] categories: [open-data] sensors: - { 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}" } } - id: british-columbia extend: true aliases: [bc data catalogue] categories: [open-data] sensors: - { 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}" } } - id: alberta extend: true aliases: [open alberta] categories: [open-data] sensors: - { 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}" } } - id: uk-government extend: true aliases: [data.gov.uk] categories: [open-data] sensors: - { 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}" } } - id: nasa extend: true aliases: [data.nasa.gov] categories: [open-data] sensors: - { 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}" } } - id: montreal-open-data name: Ville de Montréal domain: montreal.ca homepage: https://donnees.montreal.ca categories: [open-data, government] tier: B aliases: [ville de montréal, city of montreal, données ouvertes montréal] discover: { rss: false } llm: false sensors: - { 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}" } } - id: toronto-open-data name: City of Toronto domain: toronto.ca homepage: https://open.toronto.ca categories: [open-data, government] tier: B aliases: [city of toronto, toronto open data] discover: { rss: false } llm: false sensors: - { 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}" } } - id: vancouver-open-data name: City of Vancouver domain: vancouver.ca homepage: https://opendata.vancouver.ca categories: [open-data, government] tier: C aliases: [city of vancouver, vancouver open data] discover: { rss: false } llm: false sensors: - { 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}/" } } - id: calgary-open-data name: City of Calgary domain: calgary.ca homepage: https://data.calgary.ca categories: [open-data, government] tier: C aliases: [city of calgary, calgary open data] discover: { rss: false } llm: false sensors: - { 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 } } - id: edmonton-open-data name: City of Edmonton domain: edmonton.ca homepage: https://data.edmonton.ca categories: [open-data, government] tier: C aliases: [city of edmonton, edmonton open data] discover: { rss: false } llm: false sensors: - { 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 } } - id: nyc-open-data name: NYC Open Data domain: cityofnewyork.us homepage: https://opendata.cityofnewyork.us categories: [open-data, government] tier: B aliases: [nyc open data, city of new york, new york city] discover: { rss: false } llm: false sensors: - { 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 } } - id: chicago-open-data name: Chicago Data Portal domain: cityofchicago.org homepage: https://data.cityofchicago.org categories: [open-data, government] tier: C aliases: [chicago data portal, city of chicago] discover: { rss: false } llm: false sensors: - { 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 } } - id: paris-open-data name: Ville de Paris (Open Data) domain: paris.fr homepage: https://opendata.paris.fr categories: [open-data, government] tier: C aliases: [ville de paris, paris data, opendata paris] discover: { rss: false } llm: false sensors: - { 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}/" } } - id: data-gouv-fr name: data.gouv.fr (Etalab) domain: data.gouv.fr categories: [open-data, government] tier: B weight: 1.1 aliases: [data.gouv.fr, etalab, dinum] discover: { rss: false } llm: false notes: "Sort key is last_update (not last_modified); dataset page URL is in `page`." sensors: - { 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 } } - id: data-europa-eu name: data.europa.eu (EU Open Data Portal) domain: data.europa.eu categories: [open-data, government, international] tier: B weight: 1.1 aliases: [eu open data portal, european data portal, publications office open data] discover: { rss: false } llm: false sensors: - { 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}" } } - id: data-gov-au name: data.gov.au domain: data.gov.au categories: [open-data, government] tier: C aliases: [data.gov.au, australian government open data] discover: { rss: false } llm: false sensors: - { 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}" } } - id: hdx name: Humanitarian Data Exchange (UN OCHA) domain: data.humdata.org categories: [open-data, international, ngo] tier: B aliases: [hdx, humdata, ocha data] discover: { rss: false } llm: false sensors: - { 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}" } } - id: our-world-in-data name: Our World in Data domain: ourworldindata.org categories: [open-data, research, statistics] tier: B weight: 1.2 aliases: [owid, our world in data] products: - { name: OWID ETL, type: software, aliases: [owid etl] } discover: { rss: true, sitemap: false } sensors: - { name: articles feed, url: "https://ourworldindata.org/atom.xml", type: ATOM, connector: rss, tier: B } - { 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 } } - id: data-commons name: Data Commons (Google) domain: datacommons.org categories: [open-data, technology] tier: C aliases: [data commons] discover: { rss: true } sensors: - { name: blog feed, url: "https://blog.datacommons.org/feed/", type: RSS, connector: rss, tier: C } - id: open-knowledge-foundation name: Open Knowledge Foundation domain: okfn.org categories: [open-data, ngo, open-source] tier: C aliases: [okfn, open knowledge, ckan] products: - { name: CKAN, type: software } discover: { rss: true } sensors: - { name: blog feed, url: "https://blog.okfn.org/feed/", type: RSS, connector: rss, tier: C } - { name: ckan releases, url: "https://github.com/ckan/ckan/releases.atom", type: GITHUB_RELEASE, connector: github, tier: C, config: { repo: ckan/ckan, kind: releases } } # ───────────────────────── National statistics offices ───────────────────────── - id: ons name: Office for National Statistics domain: ons.gov.uk categories: [statistics, government] tier: A weight: 1.3 aliases: [ons, uk statistics] discover: { rss: true, sitemap: false, pages: true } sensors: - { name: release calendar feed, url: "https://www.ons.gov.uk/releasecalendar?rss", type: RSS, connector: rss, tier: A } - id: insee name: INSEE domain: insee.fr categories: [statistics, government] tier: A weight: 1.2 aliases: [insee, institut national de la statistique et des études économiques] discover: { rss: true, sitemap: true, pages: true } notes: "No RSS any more; the statistics index (latest publications) is server-rendered." sensors: - { name: latest statistics (en), url: "https://www.insee.fr/en/statistiques", type: HTML, connector: http, tier: A } - id: destatis name: Destatis (Statistisches Bundesamt) domain: destatis.de categories: [statistics, government] tier: A weight: 1.2 aliases: [destatis, statistisches bundesamt, federal statistical office of germany] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: press releases (en), url: "https://www.destatis.de/EN/Press/_node.html", type: HTML, connector: http, tier: A } - { name: sitemap index, url: "https://www.destatis.de/Sitemap_Index.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000, maxChildren: 2 } } - id: istat name: ISTAT domain: istat.it categories: [statistics, government] tier: B weight: 1.1 aliases: [istat, istituto nazionale di statistica] discover: { rss: true, sitemap: true } sensors: - { name: news feed (en), url: "https://www.istat.it/en/feed/", type: RSS, connector: rss, tier: B } - { name: notizie feed (it), url: "https://www.istat.it/feed/", type: RSS, connector: rss, tier: B } - id: ine-spain name: INE (Instituto Nacional de Estadística) domain: ine.es categories: [statistics, government] tier: B weight: 1.1 aliases: [ine, ine españa, spanish statistical office] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: sitemap, url: "https://ine.es/sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000 } } - id: cbs-netherlands name: Statistics Netherlands (CBS) domain: cbs.nl categories: [statistics, government] tier: B weight: 1.1 aliases: [cbs, centraal bureau voor de statistiek, statistics netherlands] discover: { rss: true, sitemap: true } sensors: - { name: news sitemap, url: "https://www.cbs.nl/news-sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000, maxChildren: 8 } } - id: statistics-sweden name: Statistics Sweden (SCB) domain: scb.se categories: [statistics, government] tier: B aliases: [scb, statistiska centralbyrån, statistics sweden] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: statistiknyheter feed, url: "https://www.scb.se/feed/statistiknyheter", type: ATOM, connector: rss, tier: B } - { name: statistical news (en), url: "https://www.scb.se/en/finding-statistics/statistical-news/", type: HTML, connector: http, tier: B } - id: statistics-norway name: Statistics Norway (SSB) domain: ssb.no categories: [statistics, government] tier: B aliases: [ssb, statistisk sentralbyrå, statistics norway] discover: { rss: false, sitemap: true, pages: true } notes: "The RSS feeds (/rss/statistikk, /rss/nyheter) are served but empty; the upcoming-releases page is server-rendered." sensors: - { name: upcoming releases (en), url: "https://www.ssb.no/en/kommende-publiseringer", type: HTML, connector: http, tier: B } - id: statistics-denmark name: Statistics Denmark domain: dst.dk categories: [statistics, government] tier: B aliases: [dst, danmarks statistik, statistics denmark] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: scheduled releases, url: "https://www.dst.dk/en/Statistik/planlagte", type: HTML, connector: http, tier: B } - id: statistics-austria name: Statistics Austria domain: statistik.at categories: [statistics, government] tier: C aliases: [statistik austria, statistics austria] discover: { rss: true, sitemap: true } sensors: - { name: sitemap index, url: "https://www.statistik.at/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000, maxChildren: 3 } } - id: statbel name: Statbel (Statistics Belgium) domain: statbel.fgov.be categories: [statistics, government] tier: B aliases: [statbel, statistics belgium] discover: { rss: true, sitemap: true } sensors: - { name: news feed (en), url: "https://statbel.fgov.be/en/rss.xml", type: RSS, connector: rss, tier: B } - id: statistics-poland name: Statistics Poland (GUS) domain: stat.gov.pl categories: [statistics, government] tier: B aliases: [gus, główny urząd statystyczny, statistics poland] discover: { rss: true, sitemap: true } sensors: - { name: news feed (en), url: "https://stat.gov.pl/rss/en/3/3.xml", type: RSS, connector: rss, tier: B } - id: czso name: Czech Statistical Office domain: csu.gov.cz categories: [statistics, government] tier: C aliases: [czso, csu, český statistický úřad] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: news releases feed (en), url: "https://csu.gov.cz/rss/produkty?kodVlastnostiVystupu=RI&jazyk=EN", type: RSS, connector: rss, tier: C } - id: statistics-estonia name: Statistics Estonia domain: stat.ee categories: [statistics, government] tier: C aliases: [statistics estonia, statistikaamet] discover: { rss: true, sitemap: true } sensors: - { name: news feed (en), url: "https://www.stat.ee/en/rss", type: RSS, connector: rss, tier: C } - id: statistics-iceland name: Statistics Iceland domain: statice.is categories: [statistics, government] tier: C aliases: [statistics iceland, hagstofa íslands] discover: { rss: true, pages: true } sensors: - { name: news archive, url: "https://www.statice.is/publications/news-archive/", type: HTML, connector: http, tier: C } - id: ine-portugal name: Statistics Portugal (INE) domain: ine.pt categories: [statistics, government] tier: C aliases: [ine portugal, instituto nacional de estatística, statistics portugal] discover: { rss: true, pages: true } sensors: - { name: highlights (en), url: "https://www.ine.pt/xportal/xmain?xpid=INE&xpgid=ine_destaques", type: HTML, connector: http, tier: C } - id: cso-ireland name: Central Statistics Office (Ireland) domain: cso.ie categories: [statistics, government] tier: B aliases: [cso, cso ireland, central statistics office] discover: { rss: false, pages: true } notes: "/en/rss/ answers 403; the press-release index is server-rendered." sensors: - { name: press releases, url: "https://www.cso.ie/en/csolatestnews/pressreleases/", type: HTML, connector: http, tier: B } - id: statistics-bureau-japan name: Statistics Bureau of Japan domain: stat.go.jp categories: [statistics, government] tier: B aliases: [statistics bureau of japan, stat.go.jp, e-stat, sbj] discover: { rss: true, pages: true } notes: "e-Stat (e-stat.go.jp) publishes no feed; the Bureau's English news index is static HTML." sensors: - { name: news (en), url: "https://www.stat.go.jp/english/info/news/index.html", type: HTML, connector: http, tier: B } - id: kostat name: Statistics Korea (Ministry of Data and Statistics) domain: kostat.go.kr categories: [statistics, government] tier: B aliases: [kostat, statistics korea, ministry of data and statistics, mods] discover: { rss: true } notes: "kostat.go.kr now redirects to mods.go.kr (Ministry of Data and Statistics, 2025 reorganisation)." sensors: - { name: press releases feed, url: "https://mods.go.kr/board.es?mid=a20101000000&bid=11737&act=rss", type: RSS, connector: rss, tier: B } - id: nbs-china name: National Bureau of Statistics of China domain: stats.gov.cn categories: [statistics, government] tier: B weight: 1.1 aliases: [nbs, national bureau of statistics, 国家统计局] discover: { rss: false, pages: true } notes: "No RSS (rss.xml 404); the English press-release index is server-rendered but the host is slow from North America." sensors: - { name: press releases (en), url: "https://www.stats.gov.cn/english/PressRelease/", type: HTML, connector: http, tier: B } - id: abs name: Australian Bureau of Statistics domain: abs.gov.au categories: [statistics, government] tier: A weight: 1.2 aliases: [abs, australian bureau of statistics] discover: { rss: true, sitemap: true, pages: true } sensors: - { name: media releases, url: "https://www.abs.gov.au/media-centre/media-releases", type: HTML, connector: http, tier: A } - { name: release calendar, url: "https://www.abs.gov.au/release-calendar/future-releases", type: HTML, connector: http, tier: B } - id: stats-nz name: Stats NZ domain: stats.govt.nz categories: [statistics, government] tier: B aliases: [stats nz, statistics new zealand, tatauranga aotearoa] discover: { rss: true, sitemap: true, pages: true } notes: "News and release-calendar pages are client-rendered (thin); the sitemap index is the only server-side signal." sensors: - { name: sitemap index, url: "https://www.stats.govt.nz/sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000, maxChildren: 3 } } - id: statssa name: Statistics South Africa domain: statssa.gov.za categories: [statistics, government] tier: B aliases: [stats sa, statistics south africa] discover: { rss: true } sensors: - { name: news feed, url: "https://www.statssa.gov.za/?feed=rss2", type: RSS, connector: rss, tier: B } - id: israel-cbs name: Israel Central Bureau of Statistics domain: cbs.gov.il categories: [statistics, government] tier: C aliases: [israel cbs, central bureau of statistics israel] discover: { rss: false, pages: true } sensors: - { name: media releases (en), url: "https://www.cbs.gov.il/en/mediarelease/Pages/default.aspx", type: HTML, connector: http, tier: C } - id: singstat name: Singapore Department of Statistics domain: singstat.gov.sg categories: [statistics, government] tier: C aliases: [singstat, department of statistics singapore, dos] discover: { rss: false, sitemap: true, pages: true } sensors: - { name: news, url: "https://www.singstat.gov.sg/news", type: HTML, connector: http, tier: C } - { name: sitemap, url: "https://www.singstat.gov.sg/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } } - id: isq name: Institut de la statistique du Québec domain: statistique.quebec.ca categories: [statistics, government] tier: B weight: 1.1 aliases: [isq, institut de la statistique du québec] discover: { rss: true, sitemap: false, pages: true } sensors: - { name: communiqués, url: "https://statistique.quebec.ca/fr/institut/salle-de-presse/communiques", type: HTML, connector: http, tier: B }