Y Combinator APIycombinator.com ↗
Access the YC company directory, founder profiles, partner bios, and job listings via 7 structured endpoints. Filter by batch, industry, hiring status, and role.
What is the Y Combinator API?
The Y Combinator API exposes 7 endpoints covering the full YC ecosystem: the company directory, individual company profiles with founder details, a searchable founder index, partner profiles, job listings from workatastartup.com, and the YC content library. The search_companies endpoint alone returns 11 fields per hit—including batch, industry, team size, and hiring status—and supports faceted filtering across thousands of YC-funded companies.
curl -X GET 'https://api.parse.bot/scraper/303993f2-6efa-4ab4-9310-f02643b002a4/search_companies?page=0&batch=Winter+2024&limit=5&query=AI&industry=B2B&is_hiring=true&top_company=true' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace ycombinator-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.y_combinator_api import YCombinator, JobRole, ResourceNotFound
yc = YCombinator()
# Search for AI companies in the B2B space
for company in yc.companies.search(query="AI", industry="B2B", limit=3):
print(company.name, company.slug, company.batch, company.team_size)
# Get full company details by slug, including founders
airbnb = yc.companies.get(slug="airbnb")
print(airbnb.name, airbnb.one_liner, airbnb.team_size)
for founder in airbnb.founders:
print(founder.full_name, founder.title)
# Search the founder directory
for founder in yc.founders.search(query="sam", limit=3):
print(founder.first_name, founder.last_name, founder.current_company)
# List partners and drill into a detail profile
partner = yc.partners.list(limit=1).first()
if partner:
print(partner.name, partner.slug, partner.title)
detail = partner.detail.get()
print(detail.bio, detail.twitter_handle)
for comp in detail.companies[:3]:
print(comp.name, comp.url)
# Search jobs filtered by role enum
for job in yc.jobs.search(role=JobRole.SOFTWARE_ENGINEER, limit=3):
print(job.title, job.salary, job.company_name, job.location)
# Typed error handling for a non-existent company
try:
yc.companies.get(slug="this-company-does-not-exist-xyz")
except ResourceNotFound as exc:
print(f"not found: {exc}")
print("exercised: companies.search / companies.get / founders.search / partners.list / partner.detail.get / jobs.search")
Search and filter the YC company directory via Algolia. Returns paginated results with company metadata including name, batch, industry, team size, and hiring status. Supports faceted filtering by batch, industry, hiring status, and top-company designation. An empty query returns the full directory in default order.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (0-indexed). |
| batch | string | Filter by YC batch name (e.g. 'Winter 2024', 'Summer 2023'). |
| limit | integer | Number of results per page. |
| query | string | Search keyword to match against company name, description, and tags. |
| industry | string | Filter by industry (e.g. 'Fintech', 'B2B', 'Healthcare'). |
| is_hiring | string | Filter by hiring status. Accepts 'true' or 'false'. |
| top_company | string | Filter for YC top companies. Accepts 'true' or 'false'. |
{
"type": "object",
"fields": {
"hits": "array of company objects with id, name, slug, website, one_liner, batch, industry, team_size, tags, status, isHiring, top_company",
"page": "integer - current page number",
"nbHits": "integer - total matching results",
"nbPages": "integer - total pages available",
"hitsPerPage": "integer - results per page"
},
"sample": {
"data": {
"hits": [
{
"id": 29798,
"name": "&AI",
"slug": "ai-2",
"tags": [
"SaaS",
"B2B",
"LegalTech"
],
"batch": "Summer 2024",
"status": "Active",
"website": "https://www.tryandai.com/",
"industry": "B2B",
"isHiring": false,
"one_liner": "Collaborative workspace for patent litigators",
"team_size": 13,
"top_company": false
}
],
"page": 0,
"nbHits": 2807,
"nbPages": 200,
"hitsPerPage": 5
},
"status": "success"
}
}About the Y Combinator API
Company Directory and Profiles
The search_companies endpoint queries the YC company index with optional filters for batch (e.g. 'Winter 2024'), industry (e.g. 'Fintech', 'Healthcare'), is_hiring, and top_company designation. Results are paginated (0-indexed page param) and each hit includes name, slug, one_liner, tags, status, and isHiring. To retrieve a full profile, pass the slug from search results to get_company, which returns the complete record: founders array with each founder's full_name, title, founder_bio, twitter_url, and linkedin_url, plus location, team_size, and website.
Founder and Partner Profiles
search_founders indexes YC alumni founders and supports free-text search by name or company. Each result includes current_company, current_title, company_slug, and batches. For YC partners specifically, get_partners returns the complete partner list in a single call—no pagination required—with name, slug, title, bio, photo, and url. Passing a partner slug to get_person_detail returns an extended profile: full bio, stats (YC-related achievement strings), associated companies, videos, articles with publisher attribution, and twitter_handle.
Job Listings and Content Library
search_jobs surfaces open roles from workatastartup.com, returning up to 30 jobs per call. Each job object includes title, type, location, role_category, salary, company_name, company_batch, and company_slug. The role parameter accepts values like 'software-engineer', 'designer', 'product', and 'science', defaulting to software engineer when omitted. get_library returns the YC Library's featured content and organized carousels of articles, videos, and podcasts in a single call.
The Y Combinator API is a managed, monitored endpoint for ycombinator.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ycombinator.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ycombinator.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a YC batch tracker that surfaces newly funded companies filtered by industry and hiring status using
search_companies. - Aggregate founder LinkedIn and Twitter profiles across a specific YC cohort via
get_companyfounder objects. - Monitor job openings at YC startups by role category using
search_jobswith therolefilter. - Create a partner research tool that cross-references
get_partnersbios with associated companies fromget_person_detail. - Generate a top-company watchlist by combining
top_company=truefilter fromsearch_companieswith full profiles fromget_company. - Index YC Library content for a curated startup education resource using
get_librarycarousel data. - Identify hiring YC companies in a target industry by combining
is_hiring=trueandindustryfilters insearch_companies.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Y Combinator have an official public developer API?+
What does `get_company` return that `search_companies` doesn't?+
search_companies returns summary fields suitable for listing and filtering—name, batch, industry, isHiring, team_size, and tags. get_company adds the full founders array (with individual bios, LinkedIn, and Twitter URLs), location, and a longer company description. Use search_companies to discover slugs, then get_company to fetch the complete record.Does `get_person_detail` work for any YC founder, not just partners?+
get_person_detail only returns profiles for YC partners (e.g. 'garry-tan', 'michael-seibel'). Founder slugs from search_founders will return not-found. Founder detail data is available through get_company via the founders array on each company profile. You can fork this API on Parse and revise it to add a dedicated founder detail endpoint if deeper individual profiles are needed.How many jobs does `search_jobs` return, and can I paginate through more?+
search_jobs returns up to 30 job listings per call. The endpoint does not currently expose pagination parameters, so results are limited to a single page per role category. The API covers software-engineer, designer, recruiting, science, product, and additional role types. You can fork it on Parse and revise to add pagination support if you need broader coverage of open roles.Does the API expose funding round data or valuations for YC companies?+
get_company includes team_size, batch, location, and founder details, but does not return funding round amounts, lead investors, or valuation figures. You can fork this API on Parse and revise it to add an endpoint targeting funding data if that information is needed.