YC Companies Scraper | Algolia Startup Directory · Apify
YCombinator Companies Scraper | 5,900+ YC Startup Directory avatar

YCombinator Companies Scraper | 5,900+ YC Startup Directory

Pricing

from $1.00 / 1,000 results

Go to Apify Store
YCombinator Companies Scraper | 5,900+ YC Startup Directory

YCombinator Companies Scraper | 5,900+ YC Startup Directory

Y Combinator companies scraper & API: export the YC startup directory by batch, industry & status — company name, description, website, batch, team size, location, founders, tags and YC profile URL. Startup intelligence, VC research and B2B lead lists — fast, no login.

Pricing

from $1.00 / 1,000 results

Rating

1.0

(1)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

2

Bookmarked

163

Total users

12

Monthly active users

4 days ago

Last modified

Features

Limited permissions

Share

Extract the complete Y Combinator startup directory (5,900+ funded companies from Summer 2005 to 2026) — including company name, website domain, one-liner, full description, YC batch, status, funding stage, team size, industry, tags, regions, and active hiring flag.

YC Startups Full Directory Fan-Out Batch + Standby API Export Formats Pure HTTP


⚡ At a glance

FeatureDetails
Target DirectoryY Combinator Startup Directory (5,900+ YC-backed startups, 2005–2026)
Execution ModesBatch Mode (Dataset export up to all 5,900+ companies) & Standby Mode (instant live HTTP API for AI agents)
Built-In FiltersKeyword query, batches (45+ cohorts), statuses, industries, regions (90+ countries/regions), stages, hiringOnly, topCompaniesOnly
Scale & PaginationAutomatic multi-page traversal + automatic 45-batch fan-out when maxRecords > 1000 or maxRecords: 0
Data Completeness25+ normalized camelCase fields per startup with companyId deduplication (0% duplicates)
Speed & CostPure-HTTP engine (no browser, no proxy needed) — 500 companies in ~5–15s, full directory in under 60s
Export FormatsJSON, CSV, Excel (XLSX), JSONL, XML, HTML Table, Apify REST API, and Standby HTTP JSON

This Y Combinator scraper extracts structured startup intelligence from the Y Combinator Companies Directory — returning company name, website URL, YC profile link, one-liner pitch, full description, YC batch cohort, operating status (Active, Acquired, Public, Inactive), funding stage (Seed, Early, Growth), team size, primary industry, sub-industry, tags, headquarters location, regions, active hiring flag (isHiring), Top Company badge (topCompany), former names, launch date, and logo URL.

Run it as a classic batch job to export 100 to 5,900+ startups to JSON, CSV, or Excel, or query it in Apify Standby Mode as a sub-second live HTTP endpoint for AI agents, MCP servers, and real-time CRM enrichment.

Built for B2B SaaS outbound sales teams, RevOps & GTM engineers, technical recruiters, venture capital analysts, corporate development / M&A scouts, and market researchers who want clean, ICP-ready YC startup data in seconds.


🔎 Why scrape the Y Combinator startup directory?

Y Combinator has funded nearly 6,000 startups since 2005 — including Stripe, Airbnb, OpenAI, Coinbase, DoorDash, Deel, Rippling, Brex, GitLab, Supabase, Retool, and Linear, alongside thousands of fast-growing Seed, Early, and Growth-stage companies in every new cohort.

For B2B sales, recruiting, and investment teams, the YC directory is the highest-signal list of funded technology buyers on the internet:

  • Every company in the directory has raised capital and is actively buying cloud infrastructure, developer tools, AI APIs, security compliance, payroll, finance, and GTM software.
  • Scrolling ycombinator.com/companies manually in a browser is slow, cannot be exported to CSV/Excel, and truncates single searches at 1,000 results.
  • Plain HTML scraping fails because the directory is a client-rendered JavaScript application.

This Y Combinator companies scraper solves every limitation automatically:

  1. It queries the live directory index directly over pure HTTP with self-healing authentication (zero browser overhead, no proxies required).
  2. When you request more than 1,000 companies (e.g., maxRecords: 2000 or maxRecords: 0 for the entire directory), it automatically fans out across all 45+ YC batches (Summer 2005 through Fall 2026), breaking past the 1,000-result single-query limit and de-duplicating every startup by companyId.
  3. It outputs 25+ normalized camelCase columns ready to drop straight into Clay, HubSpot, Salesforce, Apollo, Snowflake, Postgres, or Google Sheets.

