EU medicines watch: EMA authorisations and shortages avatar

EU medicines watch: EMA authorisations and shortages

Pricing

from $10.00 / 1,000 change returneds

Go to Apify Store
EU medicines watch: EMA authorisations and shortages

EU medicines watch: EMA authorisations and shortages

EU medicines regulatory watch: authorisations, withdrawals and shortages for your substances, twice a day. Reads EMA's published JSON files, diffs against your last run and returns only what changed, matched against your substances, ATC codes and marketing-authorisation holders.

Pricing

from $10.00 / 1,000 change returneds

Rating

0.0

(0)

Developer

Kittiwake Data

Kittiwake Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

EU medicines regulatory watch: authorisations, withdrawals and shortages for your substances, twice a day.

The European Medicines Agency publishes its full register of centrally authorised medicines, and its list of supply shortages, as downloadable files that it refreshes about twice a day. The files are public. What they do not tell you is what changed since you last looked.

This Actor reads both files, compares them with your previous run, and returns only the changes, matched against the substances, ATC codes and companies you care about.

What it is for

  • Generic and biosimilar developers: see a reference product's withdrawal or a competitor's new authorisation the day EMA publishes it.
  • Distributors, parallel importers and hospital pharmacy buyers: new and resolved shortages for the substances you handle.
  • Regulatory-intelligence and market-access teams: a change feed by ATC class or by marketing-authorisation holder, into your own systems.

What you get

changewhen
new-medicinea product number appears in EMA's medicines file for the first time
status-changedits status moved, e.g. OpinionAuthorised, AuthorisedWithdrawn; previousStatus holds the old one
updateda field you receive changed without a status change (e.g. additional monitoring added)
removed-from-filea product number no longer appears in the file
new-shortage, shortage-status-changed, shortage-updated, shortage-removedthe same, for EMA's shortages file
watchlist-baselinefirst run only: the current state of everything on your watchlist, so you start with a picture rather than an empty table

A change to EMA's "last updated" date on its own is not returned: EMA touches that date without changing anything in the fields you receive.

Quick start

Watch two substances and an ATC class, every change on your watchlist:

{
"watchSubstances": ["semaglutide", "adalimumab"],
"watchAtcCodes": ["L01FX"],
"onlyWatchlistMatches": true
}

Every change in the EU register, medicines only:

{ "includeShortages": false }

Schedule it twice a day. Each run compares with the last run of the same saved task, so two tasks with different watchlists never consume each other's changes.

Input

fieldtypedefaultwhat it does
watchSubstancesstring[]Active substances or INNs. Case-insensitive substring
watchAtcCodesstring[]ATC codes. Prefix match: L01 catches L01FX22
watchHoldersstring[]Marketing-authorisation holders. Case-insensitive substring
onlyWatchlistMatchesbooleanfalseReturn only watchlist hits
includeShortagesbooleantrueAlso read the shortages file

Output

One row per change. Every row has the same fields; the ones that do not apply are null.

{
"emaProductNumber": "EMEA/H/C/004127",
"medicineName": "Zonisamide Viatris (previously Zonisamide Mylan)",
"inn": "zonisamide",
"activeSubstance": "zonisamide",
"atcCode": "N03AX15",
"category": "Human",
"medicineStatus": "Withdrawn",
"marketingAuthorisationHolder": "Viatris Limited",
"generic": true,
"withdrawalOrLapseDate": "2026-09-20",
"medicineUrl": "https://www.ema.europa.eu/en/medicines/human/EPAR/zonisamide-viatris",
"shortageStatus": null,
"changeType": "status-changed",
"previousStatus": "Authorised",
"watchlistMatch": { "matchedOn": "substance", "value": "zonisamide" },
"source": "Source: European Medicines Agency (EMA), https://www.ema.europa.eu/en/documents/report/medicines-output-medicines_json-report_en.json"
}

Also returned: therapeuticArea, opinionStatus, biosimilar, orphan, conditionalApproval, additionalMonitoring, opinionAdoptedDate, marketingAuthorisationDate, ecDecisionDate, lastUpdatedDate, and for shortages shortageStart, expectedResolution and alternativesAvailable. Dates are ISO YYYY-MM-DD; a date EMA leaves blank is null.

What you pay for

eventpricewhen
Change returned$0.01one change row written to the dataset
EMA file read$0.01one file fetched, parsed and compared. Only when all of that succeeds
Watchlist match$0.05a change matched your watchlist. Zero if you supply no watchlist

Nothing is charged for a failed run. If a run reaches your spending limit, the changes it did not return are kept and come back on the next run.

What this Actor does not do

  • No personal data. It returns medicine, substance, status and company fields only. EMA's free-text indication and any person-level field are never copied.
  • No logins, proxies or retries. Two requests per run, ten seconds apart, with one identifying User-Agent. If EMA refuses a request, the run fails and says so; it does not try again.
  • No advice. EMA's pages are the authority; every row links to the official page.

Source and attribution

Data comes from the European Medicines Agency's published JSON files (ema.europa.eu/en/about-us/about-website/download-website-data-json-data-format). This Actor reformats and compares what EMA publishes and adds nothing to it.

EMA's legal notice allows reproduction "for non-commercial and commercial purposes … provided that EMA is always acknowledged as the source of the material. Such acknowledgement must be included in each copy of the material." So every row carries it, in the source field:

Source: European Medicines Agency (EMA), <the EMA file URL the row came from>

Support

Use the Issues tab on this Actor. Include the run id and the input you used.