General Catalyst APIgeneralcatalyst.com ↗
Access General Catalyst's 590+ portfolio companies via API. Retrieve investment stages, sectors, locations, descriptions, and social links for each company.
What is the General Catalyst API?
The General Catalyst Portfolio API covers 590+ portfolio companies across two endpoints: list_portfolio and get_company. list_portfolio returns all companies with their name, slug, investment stage, sector, and location, while get_company delivers per-company details including description, website URL, LinkedIn, Twitter/X, year backed, industry, region, and associated investors.
curl -X GET 'https://api.parse.bot/scraper/7583de9a-4eb5-4240-a4a8-168e9b43b0af/list_portfolio?page=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 generalcatalyst-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.
"""Walkthrough: General Catalyst Portfolio API — list companies and fetch details."""
from parse_apis.generalcatalyst_com_api import GeneralCatalyst, CompanyNotFound
client = GeneralCatalyst()
# List portfolio companies (capped to first 5 for demo)
for company in client.companies.list(limit=5):
print(company.name, company.stage, company.sector)
# Drill into one company's full details via navigation
summary = client.companies.list(limit=1).first()
if summary:
detail = summary.details()
print(detail.name, detail.website_url, detail.industry)
print("Investors:", detail.investors)
# Fetch a specific company by slug directly
stripe = client.companies.get(slug="stripe")
print(stripe.name, stripe.website_url, stripe.region)
# Handle a company that doesn't exist
try:
client.companies.get(slug="nonexistent-company-xyz")
except CompanyNotFound as exc:
print(f"Not found: {exc.slug}")
print("exercised: companies.list / summary.details / companies.get / CompanyNotFound")
List all portfolio companies from General Catalyst's portfolio page. Returns company names, investment stage (Seed, Creation, Customer Value Fund, Venture, IPO, Acquired), sector, and location. When called without a page parameter, fetches and aggregates all pages (~591 companies). When called with a specific page, returns that page only (100 companies per page, up to 6 pages).
| Param | Type | Description |
|---|---|---|
| page | integer | Page number (1-6) to fetch a specific page of 100 companies. When 0 or omitted, all pages are fetched and aggregated. |
{
"type": "object",
"fields": {
"page": "integer page number (when fetching a specific page)",
"count": "integer count of companies on this page (when fetching a specific page)",
"total": "integer total count of companies (when fetching all pages)",
"companies": "array of company summary objects with name, slug, stage, sector, location"
},
"sample": {
"data": {
"page": 2,
"count": 100,
"companies": [
{
"name": "Senra Systems",
"slug": "senra-systems",
"stage": "Venture",
"sector": "Industrials & Manufacturing",
"location": "North America"
},
{
"name": "Tahoe Therapeutics",
"slug": "tahoe",
"stage": "Seed",
"sector": "Healthcare",
"location": "North America"
},
{
"name": "Meter",
"slug": "meter",
"stage": "Venture",
"sector": "Enterprise",
"location": "North America"
}
]
},
"status": "success"
}
}About the General Catalyst API
Endpoints Overview
The API exposes two endpoints. list_portfolio retrieves General Catalyst's full portfolio and returns an array of company summary objects, each containing name, slug, stage, sector, and location. The stage field reflects GC's own classification: Seed, Creation, Customer Value Fund, Venture, IPO, or Acquired — useful for filtering by investment lifecycle position. Without a page parameter, the endpoint aggregates all pages and returns the full total count alongside the companies array. Passing a page integer (1–6) returns a paginated slice of 100 companies with a count and page in the response.
Company Detail
get_company accepts a slug string (sourced from list_portfolio results, e.g. anthropic, stripe, anduril) and returns the full profile for that company. Fields include description, website_url, linkedin_url, twitter_url, backed_since (year GC first backed the company), industry, region, investors (an array of investor name strings), and slug. Several fields may be null when GC has not published that information for a given company.
Data Coverage
The portfolio spans multiple sectors and geographies. The sector field in list results and the industry field in company detail are distinct — sector is a broader classification used in the portfolio listing, while industry is the more specific tag on the company's own profile page. The investors array in get_company lists named investors associated with each deal, not just GC itself, which can be useful for co-investment research.
The General Catalyst API is a managed, monitored endpoint for generalcatalyst.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when generalcatalyst.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 generalcatalyst.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?+
- Map General Catalyst's portfolio by investment stage (Seed through IPO) to identify where they concentrate deployment
- Build a sector breakdown of GC-backed companies using the
sectorfield fromlist_portfolio - Pull
website_urlandlinkedin_urlfromget_companyto enrich a CRM with direct company links - Track
backed_sinceyear across portfolio companies to analyze GC's investment activity by vintage year - Identify co-investors using the
investorsarray inget_companyto map syndication patterns - Filter acquired or IPO-stage companies from
list_portfolioto research GC's historical exits - Cross-reference
regionandindustryfromget_companyto find geographic concentrations within specific verticals
| 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 General Catalyst offer an official developer API for their portfolio data?+
What does the `stage` field in `list_portfolio` actually represent?+
stage field reflects General Catalyst's own categorization of each investment. Possible values are Seed, Creation, Customer Value Fund, Venture, IPO, and Acquired. These are GC-defined labels, not standardized industry stage terms, so 'Creation' and 'Customer Value Fund' are specific to GC's portfolio taxonomy.Does the API return funding amounts or valuation data for portfolio companies?+
Are all fields in `get_company` guaranteed to be populated?+
get_company — including description, website_url, linkedin_url, twitter_url, backed_since, region, and industry — may return null when General Catalyst has not published that information for a given company. The name and slug fields are always present.Can I search or filter portfolio companies by sector or stage directly in the API?+
list_portfolio endpoint does not accept filter parameters for sector or stage. It returns all companies (or a paginated page), and filtering must be applied client-side on the stage and sector fields in the response. You can fork this API on Parse and revise it to add server-side filtering parameters.