# Y Combinator Founders API

Every founder in Y Combinator's public directory - name, title, bio, LinkedIn, Twitter and Hacker News, plus the company they founded with its batch, industry, location and team size.

**Pricing:** $0.01 per founder

**Endpoint:** `POST /v1/data/ycombinator/founders/run`

**Auth:** `Authorization: Bearer mk_live_...`

## Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `urls` | array | No | Founder slugs from a previous run's `ycUrl` or `urlSlug`. YC has no standalone founder page, so these cannot be copied out of a browser. |
| `batch` | string | No | YC batch, e.g. `W25` or `Winter 2025`. |
| `title` | string | No | Founder title, e.g. `CTO`, `CEO`. |
| `industry` | string | No | Industry of the founder's company. |
| `parent_industry` | string | No | Top-level industry, e.g. `B2B`. |
| `subindustry` | string | No | Narrower industry, in YC's arrow form, e.g. `Consumer -> Food and Beverage`. |
| `region` | string | No | e.g. `United States of America`. |
| `top_company` | boolean | No | Only founders of YC top companies. |
| `query` | string | No | Free-text search across founders. |
| `maxResults` | integer | No | Stop after this many founders. Each one costs a row, so this caps the bill as well as the output. Omitted means every match. |

## Example

`?wait=true` holds the request open until the run finishes (up to 60s) and returns the rows inline — one request, no polling.

```bash
curl -X POST "https://api.mindcase.co/v1/data/ycombinator/founders/run?wait=true" \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"params":{}}'
```

```python
import requests

resp = requests.post(
    "https://api.mindcase.co/v1/data/ycombinator/founders/run",
    params={"wait": "true"},
    headers={"Authorization": "Bearer mk_live_YOUR_API_KEY"},
    json={"params": {}},
)
rows = resp.json()["data"]
```

## Longer runs

If the run is still going at the 60s ceiling you get back `{ job_id, status: "running" }` instead of rows (same if the result is over 100 rows — those come back `truncated`). Poll with that `job_id`:

```bash
# 1) check status
curl https://api.mindcase.co/v1/jobs/JOB_ID \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY"

# 2) when status == completed, fetch the rows
curl https://api.mindcase.co/v1/jobs/JOB_ID/results \
  -H "Authorization: Bearer mk_live_YOUR_API_KEY"
```

Full API reference (auth, jobs, balance, SDKs, MCP): https://mindcase.co/skills.md

## Response columns

| Field | Display name | Type |
|-------|--------------|------|
| `id` | ID | number |
| `firstName` | First Name | text |
| `lastName` | Last Name | text |
| `hnId` | HN ID | text |
| `avatarThumb` | Avatar Thumb | url |
| `currentCompany` | Current Company | text |
| `currentTitle` | Current Title | text |
| `companySlug` | Company Slug | text |
| `topCompany` | Top Company | boolean |
| `urlSlug` | URL Slug | text |
| `allCompaniesText` | All Companies Text | text |
| `ycIndustries` | YC Industries | object_array |
| `ycParentIndustries` | YC Parent Industries | array |
| `ycSubindustries` | YC Subindustries | array |
| `currentRegion` | Current Region | text |
| `ycTitles` | YC Titles | array |
| `batches` | Batches | array |
| `isActive` | Is Active | boolean |
| `founderBio` | Founder Bio | text |
| `fullName` | Full Name | text |
| `title` | Title | text |
| `twitterUrl` | Twitter URL | url |
| `linkedinUrl` | Linkedin URL | url |
| `hasEmail` | Has Email | boolean |
| `latestYcCompany` | Latest YC Company | object |
| `ycUrl` | YC URL | url |
| `hnUrl` | HN URL | url |
| `companyUrl` | Company URL | url |
| `role` | Role | text |
| `companyBatch` | Company Batch | text |
| `companyBatchName` | Company Batch Name | text |
| `companyWebsite` | Company Website | url |
| `companyOneLiner` | Company One Liner | text |
| `companyYcdcStatus` | Company YCDC Status | text |
| `companyTeamSize` | Company Team Size | number |
| `companyLocation` | Company Location | text |
| `companyCountry` | Company Country | text |
| `companyTwitterUrl` | Company Twitter URL | url |
| `companyLinkedinUrl` | Company Linkedin URL | url |
