Y Combinator APIbookface.ycombinator.com ↗
Search and retrieve Y Combinator portfolio companies via the Bookface API. Access founder profiles, batch info, tags, job data, and company details.
What is the Y Combinator API?
The Bookface YC API provides 2 endpoints for accessing Y Combinator's portfolio company directory. Use search_companies to query across all YC batches by keyword or season, or call get_company to retrieve a specific company's full profile — including founder bios, social links, tags, location, and batch designation — by either a numeric company ID or URL slug.
curl -X GET 'https://api.parse.bot/scraper/ba0c1d0c-ee4f-4a6e-a72e-4f61fc92d6a2/get_company?slug=ai-2' \ -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 bookface-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.
"""
Y Combinator Company Directory API Client
Get your API key from: https://parse.bot/settings
"""
from parse_apis.y_combinator_company_directory_api import YCombinator, Company, CompanySummary
yc = YCombinator(api_key="YOUR_API_KEY")
# Search for AI companies
for company in yc.companysummaries.search(query="AI", limit=5):
print(company.name, company.batch, company.one_liner)
# Get full details for a specific company by slug
detail = yc.companies.get(slug="parse-bot")
print(detail.name, detail.batch_name, detail.website)
print(detail.one_liner)
for founder in detail.founders:
print(founder.full_name, founder.title, founder.linkedin_url)
for launch in detail.launches:
print(launch.title, launch.id)
# Navigate from a search result to its full details
for summary in yc.companysummaries.search(batch="Fall 2025", limit=3):
full = summary.details()
print(full.name, full.team_size, full.location)
if full.primary_group_partner:
print(full.primary_group_partner.full_name)
Get detailed company information by Bookface company ID or URL slug. Returns comprehensive data including founders, launches, news items, social links, and group partner. One of company_id or slug is required.
| Param | Type | Description |
|---|---|---|
| slug | string | Company URL slug (e.g., 'parse-bot'). Either company_id or slug is required. |
| company_id | string | Bookface company ID (e.g., '30846'). Either company_id or slug is required. |
{
"type": "object",
"fields": {
"id": "integer company ID",
"city": "string city name",
"name": "string company name",
"slug": "string URL slug",
"tags": "array of tag strings",
"batch": "string abbreviated batch code (e.g., 'F25')",
"status": "string company status (e.g., 'Active', 'Inactive')",
"country": "string country code",
"website": "string company website URL",
"founders": "array of founder objects with full_name, title, bio, twitter_url, linkedin_url, avatar_url",
"launches": "array of launch objects with id, title, body",
"location": "string location description",
"logo_url": "string URL to company logo",
"ycdc_url": "string YC directory URL",
"one_liner": "string short description",
"team_size": "integer number of team members",
"batch_name": "string full batch name (e.g., 'Fall 2025')",
"github_url": "string GitHub URL",
"news_items": "array of news item objects with title, url, date",
"twitter_url": "string Twitter profile URL",
"job_postings": "array of job posting objects with title, url, location",
"linkedin_url": "string LinkedIn profile URL",
"year_founded": "integer founding year",
"long_description": "string detailed description",
"primary_group_partner": "object with full_name and url, or null"
},
"sample": {
"data": {
"id": 30846,
"city": "San Francisco",
"name": "Parse",
"slug": "parse-bot",
"tags": [
"Developer Tools",
"API",
"Big Data"
],
"batch": "F25",
"status": "Active",
"country": "US",
"website": "https://parse.bot",
"founders": [
{
"bio": "...",
"title": "Founder",
"full_name": "John Doe",
"avatar_url": "https://...",
"twitter_url": "https://x.com/alexscraping",
"linkedin_url": "https://www.linkedin.com/in/alex-k-forman/"
}
],
"launches": [
{
"id": 95327,
"body": "...",
"title": "Parse - APIs for any website"
}
],
"location": "San Francisco",
"logo_url": "https://bookface-images.s3.amazonaws.com/small_logos/fd2b15ce8a8e404c0ec54c33a17f938963c26455.png",
"ycdc_url": "https://www.ycombinator.com/companies/parse-bot",
"one_liner": "Build an API to interact with any website.",
"team_size": 2,
"batch_name": "Fall 2025",
"github_url": "",
"news_items": [],
"twitter_url": "",
"facebook_url": "",
"job_postings": [],
"linkedin_url": "https://www.linkedin.com/company/parsedotbot/",
"year_founded": 2025,
"crunchbase_url": "",
"long_description": "Parse lets developers build APIs for any website.",
"primary_group_partner": {
"url": "https://www.ycombinator.com/people/pete-koomen",
"full_name": "Jane Doe"
}
},
"status": "success"
}
}About the Y Combinator API
Endpoints
The get_company endpoint accepts either a company_id (e.g., '30846') or a slug (e.g., 'parse-bot') and returns a detailed company record. Response fields include id, name, slug, city, country, website, batch, status, and tags. The founders array is particularly detailed, containing each founder's full_name, title, bio, twitter_url, linkedin_url, and avatar_url.
Searching the Directory
search_companies supports keyword search via the query parameter (e.g., 'AI', 'fintech') and optional filtering by batch using full season-and-year format (e.g., 'Fall 2025', 'Summer 2024'). Results are paginated using 0-indexed page and a limit up to 1000 per page. The response envelope includes total, total_pages, hits_per_page, and a companies array with summary fields: id, name, slug, one_liner, website, batch, status, team_size, location, tags, and logo_url.
Coverage and Data Shape
The directory covers companies across all publicly listed YC batches. Company status values like 'Active' or 'Inactive' are returned as strings, and batch codes follow abbreviated form (e.g., 'F25') in the get_company response but use full format in search_companies filters. Tags reflect the industry or domain categories assigned to each company in the YC directory.
The Y Combinator API is a managed, monitored endpoint for bookface.ycombinator.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when bookface.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 bookface.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 filterable YC batch browser using
batchandqueryparams insearch_companies - Look up a specific startup's founders and their LinkedIn/Twitter profiles with
get_company - Track team size and location distribution across a specific YC cohort
- Identify all active YC companies in a given industry by filtering
tagsfrom search results - Aggregate founder bios and titles for research on YC alumni career patterns
- Monitor company status changes (Active vs Inactive) across batches over time
- Populate a CRM or database with YC portfolio company websites and one-liners
| 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 provide an official developer API for Bookface?+
What does `get_company` return that `search_companies` does not?+
get_company includes the full founders array with individual bios, twitter_url, linkedin_url, and avatar_url per founder. The search_companies endpoint returns summary-level company data only — one_liner, team_size, logo_url, and location — without founder-level detail.How should I format the `batch` parameter in `search_companies`?+
batch parameter expects the full season-and-year string, such as 'Fall 2025', 'Summer 2024', or 'Winter 2024'. The abbreviated batch code format (e.g., 'F25') that appears in company records is not used as a filter input here.Does the API return job postings or recent launches for companies?+
get_company endpoint returns core company data and founder profiles; job postings and launch history are not included in the current response shape. You can fork this API on Parse and revise it to add an endpoint targeting those data points.Does the API cover companies that are no longer active or have been acquired?+
status field that returns values like 'Active' or 'Inactive', so inactive companies are present in the directory. However, detailed acquisition history or exit data is not a returned field. You can fork this API on Parse and revise it to surface additional status-related information.