# Das Telefonbuch Scraper (`parsebird/das-telefonbuch-scraper`) Actor

Scrape Das Telefonbuch (dastelefonbuch.de), Germany's phone directory: businesses and private listings with phone, fax, email, website, address, opening hours, ratings, reviews and contact persons. Export JSON, CSV, Excel.

- **URL**: https://apify.com/parsebird/das-telefonbuch-scraper.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.39 / 1,000 search results

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

### Das Telefonbuch Scraper

**Das Telefonbuch Scraper** extracts business and private listings from [Das Telefonbuch](https://www.dastelefonbuch.de) (dastelefonbuch.de), Germany's phone directory. Search by industry, company name or surname in any German city, district, postal code or federal state. Get phone, fax, mobile, email, website, address, opening hours, ratings, reviews and contact persons as clean data.

<table><tr>
<td style="border-left:4px solid #1C1917;padding:12px 16px;font-weight:600">
Turn any Das Telefonbuch search into a lead list with 45+ fields per listing, including decoded emails, full phone numbers, review sources and contact persons. The scraper goes past the site's 999-hit display limit.
</td>
</tr></table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Apify Actor: parsebird/das-telefonbuch-scraper. Scrapes Das Telefonbuch (dastelefonbuch.de), the German phone directory, for business listings (Branchensuche) or private listings (residential phone book). Call via ApifyClient: client.actor("parsebird/das-telefonbuch-scraper").call(run_input={"searchQuery": "Steuerberater", "location": "Frankfurt", "searchType": "business", "maxResults": 100, "includeDetails": true}). Inputs: searchQuery (string, required: industry, company name or surname, e.g. "Zahnarzt", "Siemens", "Müller"), location (string, required: city, district, 5-digit postal code or federal state, e.g. "Berlin Mitte", "10115", "Bayern"), searchType ("business" | "person", default "business"), maxResults (integer, default 100, 0 = every listing), includeDetails (boolean, default true: opens each listing page for email, fax, mobile, opening hours, reviews, profile text, services, coordinates, contact persons), proxyConfiguration (optional; leave empty). Output: one row per listing with name, address, street, postal_code, city, district, country, phone, fax, mobile, additional_phones, email, website, category, categories, opening_hours, rating, review_count, search_keywords, external_review_sources[{source, rating, count, url, included_in_total}], recent_reviews[{source, rating, author, date, text, url}], services, description, latitude, longitude, is_premium, entry_id, last_updated, contact_persons[{name, title, phone, email, address}], company_logo_url, source_url, search_type, has_details, scraped_at. Pricing: pay per event, $1.99 per 1,000 search results or $4.99 per 1,000 full profiles on the Free plan, plus a small run start fee. Full API spec: https://apify.com/parsebird/das-telefonbuch-scraper/api. Get your token: https://console.apify.com/settings/integrations.
```

### What is Das Telefonbuch Scraper?

**Das Telefonbuch Scraper** turns [dastelefonbuch.de](https://www.dastelefonbuch.de) searches into a spreadsheet-ready dataset. Enter what you're looking for (Wer/Was) and where (Wo), like on the site itself, and click **Start**. To try it, keep the prefilled search for **Steuerberater in Frankfurt**, which saves 20 tax advisors with full profiles in a few seconds.

Das Telefonbuch has no public API for its listings, so this scraper works as a **Das Telefonbuch API alternative**. Download your German business leads as **JSON, CSV or Excel**, or read them through the [Apify API](https://docs.apify.com/api/v2).

### What can Das Telefonbuch Scraper do?

- 🏢 **Search businesses (Branchensuche)** by industry or company name: Steuerberater, Zahnarzt, Elektriker, Siemens and so on.
- 👤 **Search private listings** in the residential phone book by surname.
- 📍 **Search any location**: a city, a district such as `Berlin Mitte`, a postal code such as `10115`, or a federal state such as `Bayern`.
- 📇 **Get full profiles** from each listing page: email, fax, mobile, opening hours, company profile text, services, keywords, coordinates and update date.
- ⭐ **Collect ratings and reviews**: the overall rating, each review source (golocal, 11880, Google, Yelp, anwalt.de, kennstdueinen.de and others) and the newest reviews.
- 👥 **List contact persons and branches** shown under "Weitere Einträge und Filialen", with their own phone and email.
- ♾️ **Go past the 999-hit limit.** The site shows at most "999 Treffer", but the scraper keeps reading. In our test it saved 1,200 unique lawyers in Berlin.
- ⚡ **Search results only mode** for fast, cheap lists of names, addresses and phone numbers.

Because it runs on Apify, you also get:

- [Scheduling](https://docs.apify.com/platform/schedules) to refresh your lead lists daily, weekly or monthly
- [API access](https://docs.apify.com/api/v2) with [Python](https://docs.apify.com/api/client/python) and [JavaScript](https://docs.apify.com/api/client/js) clients
- [Integrations](https://docs.apify.com/platform/integrations) with Make, Zapier, Google Sheets, HubSpot, Slack and webhooks
- Export to JSON, CSV, Excel, XML and HTML

### What data can you extract from Das Telefonbuch?

| Field | Description |
|-------|-------------|
| `name` | Business or person name, as listed |
| `address`, `street`, `postal_code`, `city`, `district` | Full address, street with house number, 5-digit postal code, city and district (Stadtteil) |
| `phone`, `fax`, `mobile`, `additional_phones` | Full numbers. `mobile` is a 015x/016x/017x number when the listing has one |
| `email` | Email address shown on the listing page (detail pages) |
| `website` | The business's own website |
| `category`, `categories` | Industry headings (Branchen) the listing is filed under |
| `opening_hours` | Weekly schedule, such as `Mo 08:00-18:00; Tu 08:00-18:00` (detail pages) |
| `rating`, `review_count` | Overall star rating (0–5) and number of reviews |
| `external_review_sources` | Each review source with its rating, count, link and whether it counts toward the overall rating |
| `recent_reviews` | Newest reviews with source, stars, author, date, text and link |
| `description` | The business's own "Unternehmensprofil" text, when it has one |
| `services`, `search_keywords`, `brands`, `languages` | "Dienstleistungen", "Unsere Suchbegriffe", "Marken" and "Sprachen" |
| `contact_persons` | Further entries and branches, each with name, academic title, phone, email and address |
| `latitude`, `longitude` | Coordinates of the listing |
| `is_premium` | Paid premium listing |
| `last_updated` | Date the listing was last updated (YYYY-MM-DD), when shown |
| `company_logo_url` | The listing's own logo |
| `entry_id`, `source_url` | Das Telefonbuch entry ID and listing page |

Fields the listing doesn't show are `null` or empty. Fields marked "detail pages" need **Include detail pages** on.

### How to scrape Das Telefonbuch step by step

1. Open [Das Telefonbuch Scraper](https://apify.com/parsebird/das-telefonbuch-scraper) and sign in to Apify.
2. Enter a **Search query (Wer/Was)**, such as `Steuerberater`, `Zahnarzt` or `Müller`.
3. Enter a **Location (Wo)**, such as `Frankfurt`, `Berlin Mitte`, `10115` or `Bayern`.
4. Choose **Businesses** or **People** as the **Search type**.
5. Set **Max results**, or `0` for every listing.
6. Keep **Include detail pages** on for email, opening hours and reviews, or turn it off for a cheaper list.
7. Click **Start**, then download your data as JSON, CSV or Excel from the **Output** tab.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| searchQuery | string | **Yes** | — | Industry, company name or surname, e.g. `Steuerberater`, `Siemens`, `Müller` |
| location | string | **Yes** | — | City, district, postal code or federal state, e.g. `Frankfurt`, `Berlin Mitte`, `10115`, `Bayern` |
| searchType | string | No | `business` | `business` for the business directory, `person` for private listings |
| maxResults | integer | No | `100` | Most listings to save. `0` means every listing for the search |
| includeDetails | boolean | No | `true` | Open each listing page for email, fax, mobile, hours, reviews, profile, services, coordinates and contact persons |
| proxyConfiguration | object | No | none | Leave empty. The scraper switches to Apify Proxy by itself if needed |

Business search with full profiles:

```json
{
    "searchQuery": "Steuerberater",
    "location": "Frankfurt",
    "searchType": "business",
    "maxResults": 100,
    "includeDetails": true
}
```

Private listings, search results only:

```json
{
    "searchQuery": "Müller",
    "location": "Hamburg",
    "searchType": "person",
    "maxResults": 50,
    "includeDetails": false
}
```

### Output example

A business with a full profile (search keywords and reviews shortened):

```json
{
    "company_logo_url": null,
    "name": "Bayer Angelika Dr.med.dent. u. Parzer Lola Dr. Zahnärzte",
    "description": null,
    "address": "Josephsburgstr. 4, 81673 München",
    "street": "Josephsburgstr. 4",
    "postal_code": "81673",
    "city": "München",
    "district": "Berg am Laim",
    "country": "DE",
    "phone": "089 4 31 10 06",
    "fax": null,
    "mobile": null,
    "additional_phones": [],
    "email": "dr.angelikabayerzahnaerztin@gmail.com",
    "website": "https://www.drbayer.de/",
    "category": "Zahnärzte",
    "categories": ["Zahnärzte"],
    "opening_hours": "Mo 08:00-13:00; Tu 10:00-13:00; Tu 14:30-20:00; We 13:00-19:00; Th 08:00-12:00; Th 13:00-17:30; Fr 08:00-12:00",
    "rating": 5.0,
    "review_count": 2,
    "search_keywords": ["Akupunktur", "Bleaching", "Implantat", "Kinderbehandlung", "professionelle Zahnreinigung"],
    "external_review_sources": [
        { "source": "kennstdueinen.de", "rating": 5.0, "count": 2, "url": "https://www.kennstdueinen.de/zahnarzt-muenchen-dr-med-dent-angelika-bayer-zahnaerztin-d229557.html", "included_in_total": true },
        { "source": "google", "rating": null, "count": 23, "url": "https://www.google.de/maps/place/...", "included_in_total": false }
    ],
    "recent_reviews": [
        { "source": "kennstdueinen.de", "rating": 5.0, "author": "anonymous", "date": "27.03.2017", "text": "Das ganze Team ist sehr freundlich und hilfsbereit. Frau Dr. Bayer ist keine reine ...", "url": "https://www.kennstdueinen.de/zahnarzt-muenchen-dr-med-dent-angelika-bayer-zahnaerztin-d229557.html" }
    ],
    "services": [],
    "latitude": 48.128572,
    "longitude": 11.626442,
    "is_premium": false,
    "entry_id": "0099123774512",
    "last_updated": null,
    "contact_persons": [
        { "name": "Bayer Angelika Dr.med.dent. Zahnärzte", "title": "Dr.med.dent.", "phone": "089 12 28 10 78", "email": null, "address": "Josephsburgstr. 4 81673 München, Berg am Laim" }
    ],
    "source_url": "https://adresse.dastelefonbuch.de/M%C3%BCnchen/1-Zahnarzt-Bayer-Angelika-Dr-med-dent-u-Parzer-Lola-Dr-M%C3%BCnchen-Josephsburgstr.html",
    "source_platform": "dastelefonbuch.de",
    "search_type": "business",
    "has_details": true,
    "scraped_at": "2026-11-07T10:06:16Z"
}
```

A search result without its detail page (empty fields left out):

```json
{
    "company_logo_url": "https://ies.v4all.de/0122/TB/0337/3/6473/59896473_210x130.png",
    "name": "Rudy Michael Steuerberater",
    "address": "Kurhessenstr. 1-3, 60431 Frankfurt",
    "street": "Kurhessenstr. 1-3",
    "postal_code": "60431",
    "city": "Frankfurt",
    "district": "Eschersheim",
    "country": "DE",
    "phone": "069 2 40 03-300",
    "website": "http://www.steuerberater-rudy.de",
    "category": "Steuerberatung",
    "categories": ["Steuerberatung"],
    "rating": 2.5,
    "review_count": 2,
    "is_premium": true,
    "entry_id": "0060095240214",
    "source_url": "https://adresse.dastelefonbuch.de/Frankfurt%20am%20Main/1-0060095240214-Steuerberatung-Rudy-Michael-Steuerberater-Frankfurt-Kurhessenstr.html",
    "source_platform": "dastelefonbuch.de",
    "search_type": "business",
    "has_details": false,
    "scraped_at": "2026-11-07T10:05:21Z"
}
```

Every row has the same fields. With **Include detail pages** off, those that only the listing page shows, such as `email` and `opening_hours`, are `null` or empty, and `has_details` is `false`.

### How to use the Das Telefonbuch API in Python and JavaScript

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")

run = client.actor("parsebird/das-telefonbuch-scraper").call(run_input={
    "searchQuery": "Zahnarzt",
    "location": "München",
    "searchType": "business",
    "maxResults": 200,
    "includeDetails": True,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["name"], item["phone"], item["email"], item["website"])
```

**JavaScript**

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });

