Clinicaltrials DB
aipoch/medical-research-skills
Query the ClinicalTrials.gov API v2 to search for clinical trials, retrieve detailed study protocols, and analyze recruitment status; use when you need to find trials by condition/drug, export…
Searches ClinicalTrials.gov for studies by condition, intervention, and recruitment status using the modern v2 REST API with cursor (pageToken) pagination.
$ npx skills add maziyarpanahi/openmed --skill searching-clinicaltrials -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install maziyarpanahi/openmed searching-clinicaltrials --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/maziyarpanahi/openmed.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/searching-clinicaltrials .claude/skills/searching-clinicaltrials && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "searching-clinicaltrials" agent skill from https://github.com/maziyarpanahi/openmed/tree/master/skills/searching-clinicaltrials into .claude/skills/searching-clinicaltrials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "searching-clinicaltrials", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/maziyarpanahi/openmed/tree/master/skills/searching-clinicaltrialsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add maziyarpanahi/openmed --skill searching-clinicaltrials -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install maziyarpanahi/openmed searching-clinicaltrials --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/maziyarpanahi/openmed.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/searching-clinicaltrials .agents/skills/searching-clinicaltrials && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "searching-clinicaltrials" agent skill from https://github.com/maziyarpanahi/openmed/tree/master/skills/searching-clinicaltrials into .agents/skills/searching-clinicaltrials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "searching-clinicaltrials", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add maziyarpanahi/openmed --skill searching-clinicaltrials -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install maziyarpanahi/openmed searching-clinicaltrials --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/maziyarpanahi/openmed.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/searching-clinicaltrials .cursor/skills/searching-clinicaltrials && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "searching-clinicaltrials" agent skill from https://github.com/maziyarpanahi/openmed/tree/master/skills/searching-clinicaltrials into .cursor/skills/searching-clinicaltrials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "searching-clinicaltrials", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/maziyarpanahi/openmed.git --path skills/searching-clinicaltrials--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add maziyarpanahi/openmed --skill searching-clinicaltrials -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install maziyarpanahi/openmed searching-clinicaltrials --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/maziyarpanahi/openmed.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/searching-clinicaltrials .gemini/skills/searching-clinicaltrials && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "searching-clinicaltrials" agent skill from https://github.com/maziyarpanahi/openmed/tree/master/skills/searching-clinicaltrials into .gemini/skills/searching-clinicaltrials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "searching-clinicaltrials", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install maziyarpanahi/openmed searching-clinicaltrialsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add maziyarpanahi/openmed --skill searching-clinicaltrials -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/maziyarpanahi/openmed.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/searching-clinicaltrials .github/skills/searching-clinicaltrials && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "searching-clinicaltrials" agent skill from https://github.com/maziyarpanahi/openmed/tree/master/skills/searching-clinicaltrials into .github/skills/searching-clinicaltrials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "searching-clinicaltrials", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add maziyarpanahi/openmed --skill searching-clinicaltrials -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install maziyarpanahi/openmed searching-clinicaltrials --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/maziyarpanahi/openmed.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/searching-clinicaltrials .opencode/skills/searching-clinicaltrials && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "searching-clinicaltrials" agent skill from https://github.com/maziyarpanahi/openmed/tree/master/skills/searching-clinicaltrials into .opencode/skills/searching-clinicaltrials/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "searching-clinicaltrials", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
searching-clinicaltrialsSearches ClinicalTrials.gov for studies by condition, intervention, and recruitment status using the modern v2 REST API with cursor (pageToken) pagination.
Searching Clinicaltrials is an agent skill from maziyarpanahi/openmed. Searches ClinicalTrials.gov for studies by condition, intervention, and recruitment status using the modern v2 REST API with cursor (pageToken) pagination. Use when the user wants to find trials for a diagnosis or drug, screen patients against open studies, build a trial-matching feature, or pull a trial corpus for analysis. Trigger keywords: clinical trial, ClinicalTrials.gov, NCT number, trial search, recruiting studies, eligibility, query.cond, query.intr, pageToken, v2 API. Pairs adjacent to OpenMed: take…
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Business, Finance & HR, covering Recruiting and HR, REST APIs and Clinical and healthcare research. The repository describes itself as: Local-first healthcare AI: clinical NER and HIPAA PII de-identification on hardware you control. 2,200+ medical models, 35 model-backed PII languages, and Python, MLX, Android… The licence is Apache-2.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 34d7b8c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
clinicaltrials.govFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Searching Clinicaltrials loads about 2k tokens when it runs. Until then it costs about 195 tokens; SKILL.md has 589 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from maziyarpanahi/openmed at commit 34d7b8c, republished under its Apache-2.0 licence (© maziyarpanahi). 589 words, ~2,028 tokens.
.claude/skills/searching-clinicaltrials/SKILL.md (or your agent's skills folder).Query ClinicalTrials.gov — the U.S. registry of clinical studies — for trials
matching a condition, intervention, and recruitment status. This skill uses the
modern v2 REST API (/api/v2/studies), which returns structured JSON and
paginates with an opaque cursor (pageToken), not page numbers.
The v2 API is fully public: no API key, no registration, no license barrier.
The legacy v1/classic API and the older query_term-style endpoints are
deprecated — do not build on them.
parsing-trial-eligibility).openmed.analyze_text for biomedical NER.If you already have an NCT number, fetch the single study directly
(/api/v2/studies/NCT01234567) instead of searching.
Base URL: https://clinicaltrials.gov/api/v2. No auth. JSON by default.
import requests
BASE = "https://clinicaltrials.gov/api/v2"
def search_trials(condition: str, intervention: str | None = None,
status: str = "RECRUITING", page_size: int = 50) -> dict:
"""One page of studies for a condition (+ optional intervention)."""
params = {
"query.cond": condition, # condition / disease search
"filter.overallStatus": status, # comma-separated enum values
"pageSize": min(page_size, 1000), # max 1000; default 10
"countTotal": "true", # include totalCount on first page
"format": "json",
}
if intervention:
params["query.intr"] = intervention # drug / intervention search
r = requests.get(f"{BASE}/studies", params=params, timeout=30)
r.raise_for_status()
return r.json()
data = search_trials("breast cancer", intervention="trastuzumab")
print(data["totalCount"]) # total matches (first page only)
for study in data["studies"]:
ps = study["protocolSection"]
nct = ps["identificationModule"]["nctId"]
title = ps["identificationModule"]["briefTitle"]
print(nct, "-", title)Equivalent cURL:
curl "https://clinicaltrials.gov/api/v2/studies?query.cond=breast+cancer\
&query.intr=trastuzumab&filter.overallStatus=RECRUITING&pageSize=50&format=json"Top level: studies (array), nextPageToken (present only if more results),
and totalCount (only when countTotal=true, on the first page). Each study is
a protocolSection of typed modules:
| Field path | Meaning |
|---|---|
identificationModule.nctId | NCT........ study id |
identificationModule.briefTitle | short title |
statusModule.overallStatus | RECRUITING, COMPLETED, … |
conditionsModule.conditions | list of condition strings |
armsInterventionsModule.interventions | drugs / procedures |
eligibilityModule.eligibilityCriteria | free-text inclusion/exclusion |
eligibilityModule.sex / minimumAge / maximumAge | demographic gates |
contactsLocationsModule.locations | recruiting sites |
There are no page numbers. Loop until nextPageToken is absent. The token is
opaque — pass it back verbatim. Do not re-send countTotal after page 1.
def iter_all(condition: str, status: str = "RECRUITING"):
params = {"query.cond": condition, "filter.overallStatus": status,
"pageSize": 1000, "format": "json"}
while True:
r = requests.get(f"{BASE}/studies", params=params, timeout=30)
r.raise_for_status()
page = r.json()
yield from page.get("studies", [])
token = page.get("nextPageToken")
if not token:
break
params["pageToken"] = token # cursor for the next pageDefault responses are large. Restrict to the fields you need with fields (dotted
paths or module names) to cut bandwidth:
params["fields"] = ("NCTId,BriefTitle,OverallStatus,"
"Condition,EligibilityCriteria")query.cond; Pharmaceutical spans → query.intr. Free-text keywords go in
query.term. Combine status filters as filter.overallStatus=RECRUITING,NOT_YET_RECRUITING.nextPageToken is gone; cap total pulls.nctId, status, conditions, interventions, and the raw eligibility
text. Eligibility goes to parsing-trial-eligibility.openmed.analyze_text to structure inclusion criteria.openmed.analyze_text(note, model_name="disease_detection_superclinical")
yields Disease and Pharmaceutical entities. Use the surface forms (or a grounded
term from coding-icd10 / normalizing-rxnorm) as query.cond / query.intr.eligibilityModule.eligibilityCriteria and brief
summaries back through openmed.analyze_text to extract conditions, meds, and
labs mentioned in the criteria. Then hand to parsing-trial-eligibility for
inclusion/exclusion matching against patient facts.RECRUITING,
NOT_YET_RECRUITING, ENROLLING_BY_INVITATION, ACTIVE_NOT_RECRUITING,
COMPLETED, SUSPENDED, TERMINATED, WITHDRAWN, UNKNOWN. Comma-separate;
do not lowercase.totalCount is first-page only. Request countTotal=true once; it is not
repeated on subsequent pages.pageToken expires if the underlying index shifts; restart the query if a
token is rejected.© maziyarpanahi, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/searching-clinicaltrials of maziyarpanahi/openmed.
Open the folder on GitHubat commit 34d7b8c
Searching Clinicaltrials next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Searching Clinicaltrials this skillmaziyarpanahi/openmed | 5.5k | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Clinicaltrials DBaipoch/medical-research-skills | 1.9k | — | ~762 | Automated safety check: Pass | MIT | |
| Ct Status Diffagentii-ai/agentii-investment-intelligence | 207 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Clinical Trials Databasegoogle-deepmind/science-skills | 3.2k | 2 repos | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Fhir Developer SkillFreedomIntelligence/OpenClaw-Medical-Skills | 3.1k | 1 repos | ~2.5k | Automated safety check: Pass | None | |
| Fhir APIaehrc/pathling | 137 | — | ~1.5k | Automated safety check: Pass | Apache-2.0 |
aipoch/medical-research-skills
Query the ClinicalTrials.gov API v2 to search for clinical trials, retrieve detailed study protocols, and analyze recruitment status; use when you need to find trials by condition/drug, export…
agentii-ai/agentii-investment-intelligence
Weekly clinical-trial status diff — the 11-category change report over the stored weekly snapshots (spec 055 FR-B03).
google-deepmind/science-skills
Query ClinicalTrials.gov via APIv2. An agent skill from google-deepmind/science-skills.
FreedomIntelligence/OpenClaw-Medical-Skills
FHIR API development guide for building healthcare endpoints.
aehrc/pathling
Expert guidance for implementing FHIR RESTful API servers and clients following the HL7 FHIR specification.
himself65/finance-skills
Query Fintel (fintel.io) institutional market data through its REST API or official MCP server.
maziyarpanahi/openmed
Checks OpenMed de-identified clinical text against the 18 HIPAA Safe Harbor identifier categories and reports gaps and residual re-identification risk.
maziyarpanahi/openmed
Fills in a model card for an OpenMed clinical NER or de-identification model from its evaluation reports: intended use, metrics, subgroups and limitations.
maziyarpanahi/openmed
Walks a data pipeline against the HIPAA Privacy and Security Rule checklist and produces a gap report before it processes patient data.
maziyarpanahi/openmed
Suggests candidate ICD-10-CM diagnosis and ICD-10-PCS procedure codes for clinical text extracted by OpenMed, with rationale for a certified coder to review.
maziyarpanahi/openmed
Maps OpenMed-extracted, terminology-coded conditions, drugs and measurements into OMOP CDM v5.4 tables for OHDSI and ATLAS analytics.
maziyarpanahi/openmed
Finds social risks such as housing instability or food insecurity in clinical notes and proposes matching ICD-10-CM Z-codes for a coder to confirm.
Categories
Searches ClinicalTrials.gov for studies by condition, intervention, and recruitment status using the modern v2 REST API with cursor (pageToken) pagination. Searching Clinicaltrials is an agent skill from maziyarpanahi/openmed.gov for studies by condition, intervention, and recruitment status using the modern v2 REST API with cursor (pageToken) pagination.
Searching Clinicaltrials fits situations like: the user wants to find trials for a diagnosis; screen patients against open studies; build a trial-matching feature; pull a trial corpus for analysis.
Run `npx skills add maziyarpanahi/openmed --skill searching-clinicaltrials -a claude-code`. Or copy the skill folder (skills/searching-clinicaltrials in maziyarpanahi/openmed) into .claude/skills/searching-clinicaltrials in your project. Claude Code loads it when a task matches its description.
Run `npx skills add maziyarpanahi/openmed --skill searching-clinicaltrials -a codex`. Or copy the skill folder (skills/searching-clinicaltrials in maziyarpanahi/openmed) into .agents/skills/searching-clinicaltrials in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add maziyarpanahi/openmed --skill searching-clinicaltrials -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/searching-clinicaltrials, .gemini/skills/searching-clinicaltrials, .github/skills/searching-clinicaltrials and .opencode/skills/searching-clinicaltrials in your project.
Going by SKILL.md and its folder, Searching Clinicaltrials needs the command-line tools its instructions call (curl). Our summary lists: Python 3.
SKILL.md names 1 domain. In commands or code: clinicaltrials.gov; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Searching Clinicaltrials is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Searching Clinicaltrials: Clinicaltrials DB (aipoch/medical-research-skills, 1.9k stars), Ct Status Diff (agentii-ai/agentii-investment-intelligence, 207 stars), Clinical Trials Database (google-deepmind/science-skills, 3.2k stars) and Fhir Developer Skill (FreedomIntelligence/OpenClaw-Medical-Skills, 3.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
maziyarpanahi (a GitHub user) maintains it in maziyarpanahi/openmed, which has 5,506 GitHub stars. The repository holds 74 skills in this directory. The repository was last updated on October 11, 2026.
Source: maziyarpanahi/openmed on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.