# Clinical Trial Tracker — 500K+ ClinicalTrials.gov (`ryanclinton/clinical-trial-tracker`) Actor

Clinical Trial Tracker is an Apify actor that searches and extracts structured data from ClinicalTrials.gov, the world's largest registry of clinical studies with over 500,000 trials from 221 countries.

- **URL**: https://apify.com/ryanclinton/clinical-trial-tracker.md
- **Developed by:** [Ryan Clinton](https://apify.com/ryanclinton) (community)
- **Categories:** AI, Developer tools
- **Features:** Limited permissions
- **Stats:** 8 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 trial fetcheds

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

## Clinical Trial Tracker

### What does Clinical Trial Tracker do?

Clinical Trial Tracker is an Apify actor that searches and extracts structured data from ClinicalTrials.gov, the world's largest registry of clinical studies with over 500,000 trials from 221 countries. Filter by disease, drug, sponsor, trial phase, recruitment status, or geographic location and get clean, structured JSON output ready for analysis, integration, or monitoring.

This actor uses the official ClinicalTrials.gov API v2 -- no API key required, no login needed, and no scraping involved. Every run returns richly detailed trial records including interventions, eligibility criteria, enrollment numbers, primary outcomes, site locations, and direct links back to the source registry.

### Why use Clinical Trial Tracker on Apify?

The ClinicalTrials.gov website is designed for one-off searches, not systematic data collection. There is no built-in export for large datasets, no way to monitor for new trials, and no structured data format suitable for analysis pipelines.

The raw ClinicalTrials.gov API v2, while free and powerful, requires handling pagination with page tokens, mapping deeply nested response objects, managing rate limits (~50 requests/minute), and building query parameters. This actor does all of that:

- **No API key required** -- The ClinicalTrials.gov API is completely free and public.
- **Structured output** -- Deeply nested API responses are mapped to flat, consistent JSON records.
- **Automatic pagination** -- Retrieves up to 5,000 trials per run with cursor-based pagination.
- **Post-query filtering** -- Filter results by recruitment status and trial phase after the API query.
- **Built-in rate limiting** -- Stays within ClinicalTrials.gov guidelines (1.5-second intervals between requests).
- **Scheduled monitoring** -- Track new trials weekly with Apify's scheduler.

### Key features

- **Search by disease or condition** -- Query trials for any condition: diabetes, lung cancer, Alzheimer's, rare diseases, or any of the thousands of conditions tracked.
- **Filter by drug or intervention** -- Narrow results to specific drugs (pembrolizumab, metformin), devices, biologics, or behavioral interventions.
- **Sponsor and collaborator search** -- Find all trials run by a specific pharmaceutical company, university, or government agency.
- **Geographic location filtering** -- Search trials by country, state, or city to find studies recruiting near a specific location.
- **Recruitment status filters** -- Focus on actively recruiting trials, completed studies, or any combination.
- **Phase-level filtering** -- Isolate Phase 1, Phase 2, Phase 3, or Phase 4 trials.
- **Rich structured output** -- Every trial record includes conditions, interventions, eligibility, enrollment counts, outcome measures, site locations, and timeline dates.
- **Up to 5,000 results per run** -- Automatic pagination with cursor-based tokens.

### Use cases

**Pharmaceutical competitive intelligence** -- A market intelligence team at a mid-size pharma company tracks all Phase 3 trials for PD-1/PD-L1 inhibitors. They run the actor weekly with `intervention: "pembrolizumab"` and `phaseFilter: ["PHASE3"]`, exporting results to Google Sheets where they compare enrollment targets and site counts across competitors.

**CRO business development** -- A clinical research organization monitors newly registered trials by running daily with `statusFilter: ["NOT_YET_RECRUITING"]` and `sortBy: "StartDate:desc"`. When a new trial appears from a target sponsor, they trigger a Slack notification to the BD team.

**Patient advocacy database** -- A rare disease foundation searches for all trials mentioning their condition, regardless of status. They schedule monthly runs and publish the results on their website to help patients find relevant studies.

**Biotech investment analysis** -- A venture capital analyst evaluates a biotech startup's pipeline by searching for all trials sponsored by the company. They compare enrollment numbers, phases, and completion timelines against the company's investor presentations.

**Systematic review** -- An academic researcher gathers all completed trials for a specific drug across all phases and countries. They export to CSV for meta-analysis, using the structured eligibility criteria and primary outcomes to assess study quality.

**Healthcare policy research** -- A policy researcher tracks clinical trial activity by geographic region, using the location filter to compare trial density across US states or between countries.

### How to use Clinical Trial Tracker

1. **Set your search parameters** -- Enter at least one of: a condition or disease name, an intervention or drug name, a sponsor organization, or a geographic location. You can combine multiple parameters to narrow your search.
2. **Apply optional filters** -- Use the status filter to focus on recruiting trials only, or the phase filter to isolate Phase 3 studies. Leave these empty to return all statuses and phases.
3. **Configure result limits and sorting** -- Set the maximum number of results (up to 5,000) and choose how results are sorted: by start date, last update, or enrollment count.
4. **Run the actor** -- Click "Start" on the Apify platform or trigger via the API.
5. **Export your data** -- Download results as JSON, CSV, or Excel from the Apify dataset view.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `condition` | String | At least one search field | `"lung cancer"` | Disease or condition to search for |
| `intervention` | String | At least one search field | - | Drug, device, or intervention name |
| `sponsor` | String | At least one search field | - | Sponsor organization name |
| `location` | String | At least one search field | - | Country, state, or city for trial site filtering |
| `statusFilter` | String\[] | No | Recruiting + Active | Filter by trial recruitment status |
| `phaseFilter` | String\[] | No | All phases | Filter by trial phase |
| `maxResults` | Integer | No | 50 | Maximum number of trials to return (1-5,000) |
| `sortBy` | String | No | `StartDate:desc` | Sort order for results |

#### Input examples

**Phase 3 cancer immunotherapy trials:**

```json
{
    "condition": "non-small cell lung cancer",
    "intervention": "pembrolizumab",
    "phaseFilter": ["PHASE3"],
    "statusFilter": ["RECRUITING", "ACTIVE_NOT_RECRUITING"],
    "maxResults": 100
}
```

**All trials by a specific sponsor:**

```json
{
    "sponsor": "Pfizer",
    "maxResults": 500,
    "sortBy": "StartDate:desc"
}
```

**Recruiting trials near a location:**

```json
{
    "condition": "type 2 diabetes",
    "location": "Texas",
    "statusFilter": ["RECRUITING"],
    "maxResults": 200
}
```

**Completed rare disease trials for systematic review:**

```json
{
    "condition": "cystic fibrosis",
    "statusFilter": ["COMPLETED"],
    "maxResults": 5000,
    "sortBy": "StartDate:desc"
}
```

#### Input tips

- **Combine search fields for precision** -- Searching for condition "breast cancer" AND intervention "trastuzumab" AND sponsor "Roche" returns highly targeted results.
- **Use `COMPLETED` status for historical analysis** -- Include completed trials to see what has been studied in your area of interest.
- **Sort by `LastUpdatePostDate:desc` for monitoring** -- When scheduling recurring runs, this ensures you catch newly modified trials first.
- **Start small** -- Run with 10-20 results first to verify your search parameters before scaling to thousands.

### Output example

Each trial record in the dataset:

```json
{
    "nctId": "NCT05839626",
    "title": "A Study of Datopotamab Deruxtecan in Participants With Advanced Non-Small Cell Lung Cancer",
    "officialTitle": "TROPION-Lung08: A Phase 3 Study...",
    "status": "RECRUITING",
    "phases": ["PHASE3"],
    "studyType": "INTERVENTIONAL",
    "sponsor": "AstraZeneca",
    "sponsorClass": "INDUSTRY",
    "collaborators": ["Daiichi Sankyo, Inc."],
    "conditions": ["Non-small Cell Lung Cancer"],
    "interventions": [
        {
            "type": "DRUG",
            "name": "Datopotamab Deruxtecan",
            "description": "Antibody-drug conjugate targeting TROP2"
        }
    ],
    "enrollment": 860,
    "enrollmentType": "ESTIMATED",
    "startDate": "2023-07-18",
    "primaryCompletionDate": "2027-03-15",
    "completionDate": "2028-06-30",
    "lastUpdated": "2024-11-22",
    "briefSummary": "This study will evaluate the efficacy and safety...",
    "eligibility": {
        "criteria": "Inclusion Criteria:\n- Adults aged 18 years or older...",
        "healthyVolunteers": false,
        "sex": "ALL",
        "minimumAge": "18 Years",
        "maximumAge": null
    },
    "locations": [
        {
            "facility": "MD Anderson Cancer Center",
            "city": "Houston",
            "state": "Texas",
            "country": "United States"
        }
    ],
    "primaryOutcomes": [
        {
            "measure": "Progression-Free Survival (PFS)",
            "timeFrame": "From randomization until disease progression or death, up to 48 months"
        }
    ],
    "hasResults": false,
    "url": "https://clinicaltrials.gov/study/NCT05839626"
}
```

#### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `nctId` | String | ClinicalTrials.gov unique identifier (e.g., NCT05839626) |
| `title` | String | Brief title of the study |
| `officialTitle` | String/null | Full official title |
| `status` | String | Recruitment status (RECRUITING, COMPLETED, etc.) |
| `phases` | String\[] | Trial phases (PHASE1, PHASE2, PHASE3, PHASE4, EARLY_PHASE1, NA) |
| `studyType` | String/null | Study type (INTERVENTIONAL, OBSERVATIONAL, etc.) |
| `sponsor` | String/null | Lead sponsor organization name |
| `sponsorClass` | String/null | Sponsor classification (INDUSTRY, NIH, NETWORK, OTHER) |
| `collaborators` | String\[] | Names of collaborating organizations |
| `conditions` | String\[] | Conditions or diseases studied |
| `interventions` | Object\[] | Array of `{ type, name, description }` for each intervention |
| `enrollment` | Number/null | Target or actual enrollment count |
| `enrollmentType` | String/null | ESTIMATED or ACTUAL |
| `startDate` | String/null | Study start date |
| `primaryCompletionDate` | String/null | Primary completion date (primary endpoint data collection) |
| `completionDate` | String/null | Overall study completion date |
| `lastUpdated` | String/null | Date of last update on ClinicalTrials.gov |
| `briefSummary` | String/null | Brief description of the study |
| `eligibility` | Object/null | Eligibility criteria including age range, sex, healthy volunteers |
| `locations` | Object\[] | Array of `{ facility, city, state, country }` for each trial site |
| `primaryOutcomes` | Object\[] | Array of `{ measure, timeFrame }` for primary endpoints |
| `hasResults` | Boolean | Whether the trial has posted results on ClinicalTrials.gov |
| `url` | String | Direct link to the trial on ClinicalTrials.gov |

### How to use the API programmatically

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_API_TOKEN")

run_input = {
    "condition": "non-small cell lung cancer",
    "phaseFilter": ["PHASE3"],
    "statusFilter": ["RECRUITING"],
    "maxResults": 100,
}

run = client.actor("ryanclinton/clinical-trial-tracker").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['nctId']}: {item['title']}")
    print(f"  Sponsor: {item['sponsor']} | Enrollment: {item['enrollment']} | Phase: {item['phases']}")
