# Y Combinator Scraper: YC Companies, Founders & Email Pattern (`oswaldocarabano/yc-companies-founders-scraper`) Actor

Scrape the Y Combinator startup directory: YC companies, founders and open jobs with website, domain, LinkedIn, team size, batch, founder LinkedIn and bio, salaries. Plus each company's email pattern from real evidence and an MX check. Latin America by default, any region.

- **URL**: https://apify.com/oswaldocarabano/yc-companies-founders-scraper.md
- **Developed by:** [Oswaldo Carabano](https://apify.com/oswaldocarabano) (community)
- **Categories:** Lead generation, Jobs
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 company (with founders and jobs)s

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: YC Companies, Founders & Email Pattern

Scrape the **Y Combinator startup directory** (YC companies list): companies, **founders** and **open jobs**, with each company's **website, domain, LinkedIn, team size, batch and location**, founders' **LinkedIn, bio and past companies**, job **salaries and hiring managers**, and the company's **email pattern** (first.last@, first@…) worked out from emails the company really published, plus a **DNS MX check**. Latin America by default; any region, batch, industry or tag.

Built for people who reach out to startups: developers looking for a job, recruiters, founders looking for peers, sales, lead generation and partnerships teams. Export YC startups, YC founders and YC jobs (the same roles as Work at a Startup) to JSON, CSV or Excel, or call it as an API.

No login, no cookies, no browser: the actor reads only public pages, so runs are fast and cheap.

### What you get

One run produces **one type of row** (`outputType`):

| Output | One row is | Typical use |
|---|---|---|
| `companies` (default) | A YC company with its founders and jobs inside | Build a target list of startups |
| `founders` | One founder, with the company's domain, size and location | Write to the decision maker |
| `jobs` | One open role, with salary, hiring manager and the company's founders | Apply where you fit |

Every row includes the company **domain**. With `inferEmailPattern` (on by default) it also includes the **emailPattern** block: the pattern, a confidence score, the evidence it is based on, alternatives, MX servers and the email provider (Google Workspace, Microsoft 365…), and an **email candidate for every founder** and hiring manager.

### Measured coverage (1 Oct 2026)

The public directory lists **6,267 companies**; **221 in Latin America** (Mexico 86, Brazil 51, Colombia 31, Argentina 21, Chile 20, Peru 10) and **1,487 hiring** worldwide (18 in Latin America).

Fill rates measured in this actor's own output (80 Latin American companies with details, 80 founders, 60 jobs):

| Field | Latin America | Notes |
|---|---|---|
| Website and domain | 100% | |
| Company LinkedIn | 93.8% | |
| Founders listed | 98.8% of companies | 2.3 founders per company |
| Founder LinkedIn | 99.4% of founders | |
| Founder bio | 93.9% | |
| Founder past companies | 48.3% | From Work at a Startup |
| Company X/Twitter, Crunchbase | 48.8%, 48.8% | |
| GitHub organization | 11.3% | |
| Hiring and tech descriptions | 40%, 32.5% | |
| Emails the company published | 25% | Launch posts, descriptions |
| Email pattern backed by evidence | 7.5% (6 of 80) | 12% on 1,000 companies worldwide |
| Domain with valid MX | 92.5% | 87.5% use Google Workspace |
| Email candidate per founder | 91.1% | Most are inferred (see FAQ) |
| Jobs: full description and hiring manager | 100% | When the job page is read |
| Jobs: numeric salary | 95% (Latin America), 70% (Remote) | |

Wider sample from the source itself (310 companies): company LinkedIn 88.1%, team size 99.7%, year founded 94.5%, news coverage 47.4%, Launch posts 23.5%, open jobs 30% of companies.

### Speed and cost (measured on the Apify platform, 2 Oct 2026)

All runs at the default 512 MB memory, from Apify's own servers, without proxy. 0 of 2,177 requests blocked or rate limited across 14 runs.

| Input | Rows | Time | Peak memory | You pay |
|---|---|---|---|---|
| `{}` (default: 50 Latin American companies with founders and jobs) | 50 | 10 s | 78 MB | $0.45 (50 × $0.008 + 5 patterns × $0.01) |
| `{"outputType": "founders", "maxItems": 40}` | 40 | 6 s | 63 MB | $0.19 (40 × $0.004 + 3 patterns) |
| `{"outputType": "jobs", "maxItems": 30}` (with job descriptions) | 30 | 8 s | 67 MB | $0.18 (30 × $0.006) |
| `{"outputType": "jobs", "regions": ["Remote", "Fully Remote"], "includeJobDetails": false, "maxItems": 30}` | 30 | 5 s | 65 MB | $0.09 (30 × $0.003) |
| Directory only (`includeFounders` and `includeJobs` off), batch Winter 2024, 40 rows | 40 | 3 s | 55 MB | $0.12 (40 × $0.003) |
| Whole directory, `"regions": []`, `"maxItems": 500` | 500 | 83 s | 132 MB | $4.38 (500 × $0.008 + 38 patterns) |
| Founders, whole directory, `maxItems` 300 with a $0.50 spending limit | 109 | 10 s | 66 MB | $0.496 (109 × $0.004 + 6 patterns): stopped cleanly at the limit |

Earlier local tests: 1,000 companies with details in 74 s (peak 183 MB) and 2,500 directory-only rows in 18 s, so the default 512 MB is plenty.

### Pricing (pay per event)

| Event | Price | When |
|---|---|---|
| Actor start | $0.00001 | Once per run |
| Company (directory data) | $0.003 | Company row without its page (founders and jobs off) |
| Company (with founders and jobs) | $0.008 | Company row with its page read (default) |
| Founder | $0.004 | One founder row |
| Job posting | $0.003 | One job row from the company page |
| Job posting with full description | $0.006 | One job row with its job page read |
| Company email pattern | $0.01 | Once per domain, **only when backed by an observed email** |

Each row is charged **one** row event (by depth, never added up) and at most one email pattern per domain. A pattern that is only a guess (no evidence) is **free** and marked `inferred: true`. Error rows are never charged. Example: the default run (50 Latin American companies with details) cost **$0.45** on 2 Oct 2026 (50 × $0.008 + 5 evidence-backed patterns × $0.01). See the table above for more measured examples.

| You want | Approximate cost |
|---|---|
| 100 YC companies with founders and jobs | $0.80 + about $0.08 of email patterns (7.6% of domains had evidence in the 500-company run) |
| 1,000 YC founders | $4.00 + email patterns |
| 1,000 YC jobs with full description | $6.00 |
| The whole directory, directory data only (6,268 companies) | about $18.80 |

### Input

| Field | Default | What it does |
|---|---|---|
| `outputType` | `companies` | `companies`, `founders` or `jobs` |
| `regions` | `["Latin America"]` | YC region tags; empty = whole directory |
| `query` | | Free text, as in the directory search box |
| `batches` | | `Winter 2024` or `W24`, `S25`, `F24`, `X25` (Spring) |
| `industries`, `tags`, `status`, `stages` | | Optional filters |
| `onlyHiring`, `topCompaniesOnly` | `false` | Only hiring companies / only YC top companies |
| `minTeamSize`, `maxTeamSize` | | Team size range |
| `sortBy` | `relevance` | Or `launchDate` (newest first) |
| `includeFounders`, `includeJobs` | `true` | Companies output: open the company page |
| `includeJobDetails` | `true` | Jobs output: open each job page |
| `inferEmailPattern` | `true` | Email pattern, MX check and email candidates |
| `includePersonalEmails` | `false` | Keep gmail/outlook/yahoo-style addresses |
| `includeEuPersons` | `false` | Include people of EU/EEA/UK/Swiss companies |
| `maxItems` | `50` | Rows to deliver (and charge) |
| `maxConcurrency` | `4` | Company pages read at the same time (1 to 8) |

### Input examples

Fintech startups in Mexico, with founders and jobs:

```json
{ "outputType": "companies", "regions": ["Mexico"], "industries": ["Fintech"], "maxItems": 100 }
```

Founders of the latest YC batch, worldwide:

```json
{ "outputType": "founders", "regions": [], "batches": ["Fall 2026"], "maxItems": 250 }
```

Remote jobs at YC AI startups that are hiring, newest companies first:

```json
{ "outputType": "jobs", "regions": ["Remote", "Fully Remote"], "tags": ["Artificial Intelligence"], "onlyHiring": true, "sortBy": "launchDate", "maxItems": 200 }
```

### Output examples

A real company row from the default run on the Apify platform (2 Oct 2026), shortened. Founder details are left out here; in your dataset each founder has name, title, bio, LinkedIn, X, past companies and an email candidate.

```json
{
  "rowType": "company",
  "companyId": 755,
  "name": "Bright",
  "url": "https://www.ycombinator.com/companies/bright",
  "website": "https://www.thinkbright.mx/",
  "domain": "thinkbright.mx",
  "oneLiner": "Sunrun for the developing world",
  "batch": "Winter 2015",
  "batchCode": "W15",
  "status": "Active",
  "stage": "Growth",
  "teamSize": 100,
  "industry": "Industrials",
  "industries": ["Industrials", "Energy"],
  "tags": ["Fintech", "Solar Power", "Climate"],
  "regions": ["United States of America", "Mexico", "America / Canada", "Latin America", "Remote", "Fully Remote"],
  "location": "New York City, NY",
  "country": "US",
  "yearFounded": 2014,
  "linkedinUrl": "https://www.linkedin.com/company/9506733/",
  "crunchbaseUrl": "https://www.crunchbase.com/organization/bright-3",
  "newsItems": [{ "title": "Bright raises $32M  to expand rooftop solar in Mexico", "url": "https://www.axios.com/pro/climate-deals/2023/07/27/bright-31-million-jonah-greenberger-sdg-ifu-solar-mexico", "date": "Jul 27, 2023" }],
  "foundersCount": 1,
  "founders": ["…"],
  "jobsCount": 0,
  "waasUrl": "https://www.workatastartup.com/companies/bright",
  "emailPattern": {
    "domain": "thinkbright.mx",
    "pattern": "first.last",
    "confidence": 0.1,
    "inferred": true,
    "evidenceCount": 0,
    "mxValid": true,
    "mxHosts": ["aspmx.l.google.com", "alt1.aspmx.l.google.com"],
    "emailProvider": "Google Workspace",
    "catchAll": null,
    "billable": false
  },
  "detailFetched": true
}
```

This company published no email, so the pattern is a free guess (`inferred: true`, `billable: false`). When the company did publish emails, the block also lists the evidence and `inferred` is `false`, as in the example below.

The next examples use fictitious data, to show every field of a person without publishing a real one.

A company row with an evidence-backed pattern (`outputType: companies`), shortened:

```json
{
  "rowType": "company",
  "companyId": 30001,
  "name": "Acme Pay",
  "url": "https://www.ycombinator.com/companies/acme-pay",
  "website": "https://acmepay.example.com",
  "domain": "acmepay.example.com",
  "oneLiner": "Payments infrastructure for Latin America",
  "batch": "Winter 2025",
  "batchCode": "W25",
  "status": "Active",
  "isHiring": true,
  "teamSize": 12,
  "location": "Mexico City, Mexico",
  "country": "MX",
  "industries": ["Fintech", "Payments"],
  "linkedinUrl": "https://www.linkedin.com/company/acme-pay-example",
  "founders": [
    {
      "fullName": "Ana Example",
      "title": "Founder/CEO",
      "linkedinUrl": "https://www.linkedin.com/in/ana-example",
      "pastCompanies": "Engineer at Example Corp",
      "emailCandidate": "ana@acmepay.example.com",
      "emailCandidateConfidence": 0.75,
      "emailCandidateInferred": false
    }
  ],
  "jobs": [
    { "jobId": 70001, "title": "Senior Backend Engineer", "location": "Remote (MX; CO)", "remote": true, "salaryMin": 60000, "salaryMax": 90000, "salaryCurrency": "USD" }
  ],
  "contactEmails": ["ana@acmepay.example.com", "hello@acmepay.example.com"],
  "emailPattern": {
    "pattern": "first",
    "example": "first@acmepay.example.com",
    "confidence": 0.75,
    "inferred": false,
    "evidenceCount": 2,
    "evidence": [{ "email": "ana@acmepay.example.com", "kind": "known-person-match", "matchedPatterns": ["first"], "source": "launch" }],
    "mxValid": true,
    "emailProvider": "Google Workspace",
    "catchAll": null
  },
  "detailFetched": true
}
```

A founder row (`outputType: founders`):

```json
{
  "rowType": "founder",
  "founderKey": "30001:900001",
  "fullName": "Ana Example",
  "title": "Founder/CEO",
  "linkedinUrl": "https://www.linkedin.com/in/ana-example",
  "bio": "Second-time founder, ex payments engineer.",
  "latestYcCompany": { "name": "Acme Pay", "url": "https://www.ycombinator.com/companies/acme-pay" },
  "emailCandidate": "ana@acmepay.example.com",
  "emailCandidateConfidence": 0.75,
  "emailCandidateInferred": false,
  "companyName": "Acme Pay",
  "domain": "acmepay.example.com",
  "batch": "Winter 2025",
  "teamSize": 12,
  "country": "MX",
  "isHiring": true
}
```

A job row (`outputType: jobs`, fictitious; real job rows also carry the full description, interview process, office and applicant locations and the company's founders):

```json
{
  "rowType": "job",
  "jobId": 70001,
  "title": "Senior Backend Engineer",
  "url": "https://www.ycombinator.com/companies/acme-pay/jobs/abc123-senior-backend-engineer",
  "location": "Remote (MX; CO)",
  "remote": true,
  "type": "Full-time",
  "prettyRole": "Engineering",
  "salaryMin": 60000,
  "salaryMax": 90000,
  "salaryCurrency": "USD",
  "visa": "Will sponsor",
  "datePosted": "2026-09-12",
  "hiringManager": { "fullName": "Ana Example", "emailCandidate": "ana@acmepay.example.com", "emailCandidateConfidence": 0.75 },
  "companyName": "Acme Pay",
  "domain": "acmepay.example.com"
}
```

### How the email pattern works

1. The actor collects every email the company itself published on its YC pages (Launch posts, descriptions, hiring text, job descriptions).
2. It matches them against the founders' and hiring managers' names to find the format (23 patterns: `first`, `first.last`, `flast`, `firstlast`, `last`…).
3. Confidence grows with evidence: one matching email gives 0.5, two give 0.75, three give 0.88. Without a valid MX record the confidence is halved.
4. It checks the domain's mail servers by DNS (MX) and names the provider. **It never connects to a mail server** (no SMTP probing), so `catchAll` is always `null`.
5. With no evidence, it gives the most common format measured for the provider (first.last@ in most cases), marked `inferred: true` with confidence 0.05 to 0.10. That guess is free.

### Privacy

- Emails at personal domains (gmail.com, outlook.com, yahoo.com and similar) are removed everywhere, including inside descriptions, unless you enable `includePersonalEmails`.
- For companies based in the EU, EEA, UK or Switzerland, founder and hiring manager names, bios, links, photos and email candidates are withheld (`personalDataWithheld: true` on company and job rows; with `outputType: founders` those founders are skipped) unless you enable `includeEuPersons`. If you enable it, you are responsible for having a lawful basis under GDPR.
- Image links are delivered without their temporary signature. Video links are not delivered at all (they only work with a temporary signed link).
- The actor never logs in, never creates accounts and never solves CAPTCHAs. It only reads public pages.

### FAQ

**Are the email candidates verified?**
No. They are built from the company's pattern. When `emailCandidateInferred` is `false`, the pattern comes from real emails the company published; when it is `true`, it is a guess. Check `emailCandidateConfidence` before you write, and never send bulk email.

**Why is the founder's email not included directly?**
YC does not publish founder emails. The profile only says that an email exists (`hasEmail`).

**Can I get every YC company?**
Yes. Leave `regions` empty and set `maxItems` up to 10,000. The directory search reaches 1,000 results per query, so the actor splits large searches by YC batch automatically (measured: 6,267 of 6,267 reachable).

**Why do some jobs have no numeric salary?**
The company did not list one. When the job page is read, the actor uses the structured salary the page provides; otherwise it parses the listed range (for example "$84K - $120K").

**Does it apply to jobs for me?**
No. It only reads public data. `applyUrl` takes you to YC's own application page.

**What happens if I set a spending limit?**
The run stops cleanly when the next row would exceed it. Within a run, every delivered row is charged once and nothing is charged twice, also when the platform resumes the run after a migration. Separate runs are independent: a company delivered by two runs is charged in each.

**Do I need a proxy?**
No. On 2 Oct 2026, 2,177 requests from Apify's servers got 0 blocks and 0 rate limits. If the site ever starts blocking, the actor switches to a fresh session by itself.

**Can I run it on a schedule?**
Yes. Save your input as a task and schedule it daily or weekly to catch new YC companies, new founders and new jobs (sort by `launchDate` to see the newest first).

**What does a run with no results mean?**
Your filters matched no companies. The run ends successfully with one explanatory error row; no row is charged (only the $0.00001 actor start event).

### Support

Questions, a field you need, or a removal request: use the Issues tab of this actor.

# Actor input Schema

## `outputType` (type: `string`):

One type of row per run. Companies: the full YC profile with founders\[] and jobs\[] nested. Founders: one row per founder with the company's domain and an email candidate. Jobs: one row per open role from the company page.

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

YC's own region tags (any of them matches). Latin America has 221 companies (measured 1 Oct 2026). Leave empty for all 6,267 companies.

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

Optional free text, as in the search box of ycombinator.com/companies (e.g. "payments", "developer tools").

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

Optional. Full names ("Winter 2024", "Summer 2025") or short codes ("W24", "S25", "F24", "X25" for Spring). Checked against the live directory.

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

Optional. Any of them matches.

## `tags` (type: `array`):

Optional YC tags such as "Fintech", "Developer Tools", "Artificial Intelligence". Checked against the live directory.

## `status` (type: `array`):

Optional. Empty = any status.

## `stages` (type: `array`):

Optional. YC's stage label. Applied after the search (the directory cannot filter by it).

## `onlyHiring` (type: `boolean`):

Only companies with YC's "hiring" flag (1,487 of 6,267; 18 of 221 in Latin America). Always on for the Jobs output.

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

Only companies on YC's top companies list (91).

## `minTeamSize` (type: `integer`):

Optional.

## `maxTeamSize` (type: `integer`):

Optional.

## `sortBy` (type: `string`):

Order of the results.

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

Opens each company page to add founders (name, title, bio, LinkedIn, X, past companies) and news, launches and photos. Charged as "company with details". Founders and Jobs outputs always open it.

## `includeJobs` (type: `boolean`):

Adds the company's open roles (title, location, salary, equity, visa, skills) inside each company row.

## `includeJobDetails` (type: `boolean`):

Jobs output only: adds the full description, date posted, structured salary, locations and the hiring manager. Charged as "job with details".

## `inferEmailPattern` (type: `boolean`):

Works out the company's email format (first.last@, first@…) from emails YC publishes on its pages, checks the domain's mail servers (DNS MX, never SMTP) and builds an email candidate per founder. Charged once per domain only when backed by a real observed email; a guess without evidence is free and marked inferred.

## `includePersonalEmails` (type: `boolean`):

Emails at gmail.com, outlook.com, yahoo.com and similar are left out unless you enable this.

## `includeEuPersons` (type: `boolean`):

For companies based in the EU, EEA, UK or Switzerland, founder names, bios, links, photos and email candidates are withheld unless you enable this (you become responsible for a lawful basis under GDPR).

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

Rows of the chosen type to deliver (and charge).

## `maxConcurrency` (type: `integer`):

Company pages read at the same time. 4 reads 50 companies with details in about 15 s; the site showed no limits up to 88 requests per second in our tests, so higher values only help large runs.

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

Not needed: the YC directory answers without a proxy. If you set one, every page goes through it.

## Actor input object example

```json
{
  "outputType": "companies",
  "regions": [
    "Latin America"
  ],
  "query": "",
  "batches": [],
  "industries": [],
  "tags": [],
  "status": [],
  "stages": [],
  "onlyHiring": false,
  "topCompaniesOnly": false,
  "sortBy": "relevance",
  "includeFounders": true,
  "includeJobs": true,
  "includeJobDetails": true,
  "inferEmailPattern": true,
  "includePersonalEmails": false,
  "includeEuPersons": false,
  "maxItems": 50,
  "maxConcurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

One row per company, founder or job: YC profile, domain, links, founders, jobs and the company's email pattern with confidence and evidence.

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

Counts delivered and charged, network summary and whether the run stopped early.

## `errors` (type: `string`):

Pages that could not be read and input adjustments (always written, empty when all went well). Never charged.

# 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 = {
    "outputType": "companies",
    "regions": [
        "Latin America"
    ],
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("oswaldocarabano/yc-companies-founders-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 = {
    "outputType": "companies",
    "regions": ["Latin America"],
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("oswaldocarabano/yc-companies-founders-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 '{
  "outputType": "companies",
  "regions": [
    "Latin America"
  ],
  "maxItems": 50
}' |
apify call oswaldocarabano/yc-companies-founders-scraper --silent --output-dataset

```

## MCP server setup

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