100 lines
2.9 KiB
Markdown
100 lines
2.9 KiB
Markdown
---
|
|
title: "ClinicalTrials.gov (v2 API)"
|
|
task: ""
|
|
lineage_type: import
|
|
upstream_source: https://github.com/K-Dense-AI/scientific-agent-skills/blob/1e024ea8/skills/database-lookup/references/clinicaltrials.md
|
|
upstream_sha: 1e024ea8
|
|
imported_at: 2026-07-02
|
|
prompt_class: prompt
|
|
upstream_changes: accepted
|
|
author: upstream
|
|
validated: false
|
|
---
|
|
|
|
# ClinicalTrials.gov (v2 API)
|
|
|
|
## Base URL
|
|
```
|
|
https://clinicaltrials.gov/api/v2/
|
|
```
|
|
|
|
## Auth
|
|
No API key required. Fully public.
|
|
|
|
## Key Endpoints
|
|
|
|
### API version and data freshness
|
|
```
|
|
GET /version
|
|
```
|
|
|
|
Check `dataTimestamp` before time-sensitive retrievals to confirm the daily refresh has completed. ClinicalTrials.gov notes that data is generally refreshed Monday through Friday by 9 a.m. ET / 14:00 UTC.
|
|
|
|
ClinicalTrials.gov modernized its data ingest on August 26, 2025. For reproducible comparisons against older exports, note that some rich text markup fields and location/geopoint data may differ from the legacy pipeline.
|
|
|
|
### Search studies
|
|
```
|
|
GET /studies
|
|
```
|
|
|
|
Key parameters:
|
|
- `query.cond` — condition/disease (e.g. `breast cancer`)
|
|
- `query.intr` — intervention/treatment (e.g. `pembrolizumab`)
|
|
- `query.term` — general search terms
|
|
- `query.spons` — sponsor
|
|
- `query.id` — NCT ID
|
|
- `filter.overallStatus` — pipe-delimited: `RECRUITING|COMPLETED|ACTIVE_NOT_RECRUITING|...`
|
|
- `filter.phase` — `PHASE1|PHASE2|PHASE3|PHASE4|NA`
|
|
- `filter.geo` — `distance(lat,lon,dist)` e.g. `distance(38.89,-77.03,50mi)`
|
|
- `fields` — comma-separated field list to reduce payload
|
|
- `sort` — e.g. `LastUpdatePostDate:desc`
|
|
- `pageSize` — results per page (default 10, max 1000)
|
|
- `pageToken` — cursor for next page (from `nextPageToken` in response)
|
|
- `countTotal=true` — include total count
|
|
|
|
Example — recruiting Phase 3 breast cancer trials:
|
|
```
|
|
/studies?query.cond=breast+cancer&filter.overallStatus=RECRUITING&filter.phase=PHASE3&pageSize=5&countTotal=true
|
|
```
|
|
|
|
Response structure:
|
|
```json
|
|
{
|
|
"totalCount": 1234,
|
|
"studies": [
|
|
{
|
|
"protocolSection": {
|
|
"identificationModule": {"nctId": "NCT05123456", "briefTitle": "..."},
|
|
"statusModule": {"overallStatus": "RECRUITING"},
|
|
"designModule": {"phases": ["PHASE3"], "enrollmentInfo": {"count": 500}},
|
|
"conditionsModule": {"conditions": ["Breast Cancer"]},
|
|
"eligibilityModule": {"minimumAge": "18 Years", "sex": "ALL"}
|
|
}
|
|
}
|
|
],
|
|
"nextPageToken": "CAYQAg"
|
|
}
|
|
```
|
|
|
|
### Single study by NCT ID
|
|
```
|
|
GET /studies/{nctId}
|
|
```
|
|
Example: `/studies/NCT05123456`
|
|
|
|
### Study count
|
|
```
|
|
GET /stats/size?query.cond={condition}&filter.overallStatus=RECRUITING
|
|
```
|
|
|
|
### Field metadata
|
|
```
|
|
GET /studies/metadata
|
|
```
|
|
|
|
## Pagination
|
|
Uses cursor-based pagination via `pageToken` (NOT numeric offsets). Include `countTotal=true` on first request to get total.
|
|
|
|
## Rate Limits
|
|
No API key. Be reasonable — a few requests per second. Bulk: https://clinicaltrials.gov/AllAPIJSON.zip
|