```

#### JavaScript

```javascript
import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "YOUR_APIFY_API_TOKEN" });

const run = await client.actor("ryanclinton/clinical-trial-tracker").call({
    condition: "non-small cell lung cancer",
    phaseFilter: ["PHASE3"],
    statusFilter: ["RECRUITING"],
    maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.log(`${item.nctId}: ${item.title}`);
    console.log(`  Sponsor: ${item.sponsor} | Enrollment: ${item.enrollment}`);
});
```

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/ryanclinton~clinical-trial-tracker/runs?token=YOUR_APIFY_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "condition": "lung cancer",
    "phaseFilter": ["PHASE3"],
    "maxResults": 50
  }'

curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_APIFY_API_TOKEN&format=json"
```

### How it works

1. **Query construction** -- The actor maps input parameters to ClinicalTrials.gov API v2 query fields: `query.cond` for condition, `query.intr` for intervention, `query.spons` for sponsor, and `query.locn` for location.

2. **Pagination** -- The ClinicalTrials.gov API v2 uses cursor-based pagination with page tokens. The actor requests up to 100 studies per page and follows `nextPageToken` values until all results are fetched or the `maxResults` limit is reached. The first request includes `countTotal=true` to get the total match count.

3. **Post-query filtering** -- Status and phase filters are applied after the API returns results. This is necessary because the API's native filtering options are limited. The actor checks each trial against the specified `statusFilter` and `phaseFilter` sets and skips non-matching records.

