ClinicalTrials.gov Scraper & New Trials Monitor avatar

ClinicalTrials.gov Scraper & New Trials Monitor

Pricing

$2.00 / 1,000 trials

Go to Apify Store
ClinicalTrials.gov Scraper & New Trials Monitor

ClinicalTrials.gov Scraper & New Trials Monitor

Search and monitor ClinicalTrials.gov by condition, sponsor, phase, status and date range. Monitor mode returns only trials that are new or updated since your last run. Official API v2, no start fee.

Pricing

$2.00 / 1,000 trials

Rating

0.0

(0)

Developer

Better Atoms Technologies LLP

Better Atoms Technologies LLP

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

ClinicalTrials.gov Scraper & New Trials Monitor (Official API v2)

Search ClinicalTrials.gov by condition, sponsor, phase, recruitment status and date range, and export clean trial records as JSON, CSV or Excel. Switch on monitor mode and each scheduled run returns only trials that are new or updated since your last run. That gives you a daily or weekly feed of trial changes for your indication, competitors or sponsors.

The actor uses only the official ClinicalTrials.gov API v2 (https://clinicaltrials.gov/api/v2/studies), the public registry API run by the U.S. National Library of Medicine. You don't need an API key, a login, proxies or a browser, and it doesn't crawl the website.

Use cases

  • Pharma and biotech competitive intelligence: track every Phase 2/3 trial in your indication, or every trial a competitor sponsors, and see status changes, new sites and new trials as they're posted.
  • CRO and site business development: find trials that are recruiting or not yet recruiting, by condition, phase and country, to target sponsors that need sites and services.
  • Investors and analysts: monitor pipeline events (new trials, terminations with whyStopped, results posted) for the companies you follow.
  • Medical affairs, patient advocacy and newsletters: a weekly digest of new trials for a disease area, sent to Slack, Google Sheets, email or your CRM with Apify integrations and webhooks.
  • AI agents and RAG pipelines: clean, structured trial records with summaries, outcomes and interventions.

Filters

FieldWhat it does
conditionsDiseases or conditions, e.g. obesity, non-small cell lung cancer. ClinicalTrials.gov expands synonyms. Several values are combined with OR
sponsorsLead sponsor or collaborator, e.g. Pfizer, Novo Nordisk
keywordsFree text anywhere in the record, e.g. a drug name such as tirzepatide
locationsSite location terms, e.g. India, Germany, Boston
phasesEarly phase 1, phase 1, 2, 3, 4 or not applicable
statusesRecruiting, Not yet recruiting, Active not recruiting, Completed, Terminated, …
studyTypesInterventional, Observational or Expanded access
dateField, dateFrom, dateToDate range on last update posted, first posted, start, primary completion or completion date
modesearch (all matches) or monitor (only new or updated since the last run)
stateKey, monitorInitialLookbackDaysMonitor memory name, and how far back the first monitor run looks
maxItemsMaximum trials per run, which also caps your cost

Example: recruiting Phase 3 obesity trials

{ "mode": "search", "conditions": ["obesity"], "phases": ["PHASE3"], "statuses": ["RECRUITING"], "maxItems": 500 }

Example: daily monitor of a competitor's oncology trials

{ "mode": "monitor", "sponsors": ["AstraZeneca"], "conditions": ["cancer"], "stateKey": "az-oncology",
"monitorInitialLookbackDays": 30, "maxItems": 1000 }

Schedule it daily in Apify Console (Schedules). The first run returns trials updated in the last 30 days. Each later run returns only trials that are new or have a newer "last update posted" date, tagged changeType: "new" or "updated".

Sample output

Real record from the local test run on 23 Oct 2026 (summary shortened):

{
"nctId": "NCT07220772",
"briefTitle": "A Study Evaluating Mibavademab Treatment of Obesity Due to Leptin (LEP) Gene Mutations in Children, Adolescents and Adults",
"orgStudyId": "R4461-MOB-2471",
"overallStatus": "RECRUITING",
"studyType": "INTERVENTIONAL",
"phases": ["PHASE3"],
"conditions": ["Monogenic Obesity"],
"interventions": [{ "type": "DRUG", "name": "Mibavademab" }],
"leadSponsor": "Regeneron Pharmaceuticals",
"leadSponsorClass": "INDUSTRY",
"collaborators": [],
"enrollment": 4, "enrollmentType": "ESTIMATED",
"allocation": "NA", "primaryPurpose": "TREATMENT",
"sex": "ALL", "minimumAge": "2 Years", "maximumAge": null, "healthyVolunteers": false,
"primaryOutcomes": ["Percent change in Body Mass Index (BMI)"],
"startDate": "2026-02-09",
"primaryCompletionDate": "2027-06-18",
"completionDate": "2028-04-21",
"studyFirstPostDate": "2025-10-24",
"lastUpdatePostDate": "2026-10-22",
"resultsFirstPostDate": null, "hasResults": false,
"locationCount": 3,
"locationCountries": ["Germany", "Turkey (Türkiye)"],
"briefSummary": "This study is researching an experimental drug called mibavademab. …",
"url": "https://clinicaltrials.gov/study/NCT07220772",
"source": "ClinicalTrials.gov API v2",
"scrapedAt": "2026-10-23T04:12:34.001406Z"
}

In monitor mode each record also has changeType (new, updated, or initial on the first run). sample_output.json holds more real records.

Pricing

Pay per result: $0.002 per trial ($2 per 1,000 trials). There's no start fee, so a monitor run that finds nothing new costs you nothing in result fees. Use maxItems to cap spend.

FAQ

Is this allowed? Yes. The actor calls the public ClinicalTrials.gov API v2, which NLM provides for programmatic access. It doesn't scrape the website. Please follow ClinicalTrials.gov's terms and cite it as the source when you republish.

How does monitor mode know what's new? It keeps a small state per stateKey in a named key-value store in your Apify account (clinicaltrials-monitor-state), with a "last update posted" watermark and the trial IDs already returned for that date. Each run asks the API only for trials updated on or after the watermark and skips versions you already received. The run's default key-value store also gets a copy (MONITOR_STATE) and a RUN_SUMMARY. Changes are processed oldest first, so if maxItems stops a run early, the next run picks up where it left off.

How often should I run the monitor? ClinicalTrials.gov refreshes its data once a day (on weekdays), so a daily schedule is enough.

Does it include investigator or contact details? No. Contact names, emails and phone numbers are left out on purpose. You get sponsor, design, status, dates, countries and site counts.

Why are some fields null? The sponsor didn't report them. The actor never fills in or guesses values.

Rate limits? The actor waits 1.5 seconds between API requests (at most about 40 per minute) and retries 429 and 5xx responses with backoff, honouring Retry-After. One request returns up to 1,000 trials, so most runs finish in seconds.

Notes and limits

  • Data is provided as-is by sponsors through ClinicalTrials.gov. Always confirm details on the linked study page.
  • Dates are reported as the registry publishes them. Some are month-only, such as 2027-06.
  • This actor is not affiliated with or endorsed by NIH, NLM or ClinicalTrials.gov.

Local development

pip install -r requirements.txt
# edit storage/key_value_stores/default/INPUT.json, then:
python -m src
# end-to-end test (5 runs against the live API v2, including monitor mode):
python tests/run_local_test.py