🏥 Clinical Trials Scraper avatar

🏥 Clinical Trials Scraper

Pricing

from $10.00 / 1,000 results

Go to Apify Store
🏥 Clinical Trials Scraper

🏥 Clinical Trials Scraper

Extract and monitor clinical trial data from ClinicalTrials.gov to track new studies, recruitment updates, and targeted conditions using automated watchlist queries.

Pricing

from $10.00 / 1,000 results

Rating

0.0

(0)

Developer

太郎 山田

太郎 山田

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

20 hours ago

Last modified

Share

Clinical Trials Monitor | Condition & Recruitment Watch

Monitor ClinicalTrials.gov for new and updated studies matching condition keywords and recruitment status — one digest row per configured watchlist query without brittle broad crawling.

Store Quickstart

Run this actor with your target input. Results appear in the Apify Dataset and can be piped to webhooks for real-time delivery. Use dryRun to validate before committing to a schedule.

Key Features

  • 📈 Competitive intelligence — Aggregates cross-platform signals (reviews, listings, catalogs)
  • 🌐 Multi-source aggregation — Unifies iOS/Android/Shopify/market data in one run
  • 📊 Trend detection — Rolling averages, sentiment scoring, and share-of-voice metrics
  • 🎯 Targeted queries — Focused brand/product/keyword watchlists
  • 📡 Webhook intel push — Deliver insights to marketing/product teams in real-time

Use Cases

WhoWhy
DevelopersAutomate recurring data fetches without building custom scrapers
Data teamsPipe structured output into analytics warehouses
Ops teamsMonitor changes via webhook alerts
Product managersTrack competitor/market signals without engineering time

Input

FieldTypeDefaultDescription
watchlistarrayrequiredOne entry per monitored query. Each produces one digest row in the output. At minimum set id, name, and condition. Add r
watchTermsstringSponsor names, principal investigators, or institution names to flag in study digests. Any study matching a watch term r
maxStudiesPerQueryinteger50Upper bound on studies fetched per query per run. Increase for discovery; keep lower for recurring digest runs.
deliverystring"dataset"dataset stores results in the Apify dataset. webhook posts the digest JSON to webhookUrl.
webhookUrlstringPOST target for trial digest payload. Leave empty for dataset delivery.
datasetModestring"all"all emits every query digest row. action_needed emits only queries with watch-term hits or new recruiting studies. new_o
snapshotKeystring"clinical-trials-monitor-state"Stable key used to persist seen study NCT IDs across recurring runs so new_only and action_needed modes stay comparable.
clinicalTrialsApiUrlstring"https://clinicaltrials.gov/api/v2/studies"ClinicalTrials.gov API v2 studies endpoint. No API key required.

Input Example

{
"maxStudiesPerQuery": 50,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "clinical-trials-monitor-state",
"clinicalTrialsApiUrl": "https://clinicaltrials.gov/api/v2/studies",
"requestTimeoutSeconds": 30,
"notifyOnNoNew": true,
"dryRun": false
}

Output

FieldTypeDescription
metaobject
errorsarray
digestsarray
digests[].queryIdstring
digests[].queryNamestring
digests[].conditionstring
digests[].recruitmentStatusFilterarray
digests[].checkedAttimestamp
digests[].statusstring
digests[].newStudyCountnumber
digests[].totalStudyCountnumber
digests[].recruitingCountnumber
digests[].changedSinceLastRunboolean
digests[].actionNeededboolean
digests[].recommendedActionstring
digests[].topSponsorsarray
digests[].watchTermHitsarray
digests[].signalTagsarray
digests[].studiesarray
digests[].errornull

Output Example

{
"meta": {
"generatedAt": "2026-04-15T09:00:00.000Z",
"now": "2026-04-15T09:00:00.000Z",
"queryCount": 2,
"totalStudies": 7,
"newStudies": 4,
"watchTermHitCount": 2,
"actionNeededCount": 1,
"snapshot": {
"key": "clinical-trials-monitor-sample",
"loadedFrom": "local",
"savedTo": "local"
},
"warnings": [],
"executiveSummary": {
"overallStatus": "action_needed",
"brief": "1 query(s) have sponsor watch-term hits requiring review.",
"topSponsors": [
{
"name": "Pfizer Inc",
"studyCount": 2,
"isWatchTermHit": true
},
{
"name": "Novo Nordisk A/S",
"studyCount": 1,
"isWatchTermHit": true
},
{
"name": "AstraZeneca",
"studyCount": 2,
"isWatchTermHit": false
}
],
"watchTermHits": [
{
"term": "Pfizer",
"studyId": "NCT05001234",
"sponsor": "Pfizer Inc",

API Usage

Run this actor programmatically using the Apify API. Replace YOUR_API_TOKEN with your token from Apify Console → Settings → Integrations.

cURL

curl -X POST "https://api.apify.com/v2/acts/taroyamada~clinical-trials-pipeline-monitor/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "maxStudiesPerQuery": 50, "delivery": "dataset", "datasetMode": "all", "snapshotKey": "clinical-trials-monitor-state", "clinicalTrialsApiUrl": "https://clinicaltrials.gov/api/v2/studies", "requestTimeoutSeconds": 30, "notifyOnNoNew": true, "dryRun": false }'

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("taroyamada/clinical-trials-pipeline-monitor").call(run_input={
"maxStudiesPerQuery": 50,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "clinical-trials-monitor-state",
"clinicalTrialsApiUrl": "https://clinicaltrials.gov/api/v2/studies",
"requestTimeoutSeconds": 30,
"notifyOnNoNew": true,
"dryRun": false
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('taroyamada/clinical-trials-pipeline-monitor').call({
"maxStudiesPerQuery": 50,
"delivery": "dataset",
"datasetMode": "all",
"snapshotKey": "clinical-trials-monitor-state",
"clinicalTrialsApiUrl": "https://clinicaltrials.gov/api/v2/studies",
"requestTimeoutSeconds": 30,
"notifyOnNoNew": true,
"dryRun": false
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Tips & Limitations

  • Run weekly for trend tracking; daily for competitive launch monitoring.
  • Use webhook delivery to push insights into your BI tools or marketing Slack.
  • Archive results in Apify Dataset for your own historical trend analysis.
  • Combine with ai-visibility-monitor-actor for AI-era brand surface coverage.
  • Start with a small watchlist, iterate on keyword precision before scaling.

FAQ

What platforms are covered?

Varies by actor — see each actor's input schema for the full source list. Most cover 3–8 major platforms per vertical.

How is data deduplicated across sources?

The actor normalizes entity identifiers (brand name, SKU) before aggregation — cross-source duplicates are merged.

Can I whitelabel the output?

Dataset rows are raw data — build your own presentation layer to whitelabel.

Is the sentiment scoring accurate?

Sentiment uses rule-based + keyword scoring tuned for English. For non-English content, treat scores as directional rather than absolute.

Can I share the dashboard output?

Export from Dataset API into your BI tool (Looker, Metabase, Tableau) for stakeholder-facing dashboards.

Market Intelligence cluster — explore related Apify tools:

Cost

Pay Per Event:

  • actor-start: $0.01 (flat fee per run)
  • dataset-item: $0.003 per output item

Example: 1,000 items = $0.01 + (1,000 × $0.003) = $3.01

No subscription required — you only pay for what you use.