Common reasons teams scrape Y Combinator companies

  • B2B SaaS sales prospecting & ABM — build hyper-targeted lists of active B2B and Fintech YC startups (statuses: ["Active"], stages: ["Early", "Growth"]) with direct website URLs, headcount (teamSize), and descriptions.
  • Technical recruiting & job boards — filter by hiringOnly: true to extract every YC startup actively hiring engineers, designers, and GTM talent right now.
  • Venture capital & deal-flow intelligence — track new cohorts (Winter 2026, Spring 2026, Summer 2026, Fall 2026), analyze sector concentration (AI agents, robotics, fintech, healthcare, climate), and monitor batch-over-batch team growth.
  • M&A and corporate development — identify Seed and Early startups in specific sub-industries (B2B -> Engineering, Product and Design) for partnership or acquisition outreach.
  • Founder & domain enrichment — pair the extracted website column with an Email Finder or Contact Scraper to reach founders and executives at newly funded YC startups.
  • Real-time AI agent lookups (Standby Mode) — let LLM agents and workflows query YC companies on the fly via a single HTTP GET request.

✨ What this Y Combinator scraper does

  • ✅ Extracts up to all 5,900+ YC companies — set maxRecords: 0 (or 1000+) and the Actor automatically fans out across cohorts to break the 1,000-result per-query ceiling, returning a 100% de-duplicated dataset.
  • ✅ Full keyword & facet filtering — filter by free-text query (e.g., "AI", "developer tools", "fintech"), batches (45+ cohorts from Summer 2005 to Fall 2026), statuses (Active, Acquired, Public, Inactive), industries, regions (90+ countries and regions), stages (Seed, Early, Growth), hiringOnly, and topCompaniesOnly.
  • ✅ Legacy & modern batch code normalization — accepts both full cohort names ("Winter 2025", "Spring 2026", "Fall 2025") and shorthand codes ("W25", "S24", "F25", "Sp26").
  • ✅ 25+ rich startup fields — companyId, name, slug, ycProfileUrl, website, oneLiner, longDescription, logoUrl, location, regions, batch, status, stage, teamSize, industry, subindustry, industries, tags, topCompany, isHiring, nonprofit, formerNames, launchedAt, and launchedAtUnix.
  • ✅ Self-healing live credentials — automatically refreshes public search credentials from the live YC directory page whenever keys rotate, with a built-in fallback key for uninterrupted reliability.
  • ✅ Dual-mode architecture (Batch + Standby HTTP Server) — works as a standard one-shot Apify Actor AND as an always-warm Standby HTTP API that responds to GET /?query=AI&hiringOnly=true in milliseconds.
  • ✅ Blazing-fast pure HTTP — requires no headless browser and no paid proxies; scrapes 100–500 companies in a few seconds at minimal compute cost.

🎯 High-value use cases

Team / RoleWorkflowKey fields used
B2B SaaS Sales & SDRsPull all Active B2B startups in recent batches with 10+ employees to feed outbound sequences.name, website, oneLiner, batch, stage, teamSize, industry, location
Recruiters & Talent AgenciesExtract startups with isHiring: true in the US, Europe, India, or Remote to pitch recruiting services.name, website, ycProfileUrl, isHiring, teamSize, stage, regions
VC & Market AnalystsCompare cohort trends across Winter 2024–Fall 2026 by industry, sub-industry, and tags.batch, industry, subindustry, tags, status, topCompany, launchedAt
GTM & Clay EngineersEnrich CRM domains with YC cohort provenance, rebrand history (formerNames), and team size.companyId, name, formerNames, website, batch, status, stage
AI Agents & MCP BuildersQuery the Actor's Standby URL in real time to answer questions about YC startups.All fields via JSON HTTP response { count, companies }

📥 Input configuration

All inputs are optional. Use the dropdown pickers in the Apify Console or pass JSON via the API.

