EUDAMED Scraper & Change Monitor (EU MDR/IVDR)
Under maintenancePricing
Pay per usage
EUDAMED Scraper & Change Monitor (EU MDR/IVDR)
Under maintenanceExport the EU EUDAMED medical device database (MDR/IVDR) to JSON/CSV/Excel and schedule daily change-monitoring of new registrations, status & certificate changes by manufacturer, SRN, UDI or risk class. Public data; not affiliated with the European Commission.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
YuanCore
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
Search, export and monitor changes in the EU EUDAMED public medical-devices database — the official European Commission registry for devices placed on the EU market under MDR (2017/745) and IVDR (2017/746). Export to JSON / CSV / Excel.
There is no public bulk export of other companies' devices in the official UI — you read it one row at a time. This actor turns the public registry into clean, structured, schedulable data, and (uniquely) lets you watch for changes instead of re-pulling everything.
⭐ Primary use — daily change monitoring
Set monitorSince to an ISO date and schedule the actor daily: it returns only devices whose lastUpdateDate is on/after that date — a lightweight change feed. Ideal for RA/QA and competitive-intelligence teams tracking newly registered or updated devices ahead of the MDR/IVDR registration waves (mandatory EUDAMED use lands 28 May 2026).
This is the cheap, fast, intended mode. Use it instead of repeatedly dumping the whole database.
Bulk / search pull (one-off)
Set filters in searchParams and a maxItems cap to pull a slice. ⚠️ A full pull is ~2.5M devices and takes roughly 1.5–3 hours and significant compute — only do it when you genuinely need a one-off export, and prefer narrowing with searchParams.
What you get per device
basicUdi, primaryDi, uuid, deviceName, tradeName, deviceModel, riskClass, manufacturerName, manufacturerSrn, deviceStatusType, applicableLegislation, sterile, multiComponent, issuingAgency, containerPackageCount, lastUpdateDate, version info. Enable Fetch full device detail for the deep per-device record (EMDN, certificates, etc.).
Who it's for
- Regulatory Affairs / QA — monitor competitor registrations, certificate and status changes.
- Medical-device market intelligence — map manufacturers, risk classes and EMDN categories across the EU.
- Compliance / due-diligence — verify a manufacturer's EUDAMED footprint.
Input
| field | meaning |
|---|---|
monitorSince | ISO date (YYYY-MM-DD) — only devices updated on/after it (the change feed). Recommended. |
searchParams | extra EUDAMED API filter params (object), e.g. by status; leave {} for all |
maxItems | stop after N devices. ⚠️ a full pull is ~2.5M ≈ 1.5–3h |
pageSize | API page size (size), max 300 |
fetchDetails | also pull the deep per-device detail record. ⚠️ +1 API call per device — keep maxItems low (≤500) when on |
includePersonalData | include the authorised-representative name field. Off by default (redacted) — see Data & compliance |
languageIso2Code | response language, default en |
Reliability
- Schema-drift guard — if EUDAMED changes its API shape (or an unfiltered pull comes back empty), the run fails loudly instead of silently producing an empty/garbage dataset.
- De-duplication within a run; identity-less records are never folded together.
- Core-field completeness is tracked each run and warns if it collapses (a silent-corruption signal).
- An automated read-back test (
npm test) asserts the above against the live API.
Data & compliance
- Source is the public EUDAMED API (
ec.europa.eu/tools/eudamed) — no login; public EU transparency data. - Reused under the European Commission reuse policy (CC BY 4.0); attribute European Commission – EUDAMED. Data is structured/normalized by this actor.
- Company-level data. The authorised-representative name can identify a natural person, so it is redacted by default; enable
includePersonalDataonly with a lawful basis. Users are responsible for GDPR-compliant use. - Not affiliated with the European Commission. No warranty on accuracy/completeness; verify against the official source before relying on it for decisions.
- Polite pacing built in.
FAQ
Is there an official EUDAMED API for downloading device data?
Not for reading other companies' devices in bulk. The European Commission exposes a restricted machine-to-machine (M2M) API, but it requires official registration through a national authority and is designed for submitting your own UDI/device data into EUDAMED — not for pulling the whole public registry out. The public search UI at ec.europa.eu/tools/eudamed is backed by undocumented JSON endpoints (e.g. /api/devices/udiDiData), but there is no supported public bulk export, no official CSV/Excel "download all," and no documented change feed. This actor reads only those public, no-auth endpoints and turns them into clean, schedulable, structured output. Not affiliated with the European Commission.
How do I export EUDAMED to Excel or CSV?
The official UI has no usable bulk "export to Excel/CSV" of the public registry — you read results one page at a time, and the Excel templates you find online are for uploading your own data into EUDAMED, not exporting other manufacturers' records. With this actor you run a search (or a monitorSince change pull), then on the Storage / Dataset tab click Export and pick CSV, Excel (XLSX), JSON, or HTML — or fetch the dataset via Apify's API. Tip: narrow with searchParams and cap with maxItems first, because a full registry pull is ~2.5M devices and takes hours.
Can I monitor competitor registrations or status changes?
Yes — that's the headline mode. Set monitorSince to an ISO date and schedule the actor daily: it returns only devices whose lastUpdateDate is on/after that date — a lightweight diff feed of newly registered or updated devices. Combine it with searchParams (e.g. a manufacturer SRN, risk class, or device status) to watch a specific competitor, product family, or category. It's especially relevant in 2026: under Commission Decision (EU) 2025/2371, the first EUDAMED modules become mandatory on 28 May 2026, and legacy devices must be registered by 28 November 2026 — a sustained registration wave worth watching.
Is the data public and GDPR-compliant to use?
The source is the public EUDAMED database — no login, EU transparency data, reused under the European Commission reuse policy (CC BY 4.0; attribute European Commission – EUDAMED). The output is company-level (manufacturer, SRN, UDI, risk class, status). The one field that can identify a natural person — the authorised-representative name — is redacted by default; enable includePersonalData only if you have a lawful basis. You remain the controller for your downstream use. Not affiliated with the European Commission; verify against the official source before relying on it for regulatory decisions.
How fresh is this data?
EUDAMED is updated continuously as manufacturers and authorised representatives register and amend records. This actor reads the live public API at run time, so a scheduled daily run with monitorSince set to "yesterday" gives you a same-day view of what changed. Each output row carries lastUpdateDate (from EUDAMED) and scrapedAt (when this actor read it) so you can audit freshness.
EUDAMED website vs this actor
| Manual EUDAMED search (official UI) | This actor | |
|---|---|---|
| Bulk export | None — read one page at a time | One run → CSV / Excel / JSON / HTML |
| Change monitoring | Not available — re-check manually | monitorSince returns only devices updated on/after a date; schedule daily |
| Speed | Searches commonly take 10–20s; each page = a new search | Paged API pulls, de-duplicated, structured |
| Filtering | Basic UI filters | searchParams passed straight to the EUDAMED API (status, class, SRN, etc.) |
| Scheduling / automation | Manual, browser-only | Apify Schedules + API/webhooks; pay-per-usage |
| Structured output | Copy/paste from the page | Normalized fields per device (basicUdi, primaryDi, riskClass, manufacturerSrn, lastUpdateDate, …) |
| PII handling | Names shown in UI | Authorised-rep name redacted by default (GDPR) |
| Reliability | You eyeball it | Schema-drift guard fails loudly on API shape changes / empty pulls; completeness tracked per run |
Public data only; not affiliated with the European Commission. A full registry pull is ~2.5M devices (hours of compute) — prefer monitorSince + searchParams.