Swiss BAG Infectious Diseases Scraper
Pricing
from $4.52 / 1,000 results
Swiss BAG Infectious Diseases Scraper
Follow weekly notifiable infectious disease statistics from the Swiss Federal Office of Public Health. Each record returns the disease, week, year, canton, case count, age group, sex, hospitalizations, and deaths. Built for epidemiology research and public health monitoring.
Pricing
from $4.52 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share

🦠 Swiss BAG Infectious Diseases Scraper
🚀 Pull weekly Swiss notifiable infectious disease counts in seconds. By canton, age group, sex, and disease, straight from the BAG idd.bag.admin.ch public API.
🕒 Last updated 2026-06-05 · 📊 10 fields per record · 26 cantons · Weekly resolution since 1988 · Source BAG
The Swiss BAG Infectious Diseases Scraper turns the Swiss Federal Office of Public Health (Bundesamt für Gesundheit, BAG) idd.bag.admin.ch/api/v1/communicablediseases endpoint into a clean structured dataset. Filter by disease, canton, and year range, and the actor returns one row per stratum.
| 🎯 Target Audience | 💡 Primary Use Cases |
|---|---|
| 🧪 Epidemiologists | Build longitudinal time series of notifiable diseases |
| 🏥 Public health teams | Monitor outbreak signals across cantons |
| 📰 Health journalists | Verify case counts for stories |
| 🎓 Academic researchers | Build training and validation cohorts |
| 👩💻 Civic tech builders | Power public dashboards |
📋 What the Swiss BAG Infectious Diseases Scraper does
- Calls the public BAG endpoint with your filters.
- Normalises field names across the API's German, French, Italian, and English variants.
- Returns one row per disease, week, year, canton, age group, sex stratum.
💡 Why it matters Notifiable disease data is fragmented across PDF reports and a JS dashboard. The API exists but is undocumented. This actor wraps it.
🎬 Full Demo
🚧 Coming soon.
⚙️ Input
| Field | Type | Required | Description |
|---|---|---|---|
disease | string | No | Disease name. Empty for all. |
yearFrom | integer | No | Earliest year. Default 2024. |
yearTo | integer | No | Latest year. Default current. |
canton | enum | No | Canton code (ZH, BE, GE, etc.). Empty for all. |
maxItems | integer | No | Free 10, paid up to 1,000,000. |
Example 1, measles in Zurich 2024:
{"disease": "Masern","canton": "ZH","yearFrom": 2024,"yearTo": 2024,"maxItems": 100}
Example 2, all reported diseases nationwide 2025:
{"yearFrom": 2025,"yearTo": 2025,"maxItems": 500}
⚠️ Good to Know The BAG API is public and free. No registration required.
📊 Output
| Field | Type | Description |
|---|---|---|
🦠 disease | string | Disease name. |
📅 week | integer | ISO week number. |
📅 year | integer | Year. |
🏔️ canton | string | Two-letter canton code. |
🔢 cases | integer | Reported cases for this stratum. |
👤 ageGroup | string | Age group bucket. |
⚧ sex | string | Sex stratum. |
🏥 hospitalizations | integer | Hospitalisations when reported. |
⚰️ deaths | integer | Deaths when reported. |
🕒 scrapedAt | string | When this row was fetched. |
❌ error | string | Set if the upstream response was an error. |
✨ Why choose this Actor
| 🆓 | Public BAG endpoint, no key required. | | 🌍 | All 26 cantons covered. | | 📅 | Weekly resolution back to 1988. | | 🧹 | Field names normalised across language variants. | | 🛟 | Errors surface as a clean record, never a crash. |
📈 How it compares to alternatives
| Approach | Setup | Multilang fields | Stratum normalisation |
|---|---|---|---|
| Manual PDF download | hours | ❌ | ❌ |
| Roll your own fetch | 30 min plus | ❌ | ❌ |
| This Actor | 5 sec | ✅ | ✅ |
🚀 How to use
- Click Try for free.
- Pick a disease, canton, and year range.
- Click Start.
- Open the dataset.
💼 Business use cases
🏥 Public health Track outbreak signals across cantons.
🧪 Epidemiology Build longitudinal cohorts for time-series modelling.
📰 Newsrooms Verify case counts for stories.
🤖 ML training Feed structured surveillance data into forecasting models.
🔌 Automating Swiss BAG Infectious Diseases Scraper
- Make and Zapier trigger weekly when BAG publishes new numbers.
- Cron Apify scheduler runs every Friday.
- Webhooks receive POST on completion.
- Warehouses pipe to BigQuery or Snowflake.
🌟 Beyond business use cases
🎓 Education Real surveillance data for epidemiology courses.
🧪 Personal research Track outbreaks in your canton.
🤝 Non-profit Power health equity dashboards.
🧰 Tinkering Prototype a forecasting model.
🤖 Ask an AI assistant about this scraper
Paste this README into ChatGPT, Claude, or any assistant.
❓ Frequently Asked Questions
❓ Do I need an account No, the BAG endpoint is public.
❓ Which diseases are covered All notifiable diseases in the Swiss list (mandatory reporting).
❓ How fresh is the data BAG updates weekly.
❓ Is the language fixed No, the actor accepts German, French, Italian, and English disease names.
❓ Can I schedule runs Yes.
❓ Is this scraping No, it is the official public API.
🔌 Integrate with any app
Apify ships native integrations with Make, Zapier, Slack, Discord, Google Drive, Google Sheets, Gmail, Airbyte, Keboola, Telegram, GitHub, and any REST endpoint or webhook.
🔗 Recommended Actors
| Actor | What it does |
|---|---|
| ParseForge GovInfo Scraper | US federal publications. |
| ParseForge OurAirports Scraper | Global airport database. |
| ParseForge Alpha Vantage Scraper | Public market data. |
💡 Pro Tip browse the complete ParseForge collection.
Disclaimer This actor uses only publicly available data. ParseForge is not affiliated with, endorsed by, or sponsored by any of the third-party services referenced. Users are responsible for complying with the target site's terms of service and applicable law. Create a free account w/ $5 credit.