ClinicalTrials.gov API
Free ClinicalTrials.gov API with no key: 500,000+ clinical studies worldwide with conditions, interventions, eligibility, locations and results. Tested example.
Endpoint tested and returned HTTP 200 on 2026-08-19
What is the ClinicalTrials.gov API?
The ClinicalTrials.gov API is a free, key-free API from the US National Library of Medicine providing data on more than 500,000 clinical studies worldwide — conditions, interventions, eligibility criteria, sites and posted results.
This is the definitive registry of clinical research. Every study has a structured record covering the condition studied, the intervention, phase, recruitment status, eligibility criteria and participating sites, plus results where they have been posted.
The v2 API is a substantial redesign from the retired v1 — the paths, parameter names and response structure all changed. A great deal of older tutorial code targets v1 and will not work, so check you are reading current documentation.
Quick facts
- Base URL
https://clinicaltrials.gov/api/v2- Authentication
- No API key required.
- Rate limit
- No published hard limit; large paged queries should be throttled.
- Pricing
- Free public domain US government data.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the ClinicalTrials.gov API
Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.
1. Fetch a clinical study record
GET https://clinicaltrials.gov/api/v2/studies?pageSize=1
curl 'https://clinicaltrials.gov/api/v2/studies?pageSize=1'const res = await fetch("https://clinicaltrials.gov/api/v2/studies?pageSize=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://clinicaltrials.gov/api/v2/studies?pageSize=1", timeout=20)
res.raise_for_status()
print(res.json()){
"studies": [
{
"protocolSection": {
"identificationModule": {
"nctId": "NCT05823935",
"orgStudyIdInfo": {
"id": "MD.22.10.703"
},
"organization": {
"fullName": "Mansoura University",
"class": "OTHER"
},
"briefTitle": "Laparoscopic Versus Vaginal Cuff Closure During LH in Benign Gynecological Lesions",
"officialTitle": "Laparoscopic Versus Vaginal Cuff Closure During Laparoscopic Hysterectomy in Benign Gynecological Lesions"
},
"statusModule": {
"statusVerifiedDate": "2023-04",
"overallStatus": "UNKNOWN",
"lastKnownStatus": "RECRUITING",
"expandedAccessInfo": {
"hasExpandedAccess": false
},
"startDateStruct": {
"date": "2022-11-05",
"type": "ACTUAL"
},
"primaryCompletionDateStruct": {
"date": "2023-11",
"type": "ESTIMATED"
},
"completionDateStruct": {
"date": "2023-11",
"type": "ESTIMATED"
},
"studyFirstSubmitDate": "2023-04-09",
"studyFirstSubmitQcDate": "2023-04-09",
"studyFirstPostDateStruct": {
"date": "2023-04-21",
"type": "ACTUAL"
},
"lastUpdateSubmitDate": "2023-04-09",
"lastUpdatePostDateStruct": {
"date": "2023-04-21",
"type": "ACTUAL"
}
},
"sponsorCollaboratorsModule": {
"responsibleParty": {Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
pageSize | integer | Optional | Results per page, max 1000. 10 |
pageToken | string | Optional | Token from the previous response for the next page. abc123 |
query.cond | string | Optional | Search by condition or disease. diabetes |
query.intr | string | Optional | Search by intervention or treatment. metformin |
filter.overallStatus | string | Optional | RECRUITING, COMPLETED, TERMINATED and others. RECRUITING |
fields | string | Optional | Restrict returned fields to shrink the payload. NCTId,BriefTitle |
Response fields
studies[].protocolSection.identificationModule.nctIdstring- The NCT registry number identifying the study.
...identificationModule.briefTitlestring- Study title.
...statusModule.overallStatusstring- Recruitment status.
...conditionsModule.conditionsarray- Conditions being studied.
...armsInterventionsModule.interventionsarray- Treatments or interventions tested.
...eligibilityModuleobject- Inclusion and exclusion criteria, age and sex.
nextPageTokenstring- Cursor for the next page of results.
What you can build with the ClinicalTrials.gov API
- Help patients find clinical trials recruiting for their condition
- Research the treatment landscape for a disease area
- Monitor competitor pipelines in pharmaceutical research
- Analyse trial design and outcome trends
Common errors and how to fix them
v1 URLs return 404
The v1 API was retired.
Fix: Use /api/v2 paths and the new parameter names; older tutorials target the removed v1.
Deeply nested fields
Records are organised into protocolSection modules.
Fix: Use the `fields` parameter to flatten what you need rather than traversing the whole structure.
Enormous responses
Full study records are very large.
Fix: Always set `fields` and a modest pageSize.
ClinicalTrials.gov API — frequently asked questions
Is the ClinicalTrials.gov API free?
Yes, completely free with no API key. It is US government public domain data.
Why do my old ClinicalTrials.gov API calls fail?
The v1 API was retired and replaced by v2, which changed paths, parameter names and the response structure. Older tutorials will not work — use /api/v2.
How do I find trials recruiting for a condition?
Combine query.cond with filter.overallStatus=RECRUITING, then read the location module to find nearby sites.
Are trial results included?
Where sponsors have posted them, yes — in the resultsSection. Many studies have no posted results, particularly older or terminated ones.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
ClinicalTrials.gov is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.