# TikTok Shop Search Scraper (`data_wiki/tiktok-shop-search-scraper`) Actor

Search TikTok Shop by keyword and see real units sold, prices, discounts, reviews, seller stats and promo videos. No login needed. Great for finding winning products, spying on competitors and dropshipping research.

- **URL**: https://apify.com/data_wiki/tiktok-shop-search-scraper.md
- **Developed by:** [Data WiKi](https://apify.com/data_wiki) (community)
- **Stats:** 3 total users, 2 monthly users, 85.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

### 🚀 What is TikTok Shop Search Scraper?

TikTok Shop Search Scraper is an Apify Actor and a TikTok Shop scraper that searches the US storefront by keyword. It returns each product with price, exact units sold, SKUs with stock, seller stats, a review sample and promoting videos. You need no login, and you can export the results as JSON, CSV or Excel.

- **Bulk keywords:** this TikTok Shop data scraper takes many keywords or keyword links in one run, and each keyword gets its own product limit.
- **Exact units sold:** TikTok Shop units sold are read from the product page, not from the rounded number shown in search results.
- **Live results:** every product is saved the moment it is read, so the Output tab fills while the run is going.
- **Separate tables:** as a TikTok Shop product scraper it saves products, SKUs, videos, reviews, sellers and keywords in their own tables, so each part is easy to filter.
- **Hands-off connection handling:** the Actor retries and switches connection by itself when TikTok Shop rejects requests.

As a TikTok Shop web scraper it uses plain requests rather than a browser, and Apify runs it in the cloud, so you install nothing. Click **Try for free**, type a keyword and press **Start**.

### 📊 What data can you extract from TikTok Shop?

The Actor builds a TikTok Shop dataset with 44 fields per product, and you can export it to JSON, CSV, Excel, XML or HTML. Fields marked "details" are filled only when **Full product details** is on (the default); without it you get the search-card fields and `null` for the rest. The values in the Example column are illustrative.

| Field | Description | Example |
|---|---|---|
| `keyword` | Search keyword that found the product | `phone case` |
| `rank` | Position of the product among the saved results of its keyword | `1` |
| `product_id` | TikTok Shop product ID | `1000000000000000001` |
| `title` | Product title | `Example Shockproof Phone Case` |
| `url` | Link to the product page | `https://shop.tiktok.com/us/pdp/x/1000000000000000001` |
| `price` | Current price a buyer pays (default option) | `4.99` |
| `original_price` | List price before the discount, when one exists | `7.99` |
| `discount_pct` | Discount in percent, when one exists | `38` |
| `currency` | Currency code of the prices | `USD` |
| `price_min` / `price_max` | Lowest and highest price across all options (details) | `4.99` / `9.99` |
| `sold_count` | Units sold: exact with details, rounded by TikTok Shop otherwise | `1523` |
| `rating` | Average star rating | `4.6` |
| `review_count` | Number of customer reviews | `212` |
| `rating_breakdown` | Number of reviews per star level, 1 to 5 (details) | `{"5": 160}` |
| `status` | Listing status, `active` when on sale (details) | `active` |
| `free_shipping` | Whether shipping is free | `false` |
| `shipping_fee` | Shipping fee (details) | `3.5` |
| `delivery_days` | Estimated delivery time as \[min, max] days (details) | `[5, 9]` |
| `ships_from` | Where the product ships from (details) | `United States` |
| `deal_labels` | Promotion labels shown on the product | `["Limited time deal"]` |
| `brand` | Brand name, when TikTok Shop lists one | `ExampleBrand` |
| `category_path` | Category names from top level to leaf (details) | `["Phones & Electronics", "Phone Cases"]` |
| `category_ids` | Category IDs from top level to leaf (details) | `["1001", "1002"]` |
| `image` | Main product image | `https://...` |
| `images` | All product images (details) | `["https://..."]` |
| `description` | Product description as plain text (details) | `Slim case with raised edges.` |
| `description_images` | Images inside the description (details) | `["https://..."]` |
| `specifications` | Specifications as name and value pairs (details) | `{"Material": "TPU"}` |
| `variants` | Variant groups such as Color or Size with their values (details) | `[{"name": "Color", "values": ["Black"]}]` |
| `sku_count` | Number of purchasable variants | `2` |
| `skus` | Every SKU with price, stock and purchase limit (details) | `[{"sku_id": "...", "stock": 420}]` |
| `total_stock` | Stock summed over all SKUs (details) | `730` |
| `seo_keywords` | Keywords TikTok Shop attaches to the product (details) | `["phone case"]` |
| `related_keywords` | "People also searched" keywords; needs videos per product above 0 | `["clear phone case"]` |
| `seller_id` / `seller_name` / `seller_logo` | Seller (shop) ID, name and logo | `Example Case Shop` |
| `seller` | Seller stats: rating, followers, sold count, product count, badge (details) | `{"followers": 5200}` |
| `promo_video` | The video shown with the product in the search, with play and like counts | `{"play_count": 18000}` |
| `related_videos` | TikTok videos promoting the product; needs videos per product above 0 | `[{"like_count": 63}]` |
| `reviews` | A sample of the customer reviews shown on the product page (details) | `[{"rating": 5}]` |
| `scraped_at` | Time the product was read (UTC) | `2026-10-27T10:00:00Z` |
| `error` | `null` when everything was read, otherwise a short note on what is missing | `null` |

A TikTok Shop SKU row has the variant, price, stock and purchase limit. The seller row has the shop rating, followers, sold count and badge. Each review row has the rating, text, date, reviewer name, verified-purchase flag and country. TikTok Shop product videos come in a separate table with play and like counts. Without full product details you still get TikTok Shop product data from the search results: price, rounded units sold, rating, review count, seller name, image, deal labels and the promo video.

> 💡 Result tables: the default dataset has one row per product, and `skus`, `videos`, `reviews`, `sellers` and `keywords` are extra tables in the Output tab.

### 💡 Use cases for TikTok Shop data

- **Product research:** rank the saved products by `sold_count`, `rating` and `review_count` for TikTok Shop product research in any niche.
- **Winning products:** set **Min units sold** to keep only TikTok Shop winning products that already have proven sales, then check `price_min`, `price_max` and `total_stock`.
- **Dropshipping research:** build a shortlist for dropshipping product research from price, `shipping_fee`, `delivery_days` and `ships_from`. To compare with wholesale prices, [check wholesale prices on 1688](https://apify.com/data_wiki/1688-wholesale-products-scraper).
- **Best sellers and trends:** collect TikTok Shop best sellers for a keyword by sorting on `sold_count`. Run the same keyword every week and compare `sold_count` between runs to spot TikTok Shop trending products.
- **Competitor and seller analysis:** read the sellers table (rating, followers, product count, badge) for TikTok Shop competitor analysis.
- **Price and discount tracking:** schedule the Actor and compare `price`, `original_price` and `scraped_at` across runs as a TikTok Shop price tracker. Compare `discount_pct` and `deal_labels` the same way to see changing deals.
- **Keyword and niche research:** use `related_keywords` and the keywords table for TikTok Shop keyword research. Count products, units sold and sellers per keyword to size a niche for TikTok Shop niche research.
- **Videos and affiliate research:** `related_videos` lists TikTok videos that promote a product, with `play_count`, `like_count` and `is_affiliate`, which is a starting point for TikTok Shop affiliate product research. To go deeper on the videos themselves, [collect TikTok videos by keyword or hashtag](https://apify.com/data_wiki/tiktok-data-extractor).

### 🛠️ How to scrape TikTok Shop products

1. Create an Apify account and open TikTok Shop Search Scraper.
2. Add your TikTok Shop search keywords, one per line, or paste keyword links such as `https://shop.tiktok.com/us/k/phone-case`.
3. Set **Max products per keyword** (`maxProductsPerKeyword`) and, if you want only proven sellers, **Min units sold** (`minSoldCount`).
4. Leave **Full product details** on for exact units sold, SKUs, seller stats and reviews, and set **Videos per product** (`maxVideosPerProduct`) if you want promo videos.
5. Click **Start** and watch the log; each saved product appears as it is read.
6. Open the Output tab to browse the tables. To move TikTok Shop products to CSV, pick the CSV format in the export options, or choose JSON, Excel, XML or HTML.

#### How to find winning products on TikTok Shop

Search a niche keyword, set `minSoldCount` to the sales level you trust, keep full product details on and sort the dataset by `sold_count`. Then read `rating_breakdown`, `total_stock` and the seller columns to judge each candidate.

#### How to find best selling products on TikTok Shop

Run one keyword with `maxProductsPerKeyword` set to `0` to take everything TikTok Shop returns for it, then sort by `sold_count`. This gives you the TikTok Shop top selling products of that keyword at the time of the run.

### 💰 How much does it cost to scrape TikTok Shop?

TikTok Shop Search Scraper uses pay per event. The `main_result` event is charged for each product saved to the default dataset, and the `apify-actor-start` event is a start fee of $0.00005 per GB of memory, which is $0.00005 per run at the configured 1024 MB (1 GB). Apify platform usage (compute) is billed on top of the events above. See the Pricing tab for current rates.

| Plan tier | Price per result | Price per 1,000 results |
|---|---|---|
| Free | $0.012 | $12.00 |
| Bronze | $0.011 | $11.00 |
| Silver | $0.010 | $10.00 |
| Gold, Platinum, Diamond | $0.009 | $9.00 |

Worked example: 1,000 saved products at the Free tier price cost 1,000 x $0.012 = $12.00, plus the $0.00005 start fee. At the Gold tier the same 1,000 products cost 1,000 x $0.009 = $9.00. Only products that are actually saved are charged. If you set a maximum cost per run, the Actor stops cleanly when that limit is reached.

> 💡 For a cheap test, keep the default 10 products per keyword. Switching off **Full product details** and **Videos per product** gives a quick search-only run.

### ⬇️ Input

The only required field is `urls`: one or more keywords or TikTok Shop keyword links. See the Input tab for every option. The example below uses the form defaults for the first run.

```json
{
  "urls": ["phone case"],
  "maxProductsPerKeyword": 10,
  "minSoldCount": 0,
  "includeProductDetails": true,
  "maxVideosPerProduct": 5
}
```

| Field | What it does |
|---|---|
| `urls` (required) | Keywords or TikTok Shop keyword links, one per line. Product links are not accepted. |
| `maxProductsPerKeyword` | Most products saved for each keyword. Default 10; `0` means everything TikTok Shop returns. |
| `minSoldCount` | Keeps only products with at least this many units sold, judged on the number shown in search results. Default 0 (no filter). |
| `includeProductDetails` | Opens every product page for the full record. Default on; slower but much richer. |
| `maxVideosPerProduct` | Promo videos per product, 0 to 20. Default 5. Needs full product details, which are switched on automatically. |
| `proxyConfiguration` | Optional proxy settings. Leave it as is unless you want to use your own proxy. |

> ⚠️ Only the US storefront is available. Other country settings are ignored with a note in the log.

### ⬆️ Output

The scraped results are shown as a dataset in the **Storage** tab. The table view is for convenience and doesn't show **all the fields**. You can export TikTok Shop products as JSON, CSV, Excel, XML or HTML. The sample below continues from the input above and uses illustrative values, shortened to the main fields.

```json
{
  "keyword": "phone case",
  "rank": 1,
  "product_id": "1000000000000000001",
  "title": "Example Shockproof Phone Case",
  "url": "https://shop.tiktok.com/us/pdp/x/1000000000000000001",
  "price": 4.99,
  "original_price": 7.99,
  "discount_pct": 38,
  "currency": "USD",
  "price_min": 4.99,
  "price_max": 9.99,
  "sold_count": 1523,
  "rating": 4.6,
  "review_count": 212,
  "rating_breakdown": { "1": 8, "2": 3, "3": 10, "4": 31, "5": 160 },
  "free_shipping": false,
  "shipping_fee": 3.5,
  "delivery_days": [5, 9],
  "sku_count": 2,
  "skus": [
    { "sku_id": "2000000000000000001", "variant": "Black / iPhone 13", "price": 4.99, "stock": 420, "in_stock": true },
    { "sku_id": "2000000000000000002", "variant": "Clear / iPhone 13", "price": 5.49, "stock": 310, "in_stock": true }
  ],
  "total_stock": 730,
  "seller_name": "Example Case Shop",
  "related_videos": [
    { "video_id": "3000000000000000001", "play_count": 18000, "like_count": 63, "author_name": "example_creator" }
  ],
  "scraped_at": "2026-10-27T10:00:00Z",
  "error": null
}
```

The keywords table has one row per keyword with `status`, `products_saved`, `products_examined`, `below_min_sold_count`, `pages_read`, `related_keywords`, `note` and `searched_at`.

### ⚠️ Limitations and error handling

- The Actor reads the US storefront only, and only public data that any visitor can see. It does not read private or logged-in data.
- The number of products depends on what TikTok Shop returns for the keyword. Set `maxProductsPerKeyword` to `0` to take everything it returns, and run a small test to see how many that is for your keyword.
- Each TikTok Shop product search runs separately per keyword, so a product that matches two keywords is saved once for each.
- You can scrape TikTok Shop reviews only as the sample shown on each product page, together with the full star breakdown. The longer review list is not available.
- It is not a TikTok Shop seller scraper for whole shops: sellers appear through the products your keywords find.
- `minSoldCount` filters on the units sold shown in search results, which TikTok Shop rounds. `rank` counts the products that are saved, after this filter.
- Keyword status values in the keywords table: `ok` (end of results), `limit` (your per-keyword limit was reached), `empty` (no products found), `error` (the search failed), `unreachable` (TikTok Shop could not be reached) and `skipped` (the run stopped before this keyword). The `note` column adds a short reason.
- If part of a product could not be read, the row is still saved and `error` explains what is missing, for example "run stopped before details" or "related videos unavailable after 3 tries (refused by TikTok Shop)".
- When TikTok Shop shows security checks, the Actor retries, pauses and switches connection. If it still cannot get through, it stops and keeps everything saved so far; run it again after a few minutes.
- The run fails at once with a clear message if no keyword is given or if TikTok Shop cannot be reached.

### 🔌 Integrating TikTok Shop Search Scraper with other apps

You can run TikTok Shop Search Scraper from the Apify Console, on a schedule or through the [Apify API](https://docs.apify.com/api/v2), and send finished runs to other tools with webhooks. The API tab has ready-made code snippets.

- Call the Actor like any TikTok Shop scraper API: start a run through the Apify API with the input shown above. It is not an official TikTok Shop API.
- Repeat a search with [Apify schedules](https://docs.apify.com/actors/running/schedules). Each run is a fresh snapshot with its own `scraped_at`; the Actor has no built-in change detection, so compare runs yourself.
- Send results onward with [Apify integrations](https://docs.apify.com/integrations), for example [Make](https://docs.apify.com/integrations/make), [Zapier](https://docs.apify.com/integrations/zapier) or [webhooks](https://docs.apify.com/integrations/webhooks).
- AI agents can find and run the Actor through the Apify MCP server; see the [Apify MCP documentation](https://docs.apify.com/mcp).

### 🔗 Other TikTok and marketplace scrapers by data_wiki

| Actor | What it extracts | When to use it |
|---|---|---|
| [TikTok video and profile data extractor](https://apify.com/data_wiki/tiktok-data-extractor) | TikTok videos from links, profiles, hashtags or keywords | When you want the videos and creators behind a product, not the shop data |
| [1688 wholesale supplier scraper](https://apify.com/data_wiki/1688-wholesale-products-scraper) | 1688.com products with bulk price tiers, minimum order and supplier details | When you want a wholesale price to compare with a TikTok Shop price |
| [Facebook Marketplace listings scraper](https://apify.com/data_wiki/facebook-marketplace-scraper) | Public Facebook Marketplace listings with prices and locations | When you compare TikTok Shop prices with local listing prices |
| [Pinterest pins and product prices scraper](https://apify.com/data_wiki/pinterest-search-scraper) | Pinterest pins, boards and creators found by keyword | When you want to see what trends on Pinterest before searching TikTok Shop |
| [OpenRouter model catalog export](https://apify.com/data_wiki/openrouter-models-scraper) | The public OpenRouter model catalog with prices, capabilities and usage | You track prices of AI models instead of shop products |

### ⚖️ Is it legal to scrape TikTok Shop?

TikTok Shop Search Scraper only extracts data that TikTok Shop shows to every visitor and does not extract private data. The results can still contain personal data, for example reviewer names in the reviews table and creator names in the videos table, so collect it only with a legitimate reason. TikTok Shop data scraping should follow GDPR (Regulation (EU) 2016/679), the terms of the site and the laws that apply to you; consult a lawyer if you are unsure. Read Apify's guides on [whether web scraping is legal](https://blog.apify.com/is-web-scraping-legal/) and on [ethical web scraping](https://blog.apify.com/what-is-ethical-web-scraping-and-how-do-you-do-it/). The site itself is [TikTok Shop](https://shop.tiktok.com).

### ❓ FAQ

#### Do I need a TikTok account to use this TikTok Shop scraper?

No. You can scrape TikTok Shop data from public pages that any visitor can see, so you need only an Apify account.

#### Do I need an API key?

No. As a TikTok Shop data extractor it needs no TikTok key and no login, only your Apify account.

#### How much does it cost?

You pay per saved product plus a tiny start fee, and Apify platform usage is billed on top. See the pricing section above for the tier prices.

#### How many products can I get per keyword?

As many as TikTok Shop returns for the keyword, up to your `maxProductsPerKeyword` limit. Set it to `0` to take all of them; the default in the form is 10.

#### Which countries are covered?

Only the US storefront.

#### Can I scrape private data?

No. The Actor reads only public product, seller, review and video information.

#### Can I use it as a TikTok Shop product research tool?

Yes, as a data source. It supplies sales, price, stock, seller and video fields, but it does not score products or predict trends.

#### Is it a full TikTok Shop review scraper?

No. It saves the review sample shown on each product page plus the star breakdown, not every review.

#### Do I need proxies?

No. The Actor starts without a proxy and switches connection by itself when requests are rejected. You may add your own proxy in the input.

#### Can I use it as a TikTok Shop data API?

Yes, through the Apify API: start a run and fetch the dataset items of the run. It is not an official TikTok Shop API.

#### Can I use it through an MCP server?

Yes. Add the Apify MCP server to your AI client and the agent can find and run this Actor. See the [Apify MCP documentation](https://docs.apify.com/mcp).

### 💬 Your feedback

Found a bug or want another field? Open an issue in the Issues tab of this Actor. Need a custom solution? Contact hello.datawiki@gmail.com.

# Actor input Schema

## `urls` (type: `array`):

Keywords (for example: phone case) or TikTok Shop keyword links such as https://shop.tiktok.com/us/k/phone-case, one per line. Add as many as you like.

## `maxProductsPerKeyword` (type: `integer`):

Most products to save for each keyword. 0 = everything TikTok Shop returns.

## `minSoldCount` (type: `integer`):

Keep only products with at least this many units sold. 0 = no filter.

## `includeProductDetails` (type: `boolean`):

Open every product page for the exact units sold, every SKU with stock, specifications, description, seller stats, star breakdown, shipping and customer reviews. Slower, but much richer rows. Switch off together with Videos per product = 0 for the quick search-only mode.

## `maxVideosPerProduct` (type: `integer`):

TikTok videos promoting each product, with play and like counts. 0 = skip, up to 20. Also brings the "people also searched" keywords. Needs full product details (switched on automatically).

## `proxyConfiguration` (type: `object`):

Optional. Runs without a proxy first and switches to a stronger proxy automatically if TikTok Shop rejects requests.

## Actor input object example

```json
{
  "urls": [
    "phone case"
  ],
  "maxProductsPerKeyword": 10,
  "minSoldCount": 0,
  "includeProductDetails": true,
  "maxVideosPerProduct": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `products` (type: `string`):

One row per product: price, units sold, rating, seller.

## `pricing` (type: `string`):

Prices, discounts, units sold and stock.

## `shipping` (type: `string`):

Shipping fee, delivery days and origin.

## `sellerView` (type: `string`):

Seller stats next to each product.

## `content` (type: `string`):

Category, description, specifications and images.

## `engagement` (type: `string`):

Promo videos, reviews and related keywords next to each product.

## `skus` (type: `string`):

One row per SKU with price and stock.

## `videos` (type: `string`):

One row per TikTok video with play and like counts.

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

One row per customer review.

## `sellers` (type: `string`):

One row per shop seen.

## `keywords` (type: `string`):

One row per searched keyword.

## `summary` (type: `string`):

Counts for this run.

# 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 = {
    "urls": [
        "phone case"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("data_wiki/tiktok-shop-search-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 = {
    "urls": ["phone case"],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("data_wiki/tiktok-shop-search-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 '{
  "urls": [
    "phone case"
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call data_wiki/tiktok-shop-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,data_wiki/tiktok-shop-search-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/IKebqecepb9vXTbkR/builds/EEaThfgsPHePARlh7/openapi.json
