ParseForge Scrapers

ClinicalTrials.gov Scraper

parseforge/clinicaltrials-scraper

AutomationDeveloper toolsOther

Scrapes clinical trial records from ClinicalTrials.gov by search query or direct URL. Returns each trial as a flat row with status, phase, enrollment, eligibility, contacts, locations, and posted dates.

Run this scraper See the API call
Total users
40
Monthly active
2
Total runs
426
Bookmarked
3
Rating
5.0 (1)
Last modified
12 days ago

Overview

ParseForge

ClinicalTrials.gov Scraper

Scrape clinical trials from ClinicalTrials.gov by condition, intervention, location, phase, sponsor, or date, up to a million per run. Every trial comes with its status, eligibility, contacts, locations, and posted results. No API key or registration. Export to CSV, JSON, Excel, or XML.

ClinicalTrials.gov's official API needs a registered account, a token, and rate limits that throttle large exports. This reads the public study registry directly, filtered by condition, drug, phase, sponsor, location, or date, and returns each match in one fixed schema.

Who uses it What they scrape ClinicalTrials.gov for
Market researchers Which trials are recruiting for a given condition this quarter
Pharma competitive intelligence teams What sponsors are running Phase 3 trials in a therapeutic area
Clinical operations teams Which sites are active for a protocol and their contact details
Patient advocacy groups Which recruiting trials match a disease and location for their community
Data journalists How many trials were posted or updated in a date range for a story

What it does

This Actor collects clinical trial records from ClinicalTrials.gov by search query or direct URL, and returns each trial as a flat row.

  • ๐Ÿ” Search or URL: start from a ClinicalTrials.gov search URL, an API endpoint, or build a query from condition, intervention, location, and other filters.
  • ๐Ÿ“Š Structured rows: each trial returns as one flat record with status, phase, enrollment, eligibility, contacts, locations, and posted dates.
  • ๐Ÿ—“๏ธ Date filters: restrict by study start, primary completion, study completion, first posted, results first posted, or last update posted.
  • ๐Ÿฅ Eligibility filters: filter by sex, age groups, age range, and whether healthy volunteers are accepted.
  • ๐Ÿ’Š Study filters: filter by phase, study type, results availability, document types, funder type, and FDAAA violation flag.
  • ๐Ÿ“„ Export ready: download as CSV, JSON, Excel, or XML for analysis or upload to your own database.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with ClinicalTrials.gov data

๐Ÿ“ˆ Track recruiting trials for a condition.

A market researcher sets condition to 'diabetes' and study status to 'Recruiting and not yet recruiting studies' to get a weekly list of new trials and their sites.

๐Ÿ’Š Monitor competitor pipelines.

A pharma analyst filters by lead sponsor and phase to see every Phase 3 trial a competitor has posted or updated in the last month.

๐Ÿฅ Find trial sites and contacts.

A clinical operations team searches by facility name or location to get site addresses and contact emails for a specific protocol.

๐Ÿ“Š Audit FDAAA compliance.

A compliance officer sets the FDAAA violation flag to true to list all studies flagged for results submission violations.

๐Ÿ“ฐ Build a news dataset.

A journalist filters by first posted date range to count how many trials were registered for a disease in a given year.

Why choose this scraper

What you get
No API key No registration or token, run the Actor
Up to 1M trials Paid users can pull up to a million records per run
All trial fields Status, phase, enrollment, eligibility, contacts, locations, and posted dates
Flexible filters Condition, intervention, location, sponsor, phase, study type, dates, and more
Export formats CSV, JSON, Excel, or XML

How it compares

This Actor focuses on ClinicalTrials.gov study records with deep filters and high-volume export, while the competitors below add FDA data or AI enrichment.

Feature ParseForge Clinical Trials & FDA Pipeline Intelligence Scraper Healthcare Intel ClinicalTrials.gov Scraper - Trials Data, No API Key
ClinicalTrials.gov study records Yes Yes Yes Yes
FDA drug approvals, devices, adverse events Not listed Yes Yes Not listed
AI-powered intelligence or news Not listed Not listed Yes Not listed
No API key required Yes Not listed Not listed Yes
Up to 1,000,000 records per run Yes Not listed Not listed Not listed
Export to CSV, JSON, Excel, XML Yes Not listed Not listed Yes

Configure the run

Drive the Actor from a ClinicalTrials.gov search URL or build a query from condition, intervention, location, sponsor, and other filters. Filters run as each trial is read so only matches reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
 "startUrl": "https://clinicaltrials.gov/search",
 "maxItems": 10
}

A larger pull:

{
 "startUrl": "https://clinicaltrials.gov/search",
 "maxItems": 200
}

Pricing

Pay-per-result: $0.16 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $16.00
1,000 results $160.00
10,000 results $1600.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the ClinicalTrials.gov Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to ClinicalTrials.gov through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/clinicaltrials-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your filters are not too restrictive. Try removing some filters or broadening the condition or intervention terms. Also verify that the startUrl, if used, is a valid ClinicalTrials.gov search URL.

Why did the run stop at 100 items?

Free users are limited to 100 items per run. Upgrade to a paid plan to increase maxItems up to 1,000,000.

Why are my date filters not working?

Date fields expect YYYY-MM-DD format. Make sure you entered both From and To dates correctly and that the From date is before the To date.

Why are some fields empty in the output?

Not all trials have every field populated. For example, results first posted date is only present for trials with posted results. Empty fields are normal.

