# Y Combinator Scraper — Companies, Founders, Jobs (`architekture/yc-companies-scraper`) Actor

Y Combinator startup directory data from ycombinator.com: company name, batch, status, stage, industry, region, tags, team size, website, location, hiring flag, founders, LinkedIn links and open jobs. Search by keyword, batch, industry, region or status. Pay per result, no login.

- **URL**: https://apify.com/architekture/yc-companies-scraper.md
- **Developed by:** [architek.earth](https://apify.com/architekture) (community)
- **Categories:** AI, Business
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 companies

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Y Combinator Scraper — Companies, Founders, Jobs

**Recorded run: 5 companies from 1 search term in 9.9 seconds** (2026-10-22, build 1.0.8, run `XJLEyXe2xZShwJnVJ`). A bounded canary sample, not a full-catalogue benchmark.

architek.earth — an independent data studio. Pay-per-result scrapers with recorded runs, published canaries and stable schemas, built for people and AI agents.

Y Combinator startup directory companies, batches, industries, team sizes, founders and open jobs from ycombinator.com, by keyword, batch, industry, region, status or hiring flag.

| Source | Market | From | Standout fields |
|---|---|---|---|
| Y Combinator company directory (ycombinator.com/companies) | Global | $2.00 / 1,000 companies | `batch` / `status`, `industries` / `regions`, `founders`, `openJobs` |

### ✅ Why choose this scraper

#### YC company directory, one row per company

Every row carries the same 36 company fields, among them `name`, `oneLiner`, `batch`, `status`, `stage`, `industry`, `industries`, `regions`, `tags`, `teamSize`, `website`, `allLocations`, `isHiring`, `topCompany` and `url`. Rows are de-duplicated by `id`.

#### YC founders, LinkedIn profiles and open jobs

With `includeFounders: true` each row adds `founders` (`fullName`, `title`, `founderBio`, `linkedinUrl`, `twitterUrl`), `founderNames`, `founderLinkedIns`, the company `linkedinUrl` and `crunchbaseUrl`, `yearFounded`, `city`, `country`, `openJobs` and `jobCount`. Run `0yGGPKCUHKC1B5cOs` returned 2 companies with 4 founders and 4 jobs in 6.5 seconds on 2026-10-22.

#### Filter YC startups by batch, industry, region and status

`batches`, `industries`, `regions`, `status`, `isHiring` and `topCompaniesOnly` map to the directory's own filters: values inside one list are OR, separate filters are AND. `sortNewest` switches to launch-date order.

#### Free preview before paying

`preview: true` returns up to 10 basic company rows without charge, 20 times per Apify account. Run `d67CK64vAs5yU6WoG` returned 10 climate companies in 3.4 seconds on 2026-10-22.

#### Measured on a schedule

A canary task runs a fixed `AI` search on the live directory and records rows, inputs and seconds; the hero line above is its latest green run.

### ⚠️ Worth knowing up front

- Public YC directory records only. `hasEmail` on a founder is the directory's flag, not an email address; the actor returns no email addresses, funding amounts or valuations.
- The 36 fields are always present, not always filled. On basic rows the founder, social-link, city/country and job fields are empty (`[]`, `""` or `null`). `jobCount` is `null` when no job list was supplied and `0` only when the company page lists none.
- When a company page cannot be read (404, a block after retries or a page that does not match the search result), the row keeps its directory data with `detailStatus: "unavailable"` and is charged as `company`, not `company-detail`.
- The directory search can stop short of its reported total. `RUN_SUMMARY` then shows `SOURCE_LIMIT` with `reportedTotal` and `sourceLimited`; `maxItems: 0` removes the actor's cap, not the source's limits.
- Requests are retried up to 4 times with a fresh session, and the directory's search key is re-read from the page after a 403. A rate-limit cooldown longer than 60 seconds stops the run. A challenge, captcha or consent page is a block on the first response, not missing data. A blocked run ends `PARTIAL` (rows kept and charged) or `BLOCKED` (nothing delivered). The run stops cleanly 60 seconds before its timeout with `TIME_LIMIT`.
- Invalid input, a block, a cooldown over 60 seconds, the run deadline, a spending-limit stop (`BUDGET_LIMIT`) and a used-up preview allowance (`PREVIEW_LIMIT`) end with a free status row (`"recordType": "status"`) that says what happened. A search with no matches writes no status row; `RUN_SUMMARY` holds the outcome. A spending limit used up exactly by the last row ends `COMPLETE`.
- Continuation re-runs the search and skips company IDs already delivered. It does not refresh earlier rows, and companies that move in the result order between runs can be missed.

### ⚡ Try the example

The free preview allows 20 attempts per Apify account, each one search page and up to 10 basic company rows, not charged. Failed attempts count; preview cannot be combined with `includeFounders` or `resumeState`, and there is no automatic paid fallback.

Open the actor's input page, switch to JSON, paste this and start the run:

```json
{
  "query": "climate",
  "preview": true,
  "maxItems": 10
}
```

Remove `preview` and raise `maxItems` for paid collection; add `"includeFounders": true` for founders, social links and open jobs.

### ⚙️ Input

| Parameter | Type | Default | Description |
|---|---|---|---|
| `query` | string | `""` | Text search over the directory. Empty matches all companies the other filters allow. |
| `batches` | array | — | Exact batch labels as shown on ycombinator.com, for example `Summer 2023` or `Winter 2025`. |
| `industries` | array | — | Industry facets such as `B2B`, `Fintech`, `Healthcare`; sub-industries such as `B2B -> Engineering, Product and Design` also work. |
| `regions` | array | — | Region facets such as `United States of America`, `Europe`, `India`, `Remote`. |
| `status` | select | `""` (any) | `Active`, `Inactive`, `Acquired` or `Public`. |
| `isHiring` | boolean | `false` | Only companies the directory flags as hiring. |
| `topCompaniesOnly` | boolean | `false` | Only companies on YC's Top Companies list. |
| `sortNewest` | boolean | `false` | Launch-date order instead of the directory's default order. |
| `maxItems` | integer | `500` (prefill `10`) | New unique companies per run. `0` removes the actor's cap, not the source's search limits. |
| `includeFounders` | boolean | `false` | Fetch each company's YC page for founders, social links, year founded, city, country and open jobs. One extra request per company, charged as `company-detail`. |
| `proxyConfiguration` | proxy | — (prefill `{"useApifyProxy": true}`) | Apify datacenter proxy was used in the recorded runs. |
| `preview` | boolean | `false` | Free preview: one page, up to 10 basic rows, 20 attempts per account. |
| `resumeState` | object | — | The `RESUME_STATE` record from an earlier run. Query, filters, sort and `includeFounders` must match; `maxItems` may change. |
| `feedback` | string | — | Optional note for the maintainers. It is logged and read by a human, and it never changes output. |

### 🧱 Stable fields

These top-level fields keep the same name and the same kind of value in every release. Fields are only ever added, never renamed or removed, so an n8n, Make, Zapier or spreadsheet pipeline can bind to them.

| Field | Type | Meaning |
|---|---|---|
| `id` / `objectId` | number / string | YC company id; the de-duplication and join key. |
| `name` / `slug` / `url` | string | Company name, directory slug and YC company page. |
| `formerNames` | array | Earlier names listed by YC; `[]` when none. |
| `website` / `smallLogoThumbUrl` | string, nullable | Company website and logo thumbnail. |
| `oneLiner` / `longDescription` | string, nullable | Short and long description. |
| `allLocations` | string, nullable | Location text, for example `San Francisco, CA, USA`. |
| `teamSize` | number, nullable | Team size as listed by YC. |
| `industry` / `subindustry` / `industries` / `regions` / `tags` | string / string / array / array / array | YC classifications. |
| `batch` / `status` / `stage` | string, nullable | Batch label (`Summer 2024`), status (`Active`) and stage (`Early`). |
| `launchedAt` | number, nullable | Launch time as a Unix timestamp. |
| `isHiring` / `topCompany` / `nonprofit` | boolean, nullable | Directory flags. |
| `founders` | array | `{userId, fullName, title, founderBio, avatarThumbUrl, twitterUrl, linkedinUrl, hasEmail}` per founder; `[]` on basic rows. |
| `founderNames` / `founderLinkedIns` | string / array | Founder names joined by commas, and their LinkedIn URLs. |
| `linkedinUrl` / `twitterUrl` / `githubUrl` / `crunchbaseUrl` | string, nullable | Company profile links; `null` on basic rows. |
| `yearFounded` / `city` / `country` | number / string / string, nullable | From the company page; `null` on basic rows. |
| `openJobs` / `jobCount` | array / number, nullable | `{title, location, url}` per job, and their count; `jobCount` is `null` when no job list was supplied. |
| `source` / `query` | string | `search` and the search text that produced the row. |
| `detailStatus` | string | With `includeFounders`: `complete` or `unavailable` (basic data kept). |
| `recordType` | string | `"status"` on free status rows; absent on company rows. |

Status rows (free) carry `recordType`, `status` and `message`. Other fields are extras, not part of the contract. To have one pinned, say so in `feedback`.

### 📦 Output example

Abridged real row from run `XJLEyXe2xZShwJnVJ` on 2026-10-22; values are a historical snapshot.

```json
{
  "id": 29798,
  "name": "&AI",
  "slug": "ai-2",
  "website": "https://www.tryandai.com/",
  "allLocations": "San Francisco, CA, USA",
  "oneLiner": "Collaborative workspace for patent litigators",
  "teamSize": 7,
  "industry": "B2B",
  "subindustry": "B2B -> Legal",
  "tags": ["SaaS", "B2B", "LegalTech"],
  "topCompany": false,
  "isHiring": false,
  "batch": "Summer 2024",
  "status": "Active",
  "regions": ["United States of America", "America / Canada"],
  "stage": "Early",
  "url": "https://www.ycombinator.com/companies/ai-2",
  "founders": [],
  "jobCount": null,
  "source": "search",
  "query": "AI"
}
```

With `includeFounders: true` (abridged, run `0yGGPKCUHKC1B5cOs`, 2026-10-22):

```json
{
  "id": 28822,
  "name": "Electric Air",
  "batch": "Summer 2023",
  "isHiring": true,
  "founderNames": "Jeremy Osborne, Chris Mui",
  "founderLinkedIns": [
    "https://linkedin.com/in/jezosborne",
    "https://www.linkedin.com/in/christophermui/"
  ],
  "linkedinUrl": "https://www.linkedin.com/company/electric-air-heatpumps/",
  "yearFounded": 2023,
  "city": "San Francisco",
  "country": "US",
  "openJobs": [
    {
      "title": "Heat Pump Sales Engineer",
      "location": "Redwood City",
      "url": "https://www.ycombinator.com/companies/electric-air-2/jobs/w95jORY-heat-pump-sales-engineer"
    }
  ],
  "jobCount": 3,
  "detailStatus": "complete"
}
```

A free status row looks like this (run `TCGkjDi8SeWIE5xRY`, 2026-10-22):

```json
{"recordType": "status", "status": "INVALID_INPUT", "message": "resumeState does not match this query, filters, sort and detail mode"}
```

The `RUN_SUMMARY` record of the run's key-value store holds `status` (`COMPLETE`, `LIMITED`, `SOURCE_LIMIT`, `PARTIAL`, `BLOCKED`, `BUDGET_LIMIT`, `TIME_LIMIT`, `PREVIEW_LIMIT`, `INVALID_INPUT` or `FAILED`), `companyRows`, `detailRows`, `unavailableDetails`, `rowLimitReached`, `sourceLimited`, `reportedTotal` and `confirmedCompanyIds`.

### 🧠 Advanced usage

#### Export a whole Y Combinator batch

Set `batches` to the exact label, for example `["Summer 2023"]`, leave `query` empty and set `maxItems: 0`. Check `RUN_SUMMARY.status`: `COMPLETE` means every result the search exposed was delivered; `SOURCE_LIMIT` means `reportedTotal` was higher than what the search returned.

#### Find YC startups that are hiring

Set `isHiring: true` and `includeFounders: true`: each row then lists `openJobs` with title, location and job URL, plus `jobCount`. Read `isHiring` as the directory's flag, not a staffing count.

#### Continue a large YC directory export

After a spending-limit stop, a timeout or a block, open the run's key-value store, copy `RESUME_STATE` and pass it as `resumeState` with the same query, filters, sort and `includeFounders`. Run `X9SLY3casDlpUYyRG` saved 10 company IDs; run `25rb0f95pHCZATPLi` continued from it with 2 new companies and no repeated IDs (2026-10-15).

#### Track YC company status and team-size changes

Schedule the same search and join runs on `id`: compare `status`, `teamSize`, `isHiring` and `jobCount` between snapshots. Omit `resumeState` so each run is a fresh snapshot.

### 🔌 Integrations

Results land in a dataset you can export as JSON, CSV or Excel. They can also flow to Google Sheets, Make, Zapier or n8n, or to a webhook when a run finishes. The Apify Scheduler runs it on a timetable. A weekly run catches new companies, status changes and hiring flags; check `RUN_SUMMARY` before treating a run as full coverage. Copy-paste code in Python, Node, curl and n8n: [architek-earth/examples/yc-companies-scraper](https://github.com/architek-earth/examples/tree/main/yc-companies-scraper).

### 💸 Pricing

Pay per result. Platform and proxy usage are included. Status rows and failed requests are free. Company IDs already saved in `RESUME_STATE` are skipped and not charged again when you pass it back as `resumeState`. The checkpoint is saved before each charged batch, so a resumed run never charges a company twice; a run killed during a batch can skip that batch on resume instead.

| Event | Price | What it covers |
|---|---|---|
| Free preview | $0 | Up to 10 basic company rows per attempt, 20 attempts per Apify account. |
| `company` | $2.00 / 1,000 companies | One delivered basic company row, including a row kept at basic data when its company page could not be read. |
| `company-detail` | $6.00 / 1,000 companies | One delivered row with founders, social links and jobs from the company page (`includeFounders: true`). |

1,000 basic rows cost $2.00; 1,000 enriched rows cost $6.00. A row is charged once, as `company` or `company-detail`, never both.

### ❓ FAQ

**Is there a Y Combinator API for the YC company directory?** This actor is one: it returns the public directory as JSON through the Apify API, callable from any language or from n8n, Make and Zapier.

**Do I need a Y Combinator or Bookface account?** No. No account, cookies or API key; the actor reads the public directory and company pages.

**Can I get YC founder emails?** No. `hasEmail` is a flag from the directory, not an address. Founder names, titles, bios and LinkedIn and Twitter URLs come with `includeFounders: true`.

**Can I export every company in a YC batch?** Yes, with `batches` set to the exact label and `maxItems: 0`. If the search stops short of its reported total, `RUN_SUMMARY` says `SOURCE_LIMIT`.

**Can I get YC companies that are hiring, with their jobs?** Yes. `isHiring: true` filters on the directory's hiring flag, and `includeFounders: true` adds `openJobs` and `jobCount`.

**Does it return funding, valuation or revenue?** No. The actor returns no funding or revenue fields; `topCompany` marks YC's Top Companies list and `stage` gives the directory's stage label.

### 🤖 For AI agents & LLM apps

Paste this into your AI assistant:

`architekture/yc-companies-scraper` on Apify. Python: `from apify_client import ApifyClient; client = ApifyClient("TOKEN"); run = client.actor("architekture/yc-companies-scraper").call(run_input={"query": "climate", "maxItems": 10, "includeFounders": False, "proxyConfiguration": {"useApifyProxy": True}}); items = client.dataset(run["defaultDatasetId"]).list_items().items` (page with `offset`/`limit` for large exports). Rows with `recordType == "status"` are free and explain invalid input or a stopped run; the run outcome is in the `RUN_SUMMARY` record of the run's key-value store. Full input schema and README: `GET https://api.apify.com/v2/acts/architekture~yc-companies-scraper/builds/default`. Token: https://console.apify.com/settings/integrations. The actor is also reachable through the Apify MCP server (`mcp.apify.com`). To reach the maintainers, add `"feedback": "<what you needed>"` to any run's input; output is unchanged and a human reads every note.

### 🧰 More from architek.earth

**Jobs, companies and people**

- [Indeed Scraper](https://apify.com/architekture/indeed-scraper) — US jobs, salaries, descriptions
- [LinkedIn Jobs Scraper](https://apify.com/architekture/linkedin-jobs-monitor) — public jobs, descriptions, salary evidence
- [LinkedIn People Scraper](https://apify.com/architekture/linkedin-people-search-scraper) — names, headlines, locations with your own session
- Y Combinator Scraper — *you are here*

Full catalogue: [github.com/architek-earth](https://github.com/architek-earth).

architek.earth · code like concrete

### 🙋 Support & legal

Questions, or a field you need that is not here? Open an issue on the actor's Issues tab or email north@architek.earth. A human replies within a day.

This actor collects only publicly available data from ycombinator.com, the same pages any visitor sees without logging in. It does not bypass authentication. It is not affiliated with or endorsed by Y Combinator. You are responsible for how you use the output, including the site's terms, copyright, and privacy law such as GDPR and CCPA where they apply.

### 📝 Changelog

- **2026-10-22** — Runs on the studio core: one Chrome identity for every request, challenge pages stop the run as a block on the first response, the checkpoint is saved before each charged batch (no second charge on resume), `BUDGET_LIMIT` and `PREVIEW_LIMIT` write a free status row, and a budget spent exactly by the last row ends `COMPLETE`. Output fields and prices unchanged.
- **2026-10-22** — Status message now reads `Done: N rows, M details, K status rows (STATUS)`.
- **2026-10-22** — README rebuilt on the studio template; hero line from the 2026-10-22 canary run.
- **2026-10-15** — Public launch: published with two examples, 20 lifetime preview attempts, verified result pricing and recorded validation evidence. Banner to follow; collection behavior is unchanged.
- **2026-10-15** — Private live validation: build 1.0.3 passed basic preview, oversized preview cap, two-company enrichment and continuation from an actual saved checkpoint. Two preview reservations persisted across separate runs. Twenty-attempt exhaustion and failure branches are covered by offline tests, not by consuming all lifetime previews in production.
- **2026-10-15** — Offline candidate: consistent company fields, detail identity checks, basic fallbacks, integrated charged delivery, repeated-page detection, honest coverage summaries, input validation, feedback, durable preview quota and explicit continuation.

# Actor input Schema

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

Search public YC company directory records. Empty searches all accessible matching records; upstream result windows may limit coverage.

## `batches` (type: `array`):

Exact batch names as shown on ycombinator.com, e.g. 'Summer 2026', 'Winter 2025', 'Spring 2025'. Empty = all batches.

## `industries` (type: `array`):

Industry facets, e.g. 'B2B', 'Consumer', 'Fintech', 'Healthcare', 'Industrials', 'Real Estate and Construction', 'Government', 'Education'. Sub-industries such as 'B2B -> Engineering, Product and Design' also work. Empty = all.

## `regions` (type: `array`):

Region facets, e.g. 'United States of America', 'Europe', 'India', 'Latin America', 'Canada', 'Remote'. Empty = all.

## `status` (type: `string`):

Filter by current status.

## `isHiring` (type: `boolean`):

Only companies with open roles on Work at a Startup.

## `topCompaniesOnly` (type: `boolean`):

Only companies on YC's Top Companies list (highest valuation / revenue).

## `sortNewest` (type: `boolean`):

Order by launch date (most recently launched first) instead of relevance.

## `maxItems` (type: `integer`):

Maximum new unique companies per run. Default 500; 0 removes the actor cap, not upstream search limits.

## `includeFounders` (type: `boolean`):

Fetch each company's YC page for founders (name, title, bio, LinkedIn, Twitter), company LinkedIn/Twitter/GitHub/Crunchbase, year founded, city/country and open job postings. One extra request per company, charged as company-detail.

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

Optional proxy configuration. Source availability and proxy suitability require live validation.

## `feedback` (type: `string`):

Logged for human review; does not change output. Do not include credentials or personal information.

## `preview` (type: `boolean`):

20 lifetime attempts, one page and up to 10 basic company rows. Failed attempts count after reservation. Requires configured quota stores; no paid fallback.

## `resumeState` (type: `object`):

Paste the prior saved RESUME_STATE. Query, filters, sort and enrichment must match; maxItems may change. Dynamic results can move between runs.

## Actor input object example

```json
{
  "status": "",
  "isHiring": false,
  "topCompaniesOnly": false,
  "sortNewest": false,
  "maxItems": 10,
  "includeFounders": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  },
  "preview": false
}
```

# Actor output Schema

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

Scraped items in the default dataset (one JSON object per row).

# 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 = {
    "query": "",
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": []
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("architekture/yc-companies-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 = {
    "query": "",
    "maxItems": 10,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": [],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("architekture/yc-companies-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 '{
  "query": "",
  "maxItems": 10,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": []
  }
}' |
apify call architekture/yc-companies-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,architekture/yc-companies-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/Txz2TczyDd7WwJCmt/builds/Zup8Xq1LcYbLwJg0h/openapi.json
