
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape the public Y Combinator startup directory: companies by batch, industry, region, tag or search, with founders, socials and open jobs.
Export startups from the public Y Combinator company directory into a clean table: company name, batch, pitch, industry, team size, website, LinkedIn, X, Crunchbase, founders and open jobs. Paste any directory search URL or use the built-in filters, and a 10-company run finishes in about 15 seconds. No login, no cookies, no browser.
https://www.ycombinator.com/companies/stripe work too.| Field | What it does |
|---|---|
url | One or more directory search URLs or company URLs, one per line. Search URLs are run separately and merged without duplicates. |
max_companies | Hard cap on companies saved by the whole run (default 10, 0 = no limit). Applies in every mode. |
scrape_all_companies | Search the whole public directory; URL and filters are ignored. max_companies still applies, so set it to 0 to save every company. |
search_query, batches, industries, regions, tags, statuses | Optional filters, combined with the URL filters. Batch short codes like S26, W24, X25, F24 are accepted. |
is_hiring, top_companies_only, nonprofit_only | Yes/no filters. |
min_team_size, max_team_size | Company size range. |
scrape_founders | Add founders (default on). |
scrape_open_jobs | Add open jobs with full descriptions (default off). |
{
"url": "https://www.ycombinator.com/companies?industry=Fintech&isHiring=true",
"max_companies": 10,
"scrape_founders": true,
"scrape_open_jobs": true
}
One row per company. The Founders and Open jobs views in the Output tab show one row per founder or job.
| Field | Description |
|---|---|
company_name, url, company_id, slug | Company and its YC page |
short_description, long_description | Pitch and full description |
batch, industry, subindustry, stage, status, tags | Directory classification |
website, company_linkedin, company_x, company_facebook, company_crunchbase, company_github | Links |
year_founded, team_size, company_location, city, country, regions, all_locations | Size and location |
primary_partner, top_company, nonprofit, is_hiring, number_of_open_jobs | YC details |
founders[] | id, name, title, bio, linkedin, x, emails.available |
open_jobs[] | id, title, description, description_url, location, remote, type, role, salary, equity, skills, years_experience, visa |
former_names, launched_at, company_image | Extras |
Example (trimmed) from a real run:
[
{
"url": "https://www.ycombinator.com/companies/xendit",
"company_id": 938,
"company_name": "Xendit",
"company_image": "https://bookface-images.s3.amazonaws.com/small_logos/82971ab934851a55cee1aa3b11b22839902e7f2e.png",
"short_description": "Provides payment infrastructure for Southeast Asia",
"long_description": "Xendit provides payment solutions that simplify the payment process for businesses in Southeast Asia, including Indonesia, Philippines, Malaysia, Thailand and V...",
"batch": "Summer 2015",
"industry": "Fintech",
"subindustry": "Payments",
"stage": "Growth",
"status": "Active",
"tags": [
"Fintech",
"Payments"
],
"website": "https://www.xendit.co/",
"year_founded": "2015",
"team_size": "700",
"company_location": "Jakarta, Indonesia",
"company_linkedin": "https://www.linkedin.com/company/xendit/",
"company_x": "https://twitter.com/xenditco",
"company_facebook": "https://www.facebook.com/xendit/",
"company_crunchbase": "https://www.crunchbase.com/organization/xendit",
"company_github": "https://github.com/xendit",
"primary_partner": "Gustaf Alstromer",
"top_company": false,
"nonprofit": false,
"is_hiring": true,
"number_of_open_jobs": 1,
"open_jobs": [
{
"id": 40840,
"title": "Senior Software Engineer - Platform",
"description_url": "https://www.ycombinator.com/companies/xendit/jobs/OO1OrKOtc-senior-software-engineer-platform",
"description": "Xendit provides payment infrastructure across Southeast Asia, with a focus on Indonesia and the Philippines. We process payments, power marketplaces, disburse p...",
"location": "Remote",
"remote": true,
"type": "Full-time",
"role": "Engineering, Backend",
"salary": null,
"equity": null,
"skills": [
"MongoDB",
"Node.js",
"PostgreSQL",
"TypeScript"
],
"years_experience": "6+ years",
"visa": "US citizenship/visa not required"
}
],
"founders": [
{
"id": 76612,
"name": "Moses Lo",
"title": "Founder/CEO",
"bio": null,
"emails": {
"available": true,
"email": null,
"status": null
},
"linkedin": "http://linkedin.com/in/moseslo",
"x": null
}
],
"slug": "xendit",
"former_names": [],
"regions": [
"Indonesia",
"Southeast Asia",
"Remote",
"Partly Remote"
],
"all_locations": "Jakarta, Jakarta, Indonesia",
"city": "Jakarta",
"country": "ID",
"launched_at": "2015-04-27T17:35:31Z"
}
]
You pay $0.01 per company saved ($10 per 1,000 companies), plus a small amount of platform usage. A 10-company run with founders costs about $0.10 in company fees and roughly $0.002 in platform usage at the default 256 MB memory. Founders and open jobs are included in the company price. Empty searches cost only the few seconds of platform usage.
Is it legal to scrape the YC directory? The actor reads only public pages that anyone can open without an account. Check the site's terms and the data protection rules that apply to you, especially before contacting people.
Do I need a login or a proxy? No login. The default datacenter proxy works for this site.
How many companies can I get? Everything in the public directory (over 6,000 companies). Large runs open one page per company, so a full directory export takes several minutes.
Why are founder emails empty? YC shows only whether a founder has an email on file (emails.available); the address itself is visible only to signed-in YC users, so it is not exported.
Some fields are null. Why? The company has not filled them in on YC (for example no Facebook page or no team size).
Can I schedule runs or use the API? Yes. Save a task with your input and schedule it, or start runs from the API and download the dataset as JSON, CSV or Excel.
Moving from another YC scraper? The input fields
url,max_companies,scrape_founders,scrape_open_jobsandscrape_all_companiesand the output field names follow the common format, so existing integrations keep working.
/companies/industry/..., /companies/location/...) are supported, but they list only the companies YC features there; use a /companies?... search URL for complete results.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
urlstringOptionalDirectory search URLs or company URLs
Open the YC company directory, pick filters (batch, industry, region, tags, hiring, company size, search text), then paste the address bar URL here. A single company page URL such as https://www.ycombinator.com/companies/stripe also works. Put one URL per line; search URLs are combined into one search and company URLs are scraped directly.
max_companiesintegerOptionaldefault 10Maximum companies
Hard cap on companies saved by the whole run (all URLs and searches together), also when 'Scrape the whole directory' is on. Use 0 for every company that matches.
scrape_all_companiesbooleanOptionaldefault falseScrape the whole directory
Search the whole public directory (over 6,000 companies) instead of the URL and filters above, which are ignored when this is on. The maximum above still applies: set it to 0 to save every company.
Optional. These narrow the search and are combined with any filters already in the URL.
search_querystringOptionalSearch text
Free-text search, the same as the directory search box (names, descriptions, founders).
batchesarrayOptionalBatches
Batch names such as Summer 2026 or Winter 2024. Short codes like S26, W24, X25 (Spring) and F24 (Fall) also work.
industriesarrayOptionalIndustries
Industry or sub-industry names as shown in the directory, for example Fintech, B2B, Healthcare or Payments.
regionsarrayOptionalHQ regions
Region or country names from the directory, for example America / Canada, Europe, India, Remote.
tagsarrayOptionalTags
Directory tags, for example Artificial Intelligence, Developer Tools, SaaS.
statusesarrayOptionalCompany status
Keep only companies with these statuses.
is_hiringbooleanOptionalOnly companies that are hiring
Keep only companies with open jobs.
top_companies_onlybooleanOptionalOnly YC top companies
Keep only companies YC marks as top companies.
nonprofit_onlybooleanOptionalOnly nonprofits
Keep only nonprofit organisations.
min_team_sizeintegerOptionalMinimum team size
Smallest number of employees.
max_team_sizeintegerOptionalMaximum team size
Largest number of employees.
scrape_foundersbooleanOptionaldefault trueInclude founders
Add each founder's name, title, bio, LinkedIn and X links.
scrape_open_jobsbooleanOptionaldefault falseInclude open jobs
Add every open job with title, full description, location, salary, equity, skills, experience and visa info. Opens one extra page per job, so runs take a little longer.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Proxy for the directory pages. Datacenter proxies work well for this site.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| url | string | null | Company page on ycombinator.com |
| company_id | integer | null | YC company id |
| company_name | string | null | Company name |
| company_image | string | null | Logo URL |
| short_description | string | null | One-line pitch |
| long_description | string | null | Full description |
| batch | string | null | YC batch, e.g. Summer 2026 |
| industry | string | null | Primary industry |
| subindustry | string | null | Sub-industry |
| stage | string | null | Stage (Early, Growth) |
| status | string | null | Active, Public, Acquired or Inactive |
| tags | array | null | Directory tags |
| website | string | null | Company website |
| year_founded | string | null | Year founded |
| team_size | string | null | Employees |
| company_location | string | null | Headquarters |
| company_linkedin | string | null | LinkedIn page |
| company_x | string | null | X (Twitter) profile |
| company_facebook | string | null | Facebook page |
| company_crunchbase | string | null | Crunchbase profile |
| company_github | string | null | GitHub organisation |
| primary_partner | string | null | Primary YC group partner |
| top_company | boolean | null | YC top company |
| nonprofit | boolean | null | Nonprofit |
| is_hiring | boolean | null | Has open jobs |
| number_of_open_jobs | integer | null | Open jobs on YC |
| open_jobs | array | null | Open jobs (when enabled) |
| founders | array | null | Founders (when enabled) |
| slug | string | null | Directory slug |
| former_names | array | null | Former names |
| regions | array | null | HQ regions |
| all_locations | string | null | All office locations |
| city | string | null | HQ city |
| country | string | null | HQ country code |
| launched_at | string | null | Launch date on YC (ISO) |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Company | One company saved to the dataset, founders and jobs included. | $0.01 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('cornerledger/ycombinator-scraper').call({
"url": "https://www.ycombinator.com/companies?batch=Summer%202026",
"max_companies": 10,
"scrape_founders": true,
"scrape_open_jobs": false,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run cornerledger/ycombinator-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=cornerledger/ycombinator-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Companies from a Y Combinator directory page.
Companies from one batch with founder details.
Companies with founders and their open roles.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.