# FDN Google Map Master Scraper (`sitcod3.lab/fdn-google-map-master-scraper`) Actor

- **URL**: https://apify.com/sitcod3.lab/fdn-google-map-master-scraper.md
- **Developed by:** [The Profesor Baltazar](https://apify.com/sitcod3.lab) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

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

## 🌐 FDN Google Map Master Scraper

> Extract comprehensive Google Maps business data — listings, contacts, emails, reviews, photos, and opening hours — **no API key required**.

**Actor:** `sitcod3.lab/fdn-google-map-master-scraper`
**Console:** https://console.apify.com/actors/1nuEIgtSbhTsKBb2W
**Status:** ✅ Live & verified (build 1.9.1)

***

### 📖 What does it do?

The FDN Google Map Master Scraper searches **Google Maps** for businesses matching your queries and returns **one structured dataset record per place**. It optionally:

- Opens each business **detail page** for the full ~25-field record (`scrapeDetails`)
- Visits each business **website** to find **emails and social media profiles** (`scrapeContacts`)
- Collects **reviews**, **photos**, **opening hours**, **popular times**, **rating breakdowns**, and **amenities**

It works exactly like a human using Google Maps: real browser (Playwright), auto-accepts the consent dialog, scrolls the results feed, and deduplicates on Google's canonical `place_id`.

***

### ✅ Feature overview

| Feature | Supported |
|---|---|
| Search by keyword + location | ✔️ `queries` ("food manufacturer Chicago IL") |
| Scrape by exact Google **Place ID** | ✔️ `placeIds` (`ChIJ...`) |
| Scrape by direct **Google Maps URL** | ✔️ `startUrls` (`/maps/place/...`, `/maps/search/...`) |
| Detail-page enrichment (~25 fields/place) | ✔️ `scrapeDetails` |
| Email + social media extraction from websites | ✔️ `scrapeContacts` |
| Reviews with owner replies | ✔️ `scrapeReviews` + `maxReviews` |
| Photo URLs | ✔️ `scrapePhotos` + `maxPhotos` |
| Opening hours & popular times | ✔️ always (detail mode) |
| Rating / review count / price level | ✔️ always |
| Parse confidence score + field warnings | ✔️ every record |
| Deduplication on Google place IDs | ✔️ built-in (across all queries) |
| Proxy rotation with verified fallback | ✔️ RESIDENTIAL → UNBLOCKER → StaticUS3 → direct |
| Multi-language / multi-country | ✔️ `language` + `country` |
| 10,000-row lead campaigns | ✔️ see the 10k guide below |

***

### 🚀 Quick start (60 seconds)

#### Option A — Apify Console (no code)

1. Open https://console.apify.com/actors/1nuEIgtSbhTsKBb2W
2. Click **Run** (or **Try for free**)
3. In the **Input** tab, paste your search queries, one per line:

```
food manufacturer Chicago IL
food production facility Chicago IL
```

4. Set **Max results per query** to e.g. `100`
5. (Recommended) turn on **Scrape detail pages** and **Scrape contact info**
6. Click **Start** — watch the log for `Pushed place #N`
7. When finished → **Dataset** tab → **Export** → CSV / JSON / Excel

#### Option B — API (curl)

```bash
TOKEN="apify_api_XXXX"
curl -X POST "https://api.apify.com/v2/acts/sitcod3.lab~fdn-google-map-master-scraper/runs?token=$TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "queries": ["food manufacturer Chicago IL"],
    "maxResults": 100,
    "scrapeDetails": true,
    "scrapeContacts": true
  }'
```

Then check the run and download results:

```bash
## run status
curl "https://api.apify.com/v2/actor-runs/RUN_ID?token=$TOKEN"

## results as CSV
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=$TOKEN&format=csv" -o results.csv
```

#### Option C — Python (apify-client)

```python
from apify_client import ApifyClient

client = ApifyClient("apify_api_XXXX")

run = client.actor("sitcod3.lab/fdn-google-map-master-scraper").call(
    run_input={
        "queries": ["food manufacturer Chicago IL"],
        "maxResults": 100,
        "scrapeDetails": True,
        "scrapeContacts": True,
    }
)

items = client.dataset(run["defaultDatasetId"]).list_items().items
print(f"Got {len(items)} businesses")
```

***

### 🎯 Use cases

| Use case | How |
|---|---|
| **Lead generation** (name, phone, email, website) | `queries` + `scrapeContacts` |
| **10,000-row food-industry list** | see the dedicated guide below |
| Competitor & market research | `queries` per niche/city, then filter by `category` |
| Location/geo enrichment | latitude, longitude, plus\_code, timezone on every row |
| Reputation monitoring | `scrapeReviews` + ratings per place |
| Rescrape a known list | feed previous run's `place_id` column back into `placeIds` |
| Multi-country expansion | set `language` / `country` per run |

***

### ⚙️ Full input reference

| Field | Type | Required | Default | Min–Max | Description |
|---|---|---|---|---|---|
| `queries` | `string[]` | ⚠️ one of | — | 1–100 | Google Maps search queries, e.g. `food manufacturer Chicago IL` |
| `placeIds` | `string[]` | ⚠️ one of | — | 1–300 | Direct Google Place IDs (`ChIJ...`) — output `place_id` feeds straight back in |
| `startUrls` | `string[]` | ⚠️ one of | — | 1–300 | Direct Google Maps URLs (`/maps/place/...`, `/maps/search/...`) |
| `location` | `string` | ❌ | — | — | Optional location context (usually already inside the query) |
| `maxResults` | `integer` | ❌ | `20` | 1–300 | Max places per query (**per query, not total**) |
| `scrapeDetails` | `boolean` | ❌ | `false` | — | Open each business detail page → full record. 3–5× slower |
| `scrapeContacts` | `boolean` | ❌ | `false` | — | Fetch each business website → emails + social links (**requires `scrapeDetails: true`**) |
| `scrapeReviews` | `boolean` | ❌ | `false` | — | Extract reviews |
| `maxReviews` | `integer` | ❌ | `0` | 0–1000 | Reviews per place (`0` = none, fastest) |
| `scrapePhotos` | `boolean` | ❌ | `false` | — | Extract photo URLs |
| `maxPhotos` | `integer` | ❌ | `0` | 0–100 | Photos per place |
| `language` | `string` | ❌ | `en` | ISO 639-1 | Results language (`en`, `es`, `fr`…) |
| `country` | `string` | ❌ | `us` | ISO 3166-1 | Results country (`us`, `gb`…) |
| `proxyConfiguration` | `object` | ❌ | Apify proxy | — | See Proxy section. Use `RESIDENTIAL` |

> ⚠️ **At least one** of `queries`, `placeIds`, or `startUrls` is required. The actor fails fast with a clear message otherwise.

#### Example full input (JSON)

```json
{
  "queries": [
    "food manufacturer Chicago IL",
    "food production facility Chicago IL",
    "food processing plant Chicago IL",
    "food & beverage manufacturer Chicago IL",
    "food distributor Chicago IL"
  ],
  "location": "Chicago, IL",
  "maxResults": 300,
  "scrapeDetails": true,
  "scrapeContacts": true,
  "scrapeReviews": false,
  "maxReviews": 0,
  "scrapePhotos": false,
  "maxPhotos": 0,
  "language": "en",
  "country": "us",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

***

### 📤 Output — every field explained

| Field | Type | Description | Example |
|---|---|---|---|
| `place_id` | `string` | Canonical Google Maps place ID | `ChIJMTPiK98sDogRyvG0QTKkxK8` |
| `name` | `string` | Business name | `The Fresh Factory` |
| `category` | `string` | Primary Google category | `Food manufacturer` |
| `address` | `string` | Full address (best from detail page) | `1937 N Damen Ave, Chicago, IL 60647` |
| `latitude` | `string` | Latitude | `41.9170698` |
| `longitude` | `string` | Longitude | `-87.6773214` |
| `plus_code` | `string` | Open Location Code | `W88F+R3` |
| `phone` | `string` | Phone (**Google often masks: `+177****0900`**) | `+131****1000` |
| `website` | `string` | Business website | `https://thefreshfactory.co/` |
| `emails` | `string` | Emails found on the website (comma-separated) — only with `scrapeContacts` | `sales@thefreshfactory.co` |
| `social_links` | `string` | `key=value` pairs, comma-separated | `facebook=fb.com/...` |
| `rating` | `string` | Star rating 0–5 | `5.0` |
| `reviews_count` | `string` | Total review count | `2` |
| `price_level` | `string` | Dollar-sign count 1–4 | `2` |
| `price_range` | `string` | Visual price range | `$$` |
| `opening_hours` | `string` | `Day: time` entries, semicolon-separated | `Monday: 8:00 AM - 5:00 PM;…` |
| `is_claimed` | `string` | Profile claimed by owner | `true` |
| `amenities` | `string` | Service options (delivery, takeout…) | `Delivery, Takeout` |
| `query` | `string` | Which search query found this place | `food manufacturer Chicago IL` |
| `rank` | `string` | Position in the run output | `1` |
| `scraped_at` | `string` | UTC timestamp | `2026-10-01T15:30:44Z` |
| `parse_path` | `string` | Extractor used: `search_feed` or `detail_page` | `detail_page` |
| `parse_confidence` | `string` | 0–1 confidence score for the record | `0.95` |
| `warnings` | `string` | Field-level parse warnings, comma-separated | `phone_missing,website_missing` |
| `contact_enriched` | `string` | Whether the website was visited for contacts | `true` |

#### 🧭 How `parse_path` affects what you get

| Extract path | When used | Fields typically populated | Speed |
|---|---|---|---|
| `search_feed` | `scrapeDetails: false` | name, category, address, rating, reviews\_count, place\_id, (lat/lng if in feed) | fast (~1–2 s/place) |
| `detail_page` | `scrapeDetails: true` | **everything**: full address, phone, website, hours, price, claimed, amenities | 3–5× slower (~2–4 s/place) |

> 💡 Emails require **both** flags: `scrapeContacts` works by fetching each business website during the
> detail-page visit, so set `scrapeDetails: true` **and** `scrapeContacts: true` for a lead list
> (name, address, phone, website, email). For **complete records** also turn on reviews/photos.
> Budget ~3–6 s per place.

***

### 📦 The 10,000-row food-industry guide (Chicago IL)

**Target:** 10,000 food-manufacturing businesses in Chicago with contact emails.

#### The 5 queries

```
food manufacturer Chicago IL
food production facility Chicago IL
food processing plant Chicago IL
food & beverage manufacturer Chicago IL
food distributor Chicago IL
```

#### Recommended production input

```json
{
  "queries": [
    "food manufacturer Chicago IL",
    "food production facility Chicago IL",
    "food processing plant Chicago IL",
    "food & beverage manufacturer Chicago IL",
    "food distributor Chicago IL"
  ],
  "location": "Chicago, IL",
  "maxResults": 300,
  "scrapeDetails": true,
  "scrapeContacts": true,
  "language": "en",
  "country": "us",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

#### 🛑 Read this before promising 10,000 rows

**Chicago does not contain 10,000 food-manufacturing businesses.** These five
queries overlap heavily — measured live yield was **~114 unique businesses**
from 25-per-query (5 queries). At the max `300` per query the real ceiling is a
few hundred unique rows, **not** 10,000. The scraper is not the bottleneck —
the number of real businesses in the niche is.

To actually reach 10,000 unique rows, widen the scope **with the client's
agreement** before billing:

| Strategy | Example queries |
|---|---|
| 1. Add cities / states | `food manufacturer IL`, `food manufacturer Ohio`, `food manufacturer Texas`… |
| 2. Add adjacent verticals | `food packaging Chicago`, `bakery equipment Chicago`, `ingredient supplier Chicago`, `food truck manufacturer Chicago` |
| 3. Grid-split a city by niche | `co-packer Chicago`, `bottling plant Chicago`, `bakery production Chicago`, `cold storage Chicago` |

#### 🧾 Emails — the honest expectation

- Emails only appear when `scrapeContacts: true`, and only for businesses whose **website publishes an address**.
- Expect a **minority** of rows to have an email (typical hit rate 30–50% of businesses with websites).
- A 10,000-row job will **not** produce 10,000 emails — it will produce 10,000 businesses, some fraction with verified contact emails.

***

### 🔌 Proxy setup (critical for Google Maps)

The actor probes proxy groups in order and uses the first one that **actually
reaches the internet**, then falls back to a direct connection.

| Group | Best for | Notes |
|---|---|---|
| `RESIDENTIAL` | **Google Maps** (recommended) | Requires a paid Apify residential plan |
| `UNBLOCKER` | Anti-bot / CAPTCHA-heavy targets | Paid plan |
| `StaticUS3` | General US datacenter | All plans |
| `BUYPROXIES94952` | Extra residential pool | If configured on account |
| *(none)* | Fallback | Works but Google may throttle large jobs |

**Input:**

```json
"proxyConfiguration": {
  "useApifyProxy": true,
  "apifyProxyGroups": ["RESIDENTIAL", "UNBLOCKER", "StaticUS3"]
}
```

> ⚠️ If your account has **no residential proxy capacity**, the log will say
> `Proxy group RESIDENTIAL has no paying subscribers` — the actor falls back
> automatically and still works, but large sustained jobs may get throttled.
> For heavy 10k+ runs, enable Apify residential proxy or run from your own
> machine with `browser-use`.

***

### 💰 Pricing (as configured on the platform)

**Verified live from the actor's public store page (2026-10-01):**

| Item | Value |
|---|---|
| Billing model | **Pay per usage** (platform usage only) |
| Actor itself | **Free to run** — no per-place charge currently |
| Platform usage | Apify compute/memory/proxy — billed by Apify at platform rates, cheaper with volume |

> ⚠️ The actor currently has **no pay-per-event monetization enabled**. If you want to charge clients per scraped place (e.g. $2.00 / 1,000), enable **Monetize → Pay per event** in Apify Console; until then every run is free (plus platform usage).

**Typical platform-usage budgets (routes ≈ $0.002/place of compute)**

| Scale | Places | Estimated platform usage |
|---|---|---|
| Test | 100 | ~$0.20 |
| Small campaign | 1,000 | ~$2.00 |
| Large campaign | 10,000 | ~$20.00 |

Memory 4–8 GB, default timeout 3,600 s.

***

### 🔧 Troubleshooting

| Symptom | Cause | Fix |
|---|---|---|
| Run finished green but **dataset empty** | Google throttled/blocked the request | Re-run later; lower `maxResults`; enable `RESIDENTIAL` proxy |
| `Query "..." returned 0 places` in log | Same as above (temporary Google block) | Wait, re-run; the actor rotates proxies per query |
| `Proxy group RESIDENTIAL has no paying subscribers` | No residential capacity on account | Fallback is automatic; buy residential for sustained runs |
| Only 3 results per query | `maxResults` left tiny, or consent wall | Verify `maxResults` in run input; re-run |
| `phone` shows `+177****0900` | **Google masks phones** — not a bug | Unmasked numbers come from `scrapeContacts` (business website) |
| `emails` empty | `scrapeContacts` off, or website has no public email | Turn `scrapeContacts: true`; expect only 30–50% hit rate |
| `opening_hours` / `price_range` empty | Not shown in search feed | Enable `scrapeDetails: true` |
| Run too slow | `scrapeDetails` / `scrapeContacts` on for thousands of places | Reduce `maxResults`; batch; keep detail mode off for pure lead lists |
| `Sample Business 0-0` rows | Used a build older than 1.1 (old stub) | Re-run on `latest` (1.9.1) — stub removed |

***

### 🧪 What was verified (live, 2026-10-01)

| Check | Result |
|---|---|
| Build | ✅ SUCCEEDED (1.9.1, Playwright + Chromium) |
| Live run on Google Maps | ✅ real businesses collected, no fixtures |
| Place IDs | ✅ all canonical `ChIJ...` |
| Deduplication across queries | ✅ 0 duplicates (114 unique / 114) |
| Detail-page enrichment | ✅ working |
| `search_feed` fallback | ✅ name/category/address/rating/reviews\_count |
| Output schema | ✅ 25 fields, validated |

***

### 🔐 Input / output JSON example (full record)

```json
{
  "place_id": "ChIJMTPiK98sDogRyvG0QTKkxK8",
  "name": "The Fresh Factory",
  "category": "Food manufacturer",
  "address": "1937 N Damen Ave, Chicago, IL 60647",
  "latitude": "41.9170698",
  "longitude": "-87.6773214",
  "plus_code": "W88F+R3",
  "phone": "+177****0900",
  "website": "https://thefreshfactory.co/",
  "emails": "sales@thefreshfactory.co",
  "social_links": "facebook=fb.com/thefreshfactory",
  "rating": "5.0",
  "reviews_count": "2",
  "price_level": "2",
  "price_range": "$$",
  "opening_hours": "Monday: 8:00 AM - 5:00 PM; Tuesday: 8:00 AM - 5:00 PM",
  "is_claimed": "true",
  "amenities": "Delivery, Takeout",
  "query": "food manufacturer Chicago IL",
  "rank": "1",
  "scraped_at": "2026-10-01T15:30:44Z",
  "parse_path": "detail_page",
  "parse_confidence": "0.95",
  "warnings": "phone_missing",
  "contact_enriched": "true"
}
```

***

### 📚 Related resources

- Apify Actors docs: https://docs.apify.com/actors
- Apify API reference: https://docs.apify.com/api/v2
- `apify-client` (Python): https://pypi.org/project/apify-client/
- Apify MCP for AI agents: https://mcp.apify.com

*Last updated: 2026-10-01 · Maintainer: sitcod3.lab*

# Actor input Schema

## `queries` (type: `array`):

Google Maps search queries (e.g., 'coffee shops in San Francisco')

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

Location to search (city, state, or address)

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

Maximum places to scrape per query (1-300)

## `scrapeDetails` (type: `boolean`):

Visit each place page for full data (slower, more expensive)

## `scrapeContacts` (type: `boolean`):

Extract emails and social media from websites (requires scrapeDetails: true)

## `scrapeReviews` (type: `boolean`):

Extract review data

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

Maximum reviews to extract per place

## `scrapePhotos` (type: `boolean`):

Extract photo URLs

## `maxPhotos` (type: `integer`):

Maximum photos to extract per place

## `language` (type: `string`):

Language code for results (e.g., 'en', 'es', 'fr')

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

Country code for localization (e.g., 'us', 'gb')

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

Apify proxy settings (RESIDENTIAL required)

## `placeIds` (type: `array`):

Direct Google Maps Place IDs to scrape

## `startUrls` (type: `array`):

Direct Google Maps search or place URLs

## Actor input object example

```json
{
  "maxResults": 20,
  "scrapeDetails": false,
  "scrapeContacts": false,
  "scrapeReviews": false,
  "maxReviews": 0,
  "scrapePhotos": false,
  "maxPhotos": 0,
  "language": "en",
  "country": "us"
}
```

# Actor output Schema

## `place_id` (type: `string`):

Canonical Google Maps place identifier.

## `name` (type: `string`):

No description

## `category` (type: `string`):

Business category as shown on Google Maps.

## `address` (type: `string`):

No description

## `latitude` (type: `string`):

No description

## `longitude` (type: `string`):

No description

## `plus_code` (type: `string`):

Open Location Code for the place.

## `phone` (type: `string`):

Contact phone. Google may return a masked number such as +177\*\*\*\*0900.

## `website` (type: `string`):

No description

## `emails` (type: `string`):

Emails discovered on the business website. Comma separated.

## `social_links` (type: `string`):

Social profile links as key=value pairs, comma separated.

## `rating` (type: `string`):

No description

## `reviews_count` (type: `string`):

No description

## `price_level` (type: `string`):

Number of dollar signs, 1-4, when the business shows a price range.

## `price_range` (type: `string`):

No description

## `opening_hours` (type: `string`):

Weekly hours as "Day: time" entries separated by semicolons.

## `is_claimed` (type: `string`):

true when the business profile is claimed by its owner.

## `amenities` (type: `string`):

Service options such as delivery or takeout, comma separated.

## `query` (type: `string`):

The search query this business was found for.

## `rank` (type: `string`):

Position of this record in the run output.

## `scraped_at` (type: `string`):

UTC timestamp of collection.

## `parse_path` (type: `string`):

Which extractor produced the record: search\_feed or detail\_page.

## `parse_confidence` (type: `string`):

0-1 confidence score for the parsed record.

## `warnings` (type: `string`):

Field-level parse warnings, comma separated.

## `contact_enriched` (type: `string`):

true when the business website was visited for contact enrichment.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("sitcod3.lab/fdn-google-map-master-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("sitcod3.lab/fdn-google-map-master-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 '{}' |
apify call sitcod3.lab/fdn-google-map-master-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sitcod3.lab/fdn-google-map-master-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/1nuEIgtSbhTsKBb2W/builds/jsZMgVtFjgL2j2HtD/openapi.json
