ClinicalTrials.gov API — NIH Study Registry Search
Pricing
from $2.00 / 1,000 successful lookups
ClinicalTrials.gov API — NIH Study Registry Search
Look up registered clinical trials by NCT ID against the official, free NIH ClinicalTrials.gov registry. Get status, phase, study type, sponsor, enrollment count, conditions, interventions, and trial site countries. Pay only for NCT IDs that resolve.
Pricing
from $2.00 / 1,000 successful lookups
Rating
0.0
(0)
Developer
Adrian Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 hours ago
Last modified
Categories
Share
ClinicalTrials.gov Study Lookup
Look up any registered clinical trial by NCT ID against the official, free ClinicalTrials.gov v2 API run by the U.S. National Institutes of Health — status, phase, sponsor, enrollment, conditions, interventions, and trial site countries. No API key, no scraping — this hits the official government API directly.
Features
- NCT ID → full protocol record. Brief and official title, overall status, phase, study type, start/completion dates.
- Sponsor & scale. Lead sponsor name and target enrollment count.
- Clinical detail. Conditions studied, interventions (with type: drug, device, behavioral, etc.), and location countries with site count.
- Pay only for hits. NCT IDs that don't resolve cost nothing — see Pricing.
- Built for bulk. Feed in thousands of NCT IDs; concurrency, keyword filtering, and column selection are all configurable.
How to use ClinicalTrials.gov Study Lookup — Official NIH Registry API
- In the Apify Console. Open the actor page and click Start — the
nctIdsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~clinicaltrials-study-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"nctIds":["NCT04280705"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"nctIds": ["NCT04280705"]}
One NCT ID per line, e.g. NCT04280705. Accepted formats: NCT04280705.
{"nctIds": ["NCT04280705"],"testRun": false,"onlyFound": false,"maxConcurrency": 5}
nctIds is a list of ClinicalTrials.gov identifiers (format NCT followed by 8 digits,
e.g. NCT04280705). One dataset row is returned per ID; rows with "found": false are
never charged. Turn on testRun to try your list against just the first 5 IDs before
running the full batch. Optional includeKeywords / excludeKeywords filter rows by
content, maxResults caps the run early, and columns lets you pick which fields to
return.
Output
| query | found | status | title | nctId | overallStatus | phase | studyType | startDate | completionDate | enrollment | leadSponsor | conditions | interventions | locationCountries | locationCount | briefSummary | officialTitle | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NCT04280705 | true | OK | Adaptive COVID-19 Treatment Trial (ACTT) | NCT04280705 | COMPLETED | PHASE3 | INTERVENTIONAL | 2020-02-21 | 2020-05-21 | 1062 | National Institute of Allergy and Infectious Diseases (NIAID) | ["COVID-19"] | [{"type":"OTHER","name":"Placebo"},{"type":"DRUG","name":"Remdesivir"}] | ["United States","Denmark","Germany","Greece","Japan","Mexico","Singapore","South Korea","Spain","United Kingdom"] | 60 | This study is an adaptive, randomized, double-blind, placebo-controlled trial to evaluate the safety and efficacy of novel therapeutic agents in hospitalized adults diagnosed with COVID-19. The study is a multicenter trial that will be conducted in up to approximately 100 sites globally. The study will compare different investigational therapeutic agents to a control arm. There will be interim monitoring to introduce new arms and allow early stopping for futility, efficacy, or safety. If one therapy proves to be efficacious, then this treatment may become the control arm for comparison(s) with new experimental treatment(s). Any such change would be accompanied by an updated sample size. Because background standards of supportive care may evolve/improve over time as more is learned about successful management of COVID-19, comparisons of safety and efficacy will be based on data from concurrently randomized subjects. An independent Data and Safety Monitoring Board (DSMB) will actively monitor interim data to make recommendations about early study closure or changes to study arms. To evaluate the clinical efficacy, as assessed by time to recovery, of different investigational therapeutics as compared to the control arm. | A Multicenter, Adaptive, Randomized Blinded Controlled Trial of the Safety and Efficacy of Investigational Therapeutics for the Treatment of COVID-19 in Hospitalized Adults | 2026-08-31T06:20:20.443Z |
One row per NCT ID, for example:
{"query": "NCT04280705","found": true,"status": "OK","nctId": "NCT04280705","title": "Adaptive COVID-19 Treatment Trial (ACTT)","officialTitle": "A Multicenter, Adaptive, Randomized Blinded Controlled Trial of the Safety and Efficacy of Investigational Therapeutics for the Treatment of COVID-19","overallStatus": "COMPLETED","startDate": "2020-02-21","completionDate": "2021-04-19","phase": "PHASE3","studyType": "INTERVENTIONAL","enrollment": 1062,"leadSponsor": "National Institute of Allergy and Infectious Diseases (NIAID)","conditions": ["Covid19"],"interventions": [{ "type": "DRUG", "name": "Remdesivir" }],"locationCountries": ["United States", "South Korea", "Japan"],"locationCount": 60,"briefSummary": "A randomized, placebo-controlled trial evaluating investigational therapeutics for COVID-19...","scrapedAt": "2026-08-21T10:00:00.000Z"}
NCT IDs that don't resolve still get a row ("found": false, "status": "NOT_FOUND" or
"BAD_FORMAT", with a plain-English message), so you always get one row per input —
but you're never charged for those.
Use cases
- Trial status monitoring — track a watchlist of NCT IDs for status changes (recruiting → active → completed) across a therapeutic area.
- Competitive intelligence — pull sponsor, phase, and enrollment for a set of trials in a given condition or drug class.
- Site & country coverage analysis — see which countries a trial recruits in and how many sites it runs, without opening each record.
- Regulatory & literature enrichment — attach structured trial metadata to a publication or citation dataset that already references NCT IDs.
Pricing
$4 per 1,000 studies, plus a $0.00005 start fee. Misses (found:false) are never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~clinicaltrials-study-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"nctIds":["NCT04280705"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~clinicaltrials-study-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"nctIds":["NCT04280705"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~clinicaltrials-study-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"nctIds":["{{study}}"]}, mapping the row's study into the nctIds array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "ClinicalTrials.gov API — Study Protocol & Status Lookup" — the agent will find and run this actor.
FAQ
Do I need a ClinicalTrials.gov API key? No. The ClinicalTrials.gov v2 API is free and public — this actor calls it directly, with no credentials required on your end.
What counts as "not found"?
A well-formed NCT ID with no matching study returns "found": false" with
"status": "NOT_FOUND"NCT + 8-digit pattern is rejected before
any request is made and returns "BAD_FORMAT". Neither is charged.
What ID format does it expect?
NCT followed by exactly 8 digits, e.g. NCT04280705. The actor extracts the NCT
pattern from your input automatically, so pasting a longer string containing a valid ID
still works.
Does phase cover trials with multiple phases?
Yes — some trials span more than one phase (e.g. Phase 2/3). When that's the case,
phase returns a comma-separated list, e.g. "PHASE2, PHASE3".
Can I run this against thousands of NCT IDs at once?
Yes. Turn on testRun first to sanity-check your list against just 5 IDs, then run the
full batch — maxConcurrency controls how many requests run in parallel.
Is this limited to U.S. trials?
No — ClinicalTrials.gov indexes trials registered from sponsors and sites worldwide.
Use locationCountries in each result to see which countries a given trial actually
recruits in.