TypeScript 55.4%
Python 43.2%
SQL 1.2%
1# config/sources.d/45-science-health.yaml — science & health depth (2026-09-11).2# Detects: new papers/preprints by field, retractions/corrections/expressions of concern (Crossref, OpenAlex,3# Europe PMC), clinical-trial status changes and stopped trials (ClinicalTrials.gov v2, per sponsor/condition),4# drug & device approvals, recalls and shortages (openFDA), public-health alerts and outbreaks (CDC HAN/MMWR/5# outbreak feeds, PHAC, PAHO), journal tables of contents (Nature portfolio, Science, Cell Press, Lancet, JAMA,6# PLOS, APS, IOP, Wiley, RSC, ASCO…), space missions & launches (NASA, ESA, CelesTrak new objects, GraceDB GW7# candidates), volcano alert levels (USGS HANS), and science/health media (first_party: false, heuristics only).8# Every URL below was fetched and parsed by apps/engine/src/validate.ts before being kept. Sources that already9# exist in sources.yaml / 16 / 21 / 24 are extended (`extend: true`); ids declared here are new.10sources:11 # ───────────────────────── preprints & scholarly infrastructure ─────────────────────────12 - id: arxiv13 extend: true14 country: US15 notes: "45-science-health: arXiv API Atom per category (50 newest submissions each, tier B/C) + daily listing RSS. Volume is several hundred papers/day — the founding source has llm unset (true); consider llm: false there."16 sensors:17 - { name: cs.CV api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.CV&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: B, config: { maxItems: 50 } }18 - { name: cs.DC api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.DC&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }19 - { name: cs.SE api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.SE&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }20 - { name: cs.RO api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.RO&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }21 - { name: cs.NE api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.NE&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }22 - { name: cs.IR api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.IR&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }23 - { name: cs.HC api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.HC&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }24 - { name: cs.CY api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.CY&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }25 - { name: cs.DB api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.DB&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }26 - { name: cs.PL api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.PL&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }27 - { name: cs.MA api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.MA&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }28 - { name: cs.NI api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.NI&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }29 - { name: cs.AR api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cs.AR&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }30 - { name: stat.ML api feed, url: "https://export.arxiv.org/api/query?search_query=cat:stat.ML&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: B, config: { maxItems: 50 } }31 - { name: stat.ME api feed, url: "https://export.arxiv.org/api/query?search_query=cat:stat.ME&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }32 - { name: q-bio.GN api feed, url: "https://export.arxiv.org/api/query?search_query=cat:q-bio.GN&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }33 - { name: q-bio.NC api feed, url: "https://export.arxiv.org/api/query?search_query=cat:q-bio.NC&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }34 - { name: q-bio.QM api feed, url: "https://export.arxiv.org/api/query?search_query=cat:q-bio.QM&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }35 - { name: q-bio.PE api feed, url: "https://export.arxiv.org/api/query?search_query=cat:q-bio.PE&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }36 - { name: quant-ph api feed, url: "https://export.arxiv.org/api/query?search_query=cat:quant-ph&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: B, config: { maxItems: 50 } }37 - { name: gr-qc api feed, url: "https://export.arxiv.org/api/query?search_query=cat:gr-qc&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }38 - { name: hep-ph api feed, url: "https://export.arxiv.org/api/query?search_query=cat:hep-ph&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }39 - { name: hep-ex api feed, url: "https://export.arxiv.org/api/query?search_query=cat:hep-ex&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }40 - { name: hep-th api feed, url: "https://export.arxiv.org/api/query?search_query=cat:hep-th&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }41 - { name: astro-ph.EP api feed, url: "https://export.arxiv.org/api/query?search_query=cat:astro-ph.EP&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }42 - { name: astro-ph.HE api feed, url: "https://export.arxiv.org/api/query?search_query=cat:astro-ph.HE&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }43 - { name: astro-ph.CO api feed, url: "https://export.arxiv.org/api/query?search_query=cat:astro-ph.CO&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }44 - { name: cond-mat.mtrl-sci api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cond-mat.mtrl-sci&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }45 - { name: cond-mat.supr-con api feed, url: "https://export.arxiv.org/api/query?search_query=cat:cond-mat.supr-con&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }46 - { name: physics.med-ph api feed, url: "https://export.arxiv.org/api/query?search_query=cat:physics.med-ph&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }47 - { name: physics.ao-ph api feed, url: "https://export.arxiv.org/api/query?search_query=cat:physics.ao-ph&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }48 - { name: physics.soc-ph api feed, url: "https://export.arxiv.org/api/query?search_query=cat:physics.soc-ph&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }49 - { name: physics.optics api feed, url: "https://export.arxiv.org/api/query?search_query=cat:physics.optics&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }50 - { name: math.OC api feed, url: "https://export.arxiv.org/api/query?search_query=cat:math.OC&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }51 - { name: math.ST api feed, url: "https://export.arxiv.org/api/query?search_query=cat:math.ST&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }52 - { name: econ.GN api feed, url: "https://export.arxiv.org/api/query?search_query=cat:econ.GN&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }53 - { name: econ.TH api feed, url: "https://export.arxiv.org/api/query?search_query=cat:econ.TH&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }54 - { name: q-fin.PM api feed, url: "https://export.arxiv.org/api/query?search_query=cat:q-fin.PM&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }55 - { name: q-fin.RM api feed, url: "https://export.arxiv.org/api/query?search_query=cat:q-fin.RM&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }56 - { name: eess.SP api feed, url: "https://export.arxiv.org/api/query?search_query=cat:eess.SP&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }57 - { name: eess.IV api feed, url: "https://export.arxiv.org/api/query?search_query=cat:eess.IV&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }58 - { name: eess.AS api feed, url: "https://export.arxiv.org/api/query?search_query=cat:eess.AS&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }59 - { name: eess.SY api feed, url: "https://export.arxiv.org/api/query?search_query=cat:eess.SY&sortBy=submittedDate&sortOrder=descending&max_results=50", type: ATOM, connector: rss, tier: C, config: { maxItems: 50 } }60 - { name: cs.LG listing feed, url: "https://rss.arxiv.org/rss/cs.LG", type: RSS, connector: rss, tier: C, config: { maxItems: 400 } }61 - { name: cs.CV listing feed, url: "https://rss.arxiv.org/rss/cs.CV", type: RSS, connector: rss, tier: C, config: { maxItems: 400 } }62 - { name: stat.ML listing feed, url: "https://rss.arxiv.org/rss/stat.ML", type: RSS, connector: rss, tier: C, config: { maxItems: 300 } }63 - { name: quant-ph listing feed, url: "https://rss.arxiv.org/rss/quant-ph", type: RSS, connector: rss, tier: C, config: { maxItems: 300 } }64 - { name: q-bio listing feed, url: "https://rss.arxiv.org/rss/q-bio", type: RSS, connector: rss, tier: C, config: { maxItems: 300 } }65 - { name: econ listing feed, url: "https://rss.arxiv.org/rss/econ", type: RSS, connector: rss, tier: C, config: { maxItems: 200 } }66 - { name: astro-ph listing feed, url: "https://rss.arxiv.org/rss/astro-ph", type: RSS, connector: rss, tier: C, config: { maxItems: 300 } }67 - { name: hep-ph listing feed, url: "https://rss.arxiv.org/rss/hep-ph", type: RSS, connector: rss, tier: C, config: { maxItems: 300 } }68 - { name: cond-mat listing feed, url: "https://rss.arxiv.org/rss/cond-mat", type: RSS, connector: rss, tier: C, config: { maxItems: 300 } }69 - { name: math.OC listing feed, url: "https://rss.arxiv.org/rss/math.OC", type: RSS, connector: rss, tier: C, config: { maxItems: 200 } }70 - { name: eess listing feed, url: "https://rss.arxiv.org/rss/eess", type: RSS, connector: rss, tier: C, config: { maxItems: 300 } }71 - id: biorxiv72 extend: true73 country: US74 sensors:75 - { name: genomics feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=genomics", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }76 - { name: genetics feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=genetics", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }77 - { name: cancer biology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=cancer_biology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }78 - { name: immunology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=immunology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }79 - { name: microbiology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=microbiology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }80 - { name: synthetic biology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=synthetic_biology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }81 - { name: evolutionary biology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=evolutionary_biology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }82 - { name: cell biology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=cell_biology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }83 - { name: molecular biology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=molecular_biology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }84 - { name: biochemistry feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=biochemistry", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }85 - { name: systems biology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=systems_biology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }86 - { name: biophysics feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=biophysics", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }87 - { name: ecology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=ecology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }88 - { name: plant biology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=plant_biology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }89 - { name: bioengineering feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=bioengineering", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }90 - { name: pharmacology and toxicology feed, url: "https://connect.biorxiv.org/biorxiv_xml.php?subject=pharmacology_and_toxicology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }91 - id: medrxiv92 extend: true93 country: US94 sensors:95 - { name: oncology feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=oncology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }96 - { name: cardiovascular medicine feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=cardiovascular_medicine", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }97 - { name: public and global health feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=public_and_global_health", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }98 - { name: health informatics feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=health_informatics", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }99 - { name: psychiatry feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=psychiatry_and_clinical_psychology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }100 - { name: neurology feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=neurology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }101 - { name: genetic and genomic medicine feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=genetic_and_genomic_medicine", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }102 - { name: endocrinology feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=endocrinology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }103 - { name: health policy feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=health_policy", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }104 - { name: pediatrics feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=pediatrics", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }105 - { name: obstetrics and gynecology feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=obstetrics_and_gynecology", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }106 - { name: pharmacology and therapeutics feed, url: "https://connect.medrxiv.org/medrxiv_xml.php?subject=pharmacology_and_therapeutics", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }107 - id: openalex108 name: OpenAlex109 domain: openalex.org110 homepage: https://openalex.org111 categories: [research, open-data, infrastructure]112 tier: B113 weight: 1.1114 country: US115 aliases: [openalex, ourresearch]116 products:117 - { name: OpenAlex API, type: API }118 discover: { rss: false }119 llm: false120 notes: "Open scholarly graph (OurResearch). Works API sorted by publication_date: retracted works, flagship journals by ISSN, hot topics by title search. Polite pool via mailto= (10 req/s)."121 sensors:122 - { name: retracted works, url: "https://api.openalex.org/works?filter=is_retracted:true&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: primary_location.source.display_name, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }123 - { name: nature works (issn), url: "https://api.openalex.org/works?filter=primary_location.source.issn:0028-0836&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: type, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }124 - { name: science works (issn), url: "https://api.openalex.org/works?filter=primary_location.source.issn:0036-8075&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: type, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }125 - { name: cell works (issn), url: "https://api.openalex.org/works?filter=primary_location.source.issn:0092-8674&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: type, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }126 - { name: lancet works (issn), url: "https://api.openalex.org/works?filter=primary_location.source.issn:0140-6736&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: type, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }127 - { name: nejm works (issn), url: "https://api.openalex.org/works?filter=primary_location.source.issn:0028-4793&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: type, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }128 - { name: large language model articles, url: "https://api.openalex.org/works?filter=title.search:large%20language%20model,type:article&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: primary_location.source.display_name, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }129 - { name: crispr articles, url: "https://api.openalex.org/works?filter=title.search:CRISPR,type:article&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: primary_location.source.display_name, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }130 - { name: glp-1 articles, url: "https://api.openalex.org/works?filter=title.search:GLP-1,type:article&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: primary_location.source.display_name, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }131 - { name: mrna vaccine articles, url: "https://api.openalex.org/works?filter=title.search:mRNA%20vaccine,type:article&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: primary_location.source.display_name, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }132 - { name: h5n1 articles, url: "https://api.openalex.org/works?filter=title.search:H5N1,type:article&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: primary_location.source.display_name, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }133 - { name: measles articles, url: "https://api.openalex.org/works?filter=title.search:measles,type:article&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: primary_location.source.display_name, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }134 - { name: quantum computing articles, url: "https://api.openalex.org/works?filter=title.search:quantum%20computing,type:article&sort=publication_date:desc&per-page=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: id, titleField: display_name, urlField: id, summaryField: primary_location.source.display_name, dateField: publication_date, compareFields: [is_retracted], maxItems: 50 } }135 - id: crossref136 extend: true137 country: US138 notes: "45-science-health: REST API update-type filters (retraction, correction, expression of concern, withdrawal), newest deposits first. Several hundred corrections/day — founding source has llm unset."139 sensors:140 - { name: retractions api, url: "https://api.crossref.org/works?filter=update-type:retraction&sort=deposited&order=desc&rows=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: message.items, keyField: DOI, titleField: title, urlField: URL, summaryField: container-title, dateField: deposited.date-time, compareFields: [], maxItems: 50 } }141 - { name: corrections api, url: "https://api.crossref.org/works?filter=update-type:correction&sort=deposited&order=desc&rows=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: message.items, keyField: DOI, titleField: title, urlField: URL, summaryField: container-title, dateField: deposited.date-time, compareFields: [], maxItems: 50 } }142 - { name: expressions of concern api, url: "https://api.crossref.org/works?filter=update-type:expression_of_concern&sort=deposited&order=desc&rows=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: message.items, keyField: DOI, titleField: title, urlField: URL, summaryField: container-title, dateField: deposited.date-time, compareFields: [], maxItems: 50 } }143 - { name: withdrawals api, url: "https://api.crossref.org/works?filter=update-type:withdrawal&sort=deposited&order=desc&rows=50&mailto=contact@websensor.io", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: message.items, keyField: DOI, titleField: title, urlField: URL, summaryField: container-title, dateField: deposited.date-time, compareFields: [], maxItems: 50 } }144 - id: europe-pmc145 extend: true146 country: GB147 sensors:148 - { name: retraction notices (medline), url: "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=SRC:MED%20AND%20PUB_TYPE:%22Retraction%20of%20Publication%22&sort=P_PDATE_D%20desc&format=json&pageSize=25", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: resultList.result, keyField: id, titleField: title, urlTemplate: "https://europepmc.org/abstract/MED/{key}", summaryField: journalTitle, dateField: firstPublicationDate, maxItems: 25 } }149 - { name: phase iii trial papers (medline), url: "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=SRC:MED%20AND%20PUB_TYPE:%22Clinical%20Trial,%20Phase%20III%22&sort=P_PDATE_D%20desc&format=json&pageSize=25", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: resultList.result, keyField: id, titleField: title, urlTemplate: "https://europepmc.org/abstract/MED/{key}", summaryField: journalTitle, dateField: firstPublicationDate, maxItems: 25 } }150 - { name: large language model papers (medline), url: "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=SRC:MED%20AND%20%22large%20language%20model%22&sort=P_PDATE_D%20desc&format=json&pageSize=25", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: resultList.result, keyField: id, titleField: title, urlTemplate: "https://europepmc.org/abstract/MED/{key}", summaryField: journalTitle, dateField: firstPublicationDate, maxItems: 25 } }151 - { name: crispr papers (medline), url: "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=SRC:MED%20AND%20CRISPR&sort=P_PDATE_D%20desc&format=json&pageSize=25", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: resultList.result, keyField: id, titleField: title, urlTemplate: "https://europepmc.org/abstract/MED/{key}", summaryField: journalTitle, dateField: firstPublicationDate, maxItems: 25 } }152 - { name: glp-1 papers (medline), url: "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=SRC:MED%20AND%20%22GLP-1%22&sort=P_PDATE_D%20desc&format=json&pageSize=25", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: resultList.result, keyField: id, titleField: title, urlTemplate: "https://europepmc.org/abstract/MED/{key}", summaryField: journalTitle, dateField: firstPublicationDate, maxItems: 25 } }153 - { name: mrna vaccine papers (medline), url: "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=SRC:MED%20AND%20%22mRNA%20vaccine%22&sort=P_PDATE_D%20desc&format=json&pageSize=25", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: resultList.result, keyField: id, titleField: title, urlTemplate: "https://europepmc.org/abstract/MED/{key}", summaryField: journalTitle, dateField: firstPublicationDate, maxItems: 25 } }154 - { name: h5n1 papers (medline), url: "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=SRC:MED%20AND%20H5N1&sort=P_PDATE_D%20desc&format=json&pageSize=25", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: resultList.result, keyField: id, titleField: title, urlTemplate: "https://europepmc.org/abstract/MED/{key}", summaryField: journalTitle, dateField: firstPublicationDate, maxItems: 25 } }155 - { name: measles outbreak papers (medline), url: "https://www.ebi.ac.uk/europepmc/webservices/rest/search?query=SRC:MED%20AND%20%22measles%20outbreak%22&sort=P_PDATE_D%20desc&format=json&pageSize=25", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: resultList.result, keyField: id, titleField: title, urlTemplate: "https://europepmc.org/abstract/MED/{key}", summaryField: journalTitle, dateField: firstPublicationDate, maxItems: 25 } }156 - id: hal157 name: HAL open archive158 domain: hal.science159 homepage: https://hal.science160 categories: [research, open-data, science]161 tier: C162 country: FR163 aliases: [hal, archives ouvertes, ccsd]164 products:165 - { name: HAL API, type: API }166 discover: { rss: false }167 llm: false168 notes: "French national open archive (CCSD/CNRS). Solr search API, newest deposits first; theses stream separately."169 sensors:170 - { name: newest deposits api, url: "https://api.archives-ouvertes.fr/search/?q=*:*&sort=submittedDate_tdate%20desc&rows=50&wt=json&fl=docid,title_s,uri_s,submittedDate_tdate,authFullName_s", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: response.docs, keyField: docid, titleField: title_s, urlField: uri_s, summaryField: authFullName_s, dateField: submittedDate_tdate, maxItems: 50 } }171 - { name: newest journal articles api, url: "https://api.archives-ouvertes.fr/search/?q=*:*&fq=docType_s:ART&sort=submittedDate_tdate%20desc&rows=50&wt=json&fl=docid,title_s,uri_s,submittedDate_tdate", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: response.docs, keyField: docid, titleField: title_s, urlField: uri_s, dateField: submittedDate_tdate, maxItems: 50 } }172 - { name: newest theses api, url: "https://api.archives-ouvertes.fr/search/?q=*:*&fq=docType_s:THESE&sort=submittedDate_tdate%20desc&rows=50&wt=json&fl=docid,title_s,uri_s,submittedDate_tdate", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: response.docs, keyField: docid, titleField: title_s, urlField: uri_s, dateField: submittedDate_tdate, maxItems: 50 } }173 - id: center-for-open-science174 extend: true175 country: US176 products:177 - { name: OSF Preprints, type: service, aliases: [osf preprints, psyarxiv, socarxiv, engrxiv, edarxiv, ecoevorxiv] }178 sensors:179 - { name: osf preprints api (all providers), url: "https://api.osf.io/v2/preprints/?sort=-date_created&page%5Bsize%5D=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: data, keyField: id, titleField: attributes.title, urlField: links.html, summaryField: attributes.description, dateField: attributes.date_published, maxItems: 50 } }180 - { name: psyarxiv preprints api, url: "https://api.osf.io/v2/preprints/?filter%5Bprovider%5D=psyarxiv&sort=-date_created&page%5Bsize%5D=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: data, keyField: id, titleField: attributes.title, urlField: links.html, summaryField: attributes.description, dateField: attributes.date_published, maxItems: 50 } }181 - { name: socarxiv preprints api, url: "https://api.osf.io/v2/preprints/?filter%5Bprovider%5D=socarxiv&sort=-date_created&page%5Bsize%5D=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: data, keyField: id, titleField: attributes.title, urlField: links.html, summaryField: attributes.description, dateField: attributes.date_published, maxItems: 50 } }182 - { name: engrxiv preprints api, url: "https://api.osf.io/v2/preprints/?filter%5Bprovider%5D=engrxiv&sort=-date_created&page%5Bsize%5D=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: data, keyField: id, titleField: attributes.title, urlField: links.html, summaryField: attributes.description, dateField: attributes.date_published, maxItems: 50 } }183 - { name: edarxiv preprints api, url: "https://api.osf.io/v2/preprints/?filter%5Bprovider%5D=edarxiv&sort=-date_created&page%5Bsize%5D=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: data, keyField: id, titleField: attributes.title, urlField: links.html, summaryField: attributes.description, dateField: attributes.date_published, maxItems: 50 } }184 - { name: ecoevorxiv preprints api, url: "https://api.osf.io/v2/preprints/?filter%5Bprovider%5D=ecoevorxiv&sort=-date_created&page%5Bsize%5D=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: data, keyField: id, titleField: attributes.title, urlField: links.html, summaryField: attributes.description, dateField: attributes.date_published, maxItems: 50 } }185 - id: zenodo186 extend: true187 country: CH188 sensors:189 - { name: newest records api, url: "https://zenodo.org/api/records?sort=mostrecent&size=25", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: hits.hits, keyField: id, titleField: metadata.title, urlField: doi_url, summaryField: metadata.resource_type.title, dateField: created, maxItems: 25 } }190191 # ───────────────────────── journals & publishers ─────────────────────────192 - id: nature193 extend: true194 country: GB195 notes: "45-science-health: portfolio journal feeds (<journal>.rss). nature.com throttles bursts per IP (303 → HTML after ~25 quick requests), so only 8 high-value sub-journals are added; ng, ni, neuro, nclimate, nathumbehav, natcomputsci, nchem, nmat, ngeo, nenergy, natastron, ncb, nchembio, nsmb, natmetab, natcancer, natcardiovascres, natbiomedeng, natelectron, natsustain, natfood, nplants, natecolevol, nrc, nri, nrg, nrneurol, natrevphys, srep, npjqi, npjcompumats also exist and parsed fine individually (2026-09-11) — add them gradually if the scheduler's per-host spacing proves sufficient."196 products:197 - { name: Nature Medicine, type: product, aliases: [nat med] }198 - { name: Nature Biotechnology, type: product, aliases: [nat biotech] }199 - { name: Nature Communications, type: product, aliases: [nat commun] }200 - { name: Nature Machine Intelligence, type: product }201 - { name: Scientific Reports, type: product }202 sensors:203 - { name: nature medicine feed, url: "https://www.nature.com/nm.rss", type: RSS, connector: rss, tier: B }204 - { name: nature biotechnology feed, url: "https://www.nature.com/nbt.rss", type: RSS, connector: rss, tier: B }205 - { name: nature methods feed, url: "https://www.nature.com/nmeth.rss", type: RSS, connector: rss, tier: C }206 - { name: nature communications feed, url: "https://www.nature.com/ncomms.rss", type: RSS, connector: rss, tier: B }207 - { name: nature machine intelligence feed, url: "https://www.nature.com/natmachintell.rss", type: RSS, connector: rss, tier: B }208 - { name: nature physics feed, url: "https://www.nature.com/nphys.rss", type: RSS, connector: rss, tier: C }209 - { name: nature reviews drug discovery feed, url: "https://www.nature.com/nrd.rss", type: RSS, connector: rss, tier: B }210 - { name: npj digital medicine feed, url: "https://www.nature.com/npjdigitalmed.rss", type: RSS, connector: rss, tier: C }211 - { name: health sciences subject feed, url: "https://www.nature.com/subjects/health-sciences.rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }212 - id: science213 extend: true214 country: US215 products:216 - { name: Science Advances, type: product }217 - { name: Science Translational Medicine, type: product }218 - { name: Science Robotics, type: product }219 sensors:220 - { name: science advances feed, url: "https://www.science.org/action/showFeed?type=etoc&feed=rss&jc=sciadv", type: RSS, connector: rss, tier: B, config: { maxItems: 50 } }221 - { name: science translational medicine feed, url: "https://www.science.org/action/showFeed?type=etoc&feed=rss&jc=stm", type: RSS, connector: rss, tier: C }222 - { name: science immunology feed, url: "https://www.science.org/action/showFeed?type=etoc&feed=rss&jc=sciimmunol", type: RSS, connector: rss, tier: C }223 - { name: science robotics feed, url: "https://www.science.org/action/showFeed?type=etoc&feed=rss&jc=scirobotics", type: RSS, connector: rss, tier: C }224 - { name: science signaling feed, url: "https://www.science.org/action/showFeed?type=etoc&feed=rss&jc=signaling", type: RSS, connector: rss, tier: C }225 - id: cell-press226 extend: true227 country: US228 sensors:229 - { name: cell reports current issue feed, url: "https://www.cell.com/cell-reports/current.rss", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }230 - { name: cell reports in press feed, url: "https://www.cell.com/cell-reports/inpress.rss", type: RSS, connector: rss, tier: C }231 - { name: cell reports medicine current issue feed, url: "https://www.cell.com/cell-reports-medicine/current.rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }232 - { name: cell reports medicine in press feed, url: "https://www.cell.com/cell-reports-medicine/inpress.rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }233 - { name: neuron current issue feed, url: "https://www.cell.com/neuron/current.rss", type: RSS, connector: rss, tier: C }234 - { name: neuron in press feed, url: "https://www.cell.com/neuron/inpress.rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }235 - { name: immunity current issue feed, url: "https://www.cell.com/immunity/current.rss", type: RSS, connector: rss, tier: C }236 - { name: immunity in press feed, url: "https://www.cell.com/immunity/inpress.rss", type: RSS, connector: rss, tier: C }237 - { name: molecular cell current issue feed, url: "https://www.cell.com/molecular-cell/current.rss", type: RSS, connector: rss, tier: C }238 - { name: cancer cell current issue feed, url: "https://www.cell.com/cancer-cell/current.rss", type: RSS, connector: rss, tier: C }239 - { name: cancer cell in press feed, url: "https://www.cell.com/cancer-cell/inpress.rss", type: RSS, connector: rss, tier: C }240 - { name: cell metabolism current issue feed, url: "https://www.cell.com/cell-metabolism/current.rss", type: RSS, connector: rss, tier: C }241 - { name: cell metabolism in press feed, url: "https://www.cell.com/cell-metabolism/inpress.rss", type: RSS, connector: rss, tier: C }242 - { name: cell stem cell current issue feed, url: "https://www.cell.com/cell-stem-cell/current.rss", type: RSS, connector: rss, tier: C }243 - { name: current biology current issue feed, url: "https://www.cell.com/current-biology/current.rss", type: RSS, connector: rss, tier: C }244 - { name: med current issue feed, url: "https://www.cell.com/med/current.rss", type: RSS, connector: rss, tier: C }245 - { name: med in press feed, url: "https://www.cell.com/med/inpress.rss", type: RSS, connector: rss, tier: C }246 - { name: joule current issue feed, url: "https://www.cell.com/joule/current.rss", type: RSS, connector: rss, tier: C }247 - { name: matter current issue feed, url: "https://www.cell.com/matter/current.rss", type: RSS, connector: rss, tier: C }248 - { name: chem current issue feed, url: "https://www.cell.com/chem/current.rss", type: RSS, connector: rss, tier: C }249 - { name: patterns current issue feed, url: "https://www.cell.com/patterns/current.rss", type: RSS, connector: rss, tier: C }250 - id: the-lancet251 extend: true252 country: GB253 products:254 - { name: The Lancet Infectious Diseases, type: product }255 - { name: The Lancet Oncology, type: product }256 - { name: The Lancet Digital Health, type: product }257 - { name: eClinicalMedicine, type: product }258 sensors:259 - { name: lancet infectious diseases online first feed, url: "https://www.thelancet.com/rssfeed/laninf_online.xml", type: RSS, connector: rss, tier: B, config: { maxItems: 50 } }260 - { name: lancet infectious diseases current issue feed, url: "https://www.thelancet.com/rssfeed/laninf_current.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }261 - { name: lancet oncology online first feed, url: "https://www.thelancet.com/rssfeed/lanonc_online.xml", type: RSS, connector: rss, tier: B }262 - { name: lancet oncology current issue feed, url: "https://www.thelancet.com/rssfeed/lanonc_current.xml", type: RSS, connector: rss, tier: C }263 - { name: lancet digital health online first feed, url: "https://www.thelancet.com/rssfeed/landig_online.xml", type: RSS, connector: rss, tier: B }264 - { name: lancet public health online first feed, url: "https://www.thelancet.com/rssfeed/lanpub_online.xml", type: RSS, connector: rss, tier: C }265 - { name: lancet global health online first feed, url: "https://www.thelancet.com/rssfeed/langlo_online.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }266 - { name: lancet neurology online first feed, url: "https://www.thelancet.com/rssfeed/laneur_online.xml", type: RSS, connector: rss, tier: C }267 - { name: lancet psychiatry online first feed, url: "https://www.thelancet.com/rssfeed/lanpsy_online.xml", type: RSS, connector: rss, tier: C }268 - { name: lancet respiratory medicine online first feed, url: "https://www.thelancet.com/rssfeed/lanres_online.xml", type: RSS, connector: rss, tier: C }269 - { name: lancet diabetes and endocrinology online first feed, url: "https://www.thelancet.com/rssfeed/landia_online.xml", type: RSS, connector: rss, tier: C }270 - { name: lancet microbe online first feed, url: "https://www.thelancet.com/rssfeed/lanmic_online.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }271 - { name: lancet child and adolescent health online first feed, url: "https://www.thelancet.com/rssfeed/lanchi_online.xml", type: RSS, connector: rss, tier: C }272 - { name: lancet healthy longevity online first feed, url: "https://www.thelancet.com/rssfeed/lanhl_online.xml", type: RSS, connector: rss, tier: C }273 - { name: lancet planetary health online first feed, url: "https://www.thelancet.com/rssfeed/lanplh_online.xml", type: RSS, connector: rss, tier: C }274 - { name: lancet rheumatology online first feed, url: "https://www.thelancet.com/rssfeed/lanrhe_online.xml", type: RSS, connector: rss, tier: C }275 - { name: lancet haematology online first feed, url: "https://www.thelancet.com/rssfeed/lanhae_online.xml", type: RSS, connector: rss, tier: C }276 - { name: lancet gastroenterology and hepatology online first feed, url: "https://www.thelancet.com/rssfeed/langas_online.xml", type: RSS, connector: rss, tier: C }277 - { name: lancet regional health europe online first feed, url: "https://www.thelancet.com/rssfeed/lanepe_online.xml", type: RSS, connector: rss, tier: C }278 - { name: lancet regional health southeast asia online first feed, url: "https://www.thelancet.com/rssfeed/lansea_online.xml", type: RSS, connector: rss, tier: C }279 - { name: lancet regional health western pacific online first feed, url: "https://www.thelancet.com/rssfeed/lanwpc_online.xml", type: RSS, connector: rss, tier: C }280 - { name: eclinicalmedicine online first feed, url: "https://www.thelancet.com/rssfeed/eclinm_online.xml", type: RSS, connector: rss, tier: C }281 - id: jama282 extend: true283 country: US284 sensors:285 - { name: jama internal medicine online first feed, url: "https://jamanetwork.com/rss/site_15/onlineFirst_71.xml", type: RSS, connector: rss, tier: B }286 - { name: jama oncology online first feed, url: "https://jamanetwork.com/rss/site_159/onlineFirst_174.xml", type: RSS, connector: rss, tier: B }287 - { name: jama cardiology online first feed, url: "https://jamanetwork.com/rss/site_192/onlineFirst_184.xml", type: RSS, connector: rss, tier: C }288 - { name: jama neurology online first feed, url: "https://jamanetwork.com/rss/site_16/onlineFirst_72.xml", type: RSS, connector: rss, tier: C }289 - { name: jama psychiatry online first feed, url: "https://jamanetwork.com/rss/site_14/onlineFirst_70.xml", type: RSS, connector: rss, tier: C }290 - { name: jama pediatrics online first feed, url: "https://jamanetwork.com/rss/site_19/onlineFirst_75.xml", type: RSS, connector: rss, tier: C }291 - { name: jama dermatology online first feed, url: "https://jamanetwork.com/rss/site_12/onlineFirst_68.xml", type: RSS, connector: rss, tier: C }292 - { name: jama ophthalmology online first feed, url: "https://jamanetwork.com/rss/site_17/onlineFirst_73.xml", type: RSS, connector: rss, tier: C }293 - { name: jama otolaryngology online first feed, url: "https://jamanetwork.com/rss/site_18/onlineFirst_74.xml", type: RSS, connector: rss, tier: C }294 - { name: jama surgery current issue feed, url: "https://jamanetwork.com/rss/site_20/76.xml", type: RSS, connector: rss, tier: C }295 - { name: jama health forum new online feed, url: "https://jamanetwork.com/rss/site_193/185.xml", type: RSS, connector: rss, tier: C }296 - id: bmj297 extend: true298 country: GB299 sensors:300 - { name: bmj open current issue feed, url: "https://bmjopen.bmj.com/rss/current.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }301 - { name: gut current issue feed, url: "https://gut.bmj.com/rss/current.xml", type: RSS, connector: rss, tier: C }302 - id: nejm303 extend: true304 country: US305 sensors:306 - { name: nejm catalyst feed, url: "https://catalyst.nejm.org/action/showFeed?type=etoc&feed=rss&jc=catalyst", type: RSS, connector: rss, tier: C }307 - id: plos308 extend: true309 country: US310 sensors:311 - { name: plos medicine feed, url: "https://journals.plos.org/plosmedicine/feed/atom", type: ATOM, connector: rss, tier: C }312 - { name: plos computational biology feed, url: "https://journals.plos.org/ploscompbiol/feed/atom", type: ATOM, connector: rss, tier: C }313 - { name: plos genetics feed, url: "https://journals.plos.org/plosgenetics/feed/atom", type: ATOM, connector: rss, tier: C }314 - { name: plos pathogens feed, url: "https://journals.plos.org/plospathogens/feed/atom", type: ATOM, connector: rss, tier: C }315 - { name: plos neglected tropical diseases feed, url: "https://journals.plos.org/plosntds/feed/atom", type: ATOM, connector: rss, tier: C }316 - { name: plos digital health feed, url: "https://journals.plos.org/digitalhealth/feed/atom", type: ATOM, connector: rss, tier: C }317 - { name: plos global public health feed, url: "https://journals.plos.org/globalpublichealth/feed/atom", type: ATOM, connector: rss, tier: C }318 - { name: plos climate feed, url: "https://journals.plos.org/climate/feed/atom", type: ATOM, connector: rss, tier: C }319 - id: frontiers320 extend: true321 country: CH322 sensors:323 - { name: frontiers in immunology feed, url: "https://www.frontiersin.org/journals/immunology/rss", type: RSS, connector: rss, tier: C }324 - { name: frontiers in medicine feed, url: "https://www.frontiersin.org/journals/medicine/rss", type: RSS, connector: rss, tier: C }325 - { name: frontiers in public health feed, url: "https://www.frontiersin.org/journals/public-health/rss", type: RSS, connector: rss, tier: C }326 - { name: frontiers in oncology feed, url: "https://www.frontiersin.org/journals/oncology/rss", type: RSS, connector: rss, tier: C }327 - { name: frontiers in neuroscience feed, url: "https://www.frontiersin.org/journals/neuroscience/rss", type: RSS, connector: rss, tier: C }328 - { name: frontiers in microbiology feed, url: "https://www.frontiersin.org/journals/microbiology/rss", type: RSS, connector: rss, tier: C }329 - id: wiley330 extend: true331 country: US332 products:333 - { name: Angewandte Chemie, type: product }334 - { name: Advanced Materials, type: product }335 sensors:336 - { name: angewandte chemie toc feed, url: "https://onlinelibrary.wiley.com/action/showFeed?jc=15213773&type=etoc&feed=rss", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }337 - { name: advanced materials toc feed, url: "https://onlinelibrary.wiley.com/action/showFeed?jc=15214095&type=etoc&feed=rss", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }338 - { name: advanced science toc feed, url: "https://onlinelibrary.wiley.com/action/showFeed?jc=21983844&type=etoc&feed=rss", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }339 - { name: small toc feed, url: "https://onlinelibrary.wiley.com/action/showFeed?jc=16136829&type=etoc&feed=rss", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }340 - { name: cancer (acs journal) toc feed, url: "https://onlinelibrary.wiley.com/action/showFeed?jc=10970142&type=etoc&feed=rss", type: RSS, connector: rss, tier: C }341 - { name: annals of neurology toc feed, url: "https://onlinelibrary.wiley.com/action/showFeed?jc=15318249&type=etoc&feed=rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }342 - id: aps343 name: American Physical Society344 domain: aps.org345 homepage: https://www.aps.org346 categories: [science, research]347 tier: C348 country: US349 aliases: [aps, physical review, physical review letters, prl]350 products:351 - { name: Physical Review Letters, type: product, aliases: [prl] }352 - { name: Physical Review X, type: product, aliases: [prx] }353 - { name: PRX Quantum, type: product }354 - { name: Reviews of Modern Physics, type: product, aliases: [rmp] }355 discover: { rss: false }356 llm: false357 notes: "feeds.aps.org recent-article feeds (100 items each) for the Physical Review family; Physics magazine highlights the notable papers."358 sensors:359 - { name: physical review letters recent feed, url: "https://feeds.aps.org/rss/recent/prl.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }360 - { name: physical review x recent feed, url: "https://feeds.aps.org/rss/recent/prx.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }361 - { name: prx quantum recent feed, url: "https://feeds.aps.org/rss/recent/prxquantum.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }362 - { name: physical review research recent feed, url: "https://feeds.aps.org/rss/recent/prresearch.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }363 - { name: physical review applied recent feed, url: "https://feeds.aps.org/rss/recent/prapplied.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }364 - { name: reviews of modern physics recent feed, url: "https://feeds.aps.org/rss/recent/rmp.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }365 - { name: physics magazine feed, url: "https://feeds.aps.org/rss/recent/physics.xml", type: RSS, connector: rss, tier: B, config: { maxItems: 100 } }366 - id: iop-publishing367 name: IOP Publishing368 domain: iopscience.iop.org369 homepage: https://iopscience.iop.org370 categories: [science, research]371 tier: C372 country: GB373 aliases: [iop publishing, iopscience, institute of physics publishing]374 products:375 - { name: New Journal of Physics, type: product, aliases: [njp] }376 - { name: Machine Learning Science and Technology, type: product, aliases: [mlst] }377 - { name: Nuclear Fusion, type: product }378 discover: { rss: false }379 notes: "Per-journal latest-papers feeds by ISSN."380 sensors:381 - { name: new journal of physics feed, url: "https://iopscience.iop.org/journal/rss/1367-2630", type: RSS, connector: rss, tier: C }382 - { name: classical and quantum gravity feed, url: "https://iopscience.iop.org/journal/rss/0264-9381", type: RSS, connector: rss, tier: C }383 - { name: environmental research letters feed, url: "https://iopscience.iop.org/journal/rss/1748-9326", type: RSS, connector: rss, tier: C }384 - { name: machine learning science and technology feed, url: "https://iopscience.iop.org/journal/rss/2632-2153", type: RSS, connector: rss, tier: C }385 - { name: quantum science and technology feed, url: "https://iopscience.iop.org/journal/rss/2058-9565", type: RSS, connector: rss, tier: C }386 - { name: reports on progress in physics feed, url: "https://iopscience.iop.org/journal/rss/0034-4885", type: RSS, connector: rss, tier: C }387 - { name: nuclear fusion feed, url: "https://iopscience.iop.org/journal/rss/1741-4326", type: RSS, connector: rss, tier: C }388 - { name: plasma physics and controlled fusion feed, url: "https://iopscience.iop.org/journal/rss/0741-3335", type: RSS, connector: rss, tier: C }389 - id: rsc390 name: Royal Society of Chemistry391 domain: rsc.org392 homepage: https://www.rsc.org393 categories: [science, research]394 tier: C395 country: GB396 aliases: [rsc, royal society of chemistry, rsc publishing]397 products:398 - { name: Chemical Science, type: product }399 - { name: Chemical Communications, type: product, aliases: [chemcomm] }400 - { name: Energy and Environmental Science, type: product }401 discover: { rss: false }402 llm: false403 notes: "feeds.rsc.org latest-articles feeds (100 items each) are served over plain http only; https resets the connection (2026-09-11)."404 sensors:405 - { name: chemical science latest articles feed, url: "http://feeds.rsc.org/rss/sc", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }406 - { name: chemical communications latest articles feed, url: "http://feeds.rsc.org/rss/cc", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }407 - { name: energy and environmental science latest articles feed, url: "http://feeds.rsc.org/rss/ee", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }408 - { name: journal of materials chemistry a latest articles feed, url: "http://feeds.rsc.org/rss/ta", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }409 - id: asco410 name: American Society of Clinical Oncology411 domain: asco.org412 homepage: https://www.asco.org413 categories: [health, research, science]414 tier: C415 country: US416 aliases: [asco, journal of clinical oncology, jco, ascopubs]417 products:418 - { name: Journal of Clinical Oncology, type: product, aliases: [jco] }419 - { name: JCO Precision Oncology, type: product }420 discover: { rss: false }421 notes: "ascopubs.org table-of-contents feeds for the JCO family."422 sensors:423 - { name: journal of clinical oncology toc feed, url: "https://ascopubs.org/action/showFeed?type=etoc&feed=rss&jc=jco", type: RSS, connector: rss, tier: B, config: { maxItems: 100 } }424 - { name: jco precision oncology toc feed, url: "https://ascopubs.org/action/showFeed?type=etoc&feed=rss&jc=po", type: RSS, connector: rss, tier: C }425 - { name: jco oncology practice toc feed, url: "https://ascopubs.org/action/showFeed?type=etoc&feed=rss&jc=op", type: RSS, connector: rss, tier: C, config: { maxItems: 100 } }426 - { name: jco global oncology toc feed, url: "https://ascopubs.org/action/showFeed?type=etoc&feed=rss&jc=go", type: RSS, connector: rss, tier: C }427 - id: acp428 name: American College of Physicians429 domain: acpjournals.org430 homepage: https://www.acpjournals.org431 categories: [health, research]432 tier: C433 country: US434 aliases: [acp, annals of internal medicine, acp journals]435 products:436 - { name: Annals of Internal Medicine, type: product }437 discover: { rss: false }438 sensors:439 - { name: annals of internal medicine toc feed, url: "https://www.acpjournals.org/action/showFeed?type=etoc&feed=rss&jc=aim", type: RSS, connector: rss, tier: B, config: { maxItems: 100 } }440 - id: jci441 name: Journal of Clinical Investigation442 domain: jci.org443 homepage: https://www.jci.org444 categories: [health, research]445 tier: C446 country: US447 aliases: [jci, journal of clinical investigation, american society for clinical investigation]448 discover: { rss: false }449 sensors:450 - { name: current issue feed, url: "https://www.jci.org/rss/current", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }451 - id: health-affairs452 name: Health Affairs453 domain: healthaffairs.org454 homepage: https://www.healthaffairs.org455 categories: [health, research, politics]456 tier: C457 country: US458 aliases: [health affairs, project hope]459 discover: { rss: false }460 sensors:461 - { name: journal toc feed, url: "https://www.healthaffairs.org/action/showFeed?type=etoc&feed=rss&jc=hlthaff", type: RSS, connector: rss, tier: C }462 - id: cochrane463 name: Cochrane464 domain: cochrane.org465 homepage: https://www.cochrane.org466 categories: [health, research, ngo]467 tier: C468 weight: 1.1469 country: GB470 aliases: [cochrane, cochrane collaboration, cochrane library]471 products:472 - { name: Cochrane Library, type: product, aliases: [cochrane database of systematic reviews, cdsr] }473 discover: { rss: false }474 notes: "cochranelibrary.com feeds return 412 to non-browser clients; cochrane.org news + evidence (plain-language review summaries) feeds are used instead."475 sensors:476 - { name: news feed, url: "https://www.cochrane.org/news/rss.xml", type: RSS, connector: rss, tier: C }477 - { name: evidence feed, url: "https://www.cochrane.org/rss.xml", type: RSS, connector: rss, tier: C }478 - id: f1000479 name: F1000Research480 domain: f1000research.com481 homepage: https://f1000research.com482 categories: [research, science]483 tier: C484 country: GB485 aliases: [f1000, f1000research, faculty of 1000]486 discover: { rss: false }487 llm: false488 notes: "Open research publishing platform (Taylor & Francis); latest-articles feed."489 sensors:490 - { name: latest articles feed, url: "https://f1000research.com/rss/latest", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }491 - id: wellcome492 extend: true493 country: GB494 products:495 - { name: Wellcome Open Research, type: service }496 sensors:497 - { name: wellcome open research latest feed, url: "https://wellcomeopenresearch.org/rss/latest", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }498499 # ───────────────────────── clinical trials, drugs & devices ─────────────────────────500 - id: clinicaltrials501 extend: true502 country: US503 notes: "45-science-health: v2 API with fields= to keep payloads small — stopped trials (terminated/withdrawn/suspended), newly posted studies, results first posted, per-sponsor and per-condition phase 3 streams. Compare overallStatus for status changes."504 sensors:505 - { name: stopped trials (terminated / withdrawn / suspended), url: "https://clinicaltrials.gov/api/v2/studies?filter.overallStatus=TERMINATED,WITHDRAWN,SUSPENDED&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName,WhyStopped", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle} ({protocolSection.statusModule.overallStatus})", summaryField: protocolSection.statusModule.whyStopped, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }506 - { name: newly posted studies, url: "https://clinicaltrials.gov/api/v2/studies?sort=StudyFirstPostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,StudyFirstPostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.studyFirstPostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }507 - { name: results first posted, url: "https://clinicaltrials.gov/api/v2/studies?filter.advanced=AREA%5BResultsFirstPostDate%5DRANGE%5BMIN,MAX%5D&sort=ResultsFirstPostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,ResultsFirstPostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.resultsFirstPostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }508 - { name: alzheimer phase 3 trials, url: "https://clinicaltrials.gov/api/v2/studies?query.cond=Alzheimer&query.term=AREA%5BPhase%5DPHASE3&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.sponsorCollaboratorsModule.leadSponsor.name, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }509 - { name: obesity phase 3 trials, url: "https://clinicaltrials.gov/api/v2/studies?query.cond=obesity&query.term=AREA%5BPhase%5DPHASE3&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.sponsorCollaboratorsModule.leadSponsor.name, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }510 - { name: cancer phase 3 trials, url: "https://clinicaltrials.gov/api/v2/studies?query.cond=cancer&query.term=AREA%5BPhase%5DPHASE3&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.sponsorCollaboratorsModule.leadSponsor.name, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }511 - { name: pfizer trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Pfizer&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }512 - { name: moderna trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Moderna&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }513 - { name: eli lilly trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Eli%20Lilly&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }514 - { name: novo nordisk trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Novo%20Nordisk&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }515 - { name: astrazeneca trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=AstraZeneca&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }516 - { name: roche trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Hoffmann-La%20Roche&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }517 - { name: novartis trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Novartis&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }518 - { name: merck (msd) trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Merck%20Sharp%20%26%20Dohme&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }519 - { name: janssen (j&j) trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Janssen&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }520 - { name: abbvie trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=AbbVie&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }521 - { name: amgen trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Amgen&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }522 - { name: gilead trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Gilead&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }523 - { name: regeneron trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Regeneron&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }524 - { name: vertex trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Vertex&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }525 - { name: biontech trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=BioNTech&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }526 - { name: bristol myers squibb trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Bristol-Myers%20Squibb&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }527 - { name: gsk trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=GlaxoSmithKline&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }528 - { name: sanofi trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Sanofi&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }529 - { name: bayer trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Bayer&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }530 - { name: takeda trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Takeda&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }531 - { name: boehringer ingelheim trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Boehringer%20Ingelheim&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }532 - { name: biogen trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Biogen&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }533 - { name: daiichi sankyo trials, url: "https://clinicaltrials.gov/api/v2/studies?query.spons=Daiichi%20Sankyo&sort=LastUpdatePostDate:desc&pageSize=50&format=json&fields=NCTId,BriefTitle,OverallStatus,LastUpdatePostDate,Condition,Phase,LeadSponsorName", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: studies, keyField: protocolSection.identificationModule.nctId, titleTemplate: "{protocolSection.identificationModule.nctId} — {protocolSection.identificationModule.briefTitle}", summaryField: protocolSection.conditionsModule.conditions, dateField: protocolSection.statusModule.lastUpdatePostDateStruct.date, urlTemplate: "https://clinicaltrials.gov/study/{key}", compareFields: [protocolSection.statusModule.overallStatus], maxItems: 50, noConditional: true } }534 - id: fda535 extend: true536 country: US537 products:538 - { name: openFDA, type: API, aliases: [open fda, api.fda.gov] }539 - { name: Drugs@FDA, type: service }540 notes: "45-science-health: openFDA approvals/clearances (Drugs@FDA submissions, 510(k) clearances), device recalls (CDRH res), drug shortages, new NDC listings; CDER/CBER what's-new RSS; novel drug approvals + advisory committee calendar pages. fda.gov HTML answers 403 on some paths (bot management) — only the ones that validated are kept."541 sensors:542 - { name: openfda drugs@fda submissions, url: "https://api.fda.gov/drug/drugsfda.json?sort=submissions.submission_status_date:desc&limit=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: results, keyField: application_number, titleTemplate: "{application_number} — {openfda.brand_name} ({sponsor_name})", summaryField: openfda.generic_name, compareFields: [submissions], maxItems: 50 } }543 - { name: openfda 510(k) clearances, url: "https://api.fda.gov/device/510k.json?sort=decision_date:desc&limit=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: results, keyField: k_number, titleTemplate: "{k_number} — {device_name} ({applicant})", summaryField: decision_description, dateField: decision_date, urlTemplate: "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID={key}", compareFields: [decision_code], maxItems: 50 } }544 - { name: openfda device recalls (cdrh), url: "https://api.fda.gov/device/recall.json?sort=event_date_posted:desc&limit=50", type: REST_API, connector: jsonlist, tier: A, config: { itemsPath: results, keyField: cfres_id, titleTemplate: "{recalling_firm}: {product_description}", summaryField: reason_for_recall, dateField: event_date_posted, urlTemplate: "https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfres/res.cfm?id={key}", compareFields: [recall_status], maxItems: 50 } }545 - { name: openfda drug shortages, url: "https://api.fda.gov/drug/shortages.json?sort=update_date:desc&limit=50", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: results, keyField: package_ndc, titleTemplate: "{generic_name} ({company_name}) — {status} / {availability}", summaryField: presentation, dateField: update_date, compareFields: [status, availability, update_type], maxItems: 50 } }546 - { name: openfda new ndc listings, url: "https://api.fda.gov/drug/ndc.json?sort=marketing_start_date:desc&limit=50", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: results, keyField: product_ndc, titleTemplate: "{brand_name} ({generic_name}) — {labeler_name}", summaryField: dosage_form, compareFields: [marketing_category], maxItems: 50 } }547 - { name: drugs what's new feed, url: "https://www.fda.gov/about-fda/contact-fda/stay-informed/rss-feeds/drugs/rss.xml", type: RSS, connector: rss, tier: A }548 - { name: biologics what's new feed, url: "https://www.fda.gov/about-fda/contact-fda/stay-informed/rss-feeds/biologics/rss.xml", type: RSS, connector: rss, tier: A }549 - { name: advisory committee calendar, url: "https://www.fda.gov/advisory-committees/advisory-committee-calendar", type: HTML, connector: http, tier: C }550 - { name: medical device recalls page, url: "https://www.fda.gov/medical-devices/medical-device-safety/medical-device-recalls", type: HTML, connector: http, tier: B }551 - id: health-canada552 extend: true553 country: CA554 sensors:555 - { name: santé canada nouvelles (fr), url: "https://api.io.canada.ca/io-server/gc/news/fr/v2?dept=healthcanada,publichealthagencyofcanada&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=Sante%20Canada", type: ATOM, connector: rss, tier: B }556 - id: phac557 extend: true558 country: CA559 sensors:560 - { name: statements feed, url: "https://api.io.canada.ca/io-server/gc/news/en/v2?dept=publichealthagencyofcanada&type=statements&sort=publishedDate&orderBy=desc&pick=50&format=atom&atomtitle=PHAC%20statements", type: ATOM, connector: rss, tier: A }561 - { name: respiratory virus detections weekly report, url: "https://www.canada.ca/en/public-health/services/surveillance/respiratory-virus-detections-canada.html", type: HTML, connector: http, tier: C }562 - { name: rapid risk assessments, url: "https://www.canada.ca/en/public-health/services/emergency-preparedness-response/rapid-risk-assessments-public-health-professionals.html", type: HTML, connector: http, tier: B }563 - id: gsk564 extend: true565 country: GB566 sensors:567 - { name: media feed, url: "https://www.gsk.com/en-gb/media/rss/", type: RSS, connector: rss, tier: B, config: { maxItems: 50 } }568569 # ───────────────────────── public health agencies ─────────────────────────570 - id: cdc571 extend: true572 country: US573 products:574 - { name: Health Alert Network, type: service, aliases: [han] }575 - { name: MMWR, type: product, aliases: [morbidity and mortality weekly report] }576 - { name: Emerging Infectious Diseases, type: product, aliases: [eid journal] }577 sensors:578 - { name: health alert network feed, url: "https://tools.cdc.gov/api/v2/resources/media/320567.rss", type: RSS, connector: rss, tier: A, config: { maxItems: 50 } }579 - { name: mmwr feed, url: "https://www.cdc.gov/mmwr/rss/mmwr.xml", type: RSS, connector: rss, tier: B, config: { maxItems: 100 } }580 - { name: us outbreaks feed, url: "https://tools.cdc.gov/api/v2/resources/media/285676.rss", type: RSS, connector: rss, tier: A }581 - { name: international outbreaks feed, url: "https://tools.cdc.gov/api/v2/resources/media/733939.rss", type: RSS, connector: rss, tier: A }582 - { name: salmonella outbreak updates feed, url: "https://tools.cdc.gov/api/v2/resources/media/342774.rss", type: RSS, connector: rss, tier: B, config: { maxItems: 50 } }583 - { name: e. coli outbreak updates feed, url: "https://tools.cdc.gov/api/v2/resources/media/342773.rss", type: RSS, connector: rss, tier: B, config: { maxItems: 50 } }584 - { name: listeria outbreak updates feed, url: "https://tools.cdc.gov/api/v2/resources/media/321471.rss", type: RSS, connector: rss, tier: B, config: { maxItems: 50 } }585 - { name: mpox updates feed, url: "https://tools.cdc.gov/api/v2/resources/media/730281.rss", type: RSS, connector: rss, tier: C }586 - { name: seasonal flu what's new feed, url: "https://tools.cdc.gov/api/v2/resources/media/277692.rss", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }587 - { name: travel health notices feed, url: "https://wwwnc.cdc.gov/travel/rss/notices.xml", type: RSS, connector: rss, tier: B }588 - { name: eid journal ahead of print feed, url: "https://wwwnc.cdc.gov/eid/rss/ahead-of-print.xml", type: RSS, connector: rss, tier: C }589 - id: paho590 extend: true591 country: INT592 sensors:593 - { name: epidemiological alerts and updates, url: "https://www.paho.org/en/epidemiological-alerts-and-updates", type: HTML, connector: http, tier: B }594 - id: unaids595 extend: true596 country: INT597 sensors:598 - { name: news feed, url: "https://www.unaids.org/en/rss.xml", type: RSS, connector: rss, tier: B }599600 # ───────────────────────── space & earth observation ─────────────────────────601 - id: nasa602 extend: true603 country: US604 products:605 - { name: Artemis, type: product }606 - { name: International Space Station, type: product, aliases: [iss] }607 - { name: Earth Observatory, type: service }608 sensors:609 - { name: missions feed, url: "https://www.nasa.gov/missions/feed/", type: RSS, connector: rss, tier: B }610 - { name: humans in space feed, url: "https://www.nasa.gov/humans-in-space/feed/", type: RSS, connector: rss, tier: B }611 - { name: technology feed, url: "https://www.nasa.gov/technology/feed/", type: RSS, connector: rss, tier: C }612 - { name: artemis blog feed, url: "https://blogs.nasa.gov/artemis/feed/", type: RSS, connector: rss, tier: A }613 - { name: space station blog feed, url: "https://blogs.nasa.gov/spacestation/feed/", type: RSS, connector: rss, tier: B }614 - { name: mars exploration news feed, url: "https://mars.nasa.gov/rss/api/?feed=news&category=all&feedtype=rss", type: RSS, connector: rss, tier: B }615 - { name: earth observatory natural hazards feed, url: "https://earthobservatory.nasa.gov/feeds/natural-hazards.rss", type: RSS, connector: rss, tier: B }616 - { name: earth observatory feed, url: "https://earthobservatory.nasa.gov/feeds/earth-observatory.rss", type: RSS, connector: rss, tier: C }617 - id: esa618 extend: true619 country: INT620 sensors:621 - { name: space science feed, url: "https://www.esa.int/rssfeed/Our_Activities/Space_Science", type: RSS, connector: rss, tier: B }622 - { name: human and robotic exploration feed, url: "https://www.esa.int/rssfeed/Our_Activities/Human_and_Robotic_Exploration", type: RSS, connector: rss, tier: B }623 - { name: observing the earth feed, url: "https://www.esa.int/rssfeed/Our_Activities/Observing_the_Earth", type: RSS, connector: rss, tier: C }624 - { name: space safety feed, url: "https://www.esa.int/rssfeed/Our_Activities/Space_Safety", type: RSS, connector: rss, tier: B }625 - { name: space transportation feed, url: "https://www.esa.int/rssfeed/Our_Activities/Space_Transportation", type: RSS, connector: rss, tier: B }626 - { name: operations feed, url: "https://www.esa.int/rssfeed/Our_Activities/Operations", type: RSS, connector: rss, tier: C }627 - { name: navigation feed, url: "https://www.esa.int/rssfeed/Our_Activities/Navigation", type: RSS, connector: rss, tier: C }628 - id: celestrak629 name: CelesTrak630 domain: celestrak.org631 homepage: https://celestrak.org632 categories: [space, open-data, science]633 tier: C634 country: US635 aliases: [celestrak, satcat, norad elements]636 products:637 - { name: CelesTrak GP API, type: API }638 discover: { rss: false }639 llm: false640 notes: "Orbital element sets. The last-30-days group lists every object catalogued in the past month — a new NORAD id = a new satellite/debris object after a launch."641 sensors:642 - { name: objects launched in the last 30 days, url: "https://celestrak.org/NORAD/elements/gp.php?GROUP=last-30-days&FORMAT=json", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: "", keyField: NORAD_CAT_ID, titleTemplate: "{OBJECT_NAME} ({OBJECT_ID})", dateField: EPOCH, urlTemplate: "https://celestrak.org/satcat/table-satcat.php?CATNR={key}", compareFields: [OBJECT_NAME], maxItems: 400 } }643 - id: ligo644 name: LIGO Scientific Collaboration645 domain: ligo.org646 homepage: https://www.ligo.org647 categories: [science, research, space]648 tier: C649 weight: 1.1650 country: US651 aliases: [ligo, gracedb, ligo-virgo-kagra, lvk]652 products:653 - { name: GraceDB, type: service, aliases: [gravitational-wave candidate event database] }654 discover: { rss: false }655 notes: "GraceDB public superevents (production candidates only; mock MDC events excluded by query). A new S-id = a new gravitational-wave candidate."656 sensors:657 - { name: gracedb production superevents, url: "https://gracedb.ligo.org/api/superevents/?query=category%3A%20Production&format=json", type: REST_API, connector: jsonlist, tier: C, config: { itemsPath: superevents, keyField: superevent_id, titleTemplate: "{superevent_id} — gravitational-wave candidate (FAR {far})", dateField: created, urlTemplate: "https://gracedb.ligo.org/superevents/{key}/view/", compareFields: [gw_id, labels], maxItems: 50 } }658 - id: usgs659 extend: true660 country: US661 products:662 - { name: Volcano Hazards Program, type: service, aliases: [vhp, hans] }663 sensors:664 - { name: elevated volcano alert levels (hans), url: "https://volcanoes.usgs.gov/hans-public/api/volcano/getElevatedVolcanoes", type: REST_API, connector: jsonlist, tier: A, config: { itemsPath: "", keyField: vnum, titleTemplate: "{volcano_name} — {color_code} / {alert_level} ({obs_fullname})", urlField: notice_url, dateField: sent_utc, compareFields: [color_code, alert_level, notice_identifier], maxItems: 100 } }665 - { name: elevated volcano cap notices (hans), url: "https://volcanoes.usgs.gov/hans-public/api/volcano/getCapElevated", type: REST_API, connector: jsonlist, tier: B, config: { itemsPath: "", keyField: vnum, titleTemplate: "{volcano_name} — {color_code} / {alert_level}", urlField: notice_url, dateField: sent_utc, compareFields: [color_code, alert_level, notice_identifier], maxItems: 100 } }666 - id: noaa667 extend: true668 country: US669 sensors:670 - { name: noaa news feed, url: "https://www.noaa.gov/rss.xml", type: RSS, connector: rss, tier: B }671672 # ───────────────────────── research institutes ─────────────────────────673 - id: cshl674 name: Cold Spring Harbor Laboratory675 domain: cshl.edu676 homepage: https://www.cshl.edu677 categories: [research, science, health]678 tier: C679 country: US680 aliases: [cshl, cold spring harbor laboratory, cold spring harbor]681 discover: { rss: true }682 sensors:683 - { name: news feed, url: "https://www.cshl.edu/feed/", type: RSS, connector: rss, tier: C }684 - id: oicr685 name: Ontario Institute for Cancer Research686 domain: oicr.on.ca687 homepage: https://oicr.on.ca688 categories: [research, health]689 tier: C690 country: CA691 aliases: [oicr, ontario institute for cancer research]692 discover: { rss: true }693 sensors:694 - { name: news feed, url: "https://oicr.on.ca/feed/", type: RSS, connector: rss, tier: C }695696 # ───────────────────────── science & health media (third-party, heuristics only) ─────────────────────────697 - id: stat-news698 name: STAT699 domain: statnews.com700 homepage: https://www.statnews.com701 categories: [media, health, pharma]702 tier: B703 country: US704 first_party: false705 llm: false706 aliases: [stat, stat news, statnews]707 discover: { rss: false }708 sensors:709 - { name: feed, url: "https://www.statnews.com/feed/", type: RSS, connector: rss, tier: B }710 - id: fierce-pharma711 name: Fierce Pharma712 domain: fiercepharma.com713 homepage: https://www.fiercepharma.com714 categories: [media, pharma]715 tier: B716 country: US717 first_party: false718 llm: false719 aliases: [fierce pharma, fiercepharma]720 discover: { rss: false }721 sensors:722 - { name: feed, url: "https://www.fiercepharma.com/rss/xml", type: RSS, connector: rss, tier: B }723 - id: fierce-biotech724 name: Fierce Biotech725 domain: fiercebiotech.com726 homepage: https://www.fiercebiotech.com727 categories: [media, pharma, science]728 tier: B729 country: US730 first_party: false731 llm: false732 aliases: [fierce biotech, fiercebiotech]733 discover: { rss: false }734 sensors:735 - { name: feed, url: "https://www.fiercebiotech.com/rss/xml", type: RSS, connector: rss, tier: B }736 - id: endpoints-news737 name: Endpoints News738 domain: endpts.com739 homepage: https://endpts.com740 categories: [media, pharma]741 tier: B742 country: US743 first_party: false744 llm: false745 aliases: [endpoints, endpoints news, endpts]746 discover: { rss: false }747 sensors:748 - { name: feed, url: "https://endpts.com/feed/", type: RSS, connector: rss, tier: B }749 - id: biopharma-dive750 name: BioPharma Dive751 domain: biopharmadive.com752 homepage: https://www.biopharmadive.com753 categories: [media, pharma]754 tier: B755 country: US756 first_party: false757 llm: false758 aliases: [biopharma dive, biopharmadive]759 discover: { rss: false }760 sensors:761 - { name: news feed, url: "https://www.biopharmadive.com/feeds/news/", type: RSS, connector: rss, tier: B }762 - id: medpage-today763 name: MedPage Today764 domain: medpagetoday.com765 homepage: https://www.medpagetoday.com766 categories: [media, health]767 tier: B768 country: US769 first_party: false770 llm: false771 aliases: [medpage today, medpage]772 discover: { rss: false }773 sensors:774 - { name: headlines feed, url: "https://www.medpagetoday.com/rss/headlines.xml", type: RSS, connector: rss, tier: B }775 - id: kff-health-news776 name: KFF Health News777 domain: kffhealthnews.org778 homepage: https://kffhealthnews.org779 categories: [media, health, politics]780 tier: B781 country: US782 first_party: false783 llm: false784 aliases: [kff health news, kaiser health news, khn]785 discover: { rss: false }786 sensors:787 - { name: feed, url: "https://kffhealthnews.org/feed/", type: RSS, connector: rss, tier: B }788 - id: cidrap789 name: CIDRAP790 domain: cidrap.umn.edu791 homepage: https://www.cidrap.umn.edu792 categories: [media, health, research]793 tier: B794 weight: 1.1795 country: US796 first_party: false797 llm: false798 aliases: [cidrap, center for infectious disease research and policy]799 discover: { rss: false }800 notes: "University of Minnesota infectious-disease news service — early coverage of outbreaks (H5N1, measles, mpox)."801 sensors:802 - { name: news feed, url: "https://www.cidrap.umn.edu/rss.xml", type: RSS, connector: rss, tier: B }803 - id: drugs-com804 name: Drugs.com805 domain: drugs.com806 homepage: https://www.drugs.com807 categories: [media, pharma, health]808 tier: B809 country: US810 first_party: false811 llm: false812 aliases: [drugs.com]813 discover: { rss: false }814 notes: "Aggregates FDA new drug approvals and safety alerts into clean feeds — third-party mirror of official actions."815 sensors:816 - { name: new drug approvals feed, url: "https://www.drugs.com/feeds/new_drug_approvals.xml", type: RSS, connector: rss, tier: B, config: { maxItems: 50 } }817 - { name: fda alerts feed, url: "https://www.drugs.com/feeds/fda_alerts.xml", type: RSS, connector: rss, tier: B, config: { maxItems: 50 } }818 - { name: medical news feed, url: "https://www.drugs.com/feeds/medical_news.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }819 - id: medical-xpress820 name: Medical Xpress821 domain: medicalxpress.com822 homepage: https://medicalxpress.com823 categories: [media, health, science]824 tier: C825 country: GB826 first_party: false827 llm: false828 aliases: [medical xpress, medicalxpress]829 discover: { rss: false }830 sensors:831 - { name: feed, url: "https://medicalxpress.com/rss-feed/", type: RSS, connector: rss, tier: C }832 - id: genengnews833 name: Genetic Engineering & Biotechnology News834 domain: genengnews.com835 homepage: https://www.genengnews.com836 categories: [media, science, pharma]837 tier: C838 country: US839 first_party: false840 llm: false841 aliases: [gen, genengnews, genetic engineering and biotechnology news]842 discover: { rss: false }843 sensors:844 - { name: feed, url: "https://www.genengnews.com/feed/", type: RSS, connector: rss, tier: C }845 - id: labiotech846 name: Labiotech.eu847 domain: labiotech.eu848 homepage: https://www.labiotech.eu849 categories: [media, pharma, science]850 tier: C851 country: DE852 first_party: false853 llm: false854 aliases: [labiotech]855 discover: { rss: false }856 sensors:857 - { name: feed, url: "https://www.labiotech.eu/feed/", type: RSS, connector: rss, tier: C }858 - id: pharmaceutical-technology859 name: Pharmaceutical Technology860 domain: pharmaceutical-technology.com861 homepage: https://www.pharmaceutical-technology.com862 categories: [media, pharma]863 tier: C864 country: GB865 first_party: false866 llm: false867 aliases: [pharmaceutical technology, globaldata pharma]868 discover: { rss: false }869 sensors:870 - { name: feed, url: "https://www.pharmaceutical-technology.com/feed/", type: RSS, connector: rss, tier: C }871 - id: clinical-trials-arena872 name: Clinical Trials Arena873 domain: clinicaltrialsarena.com874 homepage: https://www.clinicaltrialsarena.com875 categories: [media, pharma, health]876 tier: C877 country: GB878 first_party: false879 llm: false880 aliases: [clinical trials arena]881 discover: { rss: false }882 sensors:883 - { name: feed, url: "https://www.clinicaltrialsarena.com/feed/", type: RSS, connector: rss, tier: C }884 - id: medical-device-network885 name: Medical Device Network886 domain: medicaldevice-network.com887 homepage: https://www.medicaldevice-network.com888 categories: [media, health]889 tier: C890 country: GB891 first_party: false892 llm: false893 aliases: [medical device network]894 discover: { rss: false }895 sensors:896 - { name: feed, url: "https://www.medicaldevice-network.com/feed/", type: RSS, connector: rss, tier: C }897 - id: pharmatimes898 name: PharmaTimes899 domain: pharmatimes.com900 homepage: https://www.pharmatimes.com901 categories: [media, pharma]902 tier: C903 country: GB904 first_party: false905 llm: false906 aliases: [pharmatimes, pharma times]907 discover: { rss: false }908 sensors:909 - { name: feed, url: "https://www.pharmatimes.com/rss", type: RSS, connector: rss, tier: C }910 - id: science-news911 name: Science News912 domain: sciencenews.org913 homepage: https://www.sciencenews.org914 categories: [media, science]915 tier: B916 country: US917 first_party: false918 llm: false919 aliases: [science news, society for science]920 discover: { rss: false }921 sensors:922 - { name: feed, url: "https://www.sciencenews.org/feed", type: RSS, connector: rss, tier: B }923 - id: quanta-magazine924 name: Quanta Magazine925 domain: quantamagazine.org926 homepage: https://www.quantamagazine.org927 categories: [media, science]928 tier: C929 country: US930 first_party: false931 llm: false932 aliases: [quanta, quanta magazine]933 discover: { rss: false }934 sensors:935 - { name: feed, url: "https://www.quantamagazine.org/feed/", type: RSS, connector: rss, tier: C }936 - id: phys-org937 name: Phys.org938 domain: phys.org939 homepage: https://phys.org940 categories: [media, science]941 tier: C942 country: GB943 first_party: false944 llm: false945 aliases: [phys.org, physorg, science x]946 discover: { rss: false }947 sensors:948 - { name: feed, url: "https://phys.org/rss-feed/", type: RSS, connector: rss, tier: C }949 - id: sciencedaily950 name: ScienceDaily951 domain: sciencedaily.com952 homepage: https://www.sciencedaily.com953 categories: [media, science]954 tier: C955 country: US956 first_party: false957 llm: false958 aliases: [sciencedaily, science daily]959 discover: { rss: false }960 sensors:961 - { name: all feed, url: "https://www.sciencedaily.com/rss/all.xml", type: RSS, connector: rss, tier: C, config: { maxItems: 60 } }962 - id: physics-world963 name: Physics World964 domain: physicsworld.com965 homepage: https://physicsworld.com966 categories: [media, science]967 tier: C968 country: GB969 first_party: false970 llm: false971 aliases: [physics world]972 discover: { rss: false }973 sensors:974 - { name: feed, url: "https://physicsworld.com/feed/", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }975 - id: undark976 name: Undark977 domain: undark.org978 homepage: https://undark.org979 categories: [media, science]980 tier: C981 country: US982 first_party: false983 llm: false984 aliases: [undark, undark magazine]985 discover: { rss: false }986 sensors:987 - { name: feed, url: "https://undark.org/feed/", type: RSS, connector: rss, tier: C }988 - id: spacenews989 name: SpaceNews990 domain: spacenews.com991 homepage: https://spacenews.com992 categories: [media, space]993 tier: B994 country: US995 first_party: false996 llm: false997 aliases: [spacenews, space news]998 discover: { rss: false }999 sensors:1000 - { name: feed, url: "https://spacenews.com/feed/", type: RSS, connector: rss, tier: B }1001 - id: nasaspaceflight1002 name: NASASpaceflight1003 domain: nasaspaceflight.com1004 homepage: https://www.nasaspaceflight.com1005 categories: [media, space]1006 tier: B1007 country: US1008 first_party: false1009 llm: false1010 aliases: [nasaspaceflight, nsf spaceflight]1011 discover: { rss: false }1012 sensors:1013 - { name: feed, url: "https://www.nasaspaceflight.com/feed/", type: RSS, connector: rss, tier: B }1014 - id: spaceflight-now1015 name: Spaceflight Now1016 domain: spaceflightnow.com1017 homepage: https://spaceflightnow.com1018 categories: [media, space]1019 tier: B1020 country: US1021 first_party: false1022 llm: false1023 aliases: [spaceflight now]1024 discover: { rss: false }1025 sensors:1026 - { name: feed, url: "https://spaceflightnow.com/feed/", type: RSS, connector: rss, tier: B }1027 - id: space-com1028 name: Space.com1029 domain: space.com1030 homepage: https://www.space.com1031 categories: [media, space]1032 tier: C1033 country: US1034 first_party: false1035 llm: false1036 aliases: [space.com]1037 discover: { rss: false }1038 sensors:1039 - { name: all feed, url: "https://www.space.com/feeds/all", type: RSS, connector: rss, tier: C, config: { maxItems: 50 } }1040 - id: universe-today1041 name: Universe Today1042 domain: universetoday.com1043 homepage: https://www.universetoday.com1044 categories: [media, space]1045 tier: C1046 country: CA1047 first_party: false1048 llm: false1049 aliases: [universe today]1050 discover: { rss: false }1051 sensors:1052 - { name: feed, url: "https://www.universetoday.com/feed/", type: RSS, connector: rss, tier: C }1053