ClinicalTrials.gov logo

Research · Coming soon

ClinicalTrials.gov Studies Search and Monitor

Search ClinicalTrials.gov with simple filters and export study records. Save a snapshot and compare it next time. You see which studies are new or changed status.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

What you get, for example

nctIdNCT07348432
briefTitleThe diabEAT Study: Insulin dElivery Technologies And eaTing…
overallStatusRECRUITING

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: [] in Study countries. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Search ClinicalTrials.gov by disease, treatment, sponsor, country, recruitment status or phase. Get study records and compare them with your own earlier snapshot. No API key is needed.

Who uses it

Pharma business teams

Watch studies by drug, sponsor or phase.

CRO planners

Find recruiting studies by country.

Registry analysts

Export study data for research.

Price

Prices will be shown after release.

Questions

Can it match patients to trials?

No. It returns public study data only. It gives no medical advice.

Does it give contact details?

No. Personal contacts are not returned.

How many studies can one run check?

Up to 500 studies per run.

Do I need an API key?

No. The ClinicalTrials.gov API is public.

Details

Step by step on Apify
  1. Open Input. The new form has condition: "diabetes", overallStatus: ["RECRUITING"], maxResults: 25 and onlyNew: false.
  2. Click Start.
  3. Open Output → Studies. Check nctId, briefTitle and overallStatus.
  4. Export JSON, CSV or Excel from the Dataset.
  5. For a later comparison, open Next snapshot and save the whole JSON object.
Use cases
TaskFiltersKey fields
Review a disease research pipelinecondition, phaseNCT ID, phases, sponsor, enrollment
Review an organization portfoliosponsorTitles, countries, dates
Watch recruitment updatespreviousSnapshot, onlyNewChange type, status, content fingerprint
Export a regional registry listcountries, overallStatusCountries, status, source links
Tips for better results
  • Start with a small max number, like 25, then grow it.
  • Keep the same filters when you use a saved snapshot.
  • Look at the date type. Estimated dates are plans, not facts.
Limits and good to know

The proven maximum is 500 distinct studies per run. Work at the source stops after 90 seconds. Requests have a 15-second limit, including the body. The Actor retries temporary errors at most three attempts, with at most two timeouts. It reads at most 10 study pages and accepts at most 6 MB of response data. A large or slow response can produce partial output.

Troubleshooting

ProblemAction
No rowsCheck spelling and combined filters. Read summary: not_found is a valid result.
No changesThis can be normal. Check scanned count and the same search fingerprint.
SNAPSHOT_QUERY_MISMATCHRestore the filters and maxResults from the baseline run.
INVALID_previousSnapshotCopy the full successful SNAPSHOT, not Dataset rows.
SOURCE_QUERY_REJECTEDCheck the text search syntax, for example an unclosed bracket or quote.
Unknown country nameUse registry country names such as United States, Korea, Republic of or Turkey (Türkiye).
SOURCE_RATE_LIMIT or SOURCE_UNAVAILABLERetry later. Do not run many copies at once.
Deadline or byte limitUse a smaller or narrower search. Partial data remains visible.

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "nctId":"NCT07348432",
  "briefTitle":"The diabEAT Study: Insulin dElivery Technologies And eaTing Behaviours in People With Type 1 Diabetes",
  "overallStatus":"RECRUITING",
  "phases":[],
  "studyType":"OBSERVATIONAL",
  "leadSponsor":"McGill University",
  "enrollment":106,
  "enrollmentType":"ESTIMATED",
  "startDate":{"date":"2024-07-29","type":"ACTUAL"},
  "primaryCompletionDate":{"date":"2026-10-31","type":"ESTIMATED"},
  "completionDate":{"date":"2027-04-30","type":"ESTIMATED"},
  "locationsCount":1,
  "countries":["Canada"],
  "lastUpdatePostDate":"2026-10-09",
  "url":"https://clinicaltrials.gov/study/NCT07348432",
  "changeType":"SNAPSHOT"
}
Data fields (30)
FieldTypeMeaning
nctIdstringClinicalTrials.gov registry ID, for example NCT07348432.
briefTitlestringShort public title of the study.
officialTitlestringFull official study title. Null when the registry has none.
overallStatusstringOverall recruitment status, for example RECRUITING or COMPLETED.
phasesarrayStudy phases from the registry, for example PHASE2 and PHASE3. Empty when no phase is reported; NA means not applicable.
studyTypestringINTERVENTIONAL, OBSERVATIONAL or EXPANDED_ACCESS. Null when not reported.
conditionsarrayDiseases or conditions reported for the study.
interventionsarrayTreatments as {name, type}, for example a drug or device. No contact data.
leadSponsorstringOrganization that leads the study. Null when not reported.
leadSponsorClassstringRegistry organization class, for example INDUSTRY, NIH or OTHER.
collaboratorsarrayPartner organizations as {name, class}.
enrollmentnumberNumber of participants reported by the sponsor. Null means not reported, not zero.
enrollmentTypestringACTUAL for a reported count, ESTIMATED for a planned count.
startDateobjectStudy start as {date, type}. Type is ACTUAL or ESTIMATED; the date can be year-month only.
primaryCompletionDateobjectDate of the last main outcome measurement as {date, type}.
completionDateobjectStudy completion as {date, type}.
locationsCountintegerNumber of study site entries. Null when the registry did not return sites.
countriesarrayUnique countries of study sites.
lastUpdatePostDatestringDate the latest study update was posted, YYYY-MM-DD.
urlstringPublic ClinicalTrials.gov page of the study.
providerstringAlways ClinicalTrials.gov.
sourceUrlstringOfficial API URL of this study record.
fetchedAtstringTime this run read the record, ISO UTC.
sourceUpdatedAtstringSame value as the last update posted date.
providerDataTimestampstringRegistry data processing time from the API version endpoint.
licensestringReuse terms notice for the registry data.
licenseUrlstringLink to the ClinicalTrials.gov terms and conditions.
changeTypestringSNAPSHOT without a baseline; NEW, UNCHANGED, STATUS_CHANGED or UPDATED against your previous snapshot.
changedFieldsarrayoverallStatus for a status change, record for any other content change.
contentHashstringSHA-256 of the normalized study content, used for comparison. Fetch time is not included.
Input settings (10)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Condition or diseaseconditionstring"diabetes"
Intervention or druginterventionstring""
Sponsor or collaboratorsponsorstring""
Updated sinceupdatedSincestring""
Study countriescountriesarray[]
Recruitment statusesoverallStatusarray["RECRUITING"]
Study phasesphasearray[]
Maximum studies to scanmaxResultsinteger25
Previous snapshotpreviousSnapshotobject
Return changes onlyonlyNewbooleanfalse

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure