ClinicalTrials.gov Search: Trials by Condition, Drug, Location
Pricing
Pay per event
ClinicalTrials.gov Search: Trials by Condition, Drug, Location
Pricing
Pay per event
Rating
0.0
(0)
Developer
David-Solal Chalmeau
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Security
Limited permissionsShare
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
| Field | Description |
|---|---|
nctId, title, officialTitle, url | Identification |
status, startDate, primaryCompletionDate, completionDate, lastUpdatePosted | Status & timeline |
phases, studyType | Design |
conditions, interventions (name + type) | What's being studied |
sponsor, leadSponsorClass | Who runs it |
enrollmentCount, minimumAge, maximumAge, sex | Eligibility |
locationsCount, countries (deduped) | Where it's conducted |
briefSummary (trimmed to 1500 chars), hasResults | Plain-language summary & whether results are posted |
totalCount, truncated | Search 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) |
fetchedAt | Fetch 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_MATCHrow (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_FOUNDrow; - input
nctIdsbeyond the 2000-ID hard cap → one freeTRUNCATED_NCT_IDSrow naming the supplied/unique counts and the dropped IDs; - your spending limit stopping the run early → one free
STOPPED_BY_CHARGE_LIMITrow 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_FAILEDrow, which still carriestotalCountandtruncated; - 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.
maxStudiesdefaults to 100 and is hard-capped at 2000 per run. It applies to searches, not to an explicitnctIdslist (which has its own 2000-ID cap, reported asTRUNCATED_NCT_IDS). It counts distinct studies: a study the API serves twice is delivered and billed once.- The API is asked for
countTotalon the first page, so every search row (freeCHECK_FAILEDrows included) and the run stats carrytotalCountandtruncated: 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 omitstotalCountwhilemaxStudiesstill cut the run,truncatedistrue— an unknown total is never reported as "not truncated". - A
200response from the API that has nostudiesarray (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,termandlocationare limited to 500 characters each; a longer value fails the run before any request is made.statusesacceptsRECRUITING,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
fieldsparameter), 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.