# Clinical Trials Tracker, from ClinicalTrials.gov data (`br_data_hub/clinical-trials-tracker`) Actor

Search public ClinicalTrials.gov data by condition, drug, sponsor, phase, status and country, and track what changed since the last run: new trials, status changes and date changes.

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

## Pricing

from $1.40 / 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.
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 Tracker, from ClinicalTrials.gov data

Search public **ClinicalTrials.gov data** through its official API by disease, drug, sponsor, phase, recruitment status, country and last update date, and get every trial as one clean, flat record: phase, status, sponsor and collaborators, conditions, interventions, number of participants, key dates, number of sites and countries, primary outcomes and the link to the study page.

Its main feature is the **"only changes since the last run" mode**. The Actor keeps a snapshot of your search in a named key-value store and marks each trial as:

| `changeType` | Meaning |
|---|---|
| `NEW` | The trial was not in the snapshot (new registration, or it just started to match your filters) |
| `STATUS_CHANGED` | The overall status changed, e.g. `RECRUITING` → `COMPLETED` or `ACTIVE_NOT_RECRUITING` → `TERMINATED`. `previousStatus` holds the old value |
| `DATES_CHANGED` | Start, primary completion or completion date moved (a delay or an acceleration). `previousDates` holds the old values |
| `UNCHANGED` | Nothing above changed (not returned unless you ask, never charged) |

Schedule it daily or weekly and you get a feed of what moved in your therapeutic area, your competitors' pipelines or your partners' trials: built for **competitive intelligence, business development and licensing teams in pharma and biotech**, CROs and site networks, and investors following clinical catalysts.

### Input

