# Clinical Trials Intelligence: Landscape Brief & Monitor (`centorprat/clinical-trials-intelligence`) Actor

Give it conditions, drugs or sponsors. For each it queries ClinicalTrials.gov and composes ONE landscape brief: counts by phase and status, recruiting-now, top sponsors, interventions and countries, median enrollment and recent starts. Keyless and agent-callable.

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

## Pricing

from $17.00 / 1,000 landscape briefs

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Clinical Trials Intelligence: Landscape Brief & Monitor

**Give it conditions, drugs/interventions or sponsors. For each, it queries the ClinicalTrials.gov v2
API and composes ONE landscape brief** — not a 5,000-row dump. Keyless, agent-callable, and built to
answer the question a researcher or investor actually asks: *"what does the trial landscape for X look
like right now?"*

### ⚡ Why it's different

Every other clinical-trials actor on the Store is a **raw scraper**. This one **composes an answer**:
per query you get match totals, the breakdown by phase and status, how many are recruiting now, the top
sponsors / interventions / countries, median enrollment, and what started or was updated recently.

### 📋 What each brief contains

| Field | Meaning |
|---|---|
| `matchedTotal` | Total trials matching the query on ClinicalTrials.gov |
| `analyzed` | How many were pulled and analysed (set `maxTrialsPerQuery`) |
| `recruitingOrUpcoming` | Trials recruiting now or not yet recruiting |
| `byPhase` / `byStatus` | Distribution across phases and recruitment statuses |
| `topSponsors` / `sponsorClasses` | Leading sponsors and whether industry / NIH / academic |
| `topInterventions` | Most common drugs/interventions (case-merged) |
| `topCountries` | Where the trials run |
| `medianEnrollment` | Median target enrollment |
| `recentlyStarted` / `recentlyUpdated` | Counts within your `recentDays` window + the recent-start list |
| `sampleTrials` | 15 normalized trials (NCT id, title, phase, status, sponsor, enrollment, link) |

### 📥 Input

Give at least one of `conditions`, `interventions`, `sponsors`, or `terms` (each a list → one brief
each). Optional `status` / `phase` filters, `recentDays` (recent window), `maxTrialsPerQuery` (1–1000),
and `includeAllTrials` (also return every analysed trial as its own row).

**Example input**

```json
{ "conditions": ["pancreatic cancer"], "interventions": ["semaglutide"], "recentDays": 120 }
```

### 📤 Example output (real, trimmed)

```json
{
  "query": "semaglutide", "queryType": "intervention",
  "matchedTotal": 785, "analyzed": 120, "recruitingOrUpcoming": 44, "medianEnrollment": 120,
  "byPhase": [{"name":"PHASE2","count":33},{"name":"PHASE3","count":24},{"name":"PHASE4","count":16}],
  "byStatus": [{"name":"COMPLETED","count":58},{"name":"RECRUITING","count":27}],
  "topSponsors": [{"name":"Novo Nordisk A/S","count":34},{"name":"Mayo Clinic","count":3}],
  "topInterventions": [{"name":"Semaglutide","count":62},{"name":"Placebo","count":34}],
  "recentlyStarted": 13, "source": "ClinicalTrials.gov v2 API"
}
```

### 💰 Pricing (pay-per-event)

- **Landscape brief — $0.02** per composed brief (one per query). The computed outcome.
- **Trial returned — $0.0008** per normalized trial row, only when `includeAllTrials` is on.

### 💡 Use cases

- **Biotech / pharma competitive intel:** the pipeline landscape for a target or mechanism.
- **Investors:** how crowded is a condition, who sponsors, what phase, recruiting momentum.
- **CROs / sites:** who is recruiting now and where.
- **Journalists / analysts:** a sourced snapshot per drug or disease.

### 🚀 Ready-made tasks (one click)