Can I use a URL from the ClinicalTrials.gov website?

Yes, paste any search URL from clinicaltrials.gov/search into startUrl. The Actor will parse the query parameters and ignore other filters.

FAQ

Question Answer
Do I need a ClinicalTrials.gov API key? No. This Actor reads the public study registry directly, so no registration or token is required.
Can I scrape all trials for a condition? Yes. Set the condition field and any other filters, then set maxItems to the number you need. Paid users can pull up to 1,000,000 records.
What filters are available? You can filter by condition, intervention, location, study status, sex, age, phase, study type, results availability, document types, funder type, sponsor, dates, and more.
Can I use a search URL from ClinicalTrials.gov? Yes. Paste any ClinicalTrials.gov search URL or API endpoint into the startUrl field, and all other filters are ignored.
What export formats are supported? CSV, JSON, Excel, and XML.
Does it return posted results? Yes. Each record includes whether results are posted and the results first posted date when available.
Can I filter by sponsor? Yes. Use the leadSponsor field for the lead sponsor or sponsorOrCollaborator for any sponsor or collaborator.
Can I filter by study phase? Yes. Select one or more phases from Early Phase 1 through Phase 4, or Not applicable.
Does it include contact information? Yes. Each trial includes central and facility contacts with names, phone numbers, and emails when available.
Can I filter by location? Yes. Use the location field to search by address, city, state, zip code, or country.
Is there a limit for free users? Free users are limited to 100 items per run. Paid users can set maxItems up to 1,000,000.
Can I sort results? Yes. Sort by relevance or newest first.

Related actors

Browse the full ParseForge collection for more scrapers.

๐Ÿ†˜ Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.

โš ๏ธ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. National Library of Medicine. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
startUrl string Paste a ClinicalTrials.gov search URL or an `https://clinicaltrials.gov/api/int/studies?...` endpoint. When this is set, all other filters are ignored. https://clinicaltrials.gov/search
maxItems integer Free users: Limited to 100. Paid users: Optional, max 1,000,000 10
condition string Specific condition or disease to search for (e.g. diabetes, hypertension, cancer). This will be combined with other search terms. not set
otherTerms string Additional search terms (e.g. symptoms, treatments, keywords). This will be combined with condition and intervention. not set
intervention string Intervention or treatment to search for (e.g. drug name, procedure, device). This will be combined with other search terms. not set
location string Search by address, city, state, zip code, or country. For information on using this field, see the How to Search for Clinical Studies page. not set
studyStatusFilter string (2 options) Filter studies by status. 'All studies' shows all studies. 'Recruiting and not yet recruiting studies' shows only studies that are currently recruiting or not yet recruiting. all
sex string (3 options) Filter by eligible sex. all
ageGroups array Filter by standard ClinicalTrials.gov age buckets. Only used when 'Select ranges' is selected. not set
ageRangeFrom number Minimum age value. Only used when 'Manually enter range' is selected. not set
ageRangeFromUnit string (6 options) Unit of measurement for the minimum age value. years
ageRangeTo number Maximum age value. Only used when 'Manually enter range' is selected. not set
ageRangeToUnit string (6 options) Unit of measurement for the maximum age value. years
acceptsHealthyVolunteers boolean When true, only trials that accept healthy volunteers are returned. not set
phases array Filter interventional trials by phase labels. not set
studyTypes array Filter by study type buckets (interventional, observational, expanded access). not set
resultsAvailability string (3 options) Limit to studies with or without posted results. any
documentTypes array Return only studies with specific document uploads (protocols, SAPs, informed consent forms). not set
funderTypes array Filter by the lead sponsor / funder class reported to ClinicalTrials.gov. not set
studyStartDateFrom string Start date (YYYY-MM-DD) not set
studyStartDateTo string End date (YYYY-MM-DD) not set
primaryCompletionDateFrom string Start date (YYYY-MM-DD) not set
primaryCompletionDateTo string End date (YYYY-MM-DD) not set
studyCompletionDateFrom string Start date (YYYY-MM-DD) not set
studyCompletionDateTo string End date (YYYY-MM-DD) not set
firstPostedDateFrom string Start date (YYYY-MM-DD) not set
firstPostedDateTo string End date (YYYY-MM-DD) not set
resultsFirstPostedDateFrom string Start date (YYYY-MM-DD) not set
resultsFirstPostedDateTo string End date (YYYY-MM-DD) not set
lastUpdatePostedDateFrom string Start date (YYYY-MM-DD) not set
lastUpdatePostedDateTo string End date (YYYY-MM-DD) not set
titleOrAcronym string Search by study title or its acronym. not set
outcomeMeasure string Search by outcome measures used in the study. not set
sponsorOrCollaborator string Search by sponsor name or collaborator name. not set
leadSponsor string Search by the lead sponsor name specifically. not set
studyIds string Search by study identification numbers (e.g., NCT number, protocol ID). not set
facilityName string Search by the name of the facility where the study is conducted. not set
fdaRegulationViolation boolean Only return studies flagged for FDAAA results submission violations. not set
sortBy string (2 options) Sort search results by relevance or by newest entries first. relevance

Pricing

from $8.00 per 1,000 results

Charged forWhat it isPrice each
Actor Start Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). $0.05 to $0.16
result Single result in the default dataset. $0.008 to $0.012

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST ยท run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~clinicaltrials-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

Rated 5.0 out of 5 across 1 review. Read them on Apify.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run ClinicalTrials.gov Scraper on Apify All scrapers