studies: Search and list clinical studies

API: clinicaltrials.gov:clinicaltrials.gov-api
Endpoint: /studies
Response format: application/json
Auth: none
Method: GET
Last Status: 200
Latency: 229ms

Description

Search and filter clinical trials based on various criteria including medical condition, intervention type, location, recruitment status, and more. Returns a paginated list of studies matching your criteria, with each study containing rich metadata including the NCT ID, title, status, conditions, interventions, sponsor information, and contact details. This is the primary endpoint for discovering clinical trials - use it when you need to find trials matching specific criteria (e.g., "all recruiting diabetes trials in California using metformin"). Results are paginated with a nextPageToken for retrieving additional pages. The response can be large (50KB+ per page) as it returns full study objects.

From spec: Retrieve a list of clinical studies matching the specified search criteria. Supports filtering by status, advanced queries, and pagination.

Usage Tips

- Use pageSize parameter (default 20, max 100) to control response size - Query parameters support AND logic - all conditions must match - Filter parameters (filter.overallStatus, filter.phase) work alongside query parameters - Search terms in query.term are matched across title, description, conditions, and interventions - Response does not include totalCount - use nextPageToken to iterate through results - For large result sets, consider adding date filters to narrow results

Parameters (6)

fields (string, query, optional)

Comma-separated list of fields to include in the response

filter.advanced (string, query, optional)

Advanced search query string for complex filtering

filter.overallStatus (string, query, optional)

Filter by study status (e.g., COMPLETED, RECRUITING, ACTIVE_NOT_RECRUITING, NOT_YET_RECRUITING, SUSPENDED, TERMINATED, WITHDRAWN)

Constraints: {'enum': ['COMPLETED', 'RECRUITING', 'ACTIVE_NOT_RECRUITING', 'NOT_YET_RECRUITING', 'SUSPENDED', 'TERMINATED', 'WITHDRAWN']}

pageSize (integer, query, optional, default: 10)

Number of results to return per page (default: 10)

Constraints: {'minimum': 1, 'maximum': 100}

pageToken (string, query, optional)

Token for retrieving the next page of results

sort (string, query, optional)

Field to sort results by

Examples (7)

Search clinical trials openapi-spec

Demonstrates complex multi-criteria search combining condition, intervention, location, sponsor, and status filters.

curl 'https://clinicaltrials.gov/api/v2/studies?query.term=heart+disease&query.cond=diabetes&query.intr=metformin&query.locn=New+York&query.spons=Harvard&filter.overallStatus=RECRUITING'
import requests