4. **Response mapping** -- The ClinicalTrials.gov API returns deeply nested protocol section objects (identificationModule, statusModule, sponsorCollaboratorsModule, etc.). The actor maps these to a flat, consistent output structure, extracting the primary contact, lead sponsor, interventions, locations, eligibility criteria, and primary outcomes.

5. **Rate limiting** -- Requests are throttled to 1.5-second intervals (approximately 40 requests/minute), staying safely below the API's ~50 requests/minute guideline.

6. **Output** -- One record per trial is pushed to the Apify dataset with all structured fields.

### How much does it cost?

| Scenario | Trials | Est. Runtime | Est. Cost |
|----------|--------|-------------|-----------|
| Quick check | 50 | ~15 sec | ~$0.002 |
| Standard search | 500 | ~2 min | ~$0.02 |
| Large dataset | 5,000 | ~10 min | ~$0.10 |

**Apify Free Tier:** $5 of free monthly credits -- enough for hundreds of runs per month.

**ClinicalTrials.gov API:** Completely free. No API key, no charges, no registration.

### Recruitment status reference

| Status | Description |
|--------|-------------|
| `RECRUITING` | Actively seeking participants |
| `NOT_YET_RECRUITING` | Approved but not yet recruiting |
| `ACTIVE_NOT_RECRUITING` | Ongoing but no longer enrolling |
| `COMPLETED` | Study has ended normally |
| `TERMINATED` | Study stopped early |
| `WITHDRAWN` | Withdrawn before enrollment |
| `SUSPENDED` | Temporarily halted |
| `ENROLLING_BY_INVITATION` | Enrolling by invitation only |
| `UNKNOWN` | Status has not been verified recently |

