# Trustpilot Reviews Scraper - Ratings & Replies, No Login (`cliqtomedia/trustpilot-reviews-scraper`) Actor

Get public Trustpilot reviews for any company domain: star rating, title, text, date, country, verification and the company's reply. Filter by stars, language and date; onlyNew for monitoring. No login.

- **URL**: https://apify.com/cliqtomedia/trustpilot-reviews-scraper.md
- **Developed by:** [Cliqto Media](https://apify.com/cliqtomedia) (community)
- **Categories:** Marketing, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.27 / 1,000 review saveds

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

Trustpilot Reviews Scraper gets public Trustpilot reviews for the companies you list: star rating, title, text, date, country, verification and the company's reply, one review per row. You pay $0.52 per 1,000 reviews on the free plan (less on paid plans), plus $0.007 per run and $0.001 per company lookup. No login and no Trustpilot account are needed.

Use it for review monitoring, competitor research, customer feedback analysis and AI pipelines. The smallest run is one domain, for example `apify.com`, with 20 reviews: it finishes in under half a minute.

![Trustpilot Reviews Scraper: company domains in, review rows with stars, country and company replies out, export as JSON or CSV. Star and language filters, only new reviews, no login.](https://api.apify.com/v2/key-value-stores/EI614puHRw62STC7H/records/hero.png)

### Table of contents

- [What it does](#what-it-does)
- [What data you get](#what-data-you-get)
- [Quick start](#quick-start)
- [Input](#input)
- [Input examples](#input-examples)
- [Output](#output)
- [Pricing](#pricing)
- [Use cases](#use-cases)
- [Monitoring with onlyNew](#monitoring-with-onlynew)
- [API, export and integrations](#api-export-and-integrations)
- [Use with AI agents (MCP)](#use-with-ai-agents-mcp)
- [Limits and partial results](#limits-and-partial-results)
- [Troubleshooting](#troubleshooting)
- [FAQ](#faq)
- [Support](#support)

### What it does

You give the Actor company domains (`apify.com`), company website URLs or Trustpilot review page URLs (`https://www.trustpilot.com/review/apify.com`). For each company it opens the public Trustpilot review page and saves the reviews to a Dataset.

- It reads only what any visitor can see. It does not log in.
- It follows Trustpilot's own redirect, so `booking.com` gives the reviews of `www.booking.com`.
- A domain that is not on Trustpilot gets the status `not_found` in the run summary. It is not mixed up with "0 reviews" or with an error.
- Filters: star ratings, languages, date range, verified only, only reviews with a company reply. Order: newest first or "most relevant".
- `onlyNew` skips reviews you already got in earlier runs. Skipped reviews are free.

#### Good fit

- Track new reviews of your company or your competitors every day.
- Collect 1- and 2-star reviews with company replies for support quality checks.
- Feed review text into sentiment analysis, topic search or an AI assistant.

#### Not a fit

- Reviewer contact data. The Actor does not collect emails, phones, reviewer IDs or profile photos.
- Every review of a very big company. Trustpilot shows visitors only 10 pages per filter. See [Limits](#limits-and-partial-results).
- Private Trustpilot Business data (invitations, private notes, analytics).

### What data you get

| Group | Fields |
| --- | --- |
| Review | `reviewId`, `rating`, `title`, `text`, `language`, `date`, `experienceDate`, `updatedDate`, `likes`, `url` |
| Reviewer (public only) | `reviewerName`, `country`, `reviewerReviewCount` |
| Trust | `verified`, `verificationLevel`, `reviewSource` |
| Company reply | `replyText`, `replyDate` |
| Company | `company`, `companyName`, `companyTrustScore`, `companyTotalReviews`, `companyUrl` |
| Provenance | `source`, `fetchedAt` |

### Quick start

1. Open the **Input** tab.
2. Keep the prefilled `companyDomains`: `apify.com`, or write your own domains, one per line.
3. Keep `maxReviews` at 20 (the prefill) or set up to 1000.
4. Click **Start**.
5. Open the **Output** tab. The **Reviews** view shows one row per review.

Expected result: 20 reviews of apify.com, newest first, in about 3–25 seconds.

### Input

| Field | Type | Required | Default | Allowed values | What it does |
| --- | --- | --- | --- | --- | --- |
| `companyDomains` | array of strings | yes | — (prefill `apify.com`) | 1–50 items: domain, website URL or Trustpilot review URL | Which companies to read. Duplicates are merged. |
| `maxReviews` | integer | no | 100 (prefill 20) | 1–1000 | Maximum reviews per company. |
| `stars` | array of strings | no | all | `1`–`5` | Only reviews with these star ratings. |
| `languages` | array of strings | no | all | two-letter codes (`en`, `de`, `fr`…) or `all` | Only reviews in these languages, read in this order. Up to 10 languages. A language the company has no reviews in is skipped. |
| `sort` | string | no | `recency` | `recency`, `relevance` | Newest first, or Trustpilot's "most relevant" order. |
| `dateRange` | string | no | `any` | `any`, `last30days`, `last3months`, `last6months`, `last12months` | Only reviews from this period. |
| `verifiedOnly` | boolean | no | `false` | | Only reviews Trustpilot marks as verified. |
| `withRepliesOnly` | boolean | no | `false` | | Only reviews the company answered. |
| `onlyNew` | boolean | no | `false` | | Skip reviews you already got in earlier runs with the same companies and filters. |

How settings work together:

- All filters work together (AND). Example: `stars` `["1","2"]` + `withRepliesOnly` = only 1- and 2-star reviews that have a reply.
- `maxReviews` counts per company. 5 companies × `maxReviews` 100 = up to 500 reviews.
- `onlyNew` always reads newest first, so it ignores `sort`.
- Empty `companyDomains` or a value that is not a domain stops the run with status `INVALID_INPUT` before any request to Trustpilot.

### Input examples

#### Latest reviews of one company

```json
{
  "companyDomains": ["apify.com"],
  "maxReviews": 20
}
```

You get the 20 newest reviews of apify.com in all languages.

#### Negative reviews with replies

```json
{
  "companyDomains": ["booking.com"],
  "maxReviews": 200,
  "stars": ["1", "2"],
  "withRepliesOnly": true
}
```

You get up to 200 one- and two-star reviews that the company answered, with `replyText` and `replyDate`.

#### Daily check of competitors

```json
{
  "companyDomains": ["apify.com", "www.booking.com", "airbnb.com"],
  "maxReviews": 100,
  "languages": ["en", "de"],
  "onlyNew": true
}
```

The first run saves up to 100 reviews per company. Later runs save only reviews that appeared since the last run.

### Output

One Dataset row = one review. This row comes from the first example (reviewer name, title and text replaced with examples here):

```json
{
  "company": "apify.com",
  "companyName": "Apify",
  "companyTrustScore": 4.8,
  "companyTotalReviews": 801,
  "reviewId": "6ad030d671f65d706717492a",
  "rating": 5,
  "title": "Great tool for…",
  "text": "We use it every day to…",
  "language": "en",
  "date": "2026-10-15T03:48:06.000Z",
  "experienceDate": "2026-09-15T00:00:00.000Z",
  "updatedDate": null,
  "country": "NZ",
  "reviewerName": "Alex",
  "reviewerReviewCount": 1,
  "verified": false,
  "verificationLevel": "invited",
  "reviewSource": "BasicLink",
  "likes": 0,
  "replyText": null,
  "replyDate": null,
  "url": "https://www.trustpilot.com/reviews/6ad030d671f65d706717492a",
  "companyUrl": "https://www.trustpilot.com/review/apify.com",
  "source": "trustpilot",
  "fetchedAt": "2026-10-15T04:17:01.060Z"
}
```

#### Output fields

| Field | Type | Can be null? | Meaning |
| --- | --- | --- | --- |
| `company` | string | no | Company domain on Trustpilot, after Trustpilot's redirect (`www.booking.com`). |
| `companyName` | string | yes | Company name on Trustpilot. |
| `companyTrustScore` | number | yes | TrustScore, 1–5. |
| `companyTotalReviews` | integer | yes | All reviews of the company on Trustpilot. |
| `reviewId` | string | no | Trustpilot review ID. Unique in one run. |
| `rating` | integer | yes | Stars, 1–5. |
| `title` | string | yes | Review title. |
| `text` | string | yes | Review text, as written. |
| `language` | string | yes | Review language, two-letter code. |
| `date` | ISO date | yes | When the review was published. |
| `experienceDate` | ISO date | yes | Date of the experience, if the reviewer gave it. |
| `updatedDate` | ISO date | yes | When the review was changed. `null` = not changed. |
| `country` | string | yes | Reviewer's country, two-letter code. |
| `reviewerName` | string | yes | Public display name. |
| `reviewerReviewCount` | integer | yes | How many reviews this reviewer wrote. |
| `verified` | boolean | yes | `true`/`false` from Trustpilot; `null` when Trustpilot does not say. |
| `verificationLevel` | string | yes | Trustpilot verification label, for example `invited`, `verified`, `not-verified`. |
| `reviewSource` | string | yes | How the review was collected, for example `Organic` or `BasicLink`. |
| `likes` | integer | yes | "Useful" votes. |
| `replyText` | string | yes | Company reply. `null` = no reply. |
| `replyDate` | ISO date | yes | When the company replied. |
| `url` | string | no | Link to the review on Trustpilot. |
| `companyUrl` | string | no | Link to the company page on Trustpilot. |
| `source` | string | no | Always `trustpilot`. |
| `fetchedAt` | ISO date | no | When the Actor saved the row. |

`null` means Trustpilot does not show this value. The Actor never puts `0` or an empty string instead of a missing value.

#### Run summary

Each run also writes `RUN_SUMMARY` to the default key-value store (Output tab → **Run summary**). It has:

- `status`: `COMPLETE`, `NO_RESULTS`, `PARTIAL`, `ERROR`, `INVALID_INPUT` or `CANCELLED`, and `reason` (`CHARGE_LIMIT`, `TIME_LIMIT`, `SOURCE_ERROR` or `null`);
- `counts`: companies, found, notFound, reviewsSaved, chargedReviews, chargedCompanies (company lookups charged), skippedSeen;
- `companies`: one line per company with `status` (`complete`, `no_reviews`, `not_found`, `partial`, `error`, `skipped`), `reason`, `totalReviews`, `matchingReviews`, `pagesFetched` and `saved`.

| Situation | Dataset | Run summary | What to do |
| --- | --- | --- | --- |
| Normal | review rows | `COMPLETE` | Use the rows. |
| Company not on Trustpilot | no rows for it | company `not_found` | Check the domain on trustpilot.com. |
| Filters match nothing | no rows | `NO_RESULTS`, `matchingReviews` 0 | Relax the filters. |
| Time or spending limit reached | rows saved so far | `PARTIAL` + `TIME_LIMIT` or `CHARGE_LIMIT` | Raise the timeout or the limit, or use `onlyNew`. |
| Trustpilot blocked or failed | rows saved so far | `PARTIAL` or `ERROR` + `SOURCE_ERROR`; run FAILED | Run again later. |

### Pricing

Pay per event. You pay only for these events; platform usage is included.

| Event | Price | When |
| --- | ---: | --- |
| Actor start | $0.007 | Once per run (1 GB memory). |
| Company lookup | $0.001 | Once per company, for each language in `languages` (once when `languages` is empty), when Trustpilot answers, including `not_found`. The first lookup of a company is always charged; each further language is charged only if the company has reviews in it. Not charged for invalid input or source errors. |
| Review saved | see below | Once per review row in the Dataset. Reviews skipped by `onlyNew` are free. |

Review price by Apify plan:

| Plan | Per review | Per 1,000 reviews |
| --- | ---: | ---: |
| Free | $0.00052 | $0.52 |
| Bronze | $0.00045 | $0.45 |
| Silver | $0.00035 | $0.35 |
| Gold | $0.00027 | $0.27 |
| Platinum | $0.00027 | $0.27 |
| Diamond | $0.00027 | $0.27 |

Cost examples on the Free plan:

| Run | Reviews | Price |
| --- | ---: | ---: |
| 1 company × 20 (prefill) | 20 | $0.0184 |
| 1 company × 100 | 100 | $0.0600 |
| 5 companies × 200 | 1,000 | $0.5320 |
| 3 companies × 1,000 | 3,000 | $1.5700 |
| 1 company × 100, `languages` en and de | 100 | $0.0610 |
| 1 domain not on Trustpilot | 0 | $0.0080 |
| `onlyNew`, 1 company, nothing new | 0 | $0.0080 |

To stop at a fixed amount, set **Maximum cost per run** in the run options. The Actor stops before it goes over, keeps the rows it saved and ends with `PARTIAL` + `CHARGE_LIMIT`.

### Use cases

| Job | Input | Key fields | Next step |
| --- | --- | --- | --- |
| Reputation monitoring | your domain + `onlyNew` | `rating`, `text`, `date`, `url` | Schedule daily, send new rows to Slack or a sheet. |
| Competitor research | 3–10 competitor domains | `rating`, `country`, `language`, `companyTrustScore` | Compare ratings by country and month. |
| Support quality | `stars` 1,2 + `withRepliesOnly` | `replyText`, `replyDate`, `date` | Measure reply time and tone. |
| AI and sentiment | any domains | `title`, `text`, `language`, `rating` | Send text to an LLM or a sentiment model. |

### Monitoring with onlyNew

Turn on `onlyNew` and create a [schedule](https://docs.apify.com/platform/schedules) in Apify Console (for example, daily).

- The first run works like a normal run.
- Later runs read newest first and stop when they reach reviews you already got. Only new reviews are saved and charged.
- The list of delivered review IDs is kept in your key-value store named `trustpilot-reviews-seen`, separately for each company and filter set. Delete this store to start again.
- A run with nothing new ends with `NO_RESULTS` and costs the start and company lookup events only.

### API, export and integrations

- **Export:** download the Dataset as JSON, CSV, Excel, XML or HTML from the Output tab.
- **API:** start the Actor and read the Dataset with the [Apify API](https://docs.apify.com/api/v2) or the JavaScript and Python clients. The input is the same JSON as in the examples.
- **Schedules and webhooks:** run on a schedule and send results to your system with a [webhook](https://docs.apify.com/platform/integrations/webhooks).
- **No-code:** connect to Make, Zapier, Google Sheets or Slack through [Apify integrations](https://docs.apify.com/platform/integrations).

### Use with AI agents (MCP)

This Actor works as a tool in AI agents through the Apify MCP server:

`https://mcp.apify.com?tools=cliqtomedia/trustpilot-reviews-scraper`

- Smallest useful input: `{"companyDomains": ["apify.com"], "maxReviews": 20}`.
- Key output fields: `rating` (1–5 stars), `text` (review text), `date` (published), `replyText` (company reply or `null`), `url` (review link).
- Typical run: 20 reviews in 3–25 seconds for $0.0184 on the Free plan. 200 reviews of one company take about 30 seconds.
- Input limits: up to 50 companies, 10 languages and 1,000 reviews per company per run. Trustpilot shows visitors only part of a big company's reviews, so you may get fewer (see `PUBLIC_PAGE_LIMIT`). Check `RUN_SUMMARY` for `not_found` and `PARTIAL`.

### Limits and partial results

- **Visitor page limit.** Trustpilot shows visitors 10 pages (200 reviews) for one filter. Above 200 the Actor reads several views (by stars, language, order and other filters) and merges them without duplicates. This reaches many more reviews, but not always all. Example: apify.com, 1,000 asked → 322 of 800 saved. The run summary then shows reason `PUBLIC_PAGE_LIMIT` for that company.
- **Speed.** The Actor makes at most about one request per second to be polite to Trustpilot. Measured: 200 reviews in about 30 seconds; 3 companies × 1,000 reviews in about 8 minutes.
- **Timeout.** The default run timeout is 300 seconds. That fits about one company × 1,000 reviews or several companies × 200. For bigger lists, raise **Timeout** in the run options. If time runs out, you keep all saved rows and the run ends with `PARTIAL` + `TIME_LIMIT`.
- **Languages.** With empty `languages`, you get all languages. trustpilot.com by itself shows only English, so the Actor asks for all languages for you.
- **Public data only.** No login, no private Business data, no reviewer contact data.

### Troubleshooting

#### A company shows `not_found`

Symptom: no rows for one domain; in `RUN_SUMMARY` the company has status `not_found`.
Reason: Trustpilot has no page for this domain.
Action: open `https://www.trustpilot.com/review/<domain>` in a browser. Try the domain with or without `www`, or paste the Trustpilot review URL.

#### Fewer reviews than `maxReviews`

Symptom: the company has 5,000 reviews, you asked for 1,000 and got fewer.
Reason: the visitor page limit (reason `PUBLIC_PAGE_LIMIT`), or the filters match fewer reviews (see `matchingReviews`).
Action: split the job by `languages`, `stars` or `dateRange`, or use `onlyNew` regularly so you collect new reviews as they appear.

#### The run ended with `PARTIAL` + `TIME_LIMIT`

Reason: the run timeout was reached. All saved rows are kept.
Action: raise **Timeout** in the run options or split the companies into several runs.

#### The run FAILED with `SOURCE_ERROR`

Reason: Trustpilot blocked the request or did not answer. Rows saved before that are kept.
Action: wait a few minutes and run again. If it repeats, open an issue with the run ID.

### FAQ

#### Do I need a Trustpilot account or login?

No. The Actor reads only public review pages, like a visitor.

#### Is it legal to scrape Trustpilot?

The Actor collects only public review data and no contact data. Trustpilot's terms limit automated access, and data protection laws (for example GDPR) apply to names in reviews. Check with your lawyer how you may use the data.

#### Do I pay for a domain that is not on Trustpilot?

Yes, $0.001 for the company lookup, plus the run start ($0.008 for a run with one such domain). For invalid input you pay only the run start ($0.007): the run stops before any request, so there are no company or review charges.

#### Is this the official Trustpilot API?

No. The official Trustpilot API needs a Trustpilot Business account. This Actor reads the public review pages, and you get the data through the Apify API, export or integrations.

#### How fresh is the data?

Each row is read live from Trustpilot during the run. `fetchedAt` shows when.

#### I used another Trustpilot scraper. What are the field names here?

Common names elsewhere → names here: `authorName` → `reviewerName`, `publishedDate` → `date`, `isVerified` → `verified`, `replyMessage` → `replyText`, `replyPublishedDate` → `replyDate`, `reviewUrl` → `url`, `companyDomain` → `company`, `authorReviewCount` → `reviewerReviewCount`. This Actor does not return reviewer IDs or profile photos.

### Support

For bugs, questions or feature requests, open the **Issues** tab of this Actor. Add the run ID, your input (you can shorten the domain list) and the `status` and `reason` from `RUN_SUMMARY`. Never send tokens, cookies or passwords.

# Changelog

This Actor's version history is a separate document: https://apify.com/cliqtomedia/trustpilot-reviews-scraper/changelog.md

# Actor input Schema

## `companyDomains` (type: `array`):

Company website domains as Trustpilot lists them (apify.com, www.booking.com), company website URLs or Trustpilot review page URLs (https://www.trustpilot.com/review/apify.com). One per line, up to 50. The Actor follows Trustpilot's own redirect when it lists the company with or without www.

## `maxReviews` (type: `integer`):

Stop after this many reviews for each company (1–1000). Trustpilot shows visitors 10 pages (200 reviews) per filter; above that the Actor reads each star rating separately, so more reviews are reachable. For big companies you may still get fewer than this: RUN_SUMMARY then says PUBLIC_PAGE_LIMIT.

## `stars` (type: `array`):

Only reviews with these star ratings. Leave empty for all ratings.

## `languages` (type: `array`):

Two-letter language codes (en, de, fr, es, it, nl, da, sv, pl, pt…), read in this order, up to 10. Leave empty or write "all" for every language. Note: trustpilot.com shows only English reviews unless you ask for other languages, so empty here means all of them.

## `sort` (type: `string`):

Newest first, or Trustpilot's "most relevant" order.

## `dateRange` (type: `string`):

Only reviews published in this period, as Trustpilot filters them.

## `verifiedOnly` (type: `boolean`):

Only reviews Trustpilot marks as verified.

## `withRepliesOnly` (type: `boolean`):

Only reviews the company answered.

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

Skip reviews this Actor already delivered to you in earlier runs with the same companies and filters, and stop paging once it reaches them. Skipped reviews are not charged. The list of delivered review IDs is kept in your key-value store named trustpilot-reviews-seen.

## Actor input object example

```json
{
  "companyDomains": [
    "apify.com",
    "www.booking.com"
  ],
  "maxReviews": 20,
  "stars": [],
  "languages": [],
  "sort": "recency",
  "dateRange": "any",
  "verifiedOnly": false,
  "withRepliesOnly": false,
  "onlyNew": false
}
```

# Actor output Schema

## `reviews` (type: `string`):

Trustpilot reviews as a table.

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

Status, one line per company and request statistics.

# 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 = {
    "companyDomains": [
        "apify.com"
    ],
    "maxReviews": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("cliqtomedia/trustpilot-reviews-scraper").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 = {
    "companyDomains": ["apify.com"],
    "maxReviews": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("cliqtomedia/trustpilot-reviews-scraper").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 '{
  "companyDomains": [
    "apify.com"
  ],
  "maxReviews": 20
}' |
apify call cliqtomedia/trustpilot-reviews-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,cliqtomedia/trustpilot-reviews-scraper"
        }
    }
}
```

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/09FEuwqOUXbVcDFHE/builds/YDFwQAYbxpJoSRQLQ/openapi.json