FieldTypeDefault / PrefillDescription
querystring"" (prefill "AI")Optional keyword search across company name, one-liner, description, industry, and tags (e.g., "AI", "devtools", "fintech"). Leave empty to browse all companies matching your filters.
batchesarray<string>[]One or more YC cohorts ("Fall 2026", "Summer 2026", "Spring 2026", "Winter 2026", "Fall 2025", ..., "Summer 2005", or short codes like "W24", "S24"). Leave empty to search all batches.
statusesarray<string>[]Filter by operating status: "Active", "Acquired", "Public", "Inactive". Empty = all statuses.
industriesarray<string>[]Filter by primary industry: "B2B", "Consumer", "Fintech", "Healthcare", "Education", "Government", "Industrials", "Real Estate and Construction".
regionsarray<string>[]Filter by region or country ("United States of America", "Europe", "India", "Latin America", "United Kingdom", "Canada", "Remote", "Fully Remote", etc.).
stagesarray<string>[]Filter by company stage: "Seed", "Early", "Growth". Empty = all stages.
hiringOnlybooleanfalseSet true to return only companies with isHiring: true.
topCompaniesOnlybooleanfalseSet true to return only companies on YC's curated Top Companies list (topCompany: true).
maxRecordsinteger100 (prefill 100)Maximum number of companies to return. Set 0 for unlimited (up to all 5,900+ companies via automatic batch fan-out), or any number like 1000 / 2500.
hitsPerPageinteger1000Number of records fetched per page request (10–1000; keep at 1000 for fastest execution).
requestDelayinteger300Polite pause between multi-batch requests in milliseconds (100–10000).
proxyConfigurationobject{ "useApifyProxy": false }Optional Apify Proxy configuration. Off by default — not needed for normal runs.

Example 1 — Scrape 1,500+ active B2B & AI startups

{
"query": "",
"industries": ["B2B"],
"statuses": ["Active"],
"maxRecords": 1500,
"hitsPerPage": 1000
}

Example 2 — Export the ENTIRE 5,900+ Y Combinator startup directory (maxRecords: 0)

{
"query": "",
"maxRecords": 0,
"hitsPerPage": 1000,
"requestDelay": 250
}

Example 3 — Find actively hiring Early & Growth-stage YC companies

{
"statuses": ["Active"],
"stages": ["Early", "Growth"],
"hiringOnly": true,
"maxRecords": 500
}

Example 4 — Specific recent YC cohorts (Winter 2025 through Summer 2026)

{
"batches": [
"Summer 2026",
"Spring 2026",
"Winter 2026",
"Fall 2025",
"Summer 2025",
"Spring 2025",
"Winter 2025"
],
"maxRecords": 0
}

📤 Output schema & field reference

Each dataset record is a clean, flat JSON object representing one unique YC startup.

Sample JSON output

{
"companyId": 29533,
"name": "Indemni",
"slug": "indemni",
"ycProfileUrl": "https://www.ycombinator.com/companies/indemni",
"website": "http://www.indemni.com",
"oneLiner": "Cargo Theft and Fraud Prevention Platform",
"longDescription": "We are building a safer supply chain. Cargo Theft has been increasing yearly, and the supply chain industry is urgently looking for ways to solve this...",
"logoUrl": "https://bookface-images.s3.amazonaws.com/small_logos/5e66c11bb21c9a5ccdcf4a475ed7e48693b41f2b.png",
"location": "San Francisco, CA, USA",
"regions": [
"United States of America",
"America / Canada",
"Remote",
"Partly Remote"
],
"batch": "Winter 2024",
"status": "Active",
"stage": "Early",
"teamSize": 7,
"industry": "B2B",
"subindustry": "B2B -> Supply Chain and Logistics",
"industries": [
"B2B",
"Supply Chain and Logistics"
],
"tags": [
"Identity",
"Logistics",
"Supply Chain",
"Fraud Prevention",
"Fraud Detection"
],
"topCompany": false,
"isHiring": true,
"nonprofit": false,
"formerNames": [
"Alacrity"
],
"launchedAt": "2024-02-15T20:40:36.000Z",
"launchedAtUnix": 1708029636,
"searchQuery": null,
"searchBatch": "Winter 2024",
"scrapedAt": "2026-11-08T15:40:33.239Z"
}

🆔 Company Identity & Profile Fields

