ClinicalTrials.gov Protocol Change Monitor
Pricing
$3.40 / 1,000 result storeds
ClinicalTrials.gov Protocol Change Monitor
Purpose-built diff stream for ClinicalTrials.gov v2 — per-NCT status / enrollment / endpoint / sponsor / eligibility / locations changes as JSONL. Replaces Evaluate Pharma + Citeline + general-purpose scrapers like Browse AI for pharma BI, drug-discovery AI agents, biotech reporters. Public runs.
Pricing
$3.40 / 1,000 result storeds
Rating
0.0
(0)
Developer
ChangeWire
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
17 days ago
Last modified
Share
actor-1-clinicaltrials-protocol-diff
Apify actor that monitors ClinicalTrials.gov protocol-change events (status updates, enrollment milestones, primary-endpoint edits, sponsor changes) and emits per-NCT-ID JSONL diff records.
Who this is for
- Pharma competitive-intel analysts at small BI shops (buy substitute: Evaluate Pharma $35k/yr, Citeline $50k+/yr, Informa BDCI).
- AI-agent builders embedding drug-discovery workflows who need structured protocol-change streams.
- Medical journalists at STAT / Endpoints / FiercePharma tracking trial-design changes.
What it does
- Accepts a watchlist config (sponsor / indication / phase / NCT ID list).
- Fetches current studies via ClinicalTrials.gov REST API v2.
- Diffs against the previous snapshot in Apify Dataset
(
.actor/input_schema.jsonpicks the key-value store). - Emits one dataset record per detected change with:
nct_idchange_type(status / enrollment / endpoint / sponsor / eligibility / locations)before/aftervaluesdetected_attimestamp- standard
BaseRecordfields (actor, schema_version, extracted_at, source_url)
Pricing (Apify Store)
Pay-per-result (PPR):
- $0.02 per new diff record emitted.
- Typical buyer: watchlist of ~500 studies, weekly cron → ~50-200 changes/week → ~$1-4/week Apify charge → $4-16/month.
- Mid-market buyer: watchlist of 5000 studies, daily cron → ~100-500 changes/day → $2-10/day → $60-300/month.
Inputs (see .actor/input_schema.json)
| Field | Type | Default | Description |
|---|---|---|---|
watchlist | array of NCT IDs | [] | Explicit study list |
sponsors | array of strings | [] | Filter by sponsor name (partial match) |
conditions | array of strings | [] | MeSH condition terms |
phases | array of strings | [] | e.g. ["Phase 2", "Phase 3"] |
statuses | array of strings | [] | e.g. ["Recruiting", "Active, not recruiting"] |
change_types | array of strings | all six | Which diff types to emit |
snapshot_key | string | auto | Key-value store key for previous snapshot |
max_studies | int | 10000 | Hard cap for cost ceiling |
Output
JSONL dataset; one record per detected change. Example::
{"actor": "actor-1-clinicaltrials-protocol-diff","schema_version": "1.0.0","extracted_at": "2026-05-11T18:00:00Z","source_url": "https://clinicaltrials.gov/study/NCT01234567","nct_id": "NCT01234567","change_type": "status","before": {"overall_status": "Not yet recruiting"},"after": {"overall_status": "Recruiting"},"detected_at": "2026-05-11T18:00:00Z"}
Running locally
# from repo root after `pip install -e .[dev]`:cd actors/actor-1-clinicaltrials-protocol-diffapify run --purge # uses .actor/input_schema.json defaults
For a targeted run, pass explicit input::
apify run --input '{"watchlist": ["NCT01234567"]}'
Known gotchas
- CT.gov v2 API returns
nullfor many optional fields where v1 returned empty strings.extract.pynormalises both toNone. conditionsinput uses partial-match on normalized MeSH term — "Alzheimer" will match "Alzheimer Disease" and "Alzheimer's Disease". Buyers sometimes assume exact-match; README + listing must be explicit.- Studies in
"Withdrawn"status are frequently re-activated. Treat status transitions as bidirectional, NOT a one-way flow.
Store listing (draft — edit before publish)
Title
ClinicalTrials.gov Protocol Change Monitor
Tagline
Daily diff of NIH-registered trial protocols. Drop Evaluate Pharma and Citeline — get the same change stream for 1/100th the cost.
Features
- ✅ Full ClinicalTrials.gov REST API v2 coverage (500k+ studies)
- ✅ Six change types (status, enrollment, endpoint, sponsor, eligibility, locations)
- ✅ Watchlist OR sponsor OR condition OR phase filters
- ✅ JSONL dataset output, ready for your BI pipeline
- ✅ Incremental: first run snapshots, later runs diff
Example use cases
- Competitive intel: Track all Phase 2/3 trials by Roche / AstraZeneca / Novartis for oncology. Alert on enrollment changes.
- Indication tracking: Monitor every NCT study in Alzheimer's disease — know when any trial changes primary endpoints.
- Drug-discovery AI agent: Feed change events into your agent's context as a retrieval-augmented fact stream.
Legal
ClinicalTrials.gov data is US government public-domain (42 USC §282(j)). Actor respects CT.gov rate limits (2 rps default). No PII in output.