ClinicalTrials.gov Search: Trials by Condition, Drug, Location avatar

ClinicalTrials.gov Search: Trials by Condition, Drug, Location

Pricing

Pay per event

Go to Apify Store
ClinicalTrials.gov Search: Trials by Condition, Drug, Location

ClinicalTrials.gov Search: Trials by Condition, Drug, Location

Pricing

Pay per event

Rating

0.0

(0)

Developer

David-Solal Chalmeau

David-Solal Chalmeau

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Security

Limited permissions

Share

ClinicalTrials.gov Search: Find Trials by Condition, Drug, Location

Search the official ClinicalTrials.gov registry for clinical trials by condition, intervention/drug, free-text term, location, or recruitment status — or fetch specific studies directly by NCT ID. Each result is a flat JSON row ready for dashboards, screening lists, or an AI agent.

What you get per study

FieldDescription
nctId, title, officialTitle, urlIdentification
status, startDate, primaryCompletionDate, completionDate, lastUpdatePostedStatus & timeline
phases, studyTypeDesign
conditions, interventions (name + type)What's being studied
sponsor, leadSponsorClassWho runs it
enrollmentCount, minimumAge, maximumAge, sexEligibility
locationsCount, countries (deduped)Where it's conducted
briefSummary (trimmed to 1500 chars), hasResultsPlain-language summary & whether results are posted
totalCount, truncatedSearch results only: how many studies matched in total, and whether you did not receive everything the run asked for (a maxStudies cap, an unknown total that the cap cut short, or an early stop such as your spending limit)
fetchedAtFetch timestamp

Each study is delivered, and billed, at most once per run: if ClinicalTrials.gov's page cursor serves the same NCT ID twice (the registry is edited continuously), the duplicate is dropped and counted in the run stats as duplicatesDropped.

Example input

{ "condition": "asthma", "statuses": ["RECRUITING"], "maxStudies": 2 }

You can instead (or additionally) supply intervention, term, location, or nctIds (fetches those studies directly, ignoring other filters). At least one of condition, intervention, term, location or nctIds is required — the run fails immediately with a clear error otherwise, before anything is charged. Each free-text field (condition, intervention, term, location) accepts at most 500 characters, also checked before anything is fetched or charged.

maxStudies only caps a search, and it counts distinct studies, so a duplicate cannot use up the budget. An explicit nctIds list is an exact lookup, so it is returned in full even when it is longer than maxStudies; duplicate IDs are fetched once, the list is hard-capped at 2000 IDs, and any extras become a free TRUNCATED_NCT_IDS row that names the supplied and unique counts and the dropped IDs.

Example output (real run, trimmed)

{
"nctId": "NCT06311162",
"title": "Early Life Intervention in Pediatrics Supported by E-health - SMOKE",
"status": "RECRUITING",
"phases": ["NA"],
"studyType": "INTERVENTIONAL",
"conditions": ["Smoking Reduction", "Asthma in Children", "Wheezing"],
"interventions": [{ "name": "Life-Style app", "type": "BEHAVIORAL" }],
"sponsor": "Insel Gruppe AG, University Hospital Bern",
"leadSponsorClass": "OTHER",
"enrollmentCount": 160,
"maximumAge": "5 Years",
"sex": "ALL",
"locationsCount": 1,
"countries": ["Switzerland"],
"url": "https://clinicaltrials.gov/study/NCT06311162",
"hasResults": false,
"fetchedAt": "2026-10-28T05:24:47.151Z"
}

Pricing

Pay per event: a small start fee per run, plus a charge for each study delivered as a dataset row. Rows that are not studies are always free:

  • a search that matches nothing → one free NO_MATCH row (no per-study charge). It is delivered rather than omitted so a misspelled condition or term is visible instead of looking like a silent empty run; the row echoes what you searched for;
  • an NCT ID that doesn't exist → one free NOT_FOUND row;
  • input nctIds beyond the 2000-ID hard cap → one free TRUNCATED_NCT_IDS row naming the supplied/unique counts and the dropped IDs;
  • your spending limit stopping the run early → one free STOPPED_BY_CHARGE_LIMIT row naming how many requested studies or IDs were never processed (see below);
  • a study the API returned that could not be parsed → one free CHECK_FAILED row, which still carries totalCount and truncated;
  • an upstream failure → the run fails with a clear error rather than delivering partial data.

If your spending limit is reached, the Actor stops cleanly instead of running unpaid. It delivers one free STOPPED_BY_CHARGE_LIMIT row saying how many of the requested studies or NCT IDs were never processed, sets truncated to true, and says the same in the run's status message — a short list can never look complete. Current prices are shown on this page.

Good to know

  • Data source: ClinicalTrials.gov API v2, run by the U.S. National Library of Medicine (NLM). The data is U.S. government work in the public domain. This Actor is not affiliated with, endorsed by, or sponsored by the NLM or ClinicalTrials.gov, and nothing it returns is medical advice.
  • maxStudies defaults to 100 and is hard-capped at 2000 per run. It applies to searches, not to an explicit nctIds list (which has its own 2000-ID cap, reported as TRUNCATED_NCT_IDS). It counts distinct studies: a study the API serves twice is delivered and billed once.
  • The API is asked for countTotal on the first page, so every search row (free CHECK_FAILED rows included) and the run stats carry totalCount and truncated: you can tell "3 of 50,000" from "3 of 3" instead of guessing whether a short list means a narrow match or a cap. If the API omits totalCount while maxStudies still cut the run, truncated is true — an unknown total is never reported as "not truncated".
  • A 200 response from the API that has no studies array (a schema change or an interstitial page) is treated as an upstream failure. It is never mistaken for "end of results", which used to end a run with silent partial data.
  • condition, intervention, term and location are limited to 500 characters each; a longer value fails the run before any request is made.
  • statuses accepts RECRUITING, ACTIVE_NOT_RECRUITING, COMPLETED, ENROLLING_BY_INVITATION, NOT_YET_RECRUITING, SUSPENDED, TERMINATED, WITHDRAWN, AVAILABLE, NO_LONGER_AVAILABLE, TEMPORARILY_NOT_AVAILABLE, APPROVED_FOR_MARKETING, WITHHELD, UNKNOWN.
  • Only the fields needed for this output are requested from the API (via its fields parameter), to keep the run fast and cheap.
  • Requests are made politely: at most 2 concurrent requests to ClinicalTrials.gov, with automatic retry and backoff on HTTP 429/5xx.
  • No login, no API key, no scraping — this is the official, documented, keyless public API.