Watchtower · change tracking

Know when a drug register changes.

Registers move every day — new products, withdrawn packs, price edits, recalls. Every change we ingest is recorded with its source and date, so you can see what moved and when, instead of re-importing everything to find out.

  1. RecallRecall noticeSwissmedic recalls
  2. AddedCyproteron und Estrogen + Sertindole interactionePHA interactions
  3. UpdatedRecall D-0972-2018 · VALSARTAN AND HYDROCHLOROTHIAZIDE · status ongoingopenFDA drug recalls
  4. UpdatedZubsolvLyfjastofnun / IMA
  5. UpdatedGLIMEPIRIDE VIATRIS 3 mg, compriméBDPM CIS_COMPO (ATC bridge)
  6. UpdatedAmlodipine CT 10 mg, tablettenCBG-MEB
The latest change from each of the most recently active sources.Open Watchtower

20.8M

changes recorded

50

sources watched

4

change types

How a change is made

Staged, checked, promoted — then recorded.

Each source lands in its own staging table first. Only rows that pass their checks are promoted, and every promotion writes one row per changed record to the change log.

  • A staging and a quarantine table per source; production sees promoted rows only
  • A run that fails its checks never replaces good data — the source is flagged stale instead
  • Each change keeps before, after, source and time
The path of one source run. The change count is read from the database.

Change types

Four kinds of change. Each one dated.

20,850,573 changes recorded since ingestion began. The newest of each type, as of this page’s last refresh:

  • insert

    Added

    A product, pack, price or record appears in a register for the first time.

    Latest: · ePHA interactions

  • update

    Updated

    A field moved — a price, a status, a name, a pack. The row keeps both before and after.

    Latest: · ePHA interactions

  • delete

    Removed

    A record left the register it came from — a withdrawn pack, a delisted product.

    Rare — recorded when a source drops a record

  • recall

    Recall

    A recall or safety notice published by the regulator, tied to the product where we can match it.

    Latest: · Swissmedic recalls

Be told

Stop re-importing. Ask what moved.

Follow a medicine in the console, poll the change feed with a cursor, or have us POST each batch to your URL, signed.

  • The console’s Watchtower feed — no code
  • GET /v1/changes?since=… — cursor-paged, on every plan
  • Signed webhooks (HMAC-SHA256) from the Starter plan, $99/month
poll
GET /v1/changes?since=2026-09-01T00:00:00Z&limit=100
Authorization: Bearer dd_live_…
webhook
POST https://your-app.example/hooks/drug-database
x-drug-database-signature: sha256=<hex>
content-type: application/json

Request shapes from the API and webhook docs; values are placeholders.

When a source drifts

Stale is flagged, never silent.

When a publisher changes its file’s shape, the run fails its checks, promotion stops, and the last good data keeps serving — flagged on every response that uses it.

  1. 01

    Detect

    The run fails its shape checks; failing rows go to quarantine.

  2. 02

    Hold

    Nothing is promoted. The last good rows stay in production.

  3. 03

    Flag

    schema_state turns stale in _meta.sources, with the last sync date.

  4. 04

    Recover

    The parser is fixed, the source re-runs, and the changes land in the feed.

What counts as a change?
A product, pack, price or record that appears in a register for the first time; a field that moves (a price, a status, a name); a record that leaves the register; and a recall or safety notice published by the regulator. Each is stored with before, after, source and time.
How quickly does a change show up?
As quickly as its source publishes and we fetch it: each register is read on its publisher’s own schedule, so a daily feed lands daily and a weekly list weekly. /status shows when each source last synced.
Which plan includes the change feed and webhooks?
The change feed (console and GET /v1/changes) is on every plan, Free included, and browsing it never uses a lookup. Signed webhooks start at Starter, $99/month.
Is a recall in the feed a safety alert?
No. It is a record of what the regulator published, with the source and date — informational only, not a medical device and not a substitute for the regulator’s own safety communications.

Follow changes

Last change seen: Swissmedic recalls, 4 Nov 2026.

Follow the registers you care about from a free account — the change feed never uses a lookup.

Free to try · 10 lookups in total · No card required