# Y Combinator Companies API

Every company in Y Combinator's public directory - batch, industry, region, team size, status, founders with bios and LinkedIn URLs, open roles, news and launches. Filter the directory, or look up companies by URL or slug.

**Pricing:** $0.01 per company

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

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

## Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `urls` | array | No | Company page URLs (https://www.ycombinator.com/companies/<slug>) or bare slugs. Slugs are lowercase - the site 404s on any other casing. |
| `batch` | string | No | YC batch, e.g. `W25` or `Winter 2025` - both spellings work. |
| `industry` | string | No | Top-level industry, e.g. `Healthcare`, `B2B`, `Consumer`. |
| `subindustry` | string | No | Narrower industry, e.g. `Fintech`. |
| `region` | string | No | e.g. `United States of America`, `India`. |
| `tag` | string | No | A company tag, e.g. `Artificial Intelligence`. |
| `status` | string | No | `Active`, `Acquired`, `Public` or `Inactive`. |
| `top_company` | boolean | No | Only YC's own top-company list. |
| `is_hiring` | boolean | No | Only companies with open roles. |
| `nonprofit` | boolean | No | Only nonprofits. |
| `query` | string | No | Free-text search across the directory. |
| `maxResults` | integer | No | Stop after this many companies. 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/companies/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/companies/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 |
| `name` | Name | text |
| `slug` | Slug | text |
| `formerNames` | Former Names | array |
| `smallLogoThumbUrl` | Small Logo Thumb URL | url |
| `website` | Website | url |
| `allLocations` | All Locations | text |
| `longDescription` | Long Description | text |
| `oneLiner` | One Liner | text |
| `teamSize` | Team Size | number |
| `industry` | Industry | text |
| `subindustry` | Subindustry | text |
| `launchedAt` | Launched At | number |
| `tags` | Tags | array |
| `tagsHighlighted` | Tags Highlighted | array |
| `topCompany` | Top Company | boolean |
| `isHiring` | Is Hiring | boolean |
| `nonprofit` | Nonprofit | boolean |
| `batch` | Batch | text |
| `status` | Status | text |
| `industries` | Industries | array |
| `regions` | Regions | array |
| `stage` | Stage | text |
| `appVideoPublic` | App Video Public | boolean |
| `demoDayVideoPublic` | Demo Day Video Public | boolean |
| `appAnswers` | App Answers | text |
| `questionAnswers` | Question Answers | boolean |
| `batchName` | Batch Name | text |
| `smallLogoUrl` | Small Logo URL | url |
| `ycdcStatus` | YCDC Status | text |
| `logoUrl` | Logo URL | url |
| `yearFounded` | Year Founded | number |
| `location` | Location | text |
| `city` | City | text |
| `cityTag` | City Tag | text |
| `country` | Country | text |
| `linkedinUrl` | Linkedin URL | url |
| `twitterUrl` | Twitter URL | url |
| `facebookUrl` | Facebook URL | url |
| `crunchbaseUrl` | Crunchbase URL | url |
| `githubUrl` | Github URL | url |
| `freeResponseQuestionAnswers` | Free Response Question Answers | object_array |
| `demoDayVideoUrl` | Demo Day Video URL | url |
| `appVideoUrl` | App Video URL | url |
| `ycdcUrl` | YCDC URL | url |
| `companyPhotos` | Company Photos | object_array |
| `primaryGroupPartner` | Primary Group Partner | object |
| `founders` | Founders | object_array |
| `ycUrl` | YC URL | url |
| `launchedAtIso` | Launched At Iso | text |
