EMA Drug Approvals Monitor - CHMP Opinions & Authorisations
Pricing
from $20.00 / 1,000 approval event detecteds
EMA Drug Approvals Monitor - CHMP Opinions & Authorisations
Scheduled change feed for EU drug approvals: new EMA marketing authorisations, CHMP positive/negative opinions, refusals, withdrawals and suspensions since your last run. Reads the official EMA medicines register (keyless, refreshed daily) and emits only what changed - not a catalogue dump.
Pricing
from $20.00 / 1,000 approval event detecteds
Rating
0.0
(0)
Developer
Daniel Matthee
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 days ago
Last modified
Categories
Share
EMA Drug Approvals Monitor — EU / CHMP Approval & Opinion Change Feed
The change feed for EU drug regulation. Every scheduled run downloads the official EMA medicines register, diffs it against the previous run, and emits one record per regulatory event: a new marketing authorisation, a CHMP positive or negative opinion, a refusal, a withdrawal, a suspension. Other tools tell you a medicine's status now; this actor tells you what moved since you last checked — which is what a catalyst calendar, a competitive watch list and a market-access tracker actually need.
Covers the whole EU register: ~2,700 centrally authorised human and veterinary medicines, refreshed daily by EMA. No API key, no login, no scraping of third-party aggregators — only EMA's own published dataset.
This actor is EU-only by design. US FDA approvals are a separate, well-served market; here you get the EMA/CHMP side properly, with stable product ids and typed transitions.
Event types
eventType | What triggers it |
|---|---|
new-authorisation | A medicine's status becomes Authorised — the EU marketing authorisation is granted. |
chmp-opinion | The committee opinion becomes Positive or Negative (CHMP for human medicines, CVMP for veterinary) — typically 1–2 months ahead of the Commission decision. |
withdrawal | Withdrawn, Application withdrawn, Revoked, Suspended, Lapsed, Expired, Withdrawn from rolling review, or removed from the register entirely. |
status-change | Every other transition, including Refused and entry into Opinion / Opinion under re-examination. The catch-all, so nothing is silently dropped. |
First run seeds — with a head start
By design the first run stores a baseline of the whole register, so you
are never billed for 2,700 "changes" that are just the existing register.
But the register carries EMA's own decision dates, so the seeding run also
emits the recent history — every authorisation, refusal, withdrawal,
suspension and opinion dated within sinceDays (default 30). You get
immediate value on run one and pure deltas from run two on. Set
sinceDays: 0 for a silent seed.
Recommended schedule: daily. EMA refreshes the dataset every morning (UTC); CHMP meets monthly, so opinion batches land in clusters.
Example output record
{"source": "ema-medicines","productId": "EMEA/H/C/006629","medicineName": "Hopledo","inn": "levodopa;carbidopa","marketingAuthHolder": "Zambon SpA","category": "Human","eventType": "new-authorisation","oldStatus": null,"newStatus": "Authorised","opinionOutcome": null,"therapeuticArea": ["Parkinson Disease"],"atcCode": "N04BA02","decisionDate": "2026-08-20","url": "https://www.ema.europa.eu/en/medicines/human/EPAR/hopledo","detectedAt": "2026-08-31T09:44:55Z"}
productId is the EMA product number (EMEA/H/C/… human,
EMEA/V/C/… veterinary) — stable and unique for the life of the product, so
it joins cleanly to your own pipeline. oldStatus is the status this actor
last saw (null for a medicine new to the register or for a seed-run
backfill record); newStatus is the current one. decisionDate is taken
from the matching EMA date column — authorisation, refusal, withdrawal,
suspension or opinion-adopted — and is null when EMA has not published one.
opinionOutcome is populated on chmp-opinion records only. url is the
medicine's EPAR page.
Input options
| Field | Default | What it does |
|---|---|---|
eventTypes | all four | Which kinds of event to emit. Pick chmp-opinion alone for a pure catalyst feed. |
therapeuticAreas | all | Case-insensitive substring match on the medicine's MeSH therapeutic areas, e.g. Diabetes, Carcinoma, Non-Small-Cell Lung. |
atcCodes | all | ATC / ATCvet prefix match, e.g. L01 (antineoplastics), A10 (diabetes), J07 (vaccines). |
keywords | all | Substring match on medicine name, INN / active substance and marketing-authorisation holder, e.g. pembrolizumab, Novo Nordisk. |
sinceDays | 30 | First-run backfill window in days (0–365). Ignored on later runs. |
maxItems | 500 | Cap on event records per run. The baseline still updates in full. |
Filters apply at emit time — the stored baseline always reflects the full register, so narrowing or widening a filter later never resurrects or duplicates old events.
Use cases
- Biotech / pharma catalyst trading — a CHMP positive or negative opinion
is the tradeable EU event, and it lands weeks before the Commission
decision. Filter to
chmp-opinionplus your watch-listkeywordsand get the outcome the morning EMA publishes it. - Competitive intelligence — watch a rival's
marketingAuthHoldername or an ATC class and see every EU authorisation, refusal and withdrawal in your space without reading monthly meeting minutes. - Market access & pricing — a new authorisation starts the national reimbursement clock in every member state. Feed authorisations straight into your launch tracker with the EPAR link attached.
- Pharmacovigilance & supply — suspensions, revocations and withdrawals are the events that pull a product from EU shelves; get them as records, not as a newsletter.
Reliability
- A failed download is a failed run, never a quiet day. If EMA's dataset
is unreachable or stops looking like the expected
{meta, data}envelope, the run aborts loudly with the baseline untouched — it never empties your state or reports the whole register as withdrawn. - Exactly-once transitions. Each status or opinion move emits one record and never repeats, including a medicine that disappears from the register (emitted once as a withdrawal, then retained in state).
- No double-counting. The real Opinion → Authorised path moves two
fields at once; you get one
new-authorisationrecord, not two. - Schema drift is logged, not fatal. Unparseable rows and dates are warned about and skipped; the rest of the run proceeds.
Pricing
Pay per event: a small per-run fee plus a fee per event detected. Quiet weeks cost almost nothing; CHMP weeks deliver exactly the records worth acting on.
Maintenance
The EMA dataset format is checked against the official publication; if EMA moves the download URL or renames a column, the actor is updated and the state format keeps your baseline. Output changes within a major version are additive only.
Changelog
- 0.1 — initial release: full EMA medicines register (human + veterinary), four typed event types, first-run date backfill, therapeutic-area / ATC / keyword filters.