| Field | Description |
|---|---|
| `condition` | Disease or condition, as on ClinicalTrials.gov (the registry expands synonyms), e.g. `obesity`, `non-small cell lung cancer`. |
| `intervention` | Drug, device or other intervention, by generic name, brand or code, e.g. `semaglutide`, `Keytruda`. |
| `sponsor` | Company or institution that sponsors or collaborates, e.g. `Novo Nordisk`. |
| `phases` | Any of `EARLY_PHASE1`, `PHASE1`, `PHASE2`, `PHASE3`, `PHASE4`, `NA`. A Phase 1/2 trial matches both. |
| `statuses` | Any overall status, e.g. `RECRUITING`, `NOT_YET_RECRUITING`, `ACTIVE_NOT_RECRUITING`, `COMPLETED`, `TERMINATED`. |
| `countries` | Trials with at least one site in any of these countries, in English (`United States`, `Brazil`). |
| `updatedSince` | Only trials whose record was updated on or after this date. |
| `nctIds` | Optional watch list of trial IDs (`NCT06131398`): your portfolio, partners or competitors. Combined with the other filters; clear `condition` to track exactly these trials. |
| `searchTerms` | Advanced: free text or an [Essie expression](https://clinicaltrials.gov/find-studies/constructing-complex-search-queries) searched in all fields. |
| `trackChanges` | Turn on the change-tracking mode described above (default `false`). |
| `includeUnchanged` | In change mode, also return `UNCHANGED` trials, free of charge. |
| `firstRunAsBaseline` | In change mode, the first run only saves the snapshot: nothing is returned or charged. |
| `snapshotName` | Name of the watch list, so different schedules keep different snapshots. Empty = derived from the filters. |
| `storeName` | Named key-value store that keeps the snapshots (default `clinical-trials-tracker`). |
| `maxResults` | Maximum trials read per run (default 100). |

The default input (recruiting Phase 3 obesity trials, up to 100) finishes in a few seconds.

**Tips for change tracking.** Leave `statuses` empty, or a trial that leaves `RECRUITING` simply disappears from your results instead of showing up as `STATUS_CHANGED`. Set `maxResults` above the number of matching trials on the first run so the snapshot covers your whole search. After a complete run, the next runs only ask the API for trials updated since the previous run (every status or date change updates the record), so scheduled runs stay fast and cheap.

### Output

```json
{
  "nctId": "NCT06131398",
  "url": "https://clinicaltrials.gov/study/NCT06131398",
  "title": "A Study of AMG 355 Alone and in Combination With Pembrolizumab in Participants With Advanced Solid Tumors",
  "officialTitle": "A Phase 1 First-in-Human Study Evaluating ... AMG 355 ...",
  "acronym": null,
  "studyType": "INTERVENTIONAL",
  "phase": "PHASE1",
  "phases": ["PHASE1"],
  "overallStatus": "COMPLETED",
  "leadSponsor": "Amgen",
  "leadSponsorClass": "INDUSTRY",
  "sponsorMasked": false,
  "collaborators": [],
  "conditions": ["Advanced Solid Tumors"],
  "interventions": [{"type": "DRUG", "name": "AMG 355"}, {"type": "DRUG", "name": "Pembrolizumab"}],
  "interventionNames": ["AMG 355", "Pembrolizumab"],
  "enrollment": 77,
  "enrollmentType": "ACTUAL",
  "startDate": "2024-03-07",
  "startDateType": "ACTUAL",
  "primaryCompletionDate": "2026-07-22",
  "primaryCompletionDateType": "ACTUAL",
  "completionDate": "2026-07-22",
  "completionDateType": "ACTUAL",
  "firstPostedDate": "2023-11-14",
  "lastUpdateDate": "2026-08-11",
  "hasResults": false,
  "locationCount": 25,
  "countries": ["Australia", "Canada", "France", "Japan", "Netherlands", "Poland", "South Korea", "Spain", "Switzerland", "Taiwan", "United States"],
  "countryCount": 11,
  "primaryOutcomes": [{"measure": "Number of Participants Who Experience a Dose Limiting Toxicity (DLT)", "timeFrame": "Day 1 to Day 21"}],
  "changeType": "STATUS_CHANGED",
  "previousStatus": "ACTIVE_NOT_RECRUITING",
  "changedFields": ["overallStatus"],
  "previousLastUpdateDate": "2026-05-02"
}
```

Dates are as registered: some are only a month (`2016-07`); `*DateType` says whether a date is `ACTUAL` or `ESTIMATED`. The change fields (`changeType`, `previousStatus`, `previousDates`, `changedFields`, `previousLastUpdateDate`) appear only in change-tracking mode. The run's `OUTPUT` record summarizes the run: matching trials, trials read and charged, and the count per `changeType`.

The dataset has two views: **Overview** and **Changes**.

### How much does it cost?

Pay per event, no usage fees:

| Event | When | Suggested price |
|---|---|---|
| `apify-actor-start` | Once per run (charged by Apify) | US$ 0.00005 |
| `study` | Once per trial returned | US$ 0.002 |

- Normal mode: every returned trial is charged.
- Change-tracking mode: **only `NEW`, `STATUS_CHANGED` and `DATES_CHANGED` trials are charged**. `UNCHANGED` trials are free, even with `includeUnchanged`. A weekly run over 2,000 tracked trials where 15 changed costs 15 events.
- Errors are never charged. When your maximum charge per run is reached the Actor stops, and the trials it did not return are reported again on the next run.

The `study` price, **US$ 0.002 (US$ 2 per 1,000)**, was set like this:

- Apify compute costs US$ 0.20 per compute unit (1 CU = 1 GB of memory for 1 hour). The Actor runs with 256 MB; peak memory measured locally was 73 MB for 100 trials and 117 MB for 5,000 trials with a snapshot.
- One API page holds up to 1,000 trials and the Actor waits 1.3 s between pages (the API allows about 50 requests per minute). Estimating 3 to 5 s per 1,000 trials on the platform, 1,000 trials use 0.25 GB × 5 s / 3,600 = 0.00035 CU = **US$ 0.00007**. Start-up (10 to 20 s) adds about US$ 0.0003 per run.
- Apify keeps 20% of revenue (profit = 0.8 × revenue − platform costs), so US$ 0.002 leaves US$ 0.0016 per trial: a run that returns a single trial already pays its own start-up, and larger runs keep more than 95% margin. The margin is what pays for maintenance when the API changes.
- Similar Actors in the Store charge about US$ 1 to US$ 15 per 1,000 trials and return every trial on every run. With change tracking, a scheduled watch list here costs only what actually changed.

**$0.002 per study** (`study` event, pay per event). Charged once per study returned (new or changed in monitor mode). Errors are free.

- `apify-actor-start`: $0.00005 (Charged once when a run starts (Apify synthetic event).)

| You get | Free tier | Bronze tier (10% off) | Gold tier (30% off) |
|---|---|---|---|
| 100 studys | $0.20 | $0.18 | $0.14 |
| 1,000 studys | $2.00 | $1.80 | $1.40 |
| 10,000 studys | $20.00 | $18.00 | $14.00 |

Discounts follow your Apify subscription tier: Bronze 10%, Silver 20%, Gold and above 30%. No subscription to this Actor and no charge for platform usage: you pay only for results.
The Apify Free plan includes $5 of monthly credit, enough for about **2,500 studys** at the list price.
You can cap the cost of any run with **Maximum cost per run**; the Actor stops when it is reached.

### Data source

[ClinicalTrials.gov](https://clinicaltrials.gov), the registry of clinical studies run by the U.S. National Library of Medicine (NLM) at the National Institutes of Health, through its official public **API v2** (`https://clinicaltrials.gov/api/v2/studies`). No API key or login is needed. The Actor asks the API only for the fields it returns (`fields=`), never scrapes web pages, and pauses 1.3 s between pages to stay under the API's limit of about 50 requests per minute per IP. If the API refuses or does not answer, the run fails with a clear message and nothing is charged.

ClinicalTrials.gov data are provided by NLM at no charge to anyone in or outside the United States. Per the ClinicalTrials.gov terms, attribute the data to **ClinicalTrials.gov** when you use it, keep it current (every item carries `lastUpdateDate` and the study `url`), and do not claim NLM's endorsement. Study records are submitted by sponsors and investigators; NLM does not verify their scientific accuracy, and this dataset is not medical advice.

**Personal data:** the Actor does not collect contact names, e-mails, phone numbers or investigators, and reduces sites to their country. In sponsor-investigator studies, where the lead sponsor can be an individual, the person's name is replaced by their institution (or left empty) and `sponsorMasked` is `true`.

This Actor is not affiliated with or endorsed by NLM, NIH or ClinicalTrials.gov.

### More questions

#### How fresh is the data?

Live: every run calls the official ClinicalTrials.gov API v2. Sponsors update their own records, so a status change shows up only after the sponsor posts it and the registry publishes it. `lastUpdateDate` on each trial tells you when its record last changed.

#### What does a date type of ACTUAL or ESTIMATED mean?

Each key date comes with a type. `ESTIMATED` is the sponsor's planned date and can still move; `ACTUAL` means it happened. `DATES_CHANGED` in change mode catches both slips and corrections, with the old values in `previousDates`.

#### Why did a trial disappear instead of showing STATUS_CHANGED?

Because it no longer matches your filters. If you filter on `statuses: ["RECRUITING"]`, a trial that becomes `COMPLETED` drops out of the results. To follow status changes, leave `statuses` empty.

#### What happens if a run stops before reading every trial?

If a run stops at `maxResults` or at your spending limit, the snapshot is marked incomplete and the next run reads the whole search again instead of only recent updates, so no change is missed. On the first run, set `maxResults` above the number of matching trials.

#### Can I follow a fixed list of trials?

Yes. Put the NCT IDs in `nctIds` (for example your portfolio, a partner's or a competitor's trials) and clear `condition`, otherwise both filters apply together. Give the list its own `snapshotName` so it does not share a snapshot with other schedules.

#### Are investigators' names or contact details included?

No. Site contacts, investigators and site addresses are not requested from the API; only the site countries are kept. When a person is the sponsor or a collaborator (sponsor-investigator studies), the name is replaced by their institution or left empty, and `sponsorMasked` is `true`.

#### Does the API limit how much I can download?

ClinicalTrials.gov allows about 50 requests per minute per IP address. The Actor reads up to 1,000 trials per request, pauses between pages and retries on HTTP 429 or server errors. If the API keeps refusing, the run fails with a clear message; failed requests are never charged.

#### Can this tell me whether a trial is right for me or a patient?

No. The Actor copies registry records and gives no medical advice. Eligibility and safety questions belong with the study team listed on the ClinicalTrials.gov page (the `url` field) and with a doctor.

### Use it via API

Run it from any language and get the results as JSON. Replace `<YOUR_API_TOKEN>` with your [Apify API token](https://console.apify.com/settings/integrations).

```bash
curl -X POST "https://api.apify.com/v2/acts/br_data_hub~clinical-trials-tracker/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"condition": "obesity", "phases": ["PHASE3"], "statuses": ["RECRUITING"], "maxResults": 100}'
```

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("br_data_hub/clinical-trials-tracker").call(run_input={'condition': 'obesity',
                                      'phases': ['PHASE3'],
                                      'statuses': ['RECRUITING'],
                                      'maxResults': 100})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)
```

You can also schedule runs, send results to webhooks, or connect the Actor to Make, Zapier, n8n, Google Sheets and other [integrations](https://docs.apify.com/platform/integrations).

### Use it with AI agents (MCP)

This Actor is ready for AI agents: typed input and output schemas, pay-per-event pricing, limited permissions and short runs.

- **Apify MCP server:** add `https://mcp.apify.com/?tools=br_data_hub/clinical-trials-tracker` to Claude, ChatGPT, Cursor, VS Code or any MCP client, and the agent can call this Actor as a tool.
- **Agent frameworks:** call it from LangChain, LlamaIndex, CrewAI or the OpenAI Agents SDK through the Apify integrations, or with the API call above.
- Results come as structured JSON with stable field names, documented in the **Output** tab.

### FAQ

#### Where does the data come from?

[ClinicalTrials.gov](https://clinicaltrials.gov), the registry of clinical studies run by the U.S. National Library of Medicine (NLM) at the National Institutes of Health, through its official public **API v2** (`https://clinicaltrials.gov/api/v2/studies`). No API key or login is needed. The Actor asks the API only for the fields it returns (`fields=`), never scrapes web pages, and pauses 1.3 s between pages to stay under the API's limit of about 50 requests per minute per IP. If the API refuses or does not answer, the run fails with a clear message and nothing is charged.

#### How much does it cost?

$0.002 per study. Discounts follow your Apify subscription tier: Bronze 10%, Silver 20%, Gold and above 30%. See **How much does it cost?** above for examples.

#### Do I pay for errors or empty results?

No. Charged once per study returned (new or changed in monitor mode). Errors are free.

#### Can I run it on a schedule or connect it to other tools?

Yes. Use Apify schedules to run it daily or weekly, webhooks to get notified, and integrations such as Make, Zapier, n8n and Google Sheets. Everything also works through the API.

#### Can AI agents use it?

Yes. It works as a tool in the Apify MCP server and in agent frameworks, and AI agents can pay per event. See **Use it with AI agents (MCP)**.

#### Is it legal to use this data?

The Actor reads only public sources. You are responsible for how you use the data and for complying with the source's terms and with privacy laws such as GDPR.

#### I found a bug or need a feature. What should I do?

Open an issue in the **Issues** tab. We answer within 14 days, usually much sooner.

### More Actors from BR Data Hub

| Actor | What it does |
|---|---|
| [Domain RDAP Lookup: modern WHOIS for any TLD](https://apify.com/br_data_hub/domain-rdap-lookup) | Bulk RDAP lookup on each TLD's official registry server (IANA bootstrap): registrar, creation, update and expi |
| [Email Domain Auth Checker: SPF, DKIM, DMARC, BIMI, MTA-STS](https://apify.com/br_data_hub/email-domain-auth-checker) | Bulk check SPF (real recursive lookup count vs |
| [CVE Risk Prioritizer, from NVD, CISA KEV and EPSS data](https://apify.com/br_data_hub/cve-risk-prioritizer) | One row per CVE built from public NVD (CVSS, CWE, affected products), CISA KEV (exploited, due date, ransomwar |
| [Food, Drug & Device Recalls Monitor (from openFDA data)](https://apify.com/br_data_hub/fda-recalls-monitor) | Food, drug and medical device recalls from the official openFDA enforcement API in one uniform format |

See all our Actors at [apify.com/br_data_hub](https://apify.com/br_data_hub).

### Usar em português

Pesquise a API oficial do ClinicalTrials.gov por doença (`condition`), intervenção ou medicamento (`intervention`), patrocinador (`sponsor`), fase (`phases`), status (`statuses`), país (`countries`) e data de atualização (`updatedSince`). Cada estudo vem normalizado: NCT ID, título, fase, status, patrocinador e colaboradores, condições, intervenções, número de participantes, datas de início, conclusão primária e última atualização, número de centros e países, desfechos primários e link.

Ligue `trackChanges` e agende o Actor: ele guarda uma foto da busca num key-value store nomeado e marca cada estudo como `NEW` (novo), `STATUS_CHANGED` (mudou de status, por exemplo de `RECRUITING` para `COMPLETED`), `DATES_CHANGED` (datas mudaram) ou `UNCHANGED`. Nesse modo, só estudos novos ou alterados são devolvidos e cobrados. É feito para inteligência competitiva e business development em farma. A cobrança é pelo evento `study`; erros não são cobrados.

**Quanto custa:** $0.002 por resultado (`study`); 1.000 resultados saem por $2.00. Desconto pelo nível da assinatura Apify: Bronze 10%, Silver 20%, Gold ou acima 30%. Erros e consultas sem resultado não são cobrados. Use também pela API ou por agentes de IA no servidor MCP da Apify (`https://mcp.apify.com/?tools=br_data_hub/clinical-trials-tracker`).

# Actor input Schema

## `condition` (type: `string`):

Type a disease or condition as on ClinicalTrials.gov, e.g. obesity, non-small cell lung cancer or Alzheimer disease. The registry expands synonyms.

## `intervention` (type: `string`):

Type a drug, device or procedure by generic name, brand name or code, e.g. semaglutide, Keytruda or AMG 355.

## `sponsor` (type: `string`):

Type a company or institution that sponsors or collaborates on the study, e.g. Novo Nordisk or National Cancer Institute.

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

Pick the phases to keep. Phase 1/2 studies match both Phase 1 and Phase 2. Leave empty for all phases.

## `statuses` (type: `array`):

Pick the overall statuses to keep, e.g. Recruiting. Leave empty for all statuses (recommended with change tracking, so moves such as Recruiting to Completed stay visible).

## `countries` (type: `array`):

Enter countries in English as on ClinicalTrials.gov, one per line, e.g. United States, Brazil. Studies with at least one site in any of them are kept.

## `updatedSince` (type: `string`):

Pick a date to keep only studies whose record was last updated on or after it.

## `searchTerms` (type: `string`):

Type free text or an Essie expression searched in all study fields, e.g. "GLP-1" or AREA\[StudyType]INTERVENTIONAL. See the ClinicalTrials.gov search syntax.

## `nctIds` (type: `array`):

Enter trial IDs to follow, one per line, e.g. NCT06131398 (your portfolio, partners or competitors). Combined with the other filters; leave the condition empty to track exactly these trials.

## `trackChanges` (type: `boolean`):

Turn on for scheduled runs: the Actor keeps a snapshot in a named key-value store and marks each study NEW, STATUS_CHANGED, DATES_CHANGED or UNCHANGED. Only new and changed studies are returned and charged.

## `includeUnchanged` (type: `boolean`):

Turn on to also return studies marked UNCHANGED (free of charge). After the first run only recently updated studies are read, so this lists unchanged studies among those.

## `firstRunAsBaseline` (type: `boolean`):

Turn on to have the first run (no snapshot yet) only save the snapshot, without returning or charging any study. Later runs report only what changed.

## `snapshotName` (type: `string`):

Name this watch list, e.g. obesity-phase3, so several schedules can track different searches. Leave empty to derive it from the filters (changing the filters then starts a new snapshot).

## `storeName` (type: `string`):

Type the name of the key-value store in your Apify account that keeps the snapshots between runs.

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

Set the maximum number of studies read per run, e.g. 100. With change tracking, set it above the number of matching studies so the snapshot covers the whole search.

## Actor input object example

```json
{
  "condition": "obesity",
  "phases": [
    "PHASE3"
  ],
  "statuses": [
    "RECRUITING"
  ],
  "trackChanges": false,
  "includeUnchanged": false,
  "firstRunAsBaseline": false,
  "storeName": "clinical-trials-tracker",
  "maxResults": 100
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset with all results

## `files` (type: `string`):

Key-value store with the files and the OUTPUT summary of the run

# 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 = {
    "condition": "obesity",
    "phases": [
        "PHASE3"
    ],
    "statuses": [
        "RECRUITING"
    ],
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("br_data_hub/clinical-trials-tracker").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 = {
    "condition": "obesity",
    "phases": ["PHASE3"],
    "statuses": ["RECRUITING"],
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("br_data_hub/clinical-trials-tracker").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 '{
  "condition": "obesity",
  "phases": [
    "PHASE3"
  ],
  "statuses": [
    "RECRUITING"
  ],
  "maxResults": 100
}' |
apify call br_data_hub/clinical-trials-tracker --silent --output-dataset

```

## MCP server setup

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

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/6kYDlcrxKTeesSOzV/builds/r7LeXLTSpprhDmaM2/openapi.json
