# ClinicalTrials.gov Scraper: New Clinical Trial Alerts (`radiant_opuntia/clinical-trials-alerts`) Actor

Search and monitor clinical trials from ClinicalTrials.gov, the official US registry. Filter by condition, drug, sponsor, phase, status and country. Flat JSON with sponsor, sites, contacts and enrollment. 'Only new' mode for daily new-trial alerts. No API key.

- **URL**: https://apify.com/radiant_opuntia/clinical-trials-alerts.md
- **Developed by:** [GovData Feeds](https://apify.com/radiant_opuntia) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 results

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/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

**Get new ClinicalTrials.gov studies as clean rows by condition, drug, sponsor, phase, status and location, with sponsor class, enrollment, dates and recruiting sites, plus new-trial alerts.**

**Rate your experience:** if you have used this Actor, you can tell us how it went on the [reviews page](https://apify.com/radiant_opuntia/clinical-trials-alerts/reviews). Honest feedback of any kind helps us improve it.

### What it does and who it is for

This Actor reads the official **ClinicalTrials.gov API v2** and returns one flat record per study: **NCT ID, titles, status, phase, study type, conditions, interventions, sponsor and sponsor class, collaborators, first-posted, update, start and completion dates, enrollment, eligibility basics, brief summary, primary outcomes, countries, contact, principal investigator, study sites and a link**. Optional long eligibility criteria can be added.

Filter by condition, intervention, sponsor, keyword, location, country, status, phase, study type, sex, industry-sponsored only, has-results only and date windows. Turn on **Only new** for new-study alerts, or choose **New or updated** to be alerted again when a study's record changes.

#### Use cases

- **Pharma and biotech competitive intelligence:** watch new trials in your indication or by a rival sponsor.
- **CROs, recruitment and site-selection vendors:** reach sponsors of new studies.
- **Patient advocacy groups and clinicians:** a feed of newly recruiting studies for a condition.
- **Investors and analysts:** follow Phase 2 and Phase 3 starts and results postings.
- **AI agents:** answer "which industry-sponsored Phase 3 lung cancer trials started recruiting this month?".

### Why use this instead of the free official site or API

The underlying data is public and the official sources are free. What this Actor adds is convenience: the API's deeply nested JSON becomes one flat record per study with a ready-made new-study alert.

| What you need | Official site / API | This Actor |
|---|---|---|
| Reading study data | The API returns deeply nested JSON modules | Flat fields, with lists joined into readable text |
| Watching a topic | Saved searches in the website, or your own polling code | Saved input run on a schedule, with **Only new** |
| Alerting on changes | Compare last-update dates yourself | **New or updated** mode alerts again when a study record changes |
| Finding industry trials | Filter by sponsor name | An industry-only switch and a `sponsorClass` field |

If you only need a single lookup now and then, the official site is fine. If you want the same data on a schedule, as flat rows you can feed to a spreadsheet, CRM or agent, this saves the glue work.

### Data fields

| Field | Type | What it contains |
|---|---|---|
| `nctId` | text | ClinicalTrials.gov identifier (NCT number). |
| `title` | text | Brief title. |
| `officialTitle` | text | Official title. |
| `acronym` | text | Study acronym, when given. |
| `status` | text | Overall recruitment status (for example RECRUITING). |
| `whyStopped` | text | Reason a study was stopped, when stated. |
| `phases` | text | Study phase(s). |
| `studyType` | text | INTERVENTIONAL, OBSERVATIONAL or EXPANDED_ACCESS. |
| `primaryPurpose` | text | Primary purpose of the study (for example TREATMENT). |
| `conditions` | text | Conditions studied, joined with semicolons. |
| `keywords` | text | Keywords listed by the sponsor. |
| `interventions` | text | Interventions with their types. |
| `sponsor` | text | Lead sponsor. |
| `sponsorClass` | text | INDUSTRY, NIH, FED, OTHER and so on. |
| `collaborators` | text | Collaborating organizations. |
| `firstPostedDate` | date | Date the study was first posted. |
| `lastUpdatePostedDate` | date | Date the record was last updated. |
| `startDate` | date | Study start date. |
| `primaryCompletionDate` | date | Primary completion date. |
| `completionDate` | date | Study completion date. |
| `resultsPosted` | boolean | true when results have been posted. |
| `enrollment` | integer | Enrollment count. |
| `enrollmentType` | text | ACTUAL or ESTIMATED. |
| `sex` | text | Sexes eligible. |
| `minimumAge` | text | Minimum age. |
| `maximumAge` | text | Maximum age. |
| `healthyVolunteers` | boolean | Whether healthy volunteers are accepted. |
| `briefSummary` | text | Brief summary of the study. |
| `primaryOutcomes` | text | Primary outcome measures. |
| `locationCount` | integer | Number of study sites listed. |
| `countries` | text | Countries with study sites. |
| `contactName` | text | Central contact name. |
| `contactPhone` | text | Central contact phone. |
| `contactEmail` | text | Central contact email as published on ClinicalTrials.gov. |
| `principalInvestigator` | text | Responsible party or principal investigator as listed. |
| `url` | text | Link to the study on ClinicalTrials.gov. |
| `locations` | text | Up to 15 study sites (when **Include locations** is on). |
| `recruitingLocationCount` | integer | Number of sites currently recruiting. |
| `scrapedAt` | datetime | When the Actor collected the record (UTC). |
| `eligibilityCriteria` | text | Full inclusion and exclusion criteria text. Only present when **Include eligibility criteria** is on. |

Fields a source does not publish are `null`.

### "New since yesterday" alerts

Turn on **Only new** and the Actor remembers what it has already returned, so each scheduled run delivers only records you have not seen before.

1. Open the Actor in Apify Console and set the input, with **Only new since last run** switched on and a fixed alert name (`stateKey`). Example input:

```json
{
  "condition": "lung cancer",
  "phases": ["PHASE2", "PHASE3"],
  "statuses": ["RECRUITING", "NOT_YET_RECRUITING"],
  "postedWithinDays": 30,
  "industryOnly": true,
  "alertOn": "newStudies",
  "maxResults": 100,
  "onlyNew": true,
  "stateKey": "lung-cancer-industry-trials"
}
```

2. Click **Save as task**, then open **Schedules**, create a schedule (for example the cron expression `0 7 * * *` for every day at 7:00 in the time zone you pick) and add the task to it.
3. Under the task's **Integrations**, send the results to Slack, email, Google Sheets, a webhook or your own system.

Switch `alertOn` to `newOrUpdated` if you also want a new alert each time a study's record changes (status change, results posted and so on).

The first run returns everything that matches your window (all matching studies first posted in the last 30 days); later runs return only unseen records. Use a different alert name for each task so each keeps its own memory. A run with nothing new returns no results.

### Cost per run

This Actor uses **pay-per-result pricing: $3.00 per 1,000 results ($0.003 per result)**, with the Apify platform fee included. You are charged for the records a run returns and nothing is added on top for platform usage. A run that finds nothing new returns no results, so it has no per-result charge. The **Max results** input caps what a run can return (and so what it can cost).

**Worked example:** a weekly alert returning 12 new studies costs 12 × $0.003 = $0.036 per run. Pulling 5,000 studies costs 5 × $3.00 = $15.00.

The pricing is configured in Apify Console; the Pricing tab on this page is the authoritative source if it ever differs from this text.

### Example input and output

The output below comes from real test runs of this Actor. Email addresses are masked and very long text is shortened here; the Actor returns the full values.

Input used for the example:

```json
{
  "condition": "breast cancer",
  "statuses": ["RECRUITING", "NOT_YET_RECRUITING"],
  "phases": ["PHASE2", "PHASE3"],
  "industryOnly": true,
  "postedWithinDays": 30,
  "onlyNew": true,
  "stateKey": "breast-cancer-industry",
  "maxResults": 25
}
```

Output (the first 2 records of a test run):

```json
[
  {
    "nctId": "NCT07890597",
    "title": "A Study of a Medicine Called Atirmociclib in Combination With Giredestrant in Adult Participants With ER-positive, HER2-negative Early-stage Breast Cancer",
    "officialTitle": "AN INTERVENTIONAL, DOUBLE-BLIND, PLACEBO CONTROLLED, RANDOMIZED, MULTICENTER PHASE 3 STUDY OF ATIRMOCICLIB (PF-07220060) PLUS GIREDESTRANT COMPARED TO GIREDESTRANT MONOTHERAPY AS ADJUVANT TREATMENT IN ADULT PARTICIPANTS …",
    "acronym": null,
    "status": "NOT_YET_RECRUITING",
    "whyStopped": null,
    "phases": "PHASE3",
    "studyType": "INTERVENTIONAL",
    "primaryPurpose": "TREATMENT",
    "conditions": "Early Breast Cancer; Estrogen Receptor Positive (ER+), Human Epidermal Growth Factor Receptor 2 Negative (HER2-)",
    "keywords": "ER+/HR-; Adjuvant",
    "interventions": "Atirmociclib (drug); giredestrant (drug); Atirmociclib placebo (other)",
    "sponsor": "Pfizer",
    "sponsorClass": "INDUSTRY",
    "collaborators": null,
    "firstPostedDate": "2026-10-22",
    "lastUpdatePostedDate": "2026-10-22",
    "startDate": "2026-12-01",
    "primaryCompletionDate": "2032-04-13",
    "completionDate": "2042-08-20",
    "resultsPosted": false,
    "enrollment": 3800,
    "enrollmentType": "ESTIMATED",
    "sex": "ALL",
    "minimumAge": "18 Years",
    "maximumAge": null,
    "healthyVolunteers": false,
    "briefSummary": "This Phase 3 study will evaluate whether atirmociclib plus giredestrant improves invasive breast cancer-free survival compared with giredestrant alone in adults with ER-positive, HER2-negative early breast cancer at medi…",
    "primaryOutcomes": "Invasive Breast Cancer Free Survival (iBCFS); Invasive Disease Free Survival (iDFS)",
    "locationCount": 0,
    "countries": null,
    "contactName": "Pfizer CT.gov Call Center",
    "contactPhone": "1-800-718-1021",
    "contactEmail": "[email masked]",
    "principalInvestigator": "Pfizer CT.gov Call Center, Pfizer",
    "url": "https://clinicaltrials.gov/study/NCT07890597",
    "locations": null,
    "recruitingLocationCount": 0,
    "scrapedAt": "2026-10-23T12:14:52.446Z"
  },
  {
    "nctId": "NCT07885683",
    "title": "MagSense® Human Epidermal Growth Factor Receptor 2 (HER2) Imaging Agent (MSH2IA)",
    "officialTitle": "A Phase 1b/2 Study Investigating MagSense® Human Epidermal Growth Factor Receptor 2 (HER2) Imaging Agent (MSH2IA) Using Magnetic Resonance Imaging in Participants With HER2+ Breast Cancer for the Assessment of Tumor Invo…",
    "acronym": null,
    "status": "NOT_YET_RECRUITING",
    "whyStopped": null,
    "phases": "PHASE1, PHASE2",
    "studyType": "INTERVENTIONAL",
    "primaryPurpose": "DIAGNOSTIC",
    "conditions": "HER2-positive Breast Cancer",
    "keywords": null,
    "interventions": "The MagSense® HER2 Imaging Agent (MSH2IA) (combination_product)",
    "sponsor": "Imagion Biosystems, Inc.",
    "sponsorClass": "INDUSTRY",
    "collaborators": "City of Hope National Medical Center",
    "firstPostedDate": "2026-10-21",
    "lastUpdatePostedDate": "2026-10-21",
    "startDate": "2026-11-30",
    "primaryCompletionDate": "2029-01-31",
    "completionDate": "2029-07-23",
    "resultsPosted": false,
    "enrollment": 70,
    "enrollmentType": "ESTIMATED",
    "sex": "FEMALE",
    "minimumAge": "18 Years",
    "maximumAge": null,
    "healthyVolunteers": false,
    "briefSummary": "This Phase 1b/2 study is designed as an open-label, multicenter, 3 group, interventional study in which Phase 1b will evaluate the pharmacokinetics (PK) of MSH2IA and Phase 2 will confirm lowest effective dose as well as…",
    "primaryOutcomes": "Phase 1b: Level of Fe in blood; Phase 2 (Imaging Schedule): Dose and Imaging schedule for MSH2IA; Phase 2 (Diagnostic Performance): Diagnostic performance comparison between MSH2IA and SOC",
    "locationCount": 0,
    "countries": null,
    "contactName": "Mohammad Eghtedari, M.D., Ph.D.",
    "contactPhone": "626-739-8446",
    "contactEmail": "[email masked]",
    "principalInvestigator": null,
    "url": "https://clinicaltrials.gov/study/NCT07885683",
    "locations": null,
    "recruitingLocationCount": 0,
    "scrapedAt": "2026-10-23T12:14:52.453Z"
  }
]
```

### Limits worth knowing

- Results reflect the ClinicalTrials.gov API at the time of the run, so a study appears once it has been posted there.
- Narrow filter combinations (for example Phase 3 plus a single sex plus results posted) can legitimately return 0 studies.
- Contact fields are only filled when the sponsor published a central contact.
- Locations are limited to 15 sites per study; `locationCount` shows the total.
- The default window is studies first posted in the last 30 days. Use the update window or explicit dates for other views.

### FAQ

#### Do I need an API key?

No. ClinicalTrials.gov API v2 is public.

#### Can I be alerted when a trial changes?

Yes. Turn on Only new and set the alert type to **New or updated**.

#### Does it include results data?

It tells you whether results are posted (`resultsPosted`) and links to the study. Detailed results tables are on ClinicalTrials.gov.

#### How do I find industry trials only?

Turn on **Industry-sponsored only**.

#### Is this medical advice?

No. It returns public registry data. Talk to a clinician about trial participation.

### Related Actors

More Actors from GovData Feeds, all on Apify:

- [grants-gov-alerts](https://apify.com/radiant_opuntia/grants-gov-alerts): US federal grant opportunities (Grants.gov): ceilings, deadlines, eligibility
- [sec-form-d-alerts](https://apify.com/radiant_opuntia/sec-form-d-alerts): SEC Form D filings: companies that just raised money
- [usaspending-awards-alerts](https://apify.com/radiant_opuntia/usaspending-awards-alerts): New federal contract, grant and loan awards (USAspending)
- [sec-form4-insider-alerts](https://apify.com/radiant_opuntia/sec-form4-insider-alerts): SEC Form 4 insider buys and sells, one row per transaction
- [fda-recall-alerts](https://apify.com/radiant_opuntia/fda-recall-alerts): FDA food, drug and medical device recalls
- [fda-compliance-alerts](https://apify.com/radiant_opuntia/fda-compliance-alerts): FDA 510(k) clearances, MAUDE adverse events and warning letters
- [cpsc-recall-alerts](https://apify.com/radiant_opuntia/cpsc-recall-alerts): CPSC consumer product safety recalls
- [us-building-permits-alerts](https://apify.com/radiant_opuntia/us-building-permits-alerts): New building permits from nine city open-data portals
- [federal-register-alerts](https://apify.com/radiant_opuntia/federal-register-alerts): Federal Register rules, proposed rules and notices
- [contractor-license-alerts](https://apify.com/radiant_opuntia/contractor-license-alerts): New contractor licenses in WA, OR and NY with bond and insurance
- [ofac-sanctions-alerts](https://apify.com/radiant_opuntia/ofac-sanctions-alerts): OFAC sanctions screening and change alerts
- [new-business-registrations-alerts](https://apify.com/radiant_opuntia/new-business-registrations-alerts): New LLC and corporation registrations (NY, CO, OR, CT)
- [epa-echo-enforcement-alerts](https://apify.com/radiant_opuntia/epa-echo-enforcement-alerts): EPA ECHO facilities with new environmental penalties
- [restaurant-inspections-alerts](https://apify.com/radiant_opuntia/restaurant-inspections-alerts): Restaurant health inspections from seven US jurisdictions
- [code-violations-alerts](https://apify.com/radiant_opuntia/code-violations-alerts): Building, housing and property code violations from six cities

*Data comes from ClinicalTrials.gov (US National Library of Medicine). This Actor is not affiliated with or endorsed by the NIH. It is not medical advice.*

# Actor input Schema

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

Disease or condition studied. Synonyms are matched automatically. Examples: 'lung cancer', 'type 2 diabetes', 'alzheimer'.

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

Treatment being tested. Examples: 'pembrolizumab', 'semaglutide', 'CAR-T'.

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

Company, university or agency running the trial. Examples: 'Pfizer', 'Mayo Clinic', 'National Cancer Institute'.

## `keyword` (type: `string`):

Free-text search across the whole study record.

## `location` (type: `string`):

City, state or facility name where the study recruits. Example: 'Houston', 'Texas', 'MD Anderson'.

## `country` (type: `string`):

Only studies with a site in this country, e.g. 'United States', 'Germany', 'Japan'.

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

Leave empty for all statuses.

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

Leave empty for all phases.

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

Interventional trials test a treatment; observational studies don't.

## `sex` (type: `string`):

Only studies open to this group.

## `industryOnly` (type: `boolean`):

Only studies led by a company (pharma / biotech / device). Useful for sales and competitive intelligence.

## `hasResultsOnly` (type: `boolean`):

Only studies that have published results.

## `postedWithinDays` (type: `integer`):

Newly registered studies. 0 = off. Ignored if a start date is set.

## `updatedWithinDays` (type: `integer`):

Studies whose record changed recently (status, sites, results). 0 = off. Only used when 'First posted within' is 0.

## `startDate` (type: `string`):

YYYY-MM-DD. Applies to the field chosen under 'Date field'.

## `endDate` (type: `string`):

YYYY-MM-DD.

## `dateField` (type: `string`):

Which date the explicit start and end dates apply to.

## `sortBy` (type: `string`):

Order of results. Matters when you set a low max results.

## `includeLocations` (type: `boolean`):

Adds a short list of study sites (up to 15) and the number of currently recruiting sites.

## `includeEligibility` (type: `boolean`):

Adds the long inclusion/exclusion criteria text.

## `onlyNew` (type: `boolean`):

Remember which studies were already returned and output only new ones. Use with a daily Schedule + email/Slack/webhook integration.

## `alertOn` (type: `string`):

Used with 'Only new'. 'New studies' alerts once per study. 'New or updated' also alerts again each time a study's record is updated (status change, results posted...). Pair that with 'Updated within last N days'.

## `stateKey` (type: `string`):

Separate memory for 'only new' mode. Defaults to a key derived from your filters.

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

Stop after this many studies.

## Actor input object example

```json
{
  "condition": "lung cancer",
  "statuses": [
    "RECRUITING",
    "NOT_YET_RECRUITING"
  ],
  "phases": [],
  "studyType": "ANY",
  "sex": "ANY",
  "industryOnly": false,
  "hasResultsOnly": false,
  "postedWithinDays": 30,
  "updatedWithinDays": 0,
  "dateField": "firstPosted",
  "sortBy": "newest",
  "includeLocations": true,
  "includeEligibility": false,
  "onlyNew": false,
  "alertOn": "newStudies",
  "maxResults": 50
}
```

# Actor output Schema

## `results` (type: `string`):

All clinical trial records returned by this run (flat JSON items in the default dataset).

## `runSummary` (type: `string`):

Counts of items pushed and items skipped as already seen (only-new mode).

# 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": "lung cancer",
    "statuses": [
        "RECRUITING",
        "NOT_YET_RECRUITING"
    ],
    "studyType": "ANY",
    "sex": "ANY",
    "industryOnly": false,
    "hasResultsOnly": false,
    "postedWithinDays": 30,
    "updatedWithinDays": 0,
    "dateField": "firstPosted",
    "sortBy": "newest",
    "includeLocations": true,
    "includeEligibility": false,
    "onlyNew": false,
    "alertOn": "newStudies",
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("radiant_opuntia/clinical-trials-alerts").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": "lung cancer",
    "statuses": [
        "RECRUITING",
        "NOT_YET_RECRUITING",
    ],
    "studyType": "ANY",
    "sex": "ANY",
    "industryOnly": False,
    "hasResultsOnly": False,
    "postedWithinDays": 30,
    "updatedWithinDays": 0,
    "dateField": "firstPosted",
    "sortBy": "newest",
    "includeLocations": True,
    "includeEligibility": False,
    "onlyNew": False,
    "alertOn": "newStudies",
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("radiant_opuntia/clinical-trials-alerts").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": "lung cancer",
  "statuses": [
    "RECRUITING",
    "NOT_YET_RECRUITING"
  ],
  "studyType": "ANY",
  "sex": "ANY",
  "industryOnly": false,
  "hasResultsOnly": false,
  "postedWithinDays": 30,
  "updatedWithinDays": 0,
  "dateField": "firstPosted",
  "sortBy": "newest",
  "includeLocations": true,
  "includeEligibility": false,
  "onlyNew": false,
  "alertOn": "newStudies",
  "maxResults": 50
}' |
apify call radiant_opuntia/clinical-trials-alerts --silent --output-dataset

```

## MCP server setup

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

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/qidwTIppqKlYCSWAf/builds/d41BUTaOxhX5z6gLF/openapi.json
