startups APIstartups.rip ↗
Access data on 1,700+ Y Combinator startups via 5 endpoints. Search companies, browse batches, get status, founders, and full research reports.
What is the startups API?
The startups.rip API provides structured access to data on over 1,700 Y Combinator startups across 5 endpoints, covering company status, batch membership, founder details, and multi-section research reports. The get_company endpoint returns the most detail, including named report sections such as Overview, Founding Story, Timeline, Post-Mortem, and Key Lessons. The list_batches endpoint enumerates all 40 YC cohorts from Summer 2005 through Spring 2025 along with 145 company categories.
curl -X GET 'https://api.parse.bot/scraper/3876c01f-dff8-4fd4-bd20-51dcd34ebaf0/search_companies?limit=5&query=fintech' \ -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 startups-rip-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.
"""Startups.RIP SDK — search YC startups, browse batches, read teardown reports."""
from parse_apis.startups_rip_api import StartupsRip, CompanyNotFound
client = StartupsRip()
# Search for AI-related startups — limit caps total items returned.
for company in client.companysummaries.search(query="marketplace", limit=5):
print(company.name, company.batch, company.status)
# Drill into the first result's full company profile.
hit = client.companysummaries.search(query="fintech", limit=1).first()
if hit:
detail = hit.details()
print(detail.name, detail.batch, detail.category)
if detail.report_sections:
print("Report sections:", list(detail.report_sections.keys()))
# Browse a specific batch via the constructible Batch resource.
batch = client.batch(name="Winter 2019")
for co in batch.companies.list(limit=5):
print(co.slug, co.name, co.category)
# Find similar companies from a fetched company.
company = client.companies.get(slug="42floors")
for similar in company.similar(category="Real Estate", limit=3):
print(similar.name, similar.status)
# Typed error handling when a company slug doesn't exist.
try:
client.companies.get(slug="nonexistent-company-xyz")
except CompanyNotFound as exc:
print(f"Company not found: {exc.slug}")
print("exercised: companysummaries.search / details / companies.get / batch.companies.list / company.similar")Full-text search over YC startups by keyword. Matches against company name, one-liner, and category. Returns up to 20 results per call with basic info. No pagination beyond the server cap of 20 results per query.
| Param | Type | Description |
|---|---|---|
| limit | integer | Max results to return (server caps at 20). |
| queryrequired | string | Search keyword (e.g., 'airbnb', 'marketplace', 'fintech') |
{
"type": "object",
"fields": {
"count": "number of results returned",
"query": "search keyword echoed back",
"results": "array of company summary objects with id, slug, name, batch, oneLiner, category, status, founders, foundedYear, is_free, isFreeReport, isLocked"
},
"sample": {
"data": {
"count": 20,
"query": "airbnb",
"results": [
{
"id": "1",
"name": "Airbnb",
"slug": "airbnb",
"batch": "Winter 2009",
"status": "public",
"is_free": false,
"category": "Marketplace",
"founders": [],
"isLocked": true,
"oneLiner": "Book accommodations around the world.",
"foundedYear": 2020,
"isFreeReport": false
}
]
},
"status": "success"
}
}About the startups API
What the API Covers
The API indexes Y Combinator portfolio companies and surfaces structured data about their lifecycle — whether active, acquired, or defunct. Each company record includes a slug, batch, status, category, one_liner, founders_text, and a logo_url. The get_company endpoint also returns report_sections, an object mapping section names (Overview, Founding Story, Business Model, Market Position, Traction, Post-Mortem, Key Lessons, etc.) to full narrative text. Not every company has a complete report; the has_complete_analysis field on list results signals whether the full set of sections is available.
Searching and Browsing
The search_companies endpoint accepts a query string and returns up to 20 matching companies with id, slug, name, batch, oneLiner, category, status, and foundedYear. There is no pagination — results are capped server-side at 20 per query. The list_companies_by_batch endpoint accepts a batch parameter (e.g., 'Winter 2019') exactly as returned by list_batches, and returns the full company roster for that cohort including slug, name, batch_short, status, category, and logo_url. Older batches may have reduced coverage.
Similarity and Discovery
The get_similar_companies endpoint takes a company slug and a category string and returns companies the site considers related. Both parameters are required and the category must match a value from the list_batches categories array. Results include id, slug, name, batch, oneLiner, category, status, logoUrl, is_free, and has_complete_analysis. This endpoint is useful for clustering companies by vertical or finding comparable peers within a cohort.
The startups API is a managed, monitored endpoint for startups.rip — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when startups.rip 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 startups.rip 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 startup tracker that flags status changes (Active → Acquired → Inactive) across batches using
list_companies_by_batchandget_company. - Aggregate post-mortem and Key Lessons report sections from defunct startups to study common failure patterns.
- Generate category-level startup maps by querying
list_batchescategories and then fetching companies per batch filtered by category. - Surface peer companies for competitive research using
get_similar_companieswith a target slug and matching category. - Index YC founders by name using the
founders_textfield returned fromget_companyto cross-reference founders across multiple startups. - Build a cohort comparison tool by pulling Business Model and Traction report sections for all companies in a given YC batch.
- Create a search interface for YC startups by keyword using
search_companieswith terms like 'fintech', 'marketplace', or 'healthcare'.
| 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 startups.rip have an official developer API?+
What does the `get_company` endpoint return beyond basic company info?+
name, batch, status, category, one_liner, founders_text, and logo_url, it returns report_sections — an object keyed by section name (e.g., Overview, Founding Story, Timeline, What They Built, Market Position, Business Model, Traction, Post-Mortem, Key Lessons). Section content is full narrative text. The report_sections field may be absent for companies without a complete analysis.Can I paginate through all YC companies in a single batch?+
list_companies_by_batch endpoint returns all available companies for the specified batch in a single response — there is no pagination parameter. The count field tells you how many were returned. Older batches may return fewer results due to limited data coverage on the source site.Does the API expose founding year, funding rounds, or valuation data?+
search_companies and related list endpoints return foundedYear for companies where it is available. Funding round details, valuation figures, and investor lists are not currently exposed by any endpoint. You can fork this API on Parse and revise it to add an endpoint targeting that data if the source provides it.Is there a way to filter `search_companies` results by status or batch?+
search_companies endpoint only accepts a query string and an optional limit. Server-side filtering by status or batch is not supported in that endpoint. To get all companies for a specific batch, use list_companies_by_batch with the exact batch name from list_batches. You can fork this API on Parse and revise the search endpoint to add filter parameters if that capability is needed.