resp = requests.get(
    "https://clinicaltrials.gov/api/v2/studies",
    params={
        'query.term': 'heart disease',
        'query.cond': 'diabetes',
        'query.intr': 'metformin',
        'query.locn': 'New York',
        'query.spons': 'Harvard',
        'filter.overallStatus': 'RECRUITING',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("clinicaltrials")
result = api.fetch("studies", query.term="heart disease", query.cond="diabetes", query.intr="metformin", query.locn="New York", query.spons="Harvard", filter.overallStatus="RECRUITING")

for item in result:
    print(item)
const resp = await fetch("https://clinicaltrials.gov/api/v2/studies?query.term=heart+disease&query.cond=diabetes&query.intr=metformin&query.locn=New+York&query.spons=Harvard&filter.overallStatus=RECRUITING");
const data = await resp.json();
Search trials by medical condition curl

Search for clinical trials by medical condition with limited page size for smaller responses.

curl 'https://clinicaltrials.gov/api/v2/studies?query.cond=diabetes&pageSize=5'
import requests

resp = requests.get(
    "https://clinicaltrials.gov/api/v2/studies",
    params={
        'query.cond': 'diabetes',
        'pageSize': '5',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("clinicaltrials")
result = api.fetch("studies", query.cond="diabetes", pageSize=5)

for item in result:
    print(item)
const resp = await fetch("https://clinicaltrials.gov/api/v2/studies?query.cond=diabetes&pageSize=5");
const data = await resp.json();
Search for recruiting cancer trials curl

Search for actively recruiting cancer trials using condition filter and status filter.

curl 'https://clinicaltrials.gov/api/v2/studies?query.cond=cancer&filter.overallStatus=RECRUITING&pageSize=10'
import requests

resp = requests.get(
    "https://clinicaltrials.gov/api/v2/studies",
    params={
        'query.cond': 'cancer',
        'filter.overallStatus': 'RECRUITING',
        'pageSize': '10',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("clinicaltrials")
result = api.fetch("studies", query.cond="cancer", filter.overallStatus="RECRUITING", pageSize=10)

for item in result:
    print(item)
const resp = await fetch("https://clinicaltrials.gov/api/v2/studies?query.cond=cancer&filter.overallStatus=RECRUITING&pageSize=10");
const data = await resp.json();
Search by intervention and location curl

Search for vaccine trials in a specific geographic location.

curl 'https://clinicaltrials.gov/api/v2/studies?query.intr=vaccine&query.locn=United+States'
import requests

resp = requests.get(
    "https://clinicaltrials.gov/api/v2/studies",
    params={
        'query.intr': 'vaccine',
        'query.locn': 'United States',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("clinicaltrials")
result = api.fetch("studies", query.intr="vaccine", query.locn="United States")

for item in result:
    print(item)
const resp = await fetch("https://clinicaltrials.gov/api/v2/studies?query.intr=vaccine&query.locn=United+States");
const data = await resp.json();
Search clinical studies openapi-spec

Complex multi-parameter search combining condition, search terms, location, intervention, NCT ID, status, and phase filters.

curl 'https://clinicaltrials.gov/api/v2/studies?query.cond=cancer&query.term=immunotherapy&query.locn=United+States&query.intr=aspirin&query.id=NCT00281983&filter.overallStatus=RECRUITING&filter.phase=PHASE3'
import requests

resp = requests.get(
    "https://clinicaltrials.gov/api/v2/studies",
    params={
        'query.cond': 'cancer',
        'query.term': 'immunotherapy',
        'query.locn': 'United States',
        'query.intr': 'aspirin',
        'query.id': 'NCT00281983',
        'filter.overallStatus': 'RECRUITING',
        'filter.phase': 'PHASE3',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("clinicaltrials")
result = api.fetch("studies", query.cond="cancer", query.term="immunotherapy", query.locn="United States", query.intr="aspirin", query.id="NCT00281983", filter.overallStatus="RECRUITING", filter.phase="PHASE3")

for item in result:
    print(item)
const resp = await fetch("https://clinicaltrials.gov/api/v2/studies?query.cond=cancer&query.term=immunotherapy&query.locn=United+States&query.intr=aspirin&query.id=NCT00281983&filter.overallStatus=RECRUITING&filter.phase=PHASE3");
const data = await resp.json();
Search and retrieve clinical studies openapi-spec
curl 'https://clinicaltrials.gov/api/v2/studies?query.cond=cancer&query.term=diabetes&query.intr=insulin&query.titles=cardiovascular&query.spons=National+Cancer+Institute&query.id=NCT01901835&filter.overallStatus=RECRUITING&filter.advanced=condition%3Acancer+AND+location%3AUnited+States&fields=NCTId%2CBriefTitle%2CCondition%2COverallStatus&pageSize=10&sortOrder=desc'
import requests

resp = requests.get(
    "https://clinicaltrials.gov/api/v2/studies",
    params={
        'query.cond': 'cancer',
        'query.term': 'diabetes',
        'query.intr': 'insulin',
        'query.titles': 'cardiovascular',
        'query.spons': 'National Cancer Institute',
        'query.id': 'NCT01901835',
        'filter.overallStatus': 'RECRUITING',
        'filter.advanced': 'condition:cancer AND location:United States',
        'fields': 'NCTId,BriefTitle,Condition,OverallStatus',
        'pageSize': '10',
        'sortOrder': 'desc',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("clinicaltrials")
result = api.fetch("studies", query.cond="cancer", query.term="diabetes", query.intr="insulin", query.titles="cardiovascular", query.spons="National Cancer Institute", query.id="NCT01901835", filter.overallStatus="RECRUITING", filter.advanced="condition:cancer AND location:United States", fields="NCTId,BriefTitle,Condition,OverallStatus", pageSize=10, sortOrder="desc")

for item in result:
    print(item)
const resp = await fetch("https://clinicaltrials.gov/api/v2/studies?query.cond=cancer&query.term=diabetes&query.intr=insulin&query.titles=cardiovascular&query.spons=National+Cancer+Institute&query.id=NCT01901835&filter.overallStatus=RECRUITING&filter.advanced=condition%3Acancer+AND+location%3AUnited+States&fields=NCTId%2CBriefTitle%2CCondition%2COverallStatus&pageSize=10&sortOrder=desc");
const data = await resp.json();
Search and list clinical studies probe-gate
curl 'https://clinicaltrials.gov/api/v2/studies?pageSize=10'
import requests

resp = requests.get(
    "https://clinicaltrials.gov/api/v2/studies",
    params={
        'pageSize': '10',
    },
)
data = resp.json()
import zingu_apis

api = zingu_apis.api("clinicaltrials")
result = api.fetch("studies", pageSize=10)

for item in result:
    print(item)
const resp = await fetch("https://clinicaltrials.gov/api/v2/studies?pageSize=10");
const data = await resp.json();

Probe History

Latency

Status Codes

TimeStatusLatencySize
2026-04-16 17:21:26.268239 200 229ms
2026-04-16 16:54:54.861731 200 331ms
2026-04-16 03:54:31.764150 400 208ms
2026-04-16 03:52:47.510868 200 206ms
2026-04-16 03:38:40.997299 200 211ms
2026-04-16 03:11:28.430357 200 311ms
2026-04-16 02:14:18.865143 200 219ms
2026-04-16 01:05:46.009216 400 197ms
2026-04-16 00:25:33.969927 200 331ms
2026-04-15 04:04:27.595536 200 220ms
2026-04-15 04:02:52.756004 400 313ms
2026-04-15 03:02:31.303808 200 220ms
2026-04-15 02:45:00.972204 200 330ms
2026-04-15 02:17:57.665110 400 208ms
2026-04-15 02:12:51.890498 200 221ms
2026-04-15 00:01:05.402922 200 243ms
2026-04-14 03:56:37.036365 400 196ms
2026-04-14 03:45:14.323081 200 253ms
2026-04-14 03:15:31.509735 200 279ms
2026-04-14 02:37:05.001580 200 274ms
2026-04-14 01:44:51.144026 200 218ms
2026-04-14 00:40:22.161503 200 214ms
2026-04-14 00:18:33.937545 400 213ms
2026-04-12 16:53:51.036724 200 211ms
2026-04-12 16:44:21.108745 200 216ms
2026-04-12 15:43:54.322253 200 214ms
2026-04-12 14:47:12.615801 400 378ms
2026-04-12 13:13:49.719804 400 192ms
2026-04-12 13:05:49.887589 200 186ms
2026-04-12 12:49:30.192017 200 274ms
2026-04-10 02:36:33.771891 200 174ms
2026-04-10 02:03:02.760796 200 2207ms
2026-04-10 01:59:17.153823 200 748ms
2026-04-10 01:23:24.262771 400 161ms
2026-04-10 01:21:39.597877 200 182ms
2026-04-10 00:16:08.336736 200 161ms
2026-04-10 00:15:01.053598 400 174ms
2026-04-09 03:40:20.939177 200 210ms
2026-04-09 02:53:28.987163 200 378ms
2026-04-09 01:45:08.341834 200 310ms
2026-04-09 01:33:27.818942 400 223ms
2026-04-09 01:12:58.231820 200 230ms
2026-04-09 00:15:11.118328 400 222ms
2026-04-08T15:10:09.934571 200 540ms
2026-04-08 07:52:56.336884 400 202ms
2026-04-08 07:43:10.187886 200 208ms
2026-04-08 07:36:14.759231 200 212ms
2026-04-08 07:26:28.749363 400 270ms
2026-04-08 01:17:48.753430 200 324ms
2026-04-08 00:36:02.713269 200 206ms