Clinicaltrials Database Dynamic
Enterprise-grade skill for query, clinicaltrials, search, trials. Includes structured workflows, validation checks, and reusable patterns for scientific.
ClinicalTrials Database Dynamic
A scientific computing skill for searching and retrieving data from ClinicalTrials.gov — the comprehensive registry of clinical studies maintained by the National Library of Medicine. ClinicalTrials Database Dynamic helps you find trials by condition, intervention, or sponsor, and retrieve detailed protocol and results data.
When to Use This Skill
Choose ClinicalTrials Database Dynamic when:
- Searching for clinical trials by disease, drug, or sponsor
- Retrieving trial design details (endpoints, enrollment, phases)
- Monitoring trial status updates and result postings
- Building systematic review search strategies across registries
Consider alternatives when:
- You need published trial results (use PubMed)
- You need drug approval information (use FDA database)
- You need pharmacokinetic data (use dedicated PK databases)
- You need real-world evidence (use claims databases)
Quick Start
claude "Find active Phase 3 trials for Alzheimer's disease treatments"
import requests # ClinicalTrials.gov API v2 base_url = "https://clinicaltrials.gov/api/v2/studies" params = { "query.cond": "Alzheimer Disease", "filter.overallStatus": "RECRUITING", "filter.phase": "PHASE3", "pageSize": 10, "sort": "LastUpdatePostDate:desc", "fields": "NCTId,BriefTitle,OverallStatus,Phase,EnrollmentCount,LeadSponsorName,StartDate,PrimaryCompletionDate" } response = requests.get(base_url, params=params) data = response.json() for study in data.get("studies", []): info = study["protocolSection"]["identificationModule"] status = study["protocolSection"]["statusModule"] print(f"\n{info['nctId']}: {info['briefTitle']}") print(f" Phase: {status.get('phases', ['N/A'])}") print(f" Status: {status['overallStatus']}")
Core Concepts
ClinicalTrials.gov API v2
| Endpoint | Purpose | Example |
|---|---|---|
/studies | Search studies | ?query.cond=cancer |
/studies/{nctId} | Get single study | /studies/NCT12345678 |
/studies?fields= | Select specific fields | fields=NCTId,BriefTitle |
/stats/size | Count matching studies | Get result count |
Study Phases
| Phase | Description | Typical Size |
|---|---|---|
| Early Phase 1 | First-in-human, dose finding | 10-30 |
| Phase 1 | Safety, pharmacokinetics | 20-80 |
| Phase 2 | Efficacy signal, dose ranging | 100-300 |
| Phase 3 | Confirmatory efficacy trial | 300-3000+ |
| Phase 4 | Post-marketing surveillance | 1000+ |
Advanced Search
def search_trials(condition=None, intervention=None, sponsor=None, phase=None, status="RECRUITING", max_results=50): """Search ClinicalTrials.gov with multiple filters""" params = {"pageSize": min(max_results, 100)} if condition: params["query.cond"] = condition if intervention: params["query.intr"] = intervention if sponsor: params["query.spons"] = sponsor if phase: params["filter.phase"] = phase if status: params["filter.overallStatus"] = status all_studies = [] next_token = None while len(all_studies) < max_results: if next_token: params["pageToken"] = next_token resp = requests.get("https://clinicaltrials.gov/api/v2/studies", params=params) data = resp.json() studies = data.get("studies", []) all_studies.extend(studies) next_token = data.get("nextPageToken") if not next_token: break return all_studies[:max_results] # Example: CRISPR therapies in recruiting trials trials = search_trials(intervention="CRISPR", status="RECRUITING")
Configuration
| Parameter | Description | Default |
|---|---|---|
api_version | API version (v2 recommended) | v2 |
page_size | Results per request (max 100) | 20 |
default_status | Default study status filter | RECRUITING |
fields | Default fields to retrieve | All fields |
sort | Sort order for results | LastUpdatePostDate:desc |
Best Practices
-
Use specific condition terms from MeSH vocabulary. "Alzheimer Disease" returns more targeted results than "Alzheimer's" or "dementia." ClinicalTrials.gov uses MeSH terms for indexing — match their vocabulary for precise searches.
-
Filter by status for actionable results. Use
RECRUITINGfor trials currently enrolling,ACTIVE_NOT_RECRUITINGfor ongoing trials, orCOMPLETEDfor trials with potential results. Unfiltered searches include terminated and withdrawn studies. -
Request only needed fields. The full study record is large. Use the
fieldsparameter to request only the fields you need (NCTId, BriefTitle, Phase, Status). This reduces response size and parsing time significantly. -
Paginate through all results for systematic reviews. ClinicalTrials.gov returns max 100 studies per request. Use
pageTokenfor complete result sets. For systematic reviews, document your search strategy including all filters for reproducibility. -
Check for posted results on completed trials. Completed trials may have results posted on ClinicalTrials.gov before (or instead of) journal publication. Check the
hasResultsflag and retrieve outcome measures, adverse events, and participant flow data.
Common Issues
Search returns too many irrelevant trials. Combine filters — use query.cond with filter.phase and query.intr together. Adding a specific intervention or sponsor dramatically reduces noise. Avoid generic terms like "cancer" without additional qualifiers.
API returns 429 Too Many Requests. ClinicalTrials.gov enforces rate limits. Add 0.5-second delays between paginated requests. For bulk data needs, consider using the ClinicalTrials.gov bulk download files instead of API queries.
Enrolled numbers don't match published results. ClinicalTrials.gov enrollment counts may differ from publications due to screen failures, withdrawals, and different counting methodologies. Always note the data source when citing enrollment figures.
Reviews
No reviews yet. Be the first to review this template!
Similar Templates
Full-Stack Code Reviewer
Comprehensive code review skill that checks for security vulnerabilities, performance issues, accessibility, and best practices across frontend and backend code.
Test Suite Generator
Generates comprehensive test suites with unit tests, integration tests, and edge cases. Supports Jest, Vitest, Pytest, and Go testing.
Pro Architecture Workspace
Battle-tested skill for architectural, decision, making, framework. Includes structured workflows, validation checks, and reusable patterns for development.