Forge Tools clinical_trials_search

clinical_trials_search read

scidex.forge.clinical_trials_search

Search clinicaltrials.gov v2 by condition, intervention, status, and phase. Returns NCT IDs + title + phase + sponsor + status + locations. Use to ground hypotheses in real trials and surface competitive-landscape context.

HTTP: POST /api/scidex/forge/clinical_trials_search

Invoke

Calls scidex.tool.invoke on the substrate with this tool name. Edit the JSON below — it must match the input schema. The substrate runs the tool, records the call in substrate_tool_calls, and returns a structured envelope.

Sign in to invoke this tool. Schema and curl snippet are visible to anyone.

Schemas

Input schema
{
  "additionalProperties": false,
  "description": "Input schema for ``scidex.forge.clinical_trials_search``.",
  "properties": {
    "condition": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Condition / disease term (e.g. 'Alzheimer Disease', 'Parkinson Disease'). Passed to v2 as ``query.cond``.",
      "title": "Condition"
    },
    "intervention": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Drug / intervention name (e.g. 'semaglutide', 'aducanumab'). Passed to v2 as ``query.intr``.",
      "title": "Intervention"
    },
    "status": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Overall-status filter; pipe-joined and sent as ``filter.overallStatus``. Common values: RECRUITING, COMPLETED, TERMINATED, WITHDRAWN, NOT_YET_RECRUITING, ACTIVE_NOT_RECRUITING.",
      "title": "Status"
    },
    "phase": {
      "anyOf": [
        {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Phase filter; pipe-joined and sent as ``filter.phase``. Common values: PHASE1, PHASE2, PHASE3, PHASE4, NA, EARLY_PHASE1.",
      "title": "Phase"
    },
    "limit": {
      "default": 10,
      "description": "Maximum number of trials to return. v2 supports up to 1000/page, but we cap at 100 to keep one verb call bounded.",
      "maximum": 100,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "ClinicalTrialsSearchIn",
  "type": "object"
}
Output schema
{
  "$defs": {
    "ClinicalTrialRecord": {
      "description": "One clinicaltrials.gov v2 study, flattened for the verb surface.\n\nDistinct from the skill-internal :class:`ClinicalTrial` so the\nverb's public schema is stable even if we extend the skill later\n(e.g. add eligibility criteria).",
      "properties": {
        "nct_id": {
          "title": "Nct Id",
          "type": "string"
        },
        "title": {
          "default": "",
          "title": "Title",
          "type": "string"
        },
        "status": {
          "default": "",
          "title": "Status",
          "type": "string"
        },
        "phase": {
          "default": "",
          "title": "Phase",
          "type": "string"
        },
        "conditions": {
          "items": {
            "type": "string"
          },
          "title": "Conditions",
          "type": "array"
        },
        "interventions": {
          "items": {
            "type": "string"
          },
          "title": "Interventions",
          "type": "array"
        },
        "sponsor": {
          "default": "",
          "title": "Sponsor",
          "type": "string"
        },
        "start_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Start Date"
        },
        "completion_date": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Completion Date"
        },
        "enrollment": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Enrollment"
        },
        "locations": {
          "items": {
            "type": "string"
          },
          "title": "Locations",
          "type": "array"
        }
      },
      "required": [
        "nct_id"
      ],
      "title": "ClinicalTrialRecord",
      "type": "object"
    }
  },
  "description": "Response shape for ``scidex.forge.clinical_trials_search``.",
  "properties": {
    "query": {
      "additionalProperties": true,
      "description": "The parsed filters used for this search.",
      "title": "Query",
      "type": "object"
    },
    "count": {
      "default": 0,
      "description": "Total matching trials reported by clinicaltrials.gov. May exceed ``len(results)`` since one call returns at most ``limit`` trials.",
      "title": "Count",
      "type": "integer"
    },
    "returned": {
      "description": "Length of ``results``.",
      "title": "Returned",
      "type": "integer"
    },
    "results": {
      "items": {
        "$ref": "#/$defs/ClinicalTrialRecord"
      },
      "title": "Results",
      "type": "array"
    },
    "took_ms": {
      "description": "Wall-clock time for the upstream call.",
      "title": "Took Ms",
      "type": "integer"
    }
  },
  "required": [
    "returned",
    "took_ms"
  ],
  "title": "ClinicalTrialsSearchOut",
  "type": "object"
}

curl snippet

Replace $SCIDEX_JWT with a valid bearer token. Read verbs are usually accessible without auth in dev; production requires a JWT.

curl -sS -X POST '/api/scidex/forge/clinical_trials_search' \
  -H 'authorization: Bearer $SCIDEX_JWT' \
  -H 'content-type: application/json' \
  -d '{}'

Discussion

Posting anonymously. Sign in for attribution.

No comments yet — be the first.