# Y Combinator Companies Scraper: Startups, Founders, Batches (`fernandosord/y-combinator-companies-scraper`) Actor

Export startups from the public Y Combinator directory by batch, industry, region, status, team size or hiring flag. Get name, website, one-liner, description, team size and tags, plus founders with LinkedIn and X links. No login.

- **URL**: https://apify.com/fernandosord/y-combinator-companies-scraper.md
- **Developed by:** [Plainsource](https://apify.com/fernandosord) (community)
- **Categories:** Lead generation, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.50 / 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

This Actor exports companies from the public Y Combinator startup directory (ycombinator.com/companies). Filter by batch, industry, region, status, team size, hiring flag or search text, and get one row per company with name, website, one-liner, description, batch, tags, team size and logo. Turn on **Include founders** to add each founder's name, title, LinkedIn and X links plus the company's own social links. No login, cookie or API key needed.

- **Batch codes work.** Type `W25`, `S24`, `F24` or `P25` (Spring 2025), full names like `Summer 2024`, or a whole year like `2024`.
- **The whole directory is reachable.** The directory search only returns 1,000 companies per query. The Actor splits large searches by batch behind the scenes, so a run with no filters can read all of the roughly 6,400 companies.
- **Leads and research.** Filter for active companies that are hiring, have 2 to 10 people and sit in Fintech, then export founders with LinkedIn links.
- **Safe to start empty.** With no input at all it returns the newest 100 companies instead of failing.

### What data you get

| Field | What it holds |
|---|---|
| `name`, `slug`, `url`, `website` | The company, its YC page and its own site |
| `oneLiner`, `description` | Tagline and long description |
| `batch`, `batchCode` | For example `Winter 2025` and `W25` |
| `status`, `stage` | Active, Acquired, Public or Inactive, and the stage YC shows |
| `industry`, `subindustry`, `industries`, `tags` | YC's industry labels and the tags the company chose |
| `regions`, `location` | Regions and countries YC files it under, and the location text |
| `teamSize`, `isHiring`, `isTopCompany`, `isNonprofit` | Size and flags |
| `launchedAt`, `formerNames`, `logoUrl` | When it joined the directory, earlier names, logo image |
| `founders` | Name, title, `linkedin`, `twitter`, bio and `isActive` for each founder (with **Include founders**) |
| `yearFounded`, `city`, `country`, `openJobsCount` | From the company page (with **Include founders**) |
| `linkedinUrl`, `twitterUrl`, `facebookUrl`, `crunchbaseUrl`, `githubUrl` | The company's social links, when it lists them (with **Include founders**) |

### How to use it

1. Optionally add search text, batches, industries, regions, status or a team size range. Leave everything empty for the full directory.
2. Set **Max companies**.
3. Optional: turn on **Only companies that are hiring**, **Only top companies** or **Include founders and social links**.
4. Run it and export to JSON, CSV or Excel, or call it from the API, Make, Zapier, n8n or an AI agent through the Apify MCP server.

Industries and regions are matched without caring about case, so `fintech` and `Fintech` are the same. A name that does not exist in the directory is ignored with a warning in the log and in the run's status message. If none of your names exist, the run finishes with no items.

#### Example input

```json
{
  "batches": ["S24", "W25"],
  "industries": ["Fintech"],
  "includeFounders": true,
  "maxItems": 25
}
```

#### Example output (one company, description and bios shortened)

```json
{
  "id": 30363,
  "name": "BlindPay",
  "slug": "blindpay",
  "url": "https://www.ycombinator.com/companies/blindpay",
  "website": "https://blindpay.com/",
  "oneLiner": "Stablecoin API for global payments",
  "description": "BlindPay is a stablecoin API that enables companies to send and receive money worldwide using fiat money, stablecoins and multiple blockchains. ...",
  "batch": "Winter 2025",
  "batchCode": "W25",
  "status": "Active",
  "stage": "Early",
  "industry": "Fintech",
  "subindustry": "Fintech -> Payments",
  "industries": ["Fintech", "Payments"],
  "tags": ["Developer Tools", "Fintech", "Crypto / Web3", "Payments", "API"],
  "regions": ["United States of America", "America / Canada"],
  "location": "San Francisco, CA, USA",
  "teamSize": 9,
  "isHiring": false,
  "isTopCompany": false,
  "isNonprofit": false,
  "launchedAt": "2025-01-21T03:28:14.000Z",
  "formerNames": [],
  "logoUrl": "https://bookface-images.s3.amazonaws.com/small_logos/f1817a0c9b9ff2db524e7cb0712e6867cdfcb2f0.png",
  "yearFounded": 2024,
  "city": "San Francisco",
  "country": "US",
  "linkedinUrl": "https://www.linkedin.com/company/blindpay",
  "twitterUrl": "https://x.com/blindpay",
  "facebookUrl": null,
  "crunchbaseUrl": null,
  "githubUrl": null,
  "openJobsCount": 0,
  "founders": [
    {
      "name": "Bernardo Simonassi",
      "title": "Founder/CEO",
      "linkedin": "https://linkedin.com/in/bernardosm",
      "twitter": "https://x.com/bebedaselva",
      "bio": "Co-Founder & CEO @ BlindPay. Has been shaping the stablecoin payments industry for the past 3 years ...",
      "isActive": true
    },
    {
      "name": "Joao Borges",
      "title": "Founder",
      "linkedin": "https://www.linkedin.com/in/joaoborgesjr/",
      "twitter": "https://x.com/joaocsb",
      "bio": "Co-Founder @ BlindPay",
      "isActive": true
    }
  ],
  "detailsFetched": true,
  "scrapedAt": "2026-11-02T02:07:58.001Z"
}
```

### How much does it cost?

You pay per company saved: **$0.0015 per company**, plus **$0.0005 once per run**. Founders and social links are included at no extra cost. A search that matches nothing saves no companies, so it costs only the start fee.

1,000 companies cost about $1.50. The whole directory (about 6,400 companies) costs about $9.60. Apify's free plan credit of $5 a month covers about 3,300 companies.

### Use cases

- **Lead lists:** active, hiring YC companies in one industry, with founder names and LinkedIn links for outreach.
- **Investor and market research:** every company in a batch or industry, with team size, status and tags, in one spreadsheet.
- **Tracking batches:** run it after each Demo Day with the new batch code to collect the new cohort.
- **Datasets for AI and analysis:** one-liners, descriptions and tags for classification, clustering or retrieval.

### FAQ

**Where does the data come from?**
From the public YC startup directory. The Actor reads the search settings that the directory page itself publishes each time it starts, so it keeps working when YC rotates its search key. No account is used.

**Does it return funding amounts or emails?**
No. The directory does not publish funding rounds, and the Actor does not look up or guess emails. You get what YC shows: founders, titles and the LinkedIn and X links they list.

**How fresh is the data?**
It is read live on every run, so it matches what the directory shows at that moment.

**Why are some founder or social fields empty?**
Companies fill those in themselves. When a link is not listed, the field is `null`. If a company page cannot be read, `founders` is `null`, `detailsFetched` is `false` and the page is listed in the `SUMMARY` record of the key-value store. The company is still saved and counted.

**How fast is it?**
About 6,400 companies without founders took roughly 75 seconds on 256 MB in a test run. With **Include founders** the Actor opens one page per company and manages about 6 companies per second, so a few hundred take under a minute.

**Which batches come first?**
When more than 1,000 companies match, the Actor goes through batches from newest to oldest, so a low **Max companies** gives you the latest ones. Smaller searches keep the directory's own order.

**Is this legal?**
It only reads what YC publishes openly. You are responsible for how you use the data, especially personal data about founders, under laws like GDPR.

### Other Actors by this developer

- [Hacker News Scraper](https://apify.com/fernandosord/hacker-news-scraper): stories, comments and Show HN posts, plus the front page.
- [Website Tech Stack Detector](https://apify.com/fernandosord/website-tech-stack-detector): find out which tools a company's website runs on.
- [Domain Profile, WHOIS and DNS](https://apify.com/fernandosord/domain-profile-whois-dns): registration and DNS details for the websites in your list.
- [Dataset Merge and Dedupe](https://apify.com/fernandosord/dataset-merge-dedupe): combine and clean exports from several runs.
- [Bluesky Scraper](https://apify.com/fernandosord/bluesky-scraper): posts and profiles from Bluesky.

# Actor input Schema

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

Optional. Free text matched against company name, one-liner, description, tags and location, like the search box on ycombinator.com/companies. Leave empty for no text filter.

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

Optional. Short codes like W25 (Winter 2025), P25 or X25 (Spring 2025), S24 (Summer 2024), F24 (Fall 2024), full names like Summer 2024, or a whole year like 2024. Leave empty for all batches.

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

Optional. YC industry names such as B2B, Consumer, Fintech, Healthcare, Industrials, Education, Government, or a sub-industry such as Security, Payments, Legal, Gaming, Climate. Matching is not case sensitive.

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

Optional. Regions and countries as YC lists them: United States of America, Canada, Europe, United Kingdom, India, Germany, France, Latin America, Remote and so on.

## `statuses` (type: `array`):

Optional. Any of Active, Acquired, Public, Inactive. Leave empty for all.

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

Optional. Only companies with at least this many people.

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

Optional. Only companies with at most this many people.

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

Keep only companies that have the Hiring flag on in the directory.

## `onlyTopCompanies` (type: `boolean`):

Keep only companies that YC marks as Top Company.

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

Opens each company page to add founders (name, title, LinkedIn, X) and the company's LinkedIn, X, Facebook, Crunchbase and GitHub links, year founded and number of open jobs. Slower: about 3 to 5 companies per second. The price per company stays the same.

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

Stop after this many companies. The full directory is about 6,400 companies. Newest batches come first when more than 1,000 companies match.

## Actor input object example

```json
{
  "batches": [
    "W25"
  ],
  "onlyHiring": false,
  "onlyTopCompanies": false,
  "includeFounders": false,
  "maxItems": 20
}
```

# Actor output Schema

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

One item per company.

# 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 = {
    "batches": [
        "W25"
    ],
    "maxItems": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("fernandosord/y-combinator-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 = {
    "batches": ["W25"],
    "maxItems": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("fernandosord/y-combinator-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 '{
  "batches": [
    "W25"
  ],
  "maxItems": 20
}' |
apify call fernandosord/y-combinator-companies-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fernandosord/y-combinator-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/nByxYxoyzNTdT6l7N/builds/rNgK4iEsoOFcWWrYy/openapi.json