FieldTypeCoverageDescription
companyIdinteger🟢 High (100%)Stable numeric Y Combinator company ID — primary deduplication key.
namestring🟢 High (100%)Official startup name.
slugstring🟢 High (100%)URL-safe company slug.
ycProfileUrlstring🟢 High (100%)Canonical YC company profile URL (https://www.ycombinator.com/companies/<slug>).
websitestring|null🟢 High (~99%)Company website URL.
oneLinerstring|null🟢 High (~99%)Short one-sentence elevator pitch.
longDescriptionstring|null🟢 High (~95%)Full multi-paragraph company overview and product description.
logoUrlstring|null🟢 High (~99%)Direct URL to the company's logo image on YC's CDN.
formerNamesarray<string>|null🟡 Conditional (~60%)Previous company/brand names if the startup rebranded (null when unchanged).

📊 Cohort, Stage, Team & Industry Classification

FieldTypeCoverageDescription
batchstring🟢 High (100%)YC cohort name (e.g., "Winter 2024", "Summer 2025", "Spring 2026").
statusstring🟢 High (100%)Operating status: "Active", "Acquired", "Public", or "Inactive".
stagestring🟢 High (100%)Growth stage: "Seed", "Early", or "Growth".
teamSizeinteger|null🟢 High (~98%)Reported employee headcount as an integer.
industrystring🟢 High (100%)Primary industry vertical (e.g., "B2B", "Fintech", "Healthcare", "Consumer").
subindustrystring|null🟢 High (~96%)Granular sub-vertical (e.g., "B2B -> Engineering, Product and Design").
industriesarray<string>🟢 High (100%)Array of all industry categories assigned to the startup.
tagsarray<string>|null🟢 High (~85%)Descriptive topic and technology tags (e.g., ["Artificial Intelligence", "Developer Tools", "SaaS"]).

🌍 Geography, Signals & Provenance Fields

FieldTypeCoverageDescription
locationstring|null🟢 High (~97%)Headquarters city, state, and country string (e.g., "San Francisco, CA, USA").
regionsarray<string>🟢 High (100%)Normalized geographic and remote-work tags (["United States of America", "Remote"]).
isHiringboolean🟢 High (100%)true when the company has active job openings listed on YC's Work at a Startup board.
topCompanyboolean🟢 High (100%)true when featured on YC's Top Companies list.
nonprofitboolean🟢 High (100%)true if registered as a non-profit organization.
launchedAtstring|null🟡 Conditional (~75%)ISO 8601 launch timestamp when recorded ("2024-02-15T20:40:36.000Z").
launchedAtUnixinteger|null🟡 Conditional (~75%)Launch timestamp as Unix epoch seconds.
searchQuery / searchBatchstring|null🟢 High (Provenance)Records the query and batch task that matched the company.
scrapedAtstring🟢 High (100%)ISO 8601 extraction timestamp.

🔁 Pagination, automatic batch fan-out & 1,000+ scale

A single search query against the YC directory index is capped at 1,000 hits. This Actor overcomes that ceiling automatically so you can extract 1,000 to 5,900+ companies in a single run:

  1. Direct 1,000-per-page retrieval (hitsPerPage: 1000): Runs requesting up to 1,000 matching companies finish in a single HTTP request (~2–4 seconds).
  2. Automatic 45+ batch fan-out for 1,000+ runs: Whenever you set maxRecords above 1000 (e.g., maxRecords: 2000 or maxRecords: 0 for unlimited) — even if you leave batches completely empty — the Actor automatically fans out across every YC cohort from Fall 2026 down to Summer 2005, collecting and de-duplicating every startup until your maxRecords target (or the entire 5,900+ catalog) is reached!
  3. Guaranteed 0% duplicates: Every company is de-duplicated in memory by companyId before being pushed to the dataset.

⚙️ How to use (Batch Mode & Standby HTTP API)

Option A — Batch Run (Apify Console or API)

  1. Open YCombinator Companies Scraper in the Apify Console.
  2. Enter an optional query (e.g. "AI") or select filters from the batches, statuses, industries, regions, and stages dropdowns.
  3. Set maxRecords (e.g., 100 for a quick sample, 1500 for a deep slice, or 0 for the entire directory) and click Start.
  4. Export your results to CSV, Excel, JSON, or JSONL from the Dataset tab.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("haketa/ycombinator-companies-scraper").call(run_input={
"query": "AI",
"statuses": ["Active"],
"hiringOnly": True,
"maxRecords": 500,
})
for company in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{company['name']} ({company['batch']}) | Team: {company['teamSize']} | {company['website']}")

Option B — Live Standby Mode (Instant HTTP API)

This Actor supports Apify Standby Mode, staying warm as an HTTP microservice that returns JSON immediately without spinning up a new container per request:

curl "https://<your-standby-url>/?query=fintech&statuses=Active&hiringOnly=true&maxRecords=50" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"

Response format:

{
"count": 50,
"companies": [ ... ]
}

Standby query parameters reference

Query ParameterExampleDescription
query?query=AI+agentsFree-text search keyword across company name, one-liner, description, and tags.
batches (or batch)?batches=Winter+2025,Spring+2026Comma-separated list of YC batches (or short codes like W25,S25).
statuses?statuses=Active,PublicComma-separated company statuses (Active, Acquired, Public, Inactive).
industries?industries=B2B,FintechComma-separated primary industries.
regions?regions=United+States+of+America,RemoteComma-separated regions or countries.
stages?stages=Early,GrowthComma-separated company stages (Seed, Early, Growth).
hiringOnly?hiringOnly=trueSet to true to filter for actively hiring startups.
topCompaniesOnly?topCompaniesOnly=trueSet to true to filter for YC Top Companies.
maxRecords?maxRecords=100Maximum number of companies returned in the JSON payload (default 100 in Standby).

Node.js (apify-client) batch example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('haketa/ycombinator-companies-scraper').call({
query: '',
industries: ['B2B', 'Fintech'],
statuses: ['Active'],
stages: ['Early', 'Growth'],
hiringOnly: true,
maxRecords: 1500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Fetched ${items.length} active, hiring YC startups`);

🔌 Outbound GTM & VC intelligence workflows

  • Automated YC Cohort Launch Alerts: Schedule this Actor to run weekly with batches: ["Winter 2026", "Spring 2026", "Summer 2026", "Fall 2026"] and maxRecords: 0. Diff companyId against your database or Google Sheet to alert your sales or investment team the moment a new YC company launches.
  • Website → Founder Email Waterfall: Export the website column from your YC dataset and pass those domains into Bulk Company Name to Domain Finder or Email & Contact Extractor to build a complete outreach table with emails and social profiles.
  • AI Agent / MCP Tool Integration: Connect your LLM agent or MCP server to the Actor's Standby URL so users can ask natural-language questions like "List all active YC healthcare startups in Europe with 10+ employees that are currently hiring."

💡 Pro tips for B2B sales & VC research

  • Get the entire 5,900+ YC directory in one click: Clear the query field, leave all filter dropdowns empty, and set "maxRecords": 0. The Actor will automatically fan out across all cohorts and export the entire YC startup database in under a minute.
  • High-converting SaaS outbound filter: Combine industries: ["B2B"], statuses: ["Active"], stages: ["Early", "Growth"], and hiringOnly: true to isolate funded startups with budget and active hiring momentum.
  • Use shorthand or full batch names interchangeably: Both "W25" and "Winter 2025" (or "Sp26" and "Spring 2026") are automatically normalized to YC's canonical cohort format.

⚠️ Honest limitations

  • Company-level directory data: The public YC company directory provides company-level metadata (website, oneLiner, longDescription, teamSize, batch, stage, isHiring, etc.) and does not expose personal founder email addresses or phone numbers. To get founder/company emails, feed the extracted website column into our Email & Contact Extractor or Email Pattern Finder.
  • Client-side stages filtering: Because stage (Seed, Early, Growth) is stored as a record attribute rather than a server-side search facet, the Actor applies stages filtering immediately after fetching each page.

❓ Frequently Asked Questions (FAQ)

Do I need a Y Combinator login, Bookface account, or proxies?

No. This Actor extracts public directory data keyless and without any proxy overhead.

How can I export all 5,900+ YC companies without the 1,000-result limit?

Simply set "maxRecords": 0 (or any number above 1000, such as 5000) and clear query. The Actor automatically fans out across all 45+ YC batches (Fall 2026 back to Summer 2005) and de-duplicates every record by companyId.

How fast is this scraper?

A 100- to 1,000-company run completes in 2 to 6 seconds. A full-directory 5,900+ company fan-out run completes in ~25 to 45 seconds.

Does it include the new Spring and Fall YC batches?

Yes — all four annual cohorts (Winter, Spring, Summer, Fall) through 2026 are included in the batches dropdown and automatic fan-out list.



📋 Changelog

  • v1.2 (2026-11) — Unlocked 1,000+ to 5,900+ full-directory pagination: removed the EMPTY_RUN_CAP = 100 clamp when maxRecords is explicitly provided by the user, and added automatic 45-cohort ALL_YC_BATCHES fan-out whenever maxRecords === 0 or maxRecords > 1000 (even when batches is left empty).
  • v1.1 (2026-10) — Added Apify Standby Mode HTTP server with readiness probe (x-apify-container-server-readiness-probe), self-healing live credential refresh, and Spring/Fall 2025–2026 cohort support.
  • v1.0 (2026-09) — Initial release with 25+ normalized startup fields, facet filtering, shorthand batch normalization, and companyId deduplication.