POST /api/yc/search/companies
Price: 1 credit
Search YC companies with filters
Search Y Combinator companies by keyword, industry, region, batch, team size, and hiring status. Industry values are YC-specific categories, not free text. Common values: AI, Developer Tools, Healthcare, Fintech, Education, Enterprise, Consumer, Biotech, Climate, Security. Batches accept full names ('Winter 2024', 'Summer 2013', 'Fall 2024', 'Spring 2025') or short codes ('W24', 'S13', 'F24', 'X25' — X means Spring).
access-token string requiredtimeout integer — Max scrapping execution timeout (in seconds) (default: 300; min: 20; max: 1500)query string — Text search query (default: "")industries array nullable — Filter by industries (e.g., 'Healthcare', 'B2B')regions array nullable — Filter by regions (e.g., 'Latin America', 'Europe')batches array nullable — Filter by YC batches — full names ('Winter 2024') or short codes ('W24', 'X25')is_hiring boolean nullable — Filter by hiring statusnonprofit boolean nullable — Filter by nonprofit statustop_company boolean nullable — Filter by top company statusteam_size_min integer nullable — Minimum team size (min: 1)team_size_max integer nullable — Maximum team size (max: 10000)count integer required — Max result count (>: 0)sort_by string — Sort results by relevance or launch date (default: "relevance"; one of: "relevance", "launch_date")@type string (default: "YCCompany")id integer requiredname string requiredslug string requiredwebsite string nullableone_liner string nullablelong_description string nullableteam_size integer nullableindustry string nullablesubindustry string nullableindustries array (default: [])regions array (default: [])batch string nullablestatus string nullablestage string nullabletags array (default: [])is_hiring boolean nullablenonprofit boolean nullabletop_company boolean nullablelaunched_at integer nullableall_locations string nullablesmall_logo_thumb_url string nullableformer_names array (default: [])app_video_public boolean nullabledemo_day_video_public boolean nullableapp_answers boolean nullablequestion_answers boolean nullablefounders array (default: [])@type string (default: "YCFounder")name string requiredbio string nullablelinkedin_url string nullabletwitter_url string nullableavatar_url string nullablejobs array (default: [])@type string (default: "YCJob")location string nullablesalary_range string nullableurl string nullablesocial_links object nullable@type string (default: "YCSocialLinks")linkedin string nullabletwitter string nullablefacebook string nullablecrunchbase string nullablegithub string nullableyear_founded integer nullablecity string nullablecountry string nullablelogo_url string nullablenews_items array (default: [])@type string (default: "YCNewsItem")url string requireddate string nullablelaunches array (default: [])@type string (default: "YCLaunch")url string nullabledate string nullablecompany_photos array (default: [])@type string (default: "YCPhoto")url string requiredphoto_type string nullableprimary_partner object nullable@type string (default: "YCPartner")name string requiredurl string nullable422 — The request body did not validate Check the fields against this schema. A URN with the wrong prefix is the most common cause.408 — The request ran past its time limit Raise `timeout` in the request body, up to the maximum this endpoint documents. Lowering `count` or turning off the `with_*` flags also helps, because less work finishes sooner.412 — The entity was not found, or a precondition failed Retrying will not help: either the entity does not exist, or the input points at a different one.429 — Too many requests: a rate limit or a usage window is exhausted When the response carries an X-Retry-After header, wait that many seconds and retry: the same number is in the body as `detail.retry_after`, and the limit clears once that window passes. The message in the body names the limit that was hit.500 — Something broke on our side Retrying will not help. If it keeps happening, send us the X-Request-ID from the response headers.529 — Rate limit reached, or the endpoint is overloaded Wait at least 30 seconds, then retry.X-Error — Error message text (present only on error)X-Request-ID — Unique request identifierX-Execution-Time — Execution time in secondsX-Result-Count — How many records the body carries. 0 means an empty result, which is a normal answer and not by itself an error. A non-zero count can come back together with X-Error when the failure happened partway through — read this header and X-Error independently.X-Total-Available-Results — How many records exist for this query, when the endpoint can say. On a `dry_run` request this is the answer and the body is empty. It saturates: the endpoint's documented maximum means 'at least that many', any smaller number is exact.X-Warning — Present when the request body carried keys this endpoint does not document. They were ignored, so any filter you meant to apply through them did not apply. Check the spelling against this schema and retry.X-Retry-After — Seconds to wait before retrying. Present only on 429.