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%
70.6 KB · 1,674 lines yaml
Raw Blame History
1# config/sources.d/18-sports.yaml — sports: leagues, federations, Olympic movement, anti-doping, teams & venues,2# sports media/data/betting, gear & fitness. Authored 2026-09-08; every sensor validated with3# apps/engine/src/validate.ts (rss · sitemap · statuspage · github · jsonlist · http only).4# Blocked / client-rendered sites are recorded in `notes:` rather than added as sensors.5sources:6  # ───────────────────────── A · North-American leagues ─────────────────────────7  - id: nhl8    name: National Hockey League9    domain: nhl.com10    homepage: https://www.nhl.com11    categories: [sports, hockey]12    tier: A13    weight: 1.314    aliases: [nhl, ligue nationale de hockey, lnh]15    discover: { rss: false, sitemap: true, pages: true }16    llm: false17    notes: "nhl.com news is client-rendered; no RSS. Stories sitemap is the only structured feed."18    sensors:19      - { name: stories sitemap, url: "https://www.nhl.com/sitemap/sitemap-stories.xml", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 2000 } }20      - { name: news page, url: "https://www.nhl.com/news/", type: HTML, connector: http, tier: A }21  - id: nba22    name: National Basketball Association23    domain: nba.com24    homepage: https://www.nba.com25    categories: [sports, basketball]26    tier: A27    weight: 1.328    aliases: [nba]29    discover: { rss: false, sitemap: true }30    llm: false31    notes: "nba.com is client-rendered; article sitemaps behind bot protection (403). News sitemap index only."32    sensors:33      - { name: news sitemap, url: "https://www.nba.com/sitemap_news.xml", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 2000 } }34  - id: mlb35    name: Major League Baseball36    domain: mlb.com37    homepage: https://www.mlb.com38    categories: [sports, baseball]39    tier: A40    weight: 1.341    aliases: [mlb, baseball majeur]42    discover: { rss: true, sitemap: true, pages: true }43    llm: false44    sensors:45      - { name: news feed, url: "https://www.mlb.com/feeds/news/rss.xml", type: RSS, connector: rss, tier: A }46      - { name: 48h news sitemap, url: "https://www.mlb.com/sitemaps/48-hr-news.xml.gz", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 2000 } }47  - id: nfl48    name: National Football League49    domain: nfl.com50    homepage: https://www.nfl.com51    categories: [sports, football]52    tier: A53    weight: 1.354    aliases: [nfl]55    discover: { rss: false, sitemap: true, pages: true }56    llm: false57    sensors:58      - { name: fast-changing sitemap, url: "https://www.nfl.com/sitemap-fast-changing.xml", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 2000 } }59      - { name: news page, url: "https://www.nfl.com/news", type: HTML, connector: http, tier: A }60  - id: mls61    name: Major League Soccer62    domain: mlssoccer.com63    homepage: https://www.mlssoccer.com64    categories: [sports, soccer]65    tier: B66    weight: 1.167    aliases: [mls, major league soccer]68    discover: { rss: false, sitemap: true, pages: true }69    llm: false70    sensors:71      - { name: stories sitemap, url: "https://www.mlssoccer.com/sitemap-stories.xml", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 2000 } }72      - { name: news page, url: "https://www.mlssoccer.com/news/", type: HTML, connector: http, tier: B }73  - id: wnba74    name: Women's National Basketball Association75    domain: wnba.com76    homepage: https://www.wnba.com77    categories: [sports, basketball]78    tier: B79    aliases: [wnba]80    discover: { rss: false, sitemap: true }81    llm: false82    sensors:83      - { name: news sitemap, url: "https://www.wnba.com/sitemap_news.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000 } }84  - id: nwsl85    name: National Women's Soccer League86    domain: nwslsoccer.com87    homepage: https://www.nwslsoccer.com88    categories: [sports, soccer]89    tier: B90    aliases: [nwsl]91    discover: { rss: false, sitemap: true }92    llm: false93    sensors:94      - { name: article sitemap, url: "https://www.nwslsoccer.com/sitemap-article.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000 } }95  - id: cfl96    name: Canadian Football League97    domain: cfl.ca98    homepage: https://www.cfl.ca99    categories: [sports, football]100    tier: B101    weight: 1.1102    aliases: [cfl, ligue canadienne de football, lcf]103    discover: { rss: true, sitemap: true }104    llm: false105    sensors:106      - { name: sitemap, url: "https://cfl.ca/sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000, maxChildren: 10 } }107  - id: pwhl108    name: Professional Women's Hockey League109    domain: thepwhl.com110    homepage: https://www.thepwhl.com111    categories: [sports, hockey]112    tier: B113    aliases: [pwhl, lphf, ligue professionnelle de hockey féminin]114    discover: { rss: true, sitemap: true, pages: true }115    llm: false116    sensors:117      - { name: sitemap (en), url: "https://www.thepwhl.com/en/sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000 } }118  - id: ncaa119    name: NCAA120    domain: ncaa.com121    homepage: https://www.ncaa.com122    categories: [sports, education]123    tier: B124    weight: 1.1125    aliases: [ncaa, national collegiate athletic association, march madness]126    discover: { rss: true, sitemap: true }127    llm: false128    sensors:129      - { name: news sitemap, url: "https://www.ncaa.com/sitemap/news.xml", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 2000 } }130  # ───────────────────────── B · Football (soccer) federations & leagues ─────────────────────────131  - id: fifa132    name: FIFA133    domain: fifa.com134    homepage: https://www.fifa.com135    categories: [sports, soccer, international]136    tier: A137    weight: 1.4138    aliases: [fifa, fédération internationale de football association, world cup 2026]139    discover: { rss: true, sitemap: true, pages: true }140    llm: true141    notes: "fifa.com and inside.fifa.com are client-rendered (Next.js). Only the FIFA+ web API sitemap index is structured."142    sensors:143      - { name: fifa+ sitemap (en), url: "https://cxm-api.fifa.com/fifaplusweb/api/sitemap-en", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000 } }144  - id: uefa145    name: UEFA146    domain: uefa.com147    homepage: https://www.uefa.com148    categories: [sports, soccer, international]149    tier: A150    weight: 1.3151    aliases: [uefa, champions league, europa league, euro 2028]152    discover: { rss: true, sitemap: true }153    llm: false154    sensors:155      - { name: latest news sitemap, url: "https://www.uefa.com/sitemap/news/latest.xml", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 2000 } }156      - { name: documents sitemap, url: "https://www.uefa.com/sitemap/document/index.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000, maxChildren: 10 } }157  - id: concacaf158    name: Concacaf159    domain: concacaf.com160    homepage: https://www.concacaf.com161    categories: [sports, soccer, international]162    tier: B163    aliases: [concacaf, gold cup, champions cup]164    discover: { rss: true, sitemap: true, pages: true }165    llm: false166    sensors:167      - { name: article sitemap, url: "https://www.concacaf.com/sitemap-article.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000 } }168      - { name: news page, url: "https://www.concacaf.com/news", type: HTML, connector: http, tier: B }169  - id: conmebol170    name: CONMEBOL171    domain: conmebol.com172    homepage: https://www.conmebol.com173    categories: [sports, soccer, international]174    tier: B175    aliases: [conmebol, copa libertadores, copa américa]176    discover: { rss: true, sitemap: true }177    llm: false178    sensors:179      - { name: news feed, url: "https://www.conmebol.com/feed/", type: RSS, connector: rss, tier: B }180  - id: canada-soccer181    name: Canada Soccer182    domain: canadasoccer.com183    homepage: https://www.canadasoccer.com184    categories: [sports, soccer]185    tier: B186    weight: 1.1187    aliases: [canada soccer, soccer canada, canmnt, canwnt]188    discover: { rss: true, sitemap: true }189    sensors:190      - { name: pressroom feed, url: "https://news.canadasoccer.com/feed", type: RSS, connector: rss, tier: B }191  - id: la-liga192    name: LALIGA193    domain: laliga.com194    homepage: https://www.laliga.com195    categories: [sports, soccer]196    tier: B197    weight: 1.1198    aliases: [laliga, la liga, liga española]199    discover: { rss: false, sitemap: true, pages: true }200    llm: false201    notes: "News sitemaps (assets.laliga.com/sitemap/sitemap-news-N.xml) are 40 MB archives — not polled."202    sensors:203      - { name: news page, url: "https://www.laliga.com/news", type: HTML, connector: http, tier: B }204  - id: bundesliga205    name: Bundesliga (DFL)206    domain: bundesliga.com207    homepage: https://www.bundesliga.com208    categories: [sports, soccer]209    tier: B210    weight: 1.1211    aliases: [bundesliga, dfl, deutsche fußball liga]212    discover: { rss: true, sitemap: true }213    llm: false214    sensors:215      - { name: news feed (en), url: "https://www.bundesliga.com/rss/en/rss-news.rss", type: RSS, connector: rss, tier: A }216      - { name: news sitemap (en), url: "https://www.bundesliga.com/sitemaps/en/sitemap-news.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000 } }217  - id: serie-a218    name: Lega Serie A219    domain: legaseriea.it220    homepage: https://www.legaseriea.it221    categories: [sports, soccer]222    tier: B223    aliases: [serie a, lega serie a, lega calcio]224    discover: { rss: false, sitemap: true }225    llm: false226    sensors:227      - { name: article sitemap, url: "https://www.legaseriea.it/sitemap-article.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000 } }228  - id: ligue-1229    name: Ligue 1 (LFP)230    domain: ligue1.com231    homepage: https://www.ligue1.com232    categories: [sports, soccer]233    tier: B234    aliases: [ligue 1, ligue 1 mcdonald's, lfp, ligue de football professionnel]235    discover: { rss: false, sitemap: true }236    llm: false237    sensors:238      - { name: articles sitemap (en), url: "https://ligue1.com/api/sitemap/sitemap-articles-l1-en", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000 } }239      - { name: articles sitemap (fr), url: "https://ligue1.com/api/sitemap/sitemap-articles-l1-fr", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000 } }240  - id: premier-league241    name: Premier League242    domain: premierleague.com243    homepage: https://www.premierleague.com244    categories: [sports, soccer]245    tier: B246    weight: 1.2247    aliases: [premier league, epl]248    discover: { rss: false, sitemap: false }249    notes: "premierleague.com answers 429 to sitemap/feed requests and the news pages are client-rendered — no validated sensor (2026-09-08)."250  - id: us-soccer251    name: U.S. Soccer252    domain: ussoccer.com253    homepage: https://www.ussoccer.com254    categories: [sports, soccer]255    tier: C256    aliases: [us soccer, usmnt, uswnt, united states soccer federation]257    discover: { rss: true, sitemap: true }258    notes: "ussoccer.com is a client-rendered SPA (sitemap.xml and /rss return HTML) — no validated sensor (2026-09-08)."259  # ───────────────────────── C · Motorsport ─────────────────────────260  - id: fia261    name: FIA262    domain: fia.com263    homepage: https://www.fia.com264    categories: [sports, motorsport, international]265    tier: B266    weight: 1.2267    aliases: [fia, fédération internationale de l'automobile]268    discover: { rss: true, sitemap: true, pages: true }269    sensors:270      - { name: news feed, url: "https://www.fia.com/rss/news", type: RSS, connector: rss, tier: A }271      - { name: newsroom page, url: "https://www.fia.com/newsroom", type: HTML, connector: http, tier: B }272  - id: formula-1273    name: Formula 1274    domain: formula1.com275    homepage: https://www.formula1.com276    categories: [sports, motorsport]277    tier: A278    weight: 1.3279    aliases: [formula 1, f1, formule 1, formula one]280    discover: { rss: false, sitemap: true }281    llm: false282    sensors:283      - { name: article sitemap, url: "https://www.formula1.com/en/latest/article/sitemap.xml", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 2000, maxChildren: 3 } }284  - id: indycar285    name: INDYCAR286    domain: indycar.com287    homepage: https://www.indycar.com288    categories: [sports, motorsport]289    tier: B290    aliases: [indycar, ntt indycar series, indy 500, indianapolis 500]291    discover: { rss: false, sitemap: true, pages: true }292    llm: false293    sensors:294      - { name: news page, url: "https://www.indycar.com/news", type: HTML, connector: http, tier: B }295  - id: fia-wec296    name: FIA World Endurance Championship297    domain: fiawec.com298    homepage: https://www.fiawec.com299    categories: [sports, motorsport]300    tier: B301    aliases: [wec, fia wec, 24 heures du mans, le mans]302    discover: { rss: false, sitemap: true }303    llm: false304    sensors:305      - { name: articles sitemap, url: "https://www.fiawec.com/sitemap-articles.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000 } }306  - id: nascar307    name: NASCAR308    domain: nascar.com309    homepage: https://www.nascar.com310    categories: [sports, motorsport]311    tier: B312    aliases: [nascar, cup series]313    discover: { rss: false, sitemap: false }314    notes: "nascar.com answers 403 (bot management) to feeds, sitemaps and news pages — no validated sensor (2026-09-08)."315  - id: motogp316    name: MotoGP (Dorna)317    domain: motogp.com318    homepage: https://www.motogp.com319    categories: [sports, motorsport]320    tier: B321    aliases: [motogp, dorna sports]322    discover: { rss: false, sitemap: false, pages: true }323    llm: false324    sensors:325      - { name: news page, url: "https://www.motogp.com/en/news", type: HTML, connector: http, tier: B }326  # ───────────────────────── D · Tennis & golf ─────────────────────────327  - id: atp-tour328    name: ATP Tour329    domain: atptour.com330    homepage: https://www.atptour.com331    categories: [sports, tennis]332    tier: B333    aliases: [atp, atp tour]334    discover: { rss: false, sitemap: false }335    notes: "atptour.com is behind bot management (403 on news, RSS and sitemap) — no validated sensor (2026-09-08)."336  - id: wta337    name: WTA338    domain: wtatennis.com339    homepage: https://www.wtatennis.com340    categories: [sports, tennis]341    tier: B342    aliases: [wta, women's tennis association]343    discover: { rss: false, sitemap: false, pages: true }344    llm: false345    sensors:346      - { name: news page, url: "https://www.wtatennis.com/news", type: HTML, connector: http, tier: B }347  - id: itf348    name: International Tennis Federation349    domain: itftennis.com350    homepage: https://www.itftennis.com351    categories: [sports, tennis, international]352    tier: C353    aliases: [itf, davis cup, billie jean king cup]354    discover: { rss: true, sitemap: true }355    notes: "itftennis.com is client-rendered (news list returns a 200-byte shell) — no validated sensor (2026-09-08)."356  - id: tennis-canada357    name: Tennis Canada358    domain: tenniscanada.com359    homepage: https://www.tenniscanada.com360    categories: [sports, tennis]361    tier: B362    aliases: [tennis canada, national bank open, omnium banque nationale]363    products:364      - { name: National Bank Open, type: service, aliases: [nbo, omnium banque nationale, rogers cup] }365    discover: { rss: true, sitemap: true, pages: true }366    llm: false367    sensors:368      - { name: sitemap index, url: "https://www.tenniscanada.com/sitemaps-1-sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 3000, maxChildren: 16 } }369      - { name: national bank open news, url: "https://nationalbankopen.com/news", type: HTML, connector: http, tier: B }370  - id: pga-tour371    name: PGA TOUR372    domain: pgatour.com373    homepage: https://www.pgatour.com374    categories: [sports, golf]375    tier: B376    weight: 1.1377    aliases: [pga tour, pga]378    discover: { rss: false, sitemap: true, pages: true }379    llm: false380    sensors:381      - { name: articles sitemap, url: "https://www.pgatour.com/sitemap/articles.xml", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 2000 } }382      - { name: news page, url: "https://www.pgatour.com/news", type: HTML, connector: http, tier: B }383  - id: lpga384    name: LPGA385    domain: lpga.com386    homepage: https://www.lpga.com387    categories: [sports, golf]388    tier: B389    aliases: [lpga, ladies professional golf association]390    discover: { rss: false, sitemap: false, pages: true }391    llm: false392    sensors:393      - { name: news page, url: "https://www.lpga.com/news", type: HTML, connector: http, tier: B }394  - id: dp-world-tour395    name: DP World Tour396    domain: europeantour.com397    homepage: https://www.europeantour.com398    categories: [sports, golf]399    tier: B400    aliases: [dp world tour, european tour, ryder cup europe]401    discover: { rss: false, sitemap: true }402    llm: false403    sensors:404      - { name: article sitemap, url: "https://www.europeantour.com/sitemap-article.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000 } }405  - id: usga406    name: USGA407    domain: usga.org408    homepage: https://www.usga.org409    categories: [sports, golf]410    tier: C411    aliases: [usga, united states golf association, us open golf]412    discover: { rss: false, sitemap: false }413    notes: "usga.org answers 403 to sitemap and news pages (Adobe AEM bot rules) — no validated sensor (2026-09-08)."414  - id: r-and-a415    name: The R&A416    domain: randa.org417    homepage: https://www.randa.org418    categories: [sports, golf]419    tier: C420    aliases: [r&a, the r&a, royal and ancient, the open championship]421    discover: { rss: false, sitemap: true }422    llm: false423    sensors:424      - { name: sitemap, url: "https://www.randa.org/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } }425  - id: golf-canada426    name: Golf Canada427    domain: golfcanada.ca428    homepage: https://www.golfcanada.ca429    categories: [sports, golf]430    tier: B431    aliases: [golf canada, rbc canadian open, cpkc women's open]432    discover: { rss: true, sitemap: true }433    sensors:434      - { name: news feed, url: "https://www.golfcanada.ca/feed/", type: RSS, connector: rss, tier: B }435  # ───────────────────────── E · Combat sports & entertainment ─────────────────────────436  - id: ufc437    name: UFC438    domain: ufc.com439    homepage: https://www.ufc.com440    categories: [sports, combat-sports]441    tier: B442    weight: 1.1443    aliases: [ufc, ultimate fighting championship]444    discover: { rss: true, sitemap: true }445    llm: false446    sensors:447      - { name: news feed, url: "https://www.ufc.com/rss/news", type: RSS, connector: rss, tier: A }448      - { name: news sitemap, url: "https://www.ufc.com/news-sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000 } }449  - id: tko-group450    name: TKO Group Holdings (WWE · UFC · Zuffa Boxing)451    domain: tkogrp.com452    homepage: https://tkogrp.com453    categories: [sports, combat-sports, entertainment, finance]454    tier: B455    weight: 1.1456    aliases: [tko, tko group, wwe, world wrestling entertainment, zuffa]457    products:458      - { name: WWE, type: product, aliases: [wwe, wrestlemania, raw, smackdown] }459    discover: { rss: true, sitemap: true }460    sensors:461      - { name: press releases feed, url: "https://tkogrp.com/news/feed/", type: RSS, connector: rss, tier: B }462      - { name: wwe news page, url: "https://www.wwe.com/news", type: HTML, connector: http, tier: B }463  - id: pfl464    name: Professional Fighters League465    domain: pflmma.com466    homepage: https://pflmma.com467    categories: [sports, combat-sports]468    tier: C469    aliases: [pfl, professional fighters league]470    discover: { rss: false, sitemap: true, pages: true }471    llm: false472    sensors:473      - { name: news page, url: "https://pflmma.com/news", type: HTML, connector: http, tier: C }474  # ───────────────────────── F · International federations ─────────────────────────475  - id: world-athletics476    name: World Athletics477    domain: worldathletics.org478    homepage: https://worldathletics.org479    categories: [sports, athletics, international]480    tier: B481    weight: 1.1482    aliases: [world athletics, iaaf]483    discover: { rss: true, sitemap: true }484    sensors:485      - { name: news feed, url: "https://worldathletics.org/news/rss", type: RSS, connector: rss, tier: B, config: { maxItems: 60 } }486  - id: world-aquatics487    name: World Aquatics488    domain: worldaquatics.com489    homepage: https://www.worldaquatics.com490    categories: [sports, aquatics, international]491    tier: C492    aliases: [world aquatics, fina]493    discover: { rss: false, sitemap: false, pages: true }494    llm: false495    sensors:496      - { name: news page, url: "https://www.worldaquatics.com/news", type: HTML, connector: http, tier: C }497  - id: fig498    name: International Gymnastics Federation499    domain: gymnastics.sport500    homepage: https://www.gymnastics.sport501    categories: [sports, gymnastics, international]502    tier: C503    aliases: [fig, fédération internationale de gymnastique, world gymnastics]504    discover: { rss: false, sitemap: false, pages: true }505    llm: false506    sensors:507      - { name: news page, url: "https://www.gymnastics.sport/site/pages/news.php", type: HTML, connector: http, tier: C }508  - id: fis-ski509    name: FIS (International Ski and Snowboard Federation)510    domain: fis-ski.com511    homepage: https://www.fis-ski.com512    categories: [sports, winter-sports, international]513    tier: C514    aliases: [fis, fédération internationale de ski, ski and snowboard federation]515    discover: { rss: false, sitemap: true }516    llm: false517    notes: "fis-ski.com has no news feed; the single sitemap.xml lists ~22 000 URLs (capped)."518    sensors:519      - { name: sitemap, url: "https://www.fis-ski.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } }520  - id: iihf521    name: IIHF522    domain: iihf.com523    homepage: https://www.iihf.com524    categories: [sports, hockey, international]525    tier: B526    aliases: [iihf, international ice hockey federation, world juniors, championnat du monde de hockey]527    discover: { rss: false, sitemap: false, pages: true }528    llm: false529    notes: "iihf.com returns 403 on sitemap.xml and /en/rss (Cloudflare); only the news HTML page is reachable."530    sensors:531      - { name: news page, url: "https://www.iihf.com/en/news", type: HTML, connector: http, tier: B }532  - id: fiba533    name: FIBA534    domain: fiba.basketball535    homepage: https://www.fiba.basketball536    categories: [sports, basketball, international]537    tier: B538    aliases: [fiba, international basketball federation]539    discover: { rss: false, sitemap: false, pages: true }540    llm: false541    sensors:542      - { name: news page, url: "https://www.fiba.basketball/en/news", type: HTML, connector: http, tier: B }543  - id: world-rugby544    name: World Rugby545    domain: world.rugby546    homepage: https://www.world.rugby547    categories: [sports, rugby, international]548    tier: B549    aliases: [world rugby, rugby world cup]550    discover: { rss: true, sitemap: true }551    sensors:552      - { name: news feed, url: "https://www.world.rugby/rss.xml", type: RSS, connector: rss, tier: B }553  - id: icc554    name: International Cricket Council555    domain: icc-cricket.com556    homepage: https://www.icc-cricket.com557    categories: [sports, cricket, international]558    tier: B559    weight: 1.1560    aliases: [icc, international cricket council, cricket world cup]561    discover: { rss: false, sitemap: true, pages: true }562    llm: false563    sensors:564      - { name: article sitemap index, url: "https://www.icc-cricket.com/sitemap-article-index.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000, maxChildren: 2 } }565      - { name: news page, url: "https://www.icc-cricket.com/news", type: HTML, connector: http, tier: B }566  - id: wbsc567    name: WBSC568    domain: wbsc.org569    homepage: https://www.wbsc.org570    categories: [sports, baseball, international]571    tier: C572    aliases: [wbsc, world baseball softball confederation]573    discover: { rss: false, sitemap: false }574    notes: "wbsc.org answers 403 to bot user agents on news and sitemap — no validated sensor (2026-09-08)."575  - id: tour-de-france576    name: Tour de France (A.S.O.)577    domain: letour.fr578    homepage: https://www.letour.fr579    categories: [sports, cycling]580    tier: B581    aliases: [tour de france, aso, amaury sport organisation, le tour]582    discover: { rss: false, sitemap: true, pages: true }583    llm: false584    sensors:585      - { name: news page (en), url: "https://www.letour.fr/en/news", type: HTML, connector: http, tier: B }586      - { name: sitemap, url: "https://www.letour.fr/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000, maxChildren: 5 } }587  - id: uci588    name: UCI (Union Cycliste Internationale)589    domain: uci.org590    homepage: https://www.uci.org591    categories: [sports, cycling, international]592    tier: B593    aliases: [uci, union cycliste internationale]594    discover: { rss: false, sitemap: true, pages: true }595    llm: false596    sensors:597      - { name: sitemap, url: "https://www.uci.org/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } }598  - id: fei599    name: FEI (Fédération Équestre Internationale)600    domain: fei.org601    homepage: https://www.fei.org602    categories: [sports, equestrian, international]603    tier: C604    aliases: [fei, fédération équestre internationale]605    discover: { rss: false, sitemap: false, pages: true }606    llm: false607    notes: "www.fei.org/news is 403; inside.fei.org (official media site) is server-rendered."608    sensors:609      - { name: inside fei news, url: "https://inside.fei.org/news", type: HTML, connector: http, tier: C }610  - id: isu611    name: International Skating Union612    domain: isu.org613    homepage: https://www.isu.org614    categories: [sports, winter-sports, international]615    tier: C616    aliases: [isu, international skating union]617    discover: { rss: false, sitemap: false }618    notes: "isu.org is a client-rendered SPA (every path returns the same 48 KB shell, sitemap.xml is HTML) — no validated sensor (2026-09-08)."619  - id: ibu620    name: International Biathlon Union621    domain: biathlonworld.com622    homepage: https://www.biathlonworld.com623    categories: [sports, winter-sports, international]624    tier: C625    aliases: [ibu, international biathlon union, biathlon]626    discover: { rss: false, sitemap: true, pages: true }627    llm: false628    sensors:629      - { name: news page, url: "https://www.biathlonworld.com/news", type: HTML, connector: http, tier: C }630      - { name: sitemap, url: "https://www.biathlonworld.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } }631  - id: fil-luge632    name: International Luge Federation633    domain: fil-luge.org634    homepage: https://www.fil-luge.org635    categories: [sports, winter-sports, international]636    tier: D637    aliases: [fil, international luge federation, luge]638    discover: { rss: false, sitemap: true }639    llm: false640    notes: "/en/news returns HTTP 500 to non-browser clients; the sitemap is the only structured endpoint."641    sensors:642      - { name: sitemap, url: "https://www.fil-luge.org/sitemap.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 2000 } }643  - id: ibsf644    name: IBSF (Bobsleigh & Skeleton)645    domain: ibsf.org646    homepage: https://www.ibsf.org647    categories: [sports, winter-sports, international]648    tier: D649    aliases: [ibsf, fibt, international bobsleigh and skeleton federation]650    discover: { rss: false, sitemap: false, pages: true }651    llm: false652    sensors:653      - { name: news page, url: "https://www.ibsf.org/en/news", type: HTML, connector: http, tier: D }654  - id: world-curling655    name: World Curling656    domain: worldcurling.org657    homepage: https://worldcurling.org658    categories: [sports, curling, international]659    tier: C660    aliases: [world curling, wcf, world curling federation]661    discover: { rss: true, sitemap: true }662    sensors:663      - { name: news feed, url: "https://worldcurling.org/feed/", type: RSS, connector: rss, tier: C }664  # ───────────────────────── G · Canadian national sport organizations ─────────────────────────665  - id: hockey-canada666    name: Hockey Canada667    domain: hockeycanada.ca668    homepage: https://www.hockeycanada.ca669    categories: [sports, hockey]670    tier: B671    weight: 1.1672    aliases: [hockey canada]673    discover: { rss: false, sitemap: false }674    notes: "hockeycanada.ca answers 403 to non-browser clients on /news, sitemap.xml and the RSS path — no validated sensor (2026-09-08)."675  - id: canada-basketball676    name: Canada Basketball677    domain: basketball.ca678    homepage: https://www.basketball.ca679    categories: [sports, basketball]680    tier: C681    aliases: [canada basketball]682    discover: { rss: false, sitemap: true }683    llm: false684    sensors:685      - { name: sitemap, url: "https://basketball.ca/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } }686  - id: baseball-canada687    name: Baseball Canada688    domain: baseball.ca689    homepage: https://baseball.ca690    categories: [sports, baseball]691    tier: C692    aliases: [baseball canada]693    discover: { rss: false, sitemap: false, pages: true }694    llm: false695    sensors:696      - { name: news page, url: "https://baseball.ca/news", type: HTML, connector: http, tier: C }697  - id: rugby-canada698    name: Rugby Canada699    domain: rugby.ca700    homepage: https://rugby.ca701    categories: [sports, rugby]702    tier: C703    aliases: [rugby canada]704    discover: { rss: false, sitemap: true }705    llm: false706    sensors:707      - { name: sitemap, url: "https://rugby.ca/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } }708  - id: cycling-canada709    name: Cycling Canada710    domain: cyclingcanada.ca711    homepage: https://cyclingcanada.ca712    categories: [sports, cycling]713    tier: C714    aliases: [cycling canada, cyclisme canada]715    discover: { rss: true, sitemap: true }716    sensors:717      - { name: news feed, url: "https://cyclingcanada.ca/feed/", type: RSS, connector: rss, tier: C }718  - id: skate-canada719    name: Skate Canada720    domain: skatecanada.ca721    homepage: https://skatecanada.ca722    categories: [sports, winter-sports]723    tier: C724    aliases: [skate canada, patinage canada]725    discover: { rss: true, sitemap: true }726    sensors:727      - { name: news feed, url: "https://skatecanada.ca/feed/", type: RSS, connector: rss, tier: C }728  - id: curling-canada729    name: Curling Canada730    domain: curling.ca731    homepage: https://www.curling.ca732    categories: [sports, curling]733    tier: C734    aliases: [curling canada, brier, scotties tournament of hearts]735    discover: { rss: true, sitemap: true }736    sensors:737      - { name: news feed, url: "https://www.curling.ca/feed/", type: RSS, connector: rss, tier: C }738  - id: alpine-canada739    name: Alpine Canada740    domain: alpinecanada.org741    homepage: https://alpinecanada.org742    categories: [sports, winter-sports]743    tier: C744    aliases: [alpine canada, canada alpin]745    discover: { rss: false, sitemap: false, pages: true }746    llm: false747    sensors:748      - { name: news page, url: "https://alpinecanada.org/news", type: HTML, connector: http, tier: C }749  - id: freestyle-canada750    name: Freestyle Canada751    domain: freestylecanada.ski752    homepage: https://www.freestylecanada.ski753    categories: [sports, winter-sports]754    tier: D755    aliases: [freestyle canada]756    discover: { rss: false, sitemap: true, pages: true }757    llm: false758    sensors:759      - { name: sitemap, url: "https://www.freestylecanada.ski/sitemap.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 2000 } }760  - id: speed-skating-canada761    name: Speed Skating Canada762    domain: speedskating.ca763    homepage: https://speedskating.ca764    categories: [sports, winter-sports]765    tier: C766    aliases: [speed skating canada, patinage de vitesse canada]767    discover: { rss: true, sitemap: true }768    sensors:769      - { name: news feed, url: "https://speedskating.ca/news/feed/", type: RSS, connector: rss, tier: C }770  - id: swimming-canada771    name: Swimming Canada772    domain: swimming.ca773    homepage: https://www.swimming.ca774    categories: [sports, aquatics]775    tier: C776    aliases: [swimming canada, natation canada]777    discover: { rss: true, sitemap: true, pages: true }778    llm: false779    sensors:780      - { name: news page, url: "https://www.swimming.ca/en/news/", type: HTML, connector: http, tier: C }781      - { name: sitemap index, url: "https://www.swimming.ca/sitemap_index.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000, maxChildren: 11 } }782  - id: athletics-canada783    name: Athletics Canada784    domain: athletics.ca785    homepage: https://athletics.ca786    categories: [sports, athletics]787    tier: C788    aliases: [athletics canada, athlétisme canada]789    discover: { rss: true, sitemap: true }790    sensors:791      - { name: news feed, url: "https://athletics.ca/feed/", type: RSS, connector: rss, tier: C, config: { maxItems: 60 } }792  - id: own-the-podium793    name: Own the Podium794    domain: ownthepodium.org795    homepage: https://www.ownthepodium.org796    categories: [sports, government]797    tier: D798    aliases: [own the podium, otp, à nous le podium]799    discover: { rss: false, sitemap: true }800    llm: false801    sensors:802      - { name: sitemap, url: "https://www.ownthepodium.org/sitemap.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 2000 } }803  - id: canadian-olympic-committee804    name: Canadian Olympic Committee (Team Canada)805    domain: olympic.ca806    homepage: https://olympic.ca807    categories: [sports, olympics]808    tier: B809    weight: 1.1810    aliases: [canadian olympic committee, coc, team canada, équipe canada, comité olympique canadien]811    discover: { rss: true, sitemap: true }812    sensors:813      - { name: news feed, url: "https://olympic.ca/category/news/feed/", type: RSS, connector: rss, tier: B }814  - id: canadian-paralympic-committee815    name: Canadian Paralympic Committee816    domain: paralympic.ca817    homepage: https://paralympic.ca818    categories: [sports, olympics]819    tier: B820    aliases: [canadian paralympic committee, cpc, comité paralympique canadien]821    discover: { rss: true, sitemap: true }822    sensors:823      - { name: news feed, url: "https://paralympic.ca/news/feed/", type: RSS, connector: rss, tier: B }824  - id: sports-quebec825    name: Sports Québec826    domain: sportsquebec.com827    homepage: https://www.sportsquebec.com828    categories: [sports, quebec]829    tier: C830    aliases: [sports québec, sportsquébec, jeux du québec]831    discover: { rss: true, sitemap: true }832    sensors:833      - { name: news feed, url: "https://www.sportsquebec.com/feed/", type: RSS, connector: rss, tier: C }834  - id: ins-quebec835    name: Institut national du sport du Québec836    domain: insquebec.org837    homepage: https://www.insquebec.org838    categories: [sports, quebec, research]839    tier: D840    aliases: [ins québec, institut national du sport du québec, insq]841    discover: { rss: true, sitemap: true, pages: true }842    llm: false843    sensors:844      - { name: nouvelles page, url: "https://www.insquebec.org/nouvelles/", type: HTML, connector: http, tier: D }845      - { name: sitemap, url: "https://www.insquebec.org/sitemap.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 2000 } }846  - id: rseq847    name: RSEQ (Réseau du sport étudiant du Québec)848    domain: rseq.ca849    homepage: https://rseq.ca850    categories: [sports, quebec, education]851    tier: D852    aliases: [rseq, réseau du sport étudiant du québec]853    discover: { rss: true, sitemap: true }854    notes: "rseq.ca has no feed or news sitemap reachable (404 on /feed/, /nouvelles/) — no validated sensor (2026-09-08)."855  # ───────────────────────── H · Olympic movement, anti-doping, sport justice ─────────────────────────856  - id: ioc857    name: International Olympic Committee858    domain: olympics.com859    homepage: https://olympics.com/ioc860    categories: [sports, olympics, international]861    tier: A862    weight: 1.4863    aliases: [ioc, cio, international olympic committee, comité international olympique, olympics, olympic games, milano cortina 2026]864    products:865      - { name: Milano Cortina 2026, type: service, aliases: [milan cortina 2026, winter olympics 2026] }866    discover: { rss: false, sitemap: false }867    notes: "olympics.com (incl. /ioc/news and milanocortina2026.olympics.com) never answers non-browser clients — Akamai holds the connection open; no validated sensor (2026-09-08)."868  - id: la28869    name: LA28 Olympic & Paralympic Games870    domain: la28.org871    homepage: https://la28.org872    categories: [sports, olympics]873    tier: C874    aliases: [la28, los angeles 2028, la 2028]875    discover: { rss: false, sitemap: true }876    llm: false877    sensors:878      - { name: sitemap, url: "https://la28.org/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } }879  - id: ipc880    name: International Paralympic Committee881    domain: paralympic.org882    homepage: https://www.paralympic.org883    categories: [sports, olympics, international]884    tier: B885    aliases: [ipc, international paralympic committee, paralympics, paralympic games]886    discover: { rss: false, sitemap: false, pages: true }887    llm: false888    sensors:889      - { name: news page, url: "https://www.paralympic.org/news", type: HTML, connector: http, tier: B }890  - id: commonwealth-sport891    name: Commonwealth Sport892    domain: commonwealthsport.com893    homepage: https://www.commonwealthsport.com894    categories: [sports, international]895    tier: C896    aliases: [commonwealth sport, commonwealth games, glasgow 2026]897    discover: { rss: false, sitemap: false, pages: true }898    llm: false899    sensors:900      - { name: news page, url: "https://www.commonwealthsport.com/news", type: HTML, connector: http, tier: C }901  - id: wada902    name: World Anti-Doping Agency903    domain: wada-ama.org904    homepage: https://www.wada-ama.org905    categories: [sports, anti-doping, international]906    tier: B907    weight: 1.2908    aliases: [wada, ama, agence mondiale antidopage, world anti-doping agency]909    discover: { rss: false, sitemap: false }910    notes: "wada-ama.org returns HTTP 202 with an empty body to non-browser clients (bot challenge) — no validated sensor (2026-09-08)."911  - id: usada912    name: U.S. Anti-Doping Agency913    domain: usada.org914    homepage: https://www.usada.org915    categories: [sports, anti-doping]916    tier: B917    aliases: [usada]918    discover: { rss: true, sitemap: true, pages: true }919    sensors:920      - { name: news feed, url: "https://www.usada.org/feed/", type: RSS, connector: rss, tier: B }921      - { name: news page, url: "https://www.usada.org/news/", type: HTML, connector: http, tier: C }922  - id: cces923    name: Sport Integrity Canada (CCES)924    domain: sportintegrity.ca925    homepage: https://sportintegrity.ca926    categories: [sports, anti-doping]927    tier: B928    aliases: [cces, canadian centre for ethics in sport, centre canadien pour l'éthique dans le sport, sport integrity canada]929    discover: { rss: true, sitemap: true, pages: true }930    sensors:931      - { name: media releases page, url: "https://sportintegrity.ca/news", type: HTML, connector: http, tier: B }932      - { name: rss feed, url: "https://sportintegrity.ca/rss.xml", type: RSS, connector: rss, tier: B }933  - id: cas934    name: Court of Arbitration for Sport (CAS/TAS)935    domain: tas-cas.org936    homepage: https://www.tas-cas.org937    categories: [sports, legal, international]938    tier: B939    weight: 1.1940    aliases: [cas, tas, court of arbitration for sport, tribunal arbitral du sport]941    discover: { rss: false, sitemap: false }942    notes: "tas-cas.org is a client-rendered shell (media releases list, sitemap.xml and RSS paths all return the same 25 KB HTML) — no validated sensor (2026-09-08)."943  # ───────────────────────── I · Canadian teams & venues ─────────────────────────944  - id: montreal-canadiens945    name: Montreal Canadiens946    domain: nhl.com947    homepage: https://www.nhl.com/canadiens948    categories: [sports, hockey, quebec]949    tier: B950    weight: 1.2951    aliases: [canadiens, montreal canadiens, canadiens de montréal, habs, ch]952    discover: { rss: false, sitemap: false, pages: true }953    llm: false954    sensors:955      - { name: news page, url: "https://www.nhl.com/canadiens/news", type: HTML, connector: http, tier: B }956  - id: toronto-maple-leafs957    name: Toronto Maple Leafs958    domain: nhl.com959    homepage: https://www.nhl.com/mapleleafs960    categories: [sports, hockey]961    tier: B962    weight: 1.1963    aliases: [maple leafs, toronto maple leafs, leafs]964    discover: { rss: false, sitemap: false, pages: true }965    llm: false966    sensors:967      - { name: news page, url: "https://www.nhl.com/mapleleafs/news", type: HTML, connector: http, tier: B }968  - id: ottawa-senators969    name: Ottawa Senators970    domain: nhl.com971    homepage: https://www.nhl.com/senators972    categories: [sports, hockey]973    tier: C974    aliases: [senators, ottawa senators, sens]975    discover: { rss: false, sitemap: false, pages: true }976    llm: false977    sensors:978      - { name: news page, url: "https://www.nhl.com/senators/news", type: HTML, connector: http, tier: C }979  - id: vancouver-canucks980    name: Vancouver Canucks981    domain: nhl.com982    homepage: https://www.nhl.com/canucks983    categories: [sports, hockey]984    tier: C985    aliases: [canucks, vancouver canucks]986    discover: { rss: false, sitemap: false, pages: true }987    llm: false988    sensors:989      - { name: news page, url: "https://www.nhl.com/canucks/news", type: HTML, connector: http, tier: C }990  - id: edmonton-oilers991    name: Edmonton Oilers992    domain: nhl.com993    homepage: https://www.nhl.com/oilers994    categories: [sports, hockey]995    tier: C996    aliases: [oilers, edmonton oilers]997    discover: { rss: false, sitemap: false, pages: true }998    llm: false999    sensors:1000      - { name: news page, url: "https://www.nhl.com/oilers/news", type: HTML, connector: http, tier: C }1001  - id: calgary-flames1002    name: Calgary Flames1003    domain: nhl.com1004    homepage: https://www.nhl.com/flames1005    categories: [sports, hockey]1006    tier: C1007    aliases: [flames, calgary flames]1008    discover: { rss: false, sitemap: false, pages: true }1009    llm: false1010    sensors:1011      - { name: news page, url: "https://www.nhl.com/flames/news", type: HTML, connector: http, tier: C }1012  - id: winnipeg-jets1013    name: Winnipeg Jets1014    domain: nhl.com1015    homepage: https://www.nhl.com/jets1016    categories: [sports, hockey]1017    tier: C1018    aliases: [jets, winnipeg jets]1019    discover: { rss: false, sitemap: false, pages: true }1020    llm: false1021    sensors:1022      - { name: news page, url: "https://www.nhl.com/jets/news", type: HTML, connector: http, tier: C }1023  - id: toronto-blue-jays1024    name: Toronto Blue Jays1025    domain: mlb.com1026    homepage: https://www.mlb.com/bluejays1027    categories: [sports, baseball]1028    tier: B1029    weight: 1.11030    aliases: [blue jays, toronto blue jays, jays]1031    discover: { rss: false, sitemap: false }1032    llm: false1033    sensors:1034      - { name: news feed, url: "https://www.mlb.com/bluejays/feeds/news/rss.xml", type: RSS, connector: rss, tier: B }1035  - id: cf-montreal1036    name: CF Montréal1037    domain: cfmontreal.com1038    homepage: https://www.cfmontreal.com1039    categories: [sports, soccer, quebec]1040    tier: B1041    aliases: [cf montréal, cf montreal, impact de montréal, montreal impact]1042    discover: { rss: false, sitemap: true, pages: true }1043    llm: false1044    sensors:1045      - { name: stories sitemap, url: "https://www.cfmontreal.com/sitemap-stories.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 2000 } }1046  - id: toronto-fc1047    name: Toronto FC1048    domain: torontofc.ca1049    homepage: https://www.torontofc.ca1050    categories: [sports, soccer]1051    tier: C1052    aliases: [toronto fc, tfc]1053    discover: { rss: false, sitemap: true, pages: true }1054    llm: false1055    sensors:1056      - { name: stories sitemap, url: "https://www.torontofc.ca/sitemap-stories.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } }1057      - { name: news page, url: "https://www.torontofc.ca/news/", type: HTML, connector: http, tier: C }1058  - id: vancouver-whitecaps1059    name: Vancouver Whitecaps FC1060    domain: whitecapsfc.com1061    homepage: https://www.whitecapsfc.com1062    categories: [sports, soccer]1063    tier: C1064    aliases: [whitecaps, vancouver whitecaps]1065    discover: { rss: false, sitemap: true, pages: true }1066    llm: false1067    sensors:1068      - { name: stories sitemap, url: "https://www.whitecapsfc.com/sitemap-stories.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } }1069      - { name: news page, url: "https://www.whitecapsfc.com/news/", type: HTML, connector: http, tier: C }1070  - id: montreal-alouettes1071    name: Alouettes de Montréal1072    domain: montrealalouettes.com1073    homepage: https://montrealalouettes.com1074    categories: [sports, football, quebec]1075    tier: C1076    aliases: [alouettes, montreal alouettes, alouettes de montréal]1077    discover: { rss: false, sitemap: true, pages: true }1078    llm: false1079    sensors:1080      - { name: actualités page, url: "https://montrealalouettes.com/actualites", type: HTML, connector: http, tier: C }1081      - { name: sitemap, url: "https://montrealalouettes.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } }1082  - id: toronto-argonauts1083    name: Toronto Argonauts1084    domain: argonauts.ca1085    homepage: https://argonauts.ca1086    categories: [sports, football]1087    tier: C1088    aliases: [argonauts, toronto argonauts, argos]1089    discover: { rss: false, sitemap: true, pages: true }1090    llm: false1091    sensors:1092      - { name: news page, url: "https://argonauts.ca/news", type: HTML, connector: http, tier: C }1093      - { name: sitemap, url: "https://argonauts.ca/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 2000 } }1094  - id: montreal-victoire1095    name: Montréal Victoire (PWHL)1096    domain: thepwhl.com1097    homepage: https://www.thepwhl.com/en/victoire1098    categories: [sports, hockey, quebec]1099    tier: C1100    aliases: [victoire, montréal victoire, montreal victoire, victoire de montréal]1101    discover: { rss: false, sitemap: false, pages: true }1102    llm: false1103    sensors:1104      - { name: news page, url: "https://www.thepwhl.com/en/victoire/news", type: HTML, connector: http, tier: C }1105  - id: canadian-grand-prix1106    name: Formula 1 Grand Prix du Canada1107    domain: gpcanada.ca1108    homepage: https://gpcanada.ca1109    categories: [sports, motorsport, quebec]1110    tier: C1111    aliases: [canadian grand prix, grand prix du canada, gp du canada, circuit gilles-villeneuve]1112    discover: { rss: false, sitemap: true }1113    llm: false1114    sensors:1115      - { name: sitemap, url: "https://gpcanada.ca/sitemap.php", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 1000 } }1116  - id: mlse1117    name: Maple Leaf Sports & Entertainment1118    domain: mlse.com1119    homepage: https://www.mlse.com1120    categories: [sports, entertainment]1121    tier: C1122    aliases: [mlse, maple leaf sports & entertainment, scotiabank arena, toronto raptors, raptors, bmo field, rogers centre]1123    products:1124      - { name: Toronto Raptors, type: service, aliases: [raptors, toronto raptors] }1125    discover: { rss: false, sitemap: true, pages: true }1126    llm: false1127    notes: "nba.com/raptors returns 404 to non-browser clients (client-rendered team hub) — Raptors covered via MLSE + NBA."1128    sensors:1129      - { name: sitemap, url: "https://www.mlse.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 1000 } }1130  - id: groupe-ch1131    name: Groupe CH / Centre Bell1132    domain: centrebell.ca1133    homepage: https://centrebell.ca1134    categories: [sports, entertainment, quebec]1135    tier: D1136    aliases: [groupe ch, centre bell, bell centre, place bell]1137    discover: { rss: false, sitemap: true }1138    llm: false1139    notes: "groupech.com exposes no feed or sitemap; the Bell Centre pages sitemap is the structured endpoint."1140    sensors:1141      - { name: pages sitemap, url: "https://centrebell.ca/sitemap/pages.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 1000 } }1142  - id: evenko1143    name: evenko1144    domain: evenko.ca1145    homepage: https://evenko.ca1146    categories: [entertainment, sports, quebec]1147    tier: C1148    aliases: [evenko, osheaga, ilesoniq, lasso]1149    discover: { rss: false, sitemap: true }1150    llm: false1151    sensors:1152      - { name: events sitemap index, url: "https://evenko.ca/server-sitemap-index.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000, maxChildren: 3 } }1153  # ───────────────────────── J · Sports media ─────────────────────────1154  - id: espn1155    name: ESPN1156    domain: espn.com1157    homepage: https://www.espn.com1158    categories: [sports, media, news]1159    tier: A1160    weight: 1.31161    aliases: [espn]1162    discover: { rss: true, sitemap: false }1163    llm: false1164    sensors:1165      - { name: top news feed, url: "https://www.espn.com/espn/rss/news", type: RSS, connector: rss, tier: A, config: { maxItems: 60 } }1166      - { name: nhl news feed, url: "https://www.espn.com/espn/rss/nhl/news", type: RSS, connector: rss, tier: B, config: { maxItems: 60 } }1167  - id: nytimes1168    extend: true1169    aliases: [the athletic]1170    products:1171      - { name: The Athletic, type: product, aliases: [the athletic, athletic] }1172    sensors:1173      - { name: the athletic headlines feed, url: "https://www.nytimes.com/athletic/rss/news/", type: RSS, connector: rss, tier: A, config: { maxItems: 100 } }1174  - id: bbc-news1175    extend: true1176    sensors:1177      - { name: bbc sport feed, url: "https://feeds.bbci.co.uk/sport/rss.xml", type: RSS, connector: rss, tier: A, config: { maxItems: 60 } }1178  - id: sportsnet1179    name: Sportsnet1180    domain: sportsnet.ca1181    homepage: https://www.sportsnet.ca1182    categories: [sports, media, news]1183    tier: A1184    weight: 1.11185    aliases: [sportsnet, rogers sportsnet]1186    discover: { rss: true, sitemap: false }1187    llm: false1188    sensors:1189      - { name: news feed, url: "https://www.sportsnet.ca/feed/", type: RSS, connector: rss, tier: A, config: { maxItems: 80 } }1190  - id: tsn1191    name: TSN1192    domain: tsn.ca1193    homepage: https://www.tsn.ca1194    categories: [sports, media, news]1195    tier: A1196    weight: 1.11197    aliases: [tsn, the sports network]1198    discover: { rss: true, sitemap: true }1199    llm: false1200    sensors:1201      - { name: news feed, url: "https://www.tsn.ca/arc/outboundfeeds/rss/", type: RSS, connector: rss, tier: A, config: { maxItems: 80 } }1202      - { name: latest news sitemap, url: "https://www.tsn.ca/arc/outboundfeeds/sitemap-news/latest/", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 1000 } }1203  - id: rds1204    name: RDS1205    domain: rds.ca1206    homepage: https://www.rds.ca1207    categories: [sports, media, news, quebec]1208    tier: A1209    weight: 1.11210    aliases: [rds, réseau des sports]1211    discover: { rss: true, sitemap: true }1212    llm: false1213    sensors:1214      - { name: fil de nouvelles, url: "https://www.rds.ca/arc/outboundfeeds/rss/", type: RSS, connector: rss, tier: A, config: { maxItems: 80 } }1215      - { name: latest news sitemap, url: "https://www.rds.ca/arc/outboundfeeds/sitemap-news/latest/", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 1000 } }1216  - id: bleacher-report1217    name: Bleacher Report1218    domain: bleacherreport.com1219    homepage: https://bleacherreport.com1220    categories: [sports, media, news]1221    tier: B1222    aliases: [bleacher report, b/r]1223    discover: { rss: true, sitemap: true }1224    llm: false1225    sensors:1226      - { name: front page feed, url: "https://feeds.bleacherreport.com/articles", type: RSS, connector: rss, tier: B, config: { maxItems: 100 } }1227      - { name: google news sitemap, url: "https://bleacherreport.com/sitemaps/google-news", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 1000 } }1228  - id: sports-illustrated1229    name: Sports Illustrated1230    domain: si.com1231    homepage: https://www.si.com1232    categories: [sports, media, news]1233    tier: B1234    aliases: [sports illustrated, si]1235    discover: { rss: true, sitemap: true }1236    llm: false1237    sensors:1238      - { name: news feed, url: "https://www.si.com/feed", type: RSS, connector: rss, tier: B, config: { maxItems: 100 } }1239      - { name: news sitemap, url: "https://www.si.com/news-sitemap.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 1000 } }1240  - id: lequipe1241    name: L'Équipe1242    domain: lequipe.fr1243    homepage: https://www.lequipe.fr1244    categories: [sports, media, news]1245    tier: A1246    weight: 1.11247    aliases: [l'équipe, lequipe]1248    discover: { rss: true, sitemap: true }1249    llm: false1250    sensors:1251      - { name: news sitemap, url: "https://www.lequipe.fr/dynamic-sitemap/sitemap_news.xml", type: SITEMAP, connector: sitemap, tier: A, config: { maxUrls: 1000 } }1252  - id: marca1253    name: Marca1254    domain: marca.com1255    homepage: https://www.marca.com1256    categories: [sports, media, news]1257    tier: B1258    aliases: [marca, diario marca]1259    discover: { rss: true, sitemap: true }1260    llm: false1261    sensors:1262      - { name: portada feed, url: "https://www.marca.com/rss/googlenews/portada.xml", type: RSS, connector: rss, tier: B, config: { maxItems: 80 } }1263  - id: kicker1264    name: kicker1265    domain: kicker.de1266    homepage: https://www.kicker.de1267    categories: [sports, media, news]1268    tier: B1269    aliases: [kicker, kicker sportmagazin]1270    discover: { rss: true, sitemap: true }1271    llm: false1272    sensors:1273      - { name: aktuell feed, url: "https://newsfeed.kicker.de/news/aktuell", type: RSS, connector: rss, tier: B, config: { maxItems: 80 } }1274      - { name: google news sitemap, url: "https://newsfeed.kicker.de/googlesitemapnews.xml", type: SITEMAP, connector: sitemap, tier: B, config: { maxUrls: 1000 } }1275  - id: sky-sports1276    name: Sky Sports1277    domain: skysports.com1278    homepage: https://www.skysports.com1279    categories: [sports, media, news]1280    tier: A1281    weight: 1.11282    aliases: [sky sports]1283    discover: { rss: true, sitemap: true }1284    llm: false1285    sensors:1286      - { name: news feed, url: "https://www.skysports.com/rss/12040", type: RSS, connector: rss, tier: A, config: { maxItems: 80 } }1287      - { name: news wire page, url: "https://www.skysports.com/news-wire", type: HTML, connector: http, tier: B }1288  # ───────────────────────── K · Sports data & betting ─────────────────────────1289  - id: stats-perform1290    name: Stats Perform (Opta)1291    domain: statsperform.com1292    homepage: https://www.statsperform.com1293    categories: [sports, technology, media]1294    tier: C1295    aliases: [stats perform, opta, opta sports]1296    products:1297      - { name: Opta, type: product, aliases: [opta, opta data] }1298    discover: { rss: true, sitemap: true }1299    sensors:1300      - { name: news sitemap, url: "https://www.statsperform.com/news-sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 1000 } }1301  - id: sportradar1302    name: Sportradar1303    domain: sportradar.com1304    homepage: https://sportradar.com1305    categories: [sports, technology, finance]1306    tier: C1307    weight: 1.11308    aliases: [sportradar]1309    discover: { rss: true, sitemap: true, status: true, pages: true }1310    notes: "status.sportradar.com does not answer non-browser clients (2026-09-08)."1311    sensors:1312      - { name: news page, url: "https://sportradar.com/content-type/news/", type: HTML, connector: http, tier: C }1313  - id: genius-sports1314    name: Genius Sports1315    domain: geniussports.com1316    homepage: https://www.geniussports.com1317    categories: [sports, technology, finance]1318    tier: C1319    aliases: [genius sports]1320    discover: { rss: true, sitemap: true, pages: true }1321    sensors:1322      - { name: newsroom page, url: "https://www.geniussports.com/newsroom/", type: HTML, connector: http, tier: C }1323  - id: draftkings1324    name: DraftKings1325    domain: draftkings.com1326    homepage: https://www.draftkings.com1327    categories: [sports, betting, finance]1328    tier: C1329    weight: 1.11330    aliases: [draftkings, dk]1331    discover: { rss: false, sitemap: false, status: false }1332    notes: "draftkings.com is 403 (Akamai), status.draftkings.com has no Statuspage API, the IR host (gcs-web) drops the connection — no validated sensor (2026-09-08)."1333  - id: fanduel1334    name: FanDuel1335    domain: fanduel.com1336    homepage: https://www.fanduel.com1337    categories: [sports, betting]1338    tier: C1339    weight: 1.11340    aliases: [fanduel]1341    discover: { rss: false, sitemap: true, status: false }1342    llm: false1343    notes: "status.fanduel.com answers 403 to the Statuspage API; only the CMS sitemap is reachable."1344    sensors:1345      - { name: cms sitemap, url: "https://www.fanduel.com/cms-sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000 } }1346  - id: flutter-entertainment1347    name: Flutter Entertainment1348    domain: flutter.com1349    homepage: https://www.flutter.com1350    categories: [sports, betting, finance]1351    tier: C1352    weight: 1.11353    aliases: [flutter, flutter entertainment, paddy power, betfair, sky bet, pokerstars]1354    discover: { rss: true, sitemap: true, pages: true }1355    sensors:1356      - { name: news and insights page, url: "https://www.flutter.com/news-and-insights/", type: HTML, connector: http, tier: C }1357      - { name: sitemap, url: "https://www.flutter.com/sitemap-xml/", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 1000 } }1358  - id: entain1359    name: Entain1360    domain: entaingroup.com1361    homepage: https://www.entaingroup.com1362    categories: [sports, betting, finance]1363    tier: C1364    aliases: [entain, ladbrokes, coral, bwin, sports interaction]1365    discover: { rss: true, sitemap: true, pages: true }1366    sensors:1367      - { name: sitemap, url: "https://www.entaingroup.com/xmlsitemap", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 1000 } }1368  - id: bet3651369    name: bet3651370    domain: bet365.com1371    homepage: https://www.bet365.com1372    categories: [sports, betting]1373    tier: C1374    aliases: [bet365]1375    discover: { rss: false, sitemap: false }1376    notes: "bet365.com exposes no feed, sitemap or server-rendered news page — no validated sensor (2026-09-08)."1377  - id: betway1378    name: Betway1379    domain: betway.com1380    homepage: https://www.betway.com1381    categories: [sports, betting]1382    tier: D1383    aliases: [betway, super group]1384    discover: { rss: false, sitemap: false }1385    notes: "betway.com exposes no feed, sitemap or server-rendered news page — no validated sensor (2026-09-08)."1386  - id: kambi1387    name: Kambi1388    domain: kambi.com1389    homepage: https://www.kambi.com1390    categories: [sports, betting, technology]1391    tier: D1392    aliases: [kambi, kambi group]1393    discover: { rss: false, sitemap: true }1394    llm: false1395    notes: "kambi.com/feed/ returns 500; the WordPress sitemap index is the structured endpoint."1396    sensors:1397      - { name: sitemap index, url: "https://www.kambi.com/sitemap_index.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 2000, maxChildren: 17 } }1398  - id: evolution1399    name: Evolution (Evolution Gaming)1400    domain: evolution.com1401    homepage: https://www.evolution.com1402    categories: [gaming, betting, finance]1403    tier: C1404    aliases: [evolution, evolution gaming, evolution ab]1405    discover: { rss: false, sitemap: true, pages: true }1406    sensors:1407      - { name: newsroom page, url: "https://www.evolution.com/news", type: HTML, connector: http, tier: C }1408  - id: igaming-ontario1409    name: iGaming Ontario1410    domain: igamingontario.ca1411    homepage: https://igamingontario.ca1412    categories: [betting, government, sports]1413    tier: C1414    aliases: [igaming ontario, igo]1415    discover: { rss: true, sitemap: true, pages: true }1416    sensors:1417      - { name: news page, url: "https://igamingontario.ca/en/news", type: HTML, connector: http, tier: C }1418  - id: agco-ontario1419    name: Alcohol and Gaming Commission of Ontario1420    domain: agco.ca1421    homepage: https://www.agco.ca1422    categories: [betting, government]1423    tier: C1424    aliases: [agco, alcohol and gaming commission of ontario]1425    discover: { rss: false, sitemap: true }1426    llm: false1427    sensors:1428      - { name: sitemap, url: "https://www.agco.ca/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 3000, maxChildren: 3 } }1429  - id: loto-quebec1430    name: Loto-Québec1431    domain: lotoquebec.com1432    homepage: https://www.lotoquebec.com1433    categories: [betting, government, quebec]1434    tier: C1435    weight: 1.11436    aliases: [loto-québec, loto quebec, mise-o-jeu, espacejeux]1437    products:1438      - { name: Mise-o-jeu, type: product, aliases: [mise-o-jeu, mise o jeu] }1439    discover: { rss: true, sitemap: true, pages: true }1440    notes: "No press-release feed or sitemap reachable on lotoquebec.com / societe.lotoquebec.com (salle de presse returns 404 to non-browser clients); Mise-o-jeu host does not answer — no validated sensor (2026-09-08)."1441  - id: bclc1442    name: British Columbia Lottery Corporation1443    domain: bclc.com1444    homepage: https://www.bclc.com1445    categories: [betting, government]1446    tier: D1447    aliases: [bclc, playnow]1448    discover: { rss: false, sitemap: false }1449    notes: "bclc.com and corporate.bclc.com answer 403 to non-browser clients — no validated sensor (2026-09-08)."1450  - id: olg1451    name: Ontario Lottery and Gaming Corporation1452    domain: olg.ca1453    homepage: https://www.olg.ca1454    categories: [betting, government]1455    tier: C1456    aliases: [olg, proline, ontario lottery and gaming]1457    discover: { rss: false, sitemap: true, pages: true }1458    llm: false1459    sensors:1460      - { name: news page, url: "https://about.olg.ca/news/", type: HTML, connector: http, tier: C }1461      - { name: sitemap (en), url: "https://www.olg.ca/content/olg/en.sitemap.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 3000 } }1462  - id: nevada-gaming-control-board1463    name: Nevada Gaming Control Board1464    domain: gaming.nv.gov1465    homepage: https://www.gaming.nv.gov1466    categories: [betting, government]1467    tier: C1468    aliases: [nevada gaming control board, ngcb, nevada gaming commission]1469    discover: { rss: false, sitemap: true }1470    llm: false1471    sensors:1472      - { name: sitemap, url: "https://www.gaming.nv.gov/sitemap.xml", type: SITEMAP, connector: sitemap, tier: C, config: { maxUrls: 1000 } }1473  - id: uk-gambling-commission1474    name: UK Gambling Commission1475    domain: gamblingcommission.gov.uk1476    homepage: https://www.gamblingcommission.gov.uk1477    categories: [betting, government, legal]1478    tier: C1479    weight: 1.11480    aliases: [gambling commission, ukgc, uk gambling commission]1481    discover: { rss: true, sitemap: false, pages: true }1482    sensors:1483      - { name: news page, url: "https://www.gamblingcommission.gov.uk/news", type: HTML, connector: http, tier: C }1484  # ───────────────────────── L · Gear & fitness ─────────────────────────1485  - id: peloton1486    extend: true1487    categories: [sports, consumer-tech, fitness]1488    aliases: [peloton, peloton interactive]1489    sensors:1490      - {connector: statuspage, name: status, tier: S, type: STATUSPAGE, url: 'https://status.onepeloton.com/api/v2/summary.json'}1491      - {connector: http, name: blog page, tier: C, type: HTML, url: 'https://www.onepeloton.com/blog'}1492  - id: garmin1493    extend: true1494    categories: [sports, consumer-tech, fitness]1495    aliases: [garmin, garmin connect]1496    notes: "status.garmin.com does not answer non-browser clients (2026-09-08)."1497    products: [{aliases: [garmin connect], name: Garmin Connect, type: service}]1498    sensors:1499      - {connector: rss, name: blog feed, tier: B, type: RSS, url: 'https://www.garmin.com/en-CA/blog/feed/'}1500      - {connector: http, name: newsroom page, tier: B, type: HTML, url: 'https://www.garmin.com/en-US/newsroom/'}1501  - id: strava1502    name: Strava1503    domain: strava.com1504    homepage: https://www.strava.com1505    categories: [sports, consumer-tech, fitness]1506    tier: B1507    aliases: [strava]1508    discover: { rss: true, sitemap: false, status: true, pages: true }1509    sensors:1510      - { name: status, url: "https://status.strava.com/api/v2/summary.json", type: STATUSPAGE, connector: statuspage, tier: S }1511      - { name: press page, url: "https://press.strava.com/", type: HTML, connector: http, tier: C }1512      - { name: pricing, url: "https://www.strava.com/pricing", type: HTML, connector: http, tier: C }1513  - id: whoop1514    name: WHOOP1515    domain: whoop.com1516    homepage: https://www.whoop.com1517    categories: [sports, consumer-tech, fitness]1518    tier: B1519    aliases: [whoop]1520    discover: { rss: false, sitemap: false, status: true }1521    notes: "whoop.com pages and sitemap answer 403 to non-browser clients; only the Statuspage API is open."1522    sensors:1523      - { name: status, url: "https://status.whoop.com/api/v2/summary.json", type: STATUSPAGE, connector: statuspage, tier: S }1524  - id: oura1525    name: Oura1526    domain: ouraring.com1527    homepage: https://ouraring.com1528    categories: [sports, consumer-tech, fitness, health]1529    tier: B1530    aliases: [oura, oura ring]1531    discover: { rss: true, sitemap: true, status: true, pages: true }1532    sensors:1533      - { name: status, url: "https://status.ouraring.com/api/v2/summary.json", type: STATUSPAGE, connector: statuspage, tier: S }1534      - { name: blog feed, url: "https://ouraring.com/blog/feed/", type: RSS, connector: rss, tier: B }1535      - { name: newsroom page, url: "https://ouraring.com/newsroom", type: HTML, connector: http, tier: C }1536  - id: under-armour1537    name: Under Armour1538    domain: underarmour.com1539    homepage: https://www.underarmour.com1540    categories: [sports, retail, consumer-tech]1541    tier: C1542    aliases: [under armour, ua]1543    discover: { rss: false, sitemap: true }1544    llm: false1545    sensors:1546      - { name: sitemap index, url: "https://www.underarmour.com/sitemap_index.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 3000, maxChildren: 8 } }1547  - id: puma1548    name: PUMA1549    domain: about.puma.com1550    homepage: https://about.puma.com1551    categories: [sports, retail, finance]1552    tier: C1553    weight: 1.11554    aliases: [puma, puma se]1555    discover: { rss: true, sitemap: true, pages: true }1556    sensors:1557      - { name: corporate news feed, url: "https://about.puma.com/en/rss.xml", type: RSS, connector: rss, tier: B }1558  - id: new-balance1559    name: New Balance1560    domain: newbalance.com1561    homepage: https://www.newbalance.com1562    categories: [sports, retail]1563    tier: D1564    aliases: [new balance]1565    discover: { rss: false, sitemap: false }1566    notes: "newbalance.com answers 403 to non-browser clients and the newsroom host does not respond — no validated sensor (2026-09-08)."1567  - id: decathlon1568    name: Decathlon1569    domain: decathlon.com1570    homepage: https://www.decathlon.com1571    categories: [sports, retail]1572    tier: D1573    aliases: [decathlon]1574    discover: { rss: false, sitemap: false }1575    notes: "decathlon.com (Shopify) rate-limits sitemap fetches with 429 — no validated sensor (2026-09-08)."1576  - id: bauer1577    name: Bauer Hockey1578    domain: bauer.com1579    homepage: https://www.bauer.com1580    categories: [sports, retail, hockey]1581    tier: D1582    aliases: [bauer, bauer hockey]1583    discover: { rss: false, sitemap: false }1584    notes: "bauer.com (Shopify) rate-limits sitemap fetches with 429 and has no news page — no validated sensor (2026-09-08)."1585  - id: ccm-hockey1586    name: CCM Hockey1587    domain: ccmhockey.com1588    homepage: https://ccmhockey.com1589    categories: [sports, retail, hockey, quebec]1590    tier: D1591    aliases: [ccm, ccm hockey]1592    discover: { rss: false, sitemap: false }1593    notes: "ccmhockey.com/feed/ returns 500 and the sitemap index only lists European storefront locales (no en-ca/en-us, no news) — no validated sensor (2026-09-08)."1594  - id: wilson1595    name: Wilson Sporting Goods1596    domain: wilson.com1597    homepage: https://www.wilson.com1598    categories: [sports, retail]1599    tier: D1600    aliases: [wilson, wilson sporting goods, amer sports]1601    discover: { rss: false, sitemap: false }1602    notes: "wilson.com and salomon.com (Amer Sports) answer 403 to non-browser clients on news and sitemap paths — no validated sensor (2026-09-08)."1603  - id: rawlings1604    name: Rawlings1605    domain: rawlings.com1606    homepage: https://www.rawlings.com1607    categories: [sports, retail, baseball]1608    tier: D1609    aliases: [rawlings]1610    discover: { rss: false, sitemap: false, pages: true }1611    llm: false1612    sensors:1613      - { name: blog page, url: "https://www.rawlings.com/blog", type: HTML, connector: http, tier: D }1614  - id: callaway1615    name: Callaway Golf (Topgolf Callaway Brands)1616    domain: callawaygolf.com1617    homepage: https://www.callawaygolf.com1618    categories: [sports, retail, golf]1619    tier: D1620    aliases: [callaway, callaway golf, topgolf callaway brands]1621    discover: { rss: false, sitemap: true }1622    llm: false1623    sensors:1624      - { name: sitemap, url: "https://www.callawaygolf.com/sitemap_0.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 3000 } }1625  - id: ping1626    name: PING1627    domain: ping.com1628    homepage: https://ping.com1629    categories: [sports, retail, golf]1630    tier: D1631    aliases: [ping, ping golf]1632    discover: { rss: false, sitemap: true }1633    llm: false1634    sensors:1635      - { name: sitemap (en-us), url: "https://ping.com/en-us/sitemap.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 2000 } }1636  - id: rossignol1637    name: Rossignol1638    domain: rossignol.com1639    homepage: https://www.rossignol.com1640    categories: [sports, retail, winter-sports]1641    tier: D1642    aliases: [rossignol, groupe rossignol]1643    discover: { rss: false, sitemap: true }1644    llm: false1645    sensors:1646      - { name: sitemap index, url: "https://www.rossignol.com/sitemap_index.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 3000, maxChildren: 5 } }1647  - id: salomon1648    name: Salomon1649    domain: salomon.com1650    homepage: https://www.salomon.com1651    categories: [sports, retail, winter-sports]1652    tier: D1653    aliases: [salomon]1654    discover: { rss: false, sitemap: true }1655    llm: false1656    sensors:1657      - { name: sitemap index, url: "https://www.salomon.com/sitemap.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 3000, maxChildren: 5 } }1658  - id: arcteryx1659    name: Arc'teryx1660    domain: arcteryx.com1661    homepage: https://arcteryx.com1662    categories: [sports, retail]1663    tier: D1664    aliases: [arc'teryx, arcteryx]1665    discover: { rss: false, sitemap: true }1666    llm: false1667    sensors:1668      - { name: sitemap, url: "https://arcteryx.com/sitemap_1.xml", type: SITEMAP, connector: sitemap, tier: D, config: { maxUrls: 3000 } }1669  - id: lululemon1670    extend: true1671    categories: [sports, retail, finance]1672    aliases: [lululemon, lululemon athletica]1673    notes: "corporate.lululemon.com / investor.lululemon.com (Q4 IR) answer 403 to non-browser clients and shop.lululemon.com drops the connection — no validated sensor (2026-09-08)."1674