You want a list of Y Combinator startups in a spreadsheet: every company in the latest batch, every YC fintech company that is hiring, or the whole directory of roughly 6,300 companies for market research. The directory at ycombinator.com/companies is easy to browse but has no export button, and copying company cards by hand is slow and error prone.
The Y Combinator Company Directory: YC Startups by Batch, published by Hay Equipos on the Apify Store, reads the same public search that powers the YC directory page and returns one clean row per company. Founder names, bios, photos and emails are deliberately left out. This is company data, not people data. It is an independent tool and is not affiliated with Y Combinator.
What you get back
One row per company. Illustrative example:
{
"name": "Example Labs",
"slug": "example-labs",
"ycUrl": "https://www.ycombinator.com/companies/example-labs",
"website": "https://www.examplelabs.ai/",
"domain": "examplelabs.ai",
"oneLiner": "Accounting automation for small businesses",
"description": "Example Labs connects to a company's bank and books...",
"batch": "Summer 2025",
"batchCode": "S25",
"status": "Active",
"stage": "Early",
"industry": "Fintech",
"subindustry": "Fintech -> Accounting",
"industries": ["Fintech", "Accounting"],
"tags": ["AI"],
"regions": ["United States of America", "America / Canada"],
"locations": "San Francisco, CA, USA",
"teamSize": 6,
"isHiring": true,
"topCompany": false,
"nonprofit": false,
"launchedAt": "2025-07-20T16:00:00.000Z",
"logoUrl": "https://bookface-images.s3.amazonaws.com/small_logos/....png"
}
| name | batchCode | industry | teamSize | isHiring | domain |
|---|---|---|---|---|---|
| Example Labs | S25 | Fintech | 6 | true | examplelabs.ai |
| Sample Robotics | S25 | Industrials | 12 | false | samplerobotics.com |
With Add company page details turned on, each row also gets yearFounded, city, country, company linkedinUrl, twitterUrl, facebookUrl, crunchbaseUrl, githubUrl, openJobs, up to 20 jobTitles, and jobsUrl. If a company page cannot be read, the row gets a detailsError instead.
Step by step in the Apify Console
- Open the actor on the Apify Store (link at the end) and click Try for free.
- In Batches, add batch codes such as
W24,S25,X25(Spring) orF25(Fall), or full names likeWinter 2024. Leave it empty for every batch. - Optional filters: Industries (as named in the directory, for example
B2B,Fintech,Healthcare; case does not matter), Regions (for exampleUnited States of America,Europe,India,Remote), Company status (Active, Acquired, Inactive, Public), Only companies that are hiring, Only YC top companies, and minimum or maximum team size. - Use Search text for a free text search over name, one liner and description, for example
AI agents. - Turn on Add company page details if you need social links, year founded and open jobs. It is slower and costs a little extra per company.
- Set Maximum companies (default 100, up to 10,000), then click Start and export from the Output tab as CSV, Excel, JSON or HTML.
A filter value that does not exist in the directory is ignored with a warning in the log. If none of your batches, industries or regions exist, the run ends with no rows and a message rather than returning the wrong set.
Calling it from code
The actor id is pistachio_implementation/yc-company-directory. Keep your token in APIFY_TOKEN.
curl:
curl -X POST \
"https://api.apify.com/v2/acts/pistachio_implementation~yc-company-directory/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"batches": ["S25"], "industries": ["B2B"], "maxItems": 50}'
Python with apify-client, hiring fintech startups from two batches with details:
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("pistachio_implementation/yc-company-directory").call(
run_input={
"batches": ["W24", "S24"],
"industries": ["Fintech"],
"hiringOnly": True,
"includeDetails": True,
"maxItems": 200,
}
)
for c in client.dataset(run["defaultDatasetId"]).iterate_items():
print(c["name"], c["batchCode"], c["domain"], c.get("openJobs"), c.get("linkedinUrl"))
Schedule the run each season with the new batch code to get each batch as soon as YC lists it. Every run reads the directory live.
Pricing
Pay per event, with no subscription and no platform usage charge on top:
- Company saved: $0.0009 per company ($0.90 per 1,000).
- Company page details added: $0.001 extra per company, charged only when enrichment is on and the company page was read.
- Actor start: Apify's standard start event of $0.00005 per run.
For example, the whole directory without details is about $5.70, and 200 companies with details is about $0.38. You can set a maximum charge per run and the actor stops when it is reached.
Limits and what it does not do
- No founder data. Founder names, bios, photos and emails are never collected.
- The directory search returns at most 1,000 companies per query, so larger exports are split by batch automatically, and each company appears once.
- Detail enrichment opens one YC page per company, about one per second, so 1,000 companies with details take roughly 17 minutes. Without details, thousands of companies take well under a minute.
- Team size, status and hiring flags are what YC shows, and they can lag behind reality.
- The actor depends on the search settings the directory page publishes to every visitor. It reads them fresh on each run, but if YC removes them, the run fails with a clear message.
Please use the data in line with Y Combinator's terms.
Try it on the Apify Store: https://apify.com/pistachio_implementation/yc-company-directory
Top comments (0)