- [Clinical Trials Landscape by Condition](https://apify.com/centorprat/clinical-trials-intelligence/examples/clinical-trials-by-condition): a brief per disease — phases, status, sponsors, recruiting now.
- [Drug / Intervention Trial Tracker](https://apify.com/centorprat/clinical-trials-intelligence/examples/drug-intervention-trial-tracker): a brief per drug — who sponsors it, what phase, recent starts.

### 🤖 For AI agents (MCP)

```json
{ "mcpServers": { "apify": { "url": "https://mcp.apify.com/?tools=actors,docs,centorprat/clinical-trials-intelligence" } } }
```

**Claude Code:** `claude mcp add --transport http apify "https://mcp.apify.com/?tools=actors,docs,centorprat/clinical-trials-intelligence" --header "Authorization: Bearer <YOUR_APIFY_TOKEN>"`

### 📜 Data & attribution

Source: [ClinicalTrials.gov](https://clinicaltrials.gov) public v2 API (U.S. National Library of
Medicine). Public data, no login. An automated snapshot — verify against the source record before
clinical or investment decisions.

### 🔗 Related actors

- [Country Economic Data API - World Bank GDP, FX & Holidays](https://apify.com/centorprat/world-bank-country-economic-data): World Bank + FX + public holidays → one market brief per country.
- [Wikipedia & Wikidata API - Entity Facts, Summary & Pageviews](https://apify.com/centorprat/wikipedia-wikidata-api): one structured brief per company, person or place.
- [FEMA Flood Zone & Property Risk API - Zillow/Redfin Enricher](https://apify.com/centorprat/fema-flood-zone-property-risk): FEMA flood + risk index + demographics per US address.
- [Domain Lookup API - DNS, MX, SPF, Tech & Contact Emails](https://apify.com/centorprat/domain-lookup-dns-mx-email): DNS + live homepage → IPs, MX/SPF, tech, socials, contacts.
- [Weather, Air Quality & Earthquake Risk API by Location](https://apify.com/centorprat/weather-air-quality-earthquake-api): one clear/caution/hazard verdict per point.
- [Aircraft Tracker API (ADS-B) - Approach & Military Alerts](https://apify.com/centorprat/aircraft-tracker-adsb): aircraft approaching a point with CPA/ETA + military flags.
- [NARA Catalog Extractor](https://apify.com/centorprat/nara-catalog-extractor): US National Archives catalog search → digital-object URLs + metadata.

# Actor input Schema

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

Diseases or conditions, e.g. \["pancreatic cancer"], \["NASH", "type 2 diabetes"]. One brief per condition.

## `interventions` (type: `array`):

Drugs, biologics or interventions, e.g. \["semaglutide"], \["CAR-T"]. One brief per intervention.

## `sponsors` (type: `array`):

Lead sponsors / organizations, e.g. \["Pfizer"], \["Mayo Clinic"]. One brief per sponsor.

## `terms` (type: `array`):

Any free-text search across all trial fields. One brief per term.

## `status` (type: `array`):

Keep only trials in these recruitment statuses.

## `phase` (type: `array`):

Keep only trials in these phases.

## `recentDays` (type: `integer`):

Trials started or updated within this many days are counted as 'recent' in each brief.

## `maxTrialsPerQuery` (type: `integer`):

How many matching trials to pull and analyse per query (1-1000). The brief reports the full match total regardless.

## `includeAllTrials` (type: `boolean`):

Off = just the composed brief(s). On = also push each normalized trial (billed cheaply per row).

## `webhookUrl` (type: `string`):

If set, the briefs are POSTed here as JSON.

## Actor input object example

```json
{
  "conditions": [
    "pancreatic cancer"
  ],
  "recentDays": 90,
  "maxTrialsPerQuery": 200,
  "includeAllTrials": false
}
```

# Actor output Schema

## `briefs` (type: `string`):

One composed brief per query: matched total, analysed count, breakdown by phase and status, recruiting-now count, top sponsors/interventions/countries, median enrollment, recently started/updated trials, and sample trials. Optionally every analysed trial as its own normalized row.

# 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": [
        "pancreatic cancer"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("centorprat/clinical-trials-intelligence").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": ["pancreatic cancer"] }

# Run the Actor and wait for it to finish
run = client.actor("centorprat/clinical-trials-intelligence").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": [
    "pancreatic cancer"
  ]
}' |
apify call centorprat/clinical-trials-intelligence --silent --output-dataset

```

## MCP server setup

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

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/UzOKi45kmAHGgLLiL/builds/dBETrNzdJO4XN0Bwt/openapi.json