const run = await client.actor('parsebird/das-telefonbuch-scraper').call({
    searchQuery: 'Elektriker',
    location: 'Dortmund',
    maxResults: 100,
    includeDetails: false,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((row) => console.log(row.name, row.address, row.phone));
```

Get your token in [Apify Console](https://console.apify.com/settings/integrations). See every option on the [API tab](https://apify.com/parsebird/das-telefonbuch-scraper/api).

### Use cases

- **B2B lead generation:** build lists of German businesses by industry and region, with phone, email and website.
- **Local sales territories:** pull every Handwerker, Arzt or Kanzlei in a set of postal codes for your field team.
- **Market research:** count businesses per industry and city, or map them with the coordinates.
- **Reputation research:** compare ratings and review sources across competitors.
- **CRM enrichment and data cleaning:** check addresses, phone and fax numbers against the directory.
- **Recurring monitoring:** schedule runs to catch new or updated listings.

### How does Das Telefonbuch Scraper work?

1. It opens the Das Telefonbuch search for your query and location: the business directory or the residential phone book.
2. It reads the results page by page, the way the site's own infinite scroll does, so it isn't stopped by the 999-hit display limit.
3. With detail pages on, it opens each listing's page, five at a time, for the full profile.
4. It decodes protected email addresses and joins phone numbers the page splits into pieces, so numbers are never cut short.
5. It saves rows as it goes, so a stopped run keeps its results.

### How much does it cost to scrape Das Telefonbuch?

Das Telefonbuch Scraper uses pay-per-event pricing. Compute and proxy costs are included in the event price.

| Event | Free | Bronze | Silver | Gold |
|-------|------|--------|--------|------|
| `apify-actor-start`, per run | **$0.005** | **$0.005** | **$0.005** | **$0.005** |
| `search-result-scraped`, per 1,000 | **$1.99** | **$1.79** | **$1.59** | **$1.39** |
| `profile-scraped`, per 1,000 | **$4.99** | **$4.49** | **$3.99** | **$3.49** |

Each saved listing is charged once: as a **profile** when its detail page was read, or as a **search result** when detail pages are off. If a detail page can't be read, the row keeps its search result data and is charged as a search result.

For example, 1,000 tax advisors with full profiles cost about $4.99 on the Free plan, or $1.99 as a list without detail pages. A start event fires once per run for each GB of run memory, and the default memory stays within one. To cap your spending, set a maximum cost per run in the run options. The run stops at that limit and keeps what it saved.

### Is it legal to scrape Das Telefonbuch?

Das Telefonbuch Scraper only collects data that dastelefonbuch.de shows publicly, without logging in. Web scraping of public data is generally legal, but what you may do with the data depends on your purpose and your country. You can read more in [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

Listings of private people, and business listings that name a person, are **personal data** under the GDPR. You need a lawful basis to store or use them, and German law (UWG) restricts cold calls and marketing emails without consent. Review text may be protected by copyright. Check Das Telefonbuch's terms too, and ask a lawyer if you are unsure. This section is not legal advice.

### Other scrapers you may like

- [Gelbe Seiten Scraper](https://apify.com/parsebird/gelbeseiten-scraper): German business listings from Gelbe Seiten
- [Northdata Scraper](https://apify.com/parsebird/northdata-scraper): German company register data from North Data
- [Bundesanzeiger Scraper](https://apify.com/parsebird/bundesanzeiger-scraper): company filings from the German Federal Gazette
- [FirmenABC.at Scraper](https://apify.com/parsebird/firmenabc-at-scraper): Austrian company directory
- [Zefix.ch Scraper](https://apify.com/parsebird/zefix-ch-scraper): Swiss commercial register
- [Kart.1881 Scraper](https://apify.com/parsebird/kart-1881-scraper): Norwegian phone directory
- [YellowPages USA Lead Generator](https://apify.com/parsebird/yellowpages-scraper): US business listings

### FAQ

**Do I need a Das Telefonbuch account or a proxy?**
No. The scraper needs no login and no setup. If the site starts blocking, it switches to Apify Proxy by itself.

**How many results can I get?**
As many as the search has. The site's counter stops at "999 Treffer", but the scraper reads past it: in our tests it saved all 271 tax advisors in Frankfurt in 22 seconds, and 1,200 unique lawyers in Berlin. Set **Max results** to `0` for everything.

**Why is the email empty for some businesses?**
Emails are only on listing pages, so keep **Include detail pages** on. Even then, not every listing publishes one: in our tests 71% of 250 business profiles had an email.

**How often is there a mobile number or a company profile?**
Rarely. In our tests, mobile numbers appeared on about 1% of 250 business profiles and the "Unternehmensprofil" text on about 5%. When a listing's main number is a mobile number, it's also returned in `mobile`, with or without detail pages.

**Why does a listing have a fax but no phone?**
Some listings publish only a fax number, and the scraper returns exactly what the listing shows.

**Can I search by postal code or district?**
Yes. Use a 5-digit postal code such as `10115`, a district such as `Berlin Mitte`, or a federal state such as `Bayern`. Results stay inside that area.

**What does a person search return?**
Names, addresses and phone numbers from the residential phone book, plus coordinates with detail pages on. A surname search can also match businesses named after a person, which Das Telefonbuch lists among private entries.

**Why is the district empty for some cities?**
Not every local publisher shows a district. In our tests Cologne listings had none, while most Berlin and Munich listings had one.

**Can I schedule recurring runs?**
Yes. Use [Apify Schedules](https://docs.apify.com/platform/schedules) to run daily, weekly or at any interval, and connect the results to Google Sheets or your CRM with [integrations](https://docs.apify.com/platform/integrations).

**Something doesn't work. Where do I report it?**
Open a ticket on the [Issues tab](https://apify.com/parsebird/das-telefonbuch-scraper/issues). Include your run link so we can look into it.

# Changelog

This Actor's version history is a separate document: https://apify.com/parsebird/das-telefonbuch-scraper/changelog.md

# Actor input Schema

## `searchQuery` (type: `string`):

Enter an industry, company name or surname, as you would on dastelefonbuch.de. Examples: Steuerberater, Zahnarzt, Siemens, Müller.

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

Enter a city, district, 5-digit postal code or federal state. Examples: Frankfurt, Berlin Mitte, 10115, Bayern.

## `searchType` (type: `string`):

Business searches the business directory (Branchenbuch). Person searches the residential phone book (private listings).

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

Stop after this many listings. Use 0 for every listing Das Telefonbuch has for the search.

## `includeDetails` (type: `boolean`):

Open each listing's page for email, fax, mobile, opening hours, reviews, company profile, services, coordinates and contact persons. Turn off for the faster, cheaper search result data only.

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

Optional. Without a proxy, the scraper starts with a direct connection and moves to Apify datacenter, then German residential proxies, if it's blocked.

## Actor input object example

```json
{
  "searchQuery": "Steuerberater",
  "location": "Frankfurt",
  "searchType": "business",
  "maxResults": 20,
  "includeDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (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 = {
    "searchQuery": "Steuerberater",
    "location": "Frankfurt",
    "searchType": "business",
    "maxResults": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/das-telefonbuch-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 = {
    "searchQuery": "Steuerberater",
    "location": "Frankfurt",
    "searchType": "business",
    "maxResults": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/das-telefonbuch-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 '{
  "searchQuery": "Steuerberater",
  "location": "Frankfurt",
  "searchType": "business",
  "maxResults": 20
}' |
apify call parsebird/das-telefonbuch-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parsebird/das-telefonbuch-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/N4fyyzbxmhhUhPvwg/builds/ow9GprdqcVx3SIZOW/openapi.json
