Skip to content
Eden Engine

Search Clinical Trials (ClinicalTrials.gov)

clinicaltrials/search-studies

Search the ClinicalTrials.gov registry of clinical studies run worldwide, by condition, intervention (drug, device, procedure), free-text term, location and recruitment status. Each study gives its NCT number, titles, status, start, primary-completion and completion dates (each marked ACTUAL or ESTIMATED), lead sponsor, conditions, interventions, phase, study type, enrollment and whether results are posted. Returns a page at a time with the total match count on the first page and a token for the next. Dates may be month-only (YYYY-MM), and an ESTIMATED date can already be in the past on a study nobody has updated. Returns registry facts only: no descriptions, eligibility text, results or contacts. Attribution: Source: ClinicalTrials.gov, a database of the U.S. National Library of Medicine, National Institutes of Health. Data fields selected, no values changed. Served by Eden Engine; not an official ClinicalTrials.gov product.

activeper callv2

Price

$0.0026 per call

You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.

Data source

ClinicalTrials.gov

Source: ClinicalTrials.gov, a database of the U.S. National Library of Medicine, National Institutes of Health. Data processed by ClinicalTrials.gov, refreshed each weekday; each study carries its last-update date and every call reads the live registry. A fixed subset of fields is returned and no value is changed. Some ClinicalTrials.gov data may be subject to third-party copyright; free-text descriptions, documents and results are not returned. Served by Eden Engine; not an official ClinicalTrials.gov product.

Use it

Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.

Connect once and your AI can find and run this tool, and any other it needs.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "clinicaltrials/search-studies" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "clinicaltrials/search-studies" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "clinicaltrials/search-studies", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "clinicaltrials/search-studies", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.

Pricing

Every charge this tool can incur.

ChargePrice
Per call
$0.0026
Updated
Oct 20, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "page_size"
  ],
  "properties": {
    "sort": {
      "enum": [
        "LastUpdatePostDate:desc",
        "StudyFirstPostDate:desc",
        "EnrollmentCount:desc",
        "@relevance"
      ],
      "type": "string",
      "description": "Order of results. @relevance is the default and ranks by match quality. LastUpdatePostDate:desc puts recently changed records first, StudyFirstPostDate:desc the newest registrations, EnrollmentCount:desc the largest studies."
    },
    "term": {
      "type": "string",
      "maxLength": 200,
      "minLength": 2,
      "description": "Free text matched against the whole record, including sponsor and title. Use condition and intervention for precise searches."
    },
    "status": {
      "type": "string",
      "pattern": "^(RECRUITING|NOT_YET_RECRUITING|ENROLLING_BY_INVITATION|ACTIVE_NOT_RECRUITING|COMPLETED|SUSPENDED|TERMINATED|WITHDRAWN|UNKNOWN|AVAILABLE|NO_LONGER_AVAILABLE|TEMPORARILY_NOT_AVAILABLE|APPROVED_FOR_MARKETING|WITHHELD)(,(RECRUITING|NOT_YET_RECRUITING|ENROLLING_BY_INVITATION|ACTIVE_NOT_RECRUITING|COMPLETED|SUSPENDED|TERMINATED|WITHDRAWN|UNKNOWN|AVAILABLE|NO_LONGER_AVAILABLE|TEMPORARILY_NOT_AVAILABLE|APPROVED_FOR_MARKETING|WITHHELD))*$",
      "maxLength": 200,
      "description": "Recruitment status, upper case with underscores; several may be comma-separated, for example RECRUITING,NOT_YET_RECRUITING. Other values: ENROLLING_BY_INVITATION, ACTIVE_NOT_RECRUITING, COMPLETED, SUSPENDED, TERMINATED, WITHDRAWN, UNKNOWN. UNKNOWN means the status was last known as recruiting or similar, the completion date has passed, and nobody has verified it in two years; ClinicalTrials.gov counts such studies as closed."
    },
    "location": {
      "type": "string",
      "maxLength": 200,
      "minLength": 2,
      "description": "Where a study has a site: a city, state, country or facility name, for example Atlanta or Germany."
    },
    "condition": {
      "type": "string",
      "maxLength": 200,
      "minLength": 2,
      "description": "A disease or condition, for example breast cancer or type 2 diabetes. Matches the study's conditions and their synonyms."
    },
    "page_size": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1,
      "description": "How many studies to return, 1 to 100."
    },
    "page_token": {
      "type": "string",
      "pattern": "^[A-Za-z0-9_-]+$",
      "maxLength": 100,
      "minLength": 4,
      "description": "The nextPageToken from the previous page. Use it with exactly the same filters, sort and page_size. Omit for the first page."
    },
    "intervention": {
      "type": "string",
      "maxLength": 200,
      "minLength": 2,
      "description": "A drug, device, procedure or other intervention being tested, for example pembrolizumab."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "studies"
  ],
  "properties": {
    "studies": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "hasResults": {
            "type": "boolean",
            "description": "True when the sponsor has posted results on ClinicalTrials.gov. The results themselves are not returned."
          },
          "protocolSection": {
            "type": "object",
            "description": "The study record: identificationModule (nctId, briefTitle), statusModule (overallStatus, whyStopped, startDateStruct, primaryCompletionDateStruct, completionDateStruct, studyFirstPostDateStruct, lastUpdatePostDateStruct), sponsorCollaboratorsModule (leadSponsor name and class), conditionsModule (conditions), designModule (studyType, phases, enrollmentInfo) and armsInterventionsModule (interventions with type and name). A module is absent when the study has nothing to put in it. A date is YYYY-MM-DD or YYYY-MM, and a struct's type is ACTUAL, ESTIMATED or absent.",
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      },
      "description": "The studies on this page. Empty when nothing matches."
    },
    "totalCount": {
      "type": "integer",
      "description": "How many studies match, across all pages. Present on the first page only; a request with page_token omits it."
    },
    "nextPageToken": {
      "type": "string",
      "description": "Pass this as page_token, with the same filters, for the next page. Absent on the last page."
    }
  },
  "description": "One page of studies in ClinicalTrials.gov's own structure, plus totalCount on the first page and nextPageToken when more pages follow.",
  "additionalProperties": true
}