Hacker News API: Search YC companies
Searches the Y Combinator company directory by keyword, industry, batch, location, hiring and status, returning companies in directory order.
Unofficial. Not affiliated with or endorsed by Hacker News.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Batch optional
batch YC batch, such as Summer 2025 or W24.
(default)
- Query optional
query Keywords to search, such as payroll.
(default)
- Status optional
status Company status, such as active.
any (default)
One of
any,active,acquired,public,inactive.- Industry optional
industry Industry, such as Fintech or Healthcare.
(default)
- Location optional
location City or country, such as San Francisco or India.
(default)
- Hiring Only optional
hiring_only Only companies hiring, such as true.
false (default)
True or false.
- Max Results optional
max_results Maximum companies to return, such as 25 (up to 200).
200
Whole number from 1 to 200. Default
25.
Input as JSON
{ "max_results": 200}Output
{ "companies": [ { "name": "DoorDash", "batch": "Summer 2013", "status": "Public", "website": "http://doordash.com" , "location": "San Francisco, CA, USA", "team_size": 8600, "industries": [ "Consumer", "Food and Beverage" ], "description": "Restaurant delivery.", "yc_page_link": "https://www.ycombinator.com/companies/doordash" }, { "name": "Airbnb", "batch": "Winter 2009", "status": "Public", "website": "http://airbnb.com" , "location": "San Francisco, CA, USA", "team_size": 6132, "industries": [ "Consumer", "Travel, Leisure and Tourism" ], "description": "Book accommodations around the world.", "yc_page_link": "https://www.ycombinator.com/companies/airbnb" }, { "name": "Coinbase", "batch": "Summer 2012", "status": "Public", "website": "https://www.coinbase.com" , "location": "Los Angeles, CA, USA; Remote", "team_size": 6112, "industries": [ "Fintech", "Banking and Exchange" ], "description": "Buy, sell, and manage cryptocurrencies.", "yc_page_link": "https://www.ycombinator.com/companies/coinbase" } ]}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"ycombinator.com/search_companies","input":{"max_results":200}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "ycombinator.com/search_companies" , "input": { "max_results": 200 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "ycombinator.com/search_companies" , "input": { "max_results": 200 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run ycombinator.com/search_companies# with {"max_results":200}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "properties": { "batch": { "type": "string", "default": "", "description": "YC batch, such as Summer 2025 or W24." }, "query": { "type": "string", "default": "", "description": "Keywords to search, such as payroll." }, "status": { "enum": [ "any", "active", "acquired", "public", "inactive" ], "type": "string", "default": "any", "description": "Company status, such as active." }, "industry": { "type": "string", "default": "", "description": "Industry, such as Fintech or Healthcare." }, "location": { "type": "string", "default": "", "description": "City or country, such as San Francisco or India." }, "hiring_only": { "type": "boolean", "default": false, "description": "Only companies hiring, such as true." }, "max_results": { "type": "integer", "default": 25, "maximum": 200, "minimum": 1, "description": "Maximum companies to return, such as 25 (up to 200)." } }}Output schema
{ "type": "object", "required": [ "companies" ], "properties": { "companies": { "type": "array", "items": { "type": "object", "required": [ "name", "description", "batch", "industries", "location", "team_size", "status", "website", "yc_page_link" ], "properties": { "name": { "type": "string", "description": "Company name." }, "batch": { "type": [ "string", "null" ], "description": "YC batch." }, "status": { "type": [ "string", "null" ], "description": "Company status." }, "website": { "type": [ "string", "null" ], "description": "Company website." }, "location": { "type": [ "string", "null" ], "description": "Listed company location." }, "team_size": { "type": [ "integer", "null" ], "description": "Reported team size." }, "industries": { "type": "array", "items": { "type": "string" }, "description": "Industry categories." }, "description": { "type": [ "string", "null" ], "description": "One-line company description." }, "yc_page_link": { "type": "string", "description": "Company page on Y Combinator." } } }, "description": "Matching YC companies in directory order." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
ycombinator.com/search_companies- Returns
- name, description, batch, industries, location, team size, status, website, YC page link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method ycombinator.com/search_companies with the inputs above.
Ask your agent
- Find Y Combinator startups in the Winter 2024 batch working on developer tools that are currently hiring
- Which YC-backed fintech companies based in Lagos or elsewhere in Nigeria are still active? Give me their websites and team sizes.
- list up to 50 acquired healthcare companies from the YC directory
- Search the ycombinator.com company directory for anything related to payroll, Summer 2025 batch
- Show me Y Combinator companies in Berlin doing climate or energy stuff, only ones that are public
See more
All Hacker News methodsLooks up a Y Combinator company by name or YC company page link and returns its profile, founders, social links and open job count.
ycombinator.com/get_companySearches Hacker News stories or comments by words, date range and sort order. Comments include their parent story's website link when one exists; text-only stories have no website link.
news.ycombinator.com/search_storiesLists top-level job posts from a monthly Ask HN: Who is hiring? thread in thread order, with post text and the company, roles, location, work arrangement, salary and application contact inferred from each post.
news.ycombinator.com/list_hiring_postsLists current Hacker News stories in rank order from the top, newest, best, Ask HN, Show HN or jobs list.
news.ycombinator.com/list_front_pageGets a Hacker News story and its comments in the order shown on the site. The story can be given as a discussion link or as words from its title. Deleted and flagged comments are left out.
news.ycombinator.com/get_discussionFinds companies on Trustpilot by name or what they do, with TrustScore, review count, categories, location, logo and links. A preferred country moves companies listed in that country to the front.
trustpilot.com/search_companiesSearches the UK Companies House register by company name and returns each company's status, type, incorporation date and registered office address, in result order.
find-and-update.company-information.service.gov.uk/search_companiesLooks up a company by name or ticker on Yahoo Finance and returns its latest news headlines, with article summaries when the article page provides one.
finance.yahoo.com/get_company_news