### Trial phase reference

| Phase | Description | Typical Enrollment |
|-------|-------------|-------------------|
| `EARLY_PHASE1` | Exploratory IND studies | 10-30 |
| `PHASE1` | Safety, dosage, side effects | 20-100 |
| `PHASE2` | Efficacy, side effects | 100-300 |
| `PHASE3` | Confirm efficacy, monitor side effects | 300-3,000+ |
| `PHASE4` | Post-marketing surveillance | 1,000+ |
| `NA` | Not applicable (observational, etc.) | Varies |

### Combine with other actors

- **[openFDA Drug Event Monitor](https://apify.com/ryanclinton/openfda-drug-events)** -- Search FDA adverse drug event reports for drugs being tested in clinical trials. Cross-reference safety signals with trial phases.
- **[PubMed Biomedical Literature Search](https://apify.com/ryanclinton/pubmed-research-search)** -- Find published research papers related to trial conditions and interventions for literature reviews.
- **[NIH Research Grants Search](https://apify.com/ryanclinton/nih-research-grants)** -- Discover NIH-funded research grants linked to clinical trial programs and therapeutic areas.
- **[SEC EDGAR Filing Analyzer](https://apify.com/ryanclinton/sec-edgar-filing-analyzer)** -- Analyze pharma company SEC filings for pipeline disclosures, revenue projections, and risk factors related to their clinical programs.
- **[EMA Medicines Search](https://apify.com/ryanclinton/ema-medicines-search)** -- Search European Medicines Agency data for drugs with marketing authorization, complementing US clinical trial data.
- **[OpenAlex Research Search](https://apify.com/ryanclinton/openalex-research-search)** -- Search 250M+ academic works for publications related to trial results and endpoints.
- **[FDA Medical Device Recall Search](https://apify.com/ryanclinton/fda-device-recalls)** -- Track device recalls alongside clinical trial safety data for medical devices.

### Limitations

- **Post-query filtering reduces results** -- Status and phase filters are applied after the API query, meaning the actor may fetch more records from the API than appear in the output. If you request 50 results but filter aggressively, you may get fewer.
- **Location search is text-based** -- The location filter uses text matching, not geographic radius. Search "Texas" or "United States" rather than coordinates.
- **No full-text search** -- The API searches specific fields (condition, intervention, sponsor, location) but does not support full-text search across all trial content.
- **Rate limiting adds latency** -- The 1.5-second interval between requests means large runs (5,000 trials) take 10+ minutes. This is necessary to respect API guidelines.
- **Eligibility criteria is unstructured text** -- While enrollment age and sex are structured, the detailed inclusion/exclusion criteria are returned as raw text, not parsed fields.
- **5,000 result cap** -- The actor supports up to 5,000 trials per run. For larger datasets, run multiple queries with different filter combinations.

### Responsible use

- **Public data** -- All data comes from ClinicalTrials.gov, a public registry maintained by the U.S. National Library of Medicine. No private or restricted data is accessed.
- **Rate limiting** -- The actor throttles requests to stay within API guidelines. Do not bypass or modify the rate limiting.
- **Not medical advice** -- Trial data is for research and informational purposes only. Do not use this data to make medical decisions. Patients should consult healthcare providers.
- **Scheduling** -- Weekly or daily runs are appropriate. Avoid scheduling more frequently than needed.
- **Data accuracy** -- Trial information is self-reported by study sponsors and may not always be current. Always verify critical details on ClinicalTrials.gov.

### FAQ

**What data source does this actor use?**
The official ClinicalTrials.gov API v2 maintained by the U.S. National Library of Medicine (NLM), containing over 500,000 clinical studies from 221 countries.

**Do I need an API key?**
No. The ClinicalTrials.gov API v2 is completely free and open with no authentication required.

**How current is the data?**
ClinicalTrials.gov is updated in real time by study sponsors. The actor fetches live data on each run.

**Can I search for rare diseases?**
Yes. ClinicalTrials.gov includes trials for rare and orphan diseases. Consider removing status filters to capture all historical trials.

**Can I get results for trials outside the United States?**
Absolutely. Use the location field to search by any country, city, or region. ClinicalTrials.gov contains trials from 221 countries.

**What are the API rate limits?**
The actor includes built-in rate limiting (1.5-second intervals) to stay within ClinicalTrials.gov guidelines of approximately 50 requests per minute.

**Can I export to CSV or Excel?**
Yes. After the actor completes, click "Export" on the dataset page and choose your format. The Apify API also supports `format=csv` and `format=xlsx` parameters.

**How do I find trials for a specific drug?**
Use the `intervention` field with the drug name (e.g., "pembrolizumab", "metformin"). You can combine this with a condition for more targeted results.

### Integrations

- **Google Sheets** -- Export trial data directly for collaborative analysis and tracking.
- **Slack / Email** -- Get notifications when new trials appear for your monitored conditions.
- **Webhooks** -- Push results to your data warehouse, CRM, or custom pipeline.
- **Zapier / Make** -- Build multi-step automations combining trial data with other sources.
- **REST API** -- Call the actor programmatically from any language or platform.
- **Python & JavaScript SDKs** -- Use the official Apify client libraries for seamless integration.

# Actor input Schema

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

Disease or condition to search for (e.g. diabetes, lung cancer, Alzheimer's)

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

Drug, device, or intervention name (e.g. pembrolizumab, insulin)

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

Sponsor organization name (e.g. Pfizer, NIH, Novartis)

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

Location or country (e.g. United States, San Francisco, Germany)

## `statusFilter` (type: `array`):

Filter by trial status. Leave empty for all statuses.

## `phaseFilter` (type: `array`):

Filter by trial phase (e.g. PHASE1, PHASE2, PHASE3, PHASE4). Leave empty for all phases.

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

Maximum number of trials to return

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

Sort order for results

## Actor input object example

```json
{
  "condition": "lung cancer",
  "statusFilter": [
    "RECRUITING",
    "NOT_YET_RECRUITING",
    "ACTIVE_NOT_RECRUITING"
  ],
  "maxResults": 50,
  "sortBy": "StartDate:desc"
}
```

# Actor output Schema

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

No description

# 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"
};

// Run the Actor and wait for it to finish
const run = await client.actor("ryanclinton/clinical-trial-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": "lung cancer" }

# Run the Actor and wait for it to finish
run = client.actor("ryanclinton/clinical-trial-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": "lung cancer"
}' |
apify call ryanclinton/clinical-trial-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ryanclinton/clinical-trial-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/D8bW054PuJqzfL7hP/builds/167dk47FKLKGVRyqN/openapi.json
