Social media scraping API for public profiles, posts, comments, videos, transcripts, and metrics from TikTok, Instagram, YouTube, X, LinkedIn, and more. Pay-as-you-go credits, 100 free to start.
I built Social Fetch because I kept running into the same problem.
Every project that needed public social media data started out simple enough. Grab some YouTube data. Add Twitter. Then someone asks for TikTok. Then LinkedIn. Then Reddit.
Before long, I wasn't building the product anymore, I was maintaining scrapers.
Platforms change. Formats are all different. Something is always breaking.
It felt like a solved problem that nobody had actually solved.
So I spent the last couple of years building Social Fetch: one API for live public data across 20+ platforms.
What surprised me wasn't that people wanted social data. It was how many different things they were building with it. AI agents. Creator tools. Lead generation. Brand monitoring. Research. Things I never would have thought of myself.
One thing I care a lot about is keeping it simple: β’ one API β’ live data β’ consistent responses β’ subscriptions + pay-as-you-go credits that never expire
I'd love to know what you'd build with it.
Or if you've ever built your own scraper... what finally made you regret it? π
I'll be hanging around all day if anyone wants to chat or has questions.
β Luke
Report
@lukem121 +1 to your forum thread on which platforms break the worst β the silent auth expiry and "structured one week, wall of JS the next" flip is exactly the tax that makes people regret rolling their own.
Before wiring this into an agent I'd want to know: is "live data" fetched synchronously per call, and what's the rough p95 when a platform is being slow? And when something breaks on your side, does the API return a typed error / degraded flag so the caller can tell "no results" from "scraper down"?
Also curious whether there's an MCP server yet, or REST-only for now. π
@akbar_bΒ Appreciate the read on the forum thread, and yes, that flip between clean structured data and silent breakage is exactly what pushed us to build this.
To your questions: fetch is synchronous per call, live data every time, no caching, averages around 3.2s. We track average response time but haven't published p95 yet, can follow up with a real number if that matters for your use case.
On errors, we distinguish these on purpose: not_found means a real lookup ran and the target genuinely doesn't exist (still charged, it's real work). lookup_failed and 503 temporarily_unavailable mean something broke on our side, and those aren't charged. So you can tell "no results" from "scraper's having a bad day" without guessing.
And yes, MCP server just shipped, 150+ tools, works with Cursor and Claude out of the box.
Report
@lukem121Β The error taxonomy is the right cut for agents β 503/lookup_failed = retry, not_found = terminal, so the loop branches without guessing. On the MCP server: how are you keeping 150+ tools from eating the agent's context window β namespacing, or lazy-loading the tool list? That's usually the first thing that bites at that count.
Report
For the scraper API, how consistent is the response shape across TikTok, Instagram, YouTube, X, and LinkedIn? I can imagine developers using Social Fetch in AI workflow automation or marketing dashboards would care a lot about whether posts, profiles, comments, and metrics come back in a predictable schema, or if each platform has its own structure.
Report
How does the pay-as-you-go pricing actually work for someone pulling data from multiple platforms at once? Like is each API call priced the same across TikTok, Instagram, and LinkedIn, or does it vary by endpoint and data type?
@gllatalarnm2dΒ Good question. Pricing is flat across almost every endpoint, one credit per call, TikTok, Instagram, YouTube, X, whatever mix you're pulling. LinkedIn's the one exception at 2 credits, since that data's more work to fetch reliably. Everything else is uniform.
Report
The thing that always bit me building social pipelines wasn't the fetch, it was completeness. 'Get the comments' really means 'get whatever the platform lets you cursor through right now,' and those caps move: Instagram would hand me the first few hundred then just stop, and an expired cursor mid-pagination left me either gaps or duplicate rows to dedupe by id. Does one call return a full set or a capped page, and do you flag truncated versus genuinely complete?
Report
Finally tried Social Fetch for pulling TikTok comments and the latency was way better than what I was getting from a self-hosted scraper. Credits-based pricing makes it easy to experiment without committing to another monthly bill.
Report
How do you handle rate limits or sudden platform changes on something like TikTok that tends to break scrapers pretty fast?
Report
Finally got around to testing Social Fetch and the TikTok transcript endpoint was the standout for me, it returned clean captions way faster than the DIY scraper I was patching together. Pay-as-you-go credits also make it painless to spin up for a side project without committing to a monthly plan.
Report
How does it handle rate limits across platforms like TikTok and Instagram when you're pulling a high volume of profiles and posts at the same time?
@doanlwbrΒ No enforced rate limits or RPS caps on the metered routes, your limit is really your credit balance rather than a request ceiling. We'd suggest staying under about 500 concurrent requests for best reliability. But you're more than welcome to push it to its limits πͺπ»
Report
Gave the API a quick spin and was impressed that the transcript endpoint came back with timestamps already cleaned up, which saved me a chunk of preprocessing. Pay-as-you-go credits feel fair for testing too.
Replies
Social Fetch
Hey Product Hunt π Luke here.
I built Social Fetch because I kept running into the same problem.
Every project that needed public social media data started out simple enough. Grab some YouTube data. Add Twitter. Then someone asks for TikTok. Then LinkedIn. Then Reddit.
Before long, I wasn't building the product anymore, I was maintaining scrapers.
Platforms change. Formats are all different. Something is always breaking.
It felt like a solved problem that nobody had actually solved.
So I spent the last couple of years building Social Fetch: one API for live public data across 20+ platforms.
What surprised me wasn't that people wanted social data. It was how many different things they were building with it. AI agents. Creator tools. Lead generation. Brand monitoring. Research. Things I never would have thought of myself.
One thing I care a lot about is keeping it simple: β’ one API β’ live data β’ consistent responses β’ subscriptions + pay-as-you-go credits that never expire
I'd love to know what you'd build with it.
Or if you've ever built your own scraper... what finally made you regret it? π
I'll be hanging around all day if anyone wants to chat or has questions.
β Luke
@lukem121 +1 to your forum thread on which platforms break the worst β the silent auth expiry and "structured one week, wall of JS the next" flip is exactly the tax that makes people regret rolling their own.
Before wiring this into an agent I'd want to know: is "live data" fetched synchronously per call, and what's the rough p95 when a platform is being slow? And when something breaks on your side, does the API return a typed error / degraded flag so the caller can tell "no results" from "scraper down"?
Also curious whether there's an MCP server yet, or REST-only for now. π
Social Fetch
@akbar_bΒ Appreciate the read on the forum thread, and yes, that flip between clean structured data and silent breakage is exactly what pushed us to build this.
To your questions: fetch is synchronous per call, live data every time, no caching, averages around 3.2s. We track average response time but haven't published p95 yet, can follow up with a real number if that matters for your use case.
On errors, we distinguish these on purpose: not_found means a real lookup ran and the target genuinely doesn't exist (still charged, it's real work). lookup_failed and 503 temporarily_unavailable mean something broke on our side, and those aren't charged. So you can tell "no results" from "scraper's having a bad day" without guessing.
And yes, MCP server just shipped, 150+ tools, works with Cursor and Claude out of the box.
@lukem121Β The error taxonomy is the right cut for agents β 503/lookup_failed = retry, not_found = terminal, so the loop branches without guessing. On the MCP server: how are you keeping 150+ tools from eating the agent's context window β namespacing, or lazy-loading the tool list? That's usually the first thing that bites at that count.
For the scraper API, how consistent is the response shape across TikTok, Instagram, YouTube, X, and LinkedIn? I can imagine developers using Social Fetch in AI workflow automation or marketing dashboards would care a lot about whether posts, profiles, comments, and metrics come back in a predictable schema, or if each platform has its own structure.
How does the pay-as-you-go pricing actually work for someone pulling data from multiple platforms at once? Like is each API call priced the same across TikTok, Instagram, and LinkedIn, or does it vary by endpoint and data type?
Social Fetch
@gllatalarnm2dΒ Good question. Pricing is flat across almost every endpoint, one credit per call, TikTok, Instagram, YouTube, X, whatever mix you're pulling. LinkedIn's the one exception at 2 credits, since that data's more work to fetch reliably. Everything else is uniform.
The thing that always bit me building social pipelines wasn't the fetch, it was completeness. 'Get the comments' really means 'get whatever the platform lets you cursor through right now,' and those caps move: Instagram would hand me the first few hundred then just stop, and an expired cursor mid-pagination left me either gaps or duplicate rows to dedupe by id. Does one call return a full set or a capped page, and do you flag truncated versus genuinely complete?
Finally tried Social Fetch for pulling TikTok comments and the latency was way better than what I was getting from a self-hosted scraper. Credits-based pricing makes it easy to experiment without committing to another monthly bill.
How do you handle rate limits or sudden platform changes on something like TikTok that tends to break scrapers pretty fast?
Finally got around to testing Social Fetch and the TikTok transcript endpoint was the standout for me, it returned clean captions way faster than the DIY scraper I was patching together. Pay-as-you-go credits also make it painless to spin up for a side project without committing to a monthly plan.
How does it handle rate limits across platforms like TikTok and Instagram when you're pulling a high volume of profiles and posts at the same time?
Social Fetch
@doanlwbrΒ No enforced rate limits or RPS caps on the metered routes, your limit is really your credit balance rather than a request ceiling. We'd suggest staying under about 500 concurrent requests for best reliability. But you're more than welcome to push it to its limits πͺπ»
Gave the API a quick spin and was impressed that the transcript endpoint came back with timestamps already cleaned up, which saved me a chunk of preprocessing. Pay-as-you-go credits feel fair for testing too.