# Clinical Trials - ClinicalTrials.gov Registry (`loopchips/clinical-trials`) Actor

Search the official US clinical trial registry and get clean rows: condition, intervention, phase, sponsor, enrolment, sites, countries and dates. Filter to recruiting studies or industry sponsors. No API key needed.

- **URL**: https://apify.com/loopchips/clinical-trials.md
- **Developed by:** [Loopchips](https://apify.com/loopchips) (community)
- **Categories:** Automation, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 studies

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Clinical Trials - ClinicalTrials.gov Registry

Search the official US clinical trial registry and get clean, flat rows.

ClinicalTrials.gov holds every registered study: what is being tested, on whom,
by whom, where, and how it turned out. The registry returns deeply nested JSON.
This Actor flattens it into one row per trial, with the fields people actually
filter and sort on already pulled out.

**No API key needed.** It works out of the box.

### What you get

| Field | Description |
|---|---|
| `nctId` / `url` | Registry ID and a direct link |
| `title` / `officialTitle` / `acronym` | Short and full titles |
| `status` / `isRecruiting` | Recruitment status, plus a flag for the common case |
| `phases` | PHASE1 through PHASE4, or NA where phase does not apply |
| `studyType` | Interventional, observational or expanded access |
| `conditions` | Diseases being studied |
| `interventionNames` / `interventionTypes` | Drugs, devices or procedures tested |
| `primaryOutcome` | The endpoint the trial is designed to measure |
| `leadSponsor` / `leadSponsorClass` / `isIndustrySponsored` | Who runs it, and whether it is commercial |
| `collaborators` | Other organisations involved |
| `enrollment` / `enrollmentIsActual` | Participant count, and whether it is a target or the real figure |
| `siteCount` / `countries` / `countryCount` | Geographic footprint of the trial |
| `startDate` / `primaryCompletionDate` / `completionDate` | Timeline, with flags for actual versus estimated |
| `minimumAge` / `maximumAge` / `sex` / `acceptsHealthyVolunteers` | Eligibility at a glance |
| `hasResults` | Whether results have been posted |
| `isFdaRegulatedDrug` / `isFdaRegulatedDevice` | FDA oversight flags |

### Example input

Recruiting Phase 2 and 3 breast cancer trials:

```json
{
  "conditions": ["breast cancer"],
  "overallStatus": ["RECRUITING"],
  "phases": ["PHASE2", "PHASE3"],
  "studyType": "INTERVENTIONAL",
  "maxResults": 500
}
```

Everything one company is running:

```json
{
  "sponsorName": "Pfizer",
  "overallStatus": ["RECRUITING", "ACTIVE_NOT_RECRUITING"]
}
```

Trials recruiting in a given country:

```json
{
  "locationTerm": "Korea",
  "overallStatus": ["RECRUITING"]
}
```

### Example output

```json
{
  "nctId": "NCT07391774",
  "url": "https://clinicaltrials.gov/study/NCT07391774",
  "title": "Testing Whether Hormone Therapy With Ribociclib is as Effective as Chemotherapy...",
  "status": "RECRUITING",
  "isRecruiting": true,
  "phases": "PHASE3",
  "studyType": "INTERVENTIONAL",
  "conditions": "Anatomic Stage II Breast Cancer AJCC v8",
  "leadSponsor": "National Cancer Institute (NCI)",
  "leadSponsorClass": "NIH",
  "isIndustrySponsored": false,
  "enrollment": 1978,
  "enrollmentIsActual": false,
  "siteCount": 312,
  "countries": "United States, Canada",
  "startDate": "2026-03-16"
}
```

### What people use it for

- **Competitive intelligence** - what a rival is running, in which phase, and how
  big
- **Site and investigator targeting** - which centres run trials in your
  therapeutic area
- **Patient recruitment** - recruiting studies by condition and location
- **Market sizing** - enrolment and trial counts by indication over time
- **Research and journalism** - a citable public source, updated daily

### Notes

- Several search terms in one field are combined with OR, so
  `["breast cancer", "ovarian cancer"]` returns both.
- Search is not exact matching. A study can match on its title or an eligibility
  detail rather than its condition list, so a small share of rows will not repeat
  your keyword in the `conditions` field.
- List fields such as `conditions` and `countries` are joined with commas so the
  output stays flat and drops straight into a spreadsheet.
- Dates can be month-precision (`2026-03`) where the registry has no day. They
  are passed through as recorded rather than padded to a false precision.
- `enrollmentIsActual` and the date `IsActual` flags distinguish planned figures
  from what really happened. Ignoring them mixes forecasts with facts.
- Source: ClinicalTrials.gov, U.S. National Library of Medicine. Registry content
  is public domain.

### Pricing

Pay per result. You are charged only for studies actually returned.

# Actor input Schema

## `conditions` (type: `array`):

Diseases or conditions studied, for example breast cancer or type 2 diabetes. Several terms are combined with OR.

## `interventionTerms` (type: `array`):

Drugs, devices or procedures being tested, for example pembrolizumab. Several terms are combined with OR.

## `sponsorName` (type: `string`):

Limit to one organisation running the trial, for example Pfizer or Mayo Clinic.

## `locationTerm` (type: `string`):

Country, state or city where the trial has a site, for example Korea or Boston.

## `overallStatus` (type: `array`):

Recruitment status. Leave empty for every status.

## `phases` (type: `array`):

Trial phase. EARLY\_PHASE1 is first-in-human, PHASE3 is the large registrational study, NA means not applicable to this design.

## `studyType` (type: `string`):

INTERVENTIONAL trials test something, OBSERVATIONAL trials only watch. Leave empty for both.

## `searchTerm` (type: `string`):

Searched across the whole record, for use when the other fields are too narrow.

## `maxResults` (type: `integer`):

Upper bound on studies collected.

## `requestDelayMs` (type: `integer`):

Pause between requests so the source is not hit too quickly.

## Actor input object example

```json
{
  "conditions": [
    "breast cancer"
  ],
  "interventionTerms": [],
  "overallStatus": [],
  "phases": [],
  "studyType": "",
  "maxResults": 500,
  "requestDelayMs": 300
}
```

# Actor output Schema

## `studies` (type: `string`):

Every matching trial with phase, sponsor, enrolment and sites.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "conditions": [
        "breast cancer"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("loopchips/clinical-trials").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "conditions": ["breast cancer"] }

# Run the Actor and wait for it to finish
run = client.actor("loopchips/clinical-trials").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "conditions": [
    "breast cancer"
  ]
}' |
apify call loopchips/clinical-trials --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,loopchips/clinical-trials"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kwW5d3PobAShhfdOn/builds/sI1ONSLa3tnjeEg5c/openapi.json
