{
  "openapi": "3.0.1",
  "info": {
    "title": "Y Combinator Scraper — Companies, Founders & Jobs",
    "description": "Scrape the YC ecosystem in one actor: 5,700+ companies, 8,000+ founders with socials, 3,000+ jobs with salary/equity/visa, news & launches. Paste any YC URL or filter by batch, industry, region, hiring. MCP-ready, $0.005/result.",
    "version": "0.1",
    "x-build-id": "WW9JtCJ0ZC9zb70Kv"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~y-combinator-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-y-combinator-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/khadinakbar~y-combinator-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-y-combinator-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/khadinakbar~y-combinator-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-y-combinator-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "startUrls": {
            "title": "🔗 Start URLs (paste any YC URL — auto-routed)",
            "type": "array",
            "description": "Any Y Combinator URL. Mix and match company URLs, jobs URLs, filter URLs in the same run. The actor auto-detects which extractor to use per URL. Leave empty to use the Filter fields below. Example URLs: 'https://www.ycombinator.com/companies?batch=Spring%202026&industry=B2B', 'https://www.ycombinator.com/companies/airbnb', 'https://www.ycombinator.com/companies/stripe/jobs/jdBhPmD-frontend-engineer-identity', 'https://www.ycombinator.com/jobs?role=eng'.",
            "default": [],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "mode": {
            "title": "🎯 Mode (used when Start URLs is empty)",
            "enum": [
              "companies",
              "jobs"
            ],
            "type": "string",
            "description": "Pick a target surface. Companies runs an Algolia search with the filter fields below. Jobs paginates the `/jobs` board with role/location filters. Ignored when Start URLs is non-empty.",
            "default": "companies"
          },
          "query": {
            "title": "🔎 Free-text query",
            "type": "string",
            "description": "Keyword search across company names, one-liners, descriptions (Companies mode) or job titles + descriptions (Jobs mode). Leave empty to skip keyword filtering. Example: 'developer tools', 'AI agents', 'fintech'. NOT a regex — Algolia matches partial words.",
            "default": ""
          },
          "batches": {
            "title": "🏢 Companies · YC Batches",
            "type": "array",
            "description": "Companies mode only. Pick one or more batches (cohorts). Leave empty for no batch filter. Example: ['Spring 2026', 'Winter 2026']. Spring/Summer/Fall/Winter naming follows YC's own taxonomy.",
            "items": {
              "type": "string",
              "enum": [
                "Fall 2026",
                "Summer 2026",
                "Spring 2026",
                "Winter 2026",
                "Fall 2025",
                "Summer 2025",
                "Spring 2025",
                "Winter 2025",
                "Fall 2024",
                "Summer 2024",
                "Winter 2024",
                "Summer 2023",
                "Winter 2023",
                "Summer 2022",
                "Winter 2022",
                "Summer 2021",
                "Winter 2021",
                "Summer 2020",
                "Winter 2020",
                "Summer 2019",
                "Winter 2019",
                "Summer 2018",
                "Winter 2018",
                "Summer 2017",
                "Winter 2017",
                "Summer 2016",
                "Winter 2016",
                "Summer 2015",
                "Winter 2015",
                "Summer 2014",
                "Winter 2014",
                "Summer 2013",
                "Winter 2013",
                "Summer 2012",
                "Winter 2012",
                "Summer 2011",
                "Winter 2011",
                "Summer 2010",
                "Winter 2010",
                "Summer 2009",
                "Winter 2009",
                "Summer 2008",
                "Winter 2008",
                "Summer 2007",
                "Winter 2007",
                "Summer 2006",
                "Winter 2006",
                "Summer 2005"
              ]
            },
            "default": []
          },
          "industries": {
            "title": "🏢 Companies · Industries",
            "type": "array",
            "description": "Companies mode only. Pick one or more industries. Empty = no industry filter. YC's top-level taxonomy: B2B, Consumer, Healthcare, Fintech, Engineering/Product/Design, Industrials, Education, Real Estate and Construction, Government.",
            "items": {
              "type": "string",
              "enum": [
                "B2B",
                "Consumer",
                "Healthcare",
                "Fintech",
                "Engineering, Product and Design",
                "Industrials",
                "Education",
                "Real Estate and Construction",
                "Government"
              ]
            },
            "default": []
          },
          "regions": {
            "title": "🏢 Companies · HQ Regions",
            "type": "array",
            "description": "Companies mode only. Pick one or more HQ regions. Empty = no region filter. Use 'Remote' or 'Fully Remote' for distributed teams.",
            "items": {
              "type": "string",
              "enum": [
                "United States of America",
                "America / Canada",
                "Canada",
                "Mexico",
                "Latin America",
                "Europe",
                "United Kingdom",
                "Africa",
                "Middle East and North Africa",
                "South Asia",
                "India",
                "Southeast Asia",
                "East Asia",
                "Oceania",
                "Remote",
                "Fully Remote",
                "Partly Remote"
              ]
            },
            "default": []
          },
          "topCompany": {
            "title": "🏢 Companies · Top Companies Only",
            "type": "boolean",
            "description": "Companies mode only. Limit results to companies flagged as 'Top' by Y Combinator (a curated subset, ~500 companies). Useful for VC sourcing and competitive landscape mapping.",
            "default": false
          },
          "isHiring": {
            "title": "🏢 Companies · Hiring Companies Only",
            "type": "boolean",
            "description": "Companies mode only. Limit to companies currently marked as hiring on YC. Combine with `scrapeOpenJobs` to fetch the actual job postings.",
            "default": false
          },
          "nonprofit": {
            "title": "🏢 Companies · Nonprofits Only",
            "type": "boolean",
            "description": "Companies mode only. Limit to companies marked as nonprofits. Leave off to include both commercial and nonprofit YC orgs.",
            "default": false
          },
          "minTeamSize": {
            "title": "🏢 Companies · Minimum Team Size",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Companies mode only. Smallest team size to include. Leave 0 for no minimum. Example: 10 returns companies with team_size >= 10.",
            "default": 0
          },
          "maxTeamSize": {
            "title": "🏢 Companies · Maximum Team Size",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Companies mode only. Largest team size to include. Leave 0 for no maximum. Example: 50 returns companies with team_size <= 50.",
            "default": 0
          },
          "jobRole": {
            "title": "💼 Jobs · Role",
            "enum": [
              "",
              "eng",
              "design",
              "product",
              "ops",
              "marketing",
              "sales",
              "support",
              "recruiting-hr",
              "science"
            ],
            "type": "string",
            "description": "Jobs mode only. Filter the YC jobs board by role category. Empty = all roles. Maps to YC's `/jobs?role=...` query string.",
            "default": ""
          },
          "jobLocation": {
            "title": "💼 Jobs · Location",
            "type": "string",
            "description": "Jobs mode only. Filter by city slug or 'remote'. Empty = all locations. Common values: 'san-francisco', 'new-york', 'london', 'remote', 'india', 'seattle', 'los-angeles', 'austin'.",
            "default": ""
          },
          "scrapeFounders": {
            "title": "👥 Enrich · Scrape Founders",
            "type": "boolean",
            "description": "Companies mode only. Fetch `/companies/{slug}` for each company and add the `founders[]` array (name, title, bio, LinkedIn URL, Twitter URL, has_email flag, avatar). Adds one HTTP request per company. Each founder counts as one enrichment event ($0.001).",
            "default": true
          },
          "scrapeOpenJobs": {
            "title": "💼 Enrich · Scrape Open Jobs per Company",
            "type": "boolean",
            "description": "Companies mode only. Adds the `openJobs[]` array to each company (title, salary, equity, visa, location, apply URL). If `scrapeFounders` is also true, both are populated from the same single HTTP fetch. Each job counts as one enrichment event ($0.001).",
            "default": false
          },
          "scrapeJobDescriptions": {
            "title": "📝 Enrich · Scrape Full Job Descriptions",
            "type": "boolean",
            "description": "Jobs mode only. Fetch each job detail page (`/companies/{slug}/jobs/{slug}`) for the full long-form description, hiring manager, and related jobs. Slower (one HTTP per job) but produces the richest job records for downstream NLP. No enrichment event charged — already covered by the base $0.005/job.",
            "default": false
          },
          "scrapeNewsAndLaunches": {
            "title": "📰 Enrich · Scrape News Mentions & YC Launch Posts",
            "type": "boolean",
            "description": "Companies mode only. Adds `newsItems[]` (title, url, date) and `launches[]` (YC Launch posts) to each company. Same HTTP fetch as founders/jobs enrichment, so no extra requests if any company enrichment is already on.",
            "default": false
          },
          "maxResults": {
            "title": "🔢 Maximum Results",
            "minimum": 0,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard cap on number of records to return. The actor stops cleanly once this many companies (Companies mode) or jobs (Jobs mode) have been emitted. Set 0 for no cap (will scrape the full ecosystem — 5,700+ companies or all open jobs). Free-tier accounts are capped at 100 regardless.",
            "default": 100
          },
          "monitoringMode": {
            "title": "🛰️ Monitoring Mode (incremental scheduled runs)",
            "type": "boolean",
            "description": "When true, persists every emitted company id / job id to the STATE key-value collection. On subsequent runs, only IDs not yet seen are emitted — perfect for scheduled cron runs that should only output 'what's new'. State is per Apify user/actor.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "🛡️ Proxy Configuration (HTML enrichment only)",
            "type": "object",
            "description": "Proxy used for HTML page fetches (`/companies/{slug}`, `/jobs`, `/jobs/{slug}`). YC's Algolia API is hit directly without proxy. Default uses Apify residential proxy for highest reliability against rate limits.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}