Best Social Media Scrapers on Apify
The best Apify Actor per platform in 2026 (verified May 2026): Instagram, apify/instagram-scraper, from $1.50 / 1K (277K users, 4.7★). TikTok, clockworks/tiktok-scraper, $1.70 / 1K. X/Twitter, apidojo/tweet-scraper, from $0.40 / 1K tweets. Facebook, apify/facebook-posts-scraper, $2.00 / 1K. YouTube, streamers/youtube-scraper, $2.40 / 1K videos. Run each via the Apify API, normalize at ingest.
This is the cross-platform pick list. If you only need one platform, jump to the dedicated guide (best Instagram scrapers, best TikTok scrapers, best YouTube scrapers, or how to scrape Instagram for a tutorial). This page is for teams pulling from three or more networks and caring about unified output, not single-Actor deep dives.
One default per platform (verified May 2026)
Prices and stats pulled from each Actor page; verify the Pricing tab before scaling.
| Platform | Default pick | Users / rating | Pricing | Why this one |
|---|---|---|---|---|
apify/instagram-scraper | 277K / 4.7 | from $1.50 / 1K results | Official, highest Store usage, covers profiles + posts + reels + hashtags in one Actor, so fewer runs to wire up. See best Instagram scrapers for deeper comparison. | |
| TikTok | clockworks/tiktok-scraper | 185K / 4.7 | $1.70 / 1K results | Maintained continuously through TikTok layout changes; URL + search + hashtag modes in one schema. See best TikTok scrapers. |
| Twitter / X | apidojo/tweet-scraper | 57K / 3.9 | from $0.40 / 1K tweets | Cheapest per-tweet on the Store and fast (30 to 80 tweets/sec). Rating reflects strict free-tier limits; paid runs are stable. |
apify/facebook-posts-scraper | 74K / 4.5 | $2.00 / 1K posts | Official, public pages/posts only. Pair with apify/facebook-pages-scraper and apify/facebook-comments-scraper for a full surface. | |
| YouTube | streamers/youtube-scraper | 82K / 4.8 | $2.40 / 1K videos | Search + channel + video metadata + comments + transcripts in one Actor; see best YouTube scrapers if you need transcript-only at lower cost. |
trudax/reddit-scraper | 13K / 3.4 | $45/mo rental + usage | Usage-priced rental (≈$4 per 1K results). The sub-3.5 rating is mostly rental-model complaints, output is solid. No-login crawling of posts, comments, users, subreddits. | |
apimaestro/linkedin-profile-detail | 11K / 4.5 | $5.00 / 1K profiles | Profile-level only and legal-first. Do not run at scale without signed-off terms review. See best LinkedIn scrapers. |
Full Store lookup per platform: Instagram · TikTok · X · Facebook · YouTube · Reddit · LinkedIn.
Unified output schema
The reason to pick this page over seven separate ones is the downstream join. Raw Actor fields diverge (Instagram uses ownerUsername, TikTok uses authorMeta.name, Tweet Scraper uses author.userName, etc.). Normalize at ingest, not at query time:
{
"platform": "instagram|tiktok|x|facebook|youtube|reddit|linkedin",
"post_id": "string",
"post_url": "string",
"author_handle": "string",
"author_id": "string",
"posted_at": "ISO-8601",
"text": "string",
"media_urls": ["string"],
"metrics": { "likes": 0, "comments": 0, "shares": 0, "views": 0 },
"hashtags": ["string"],
"scraped_at": "ISO-8601",
"source_actor": "org/actor-name"
}
Keep the raw Actor object in a _raw column. Fields you don't map today you'll want next quarter.
Multi-platform orchestration pattern
Three rules beat any cleverness:
- One Actor run per platform, triggered in parallel via the Apify API. Chaining inside a single Actor run ties unrelated failures together.
- Poll
runs/{id}forSUCCEEDED, then fetchdatasets/{defaultDatasetId}/items. Retry 5xx with backoff; quarantine runs that exceed 2× expected duration. - Normalize at ingest (schema above), then write to your warehouse. Dedupe on
(platform, post_id): reruns are cheap; duplicate rows are not.
For no-code teams, the same fan-out works through n8n, Make, or Zapier: one branch per platform, a Merge node keyed on your shared schema, then the destination.
Cost-per-usable-row, not cost-per-row
Headline pricing lies because platforms return different densities of useful content:
- Tweet Scraper at $0.40/1K looks cheapest, but a profile sweep can return 90%+ retweets/replies if you don't filter. Expect ~$0.80 to $1.00 per 1K original posts after filtering.
- Reddit Scraper's rental fee breaks even around 12K results/month; under that, pay-per-result Actors win. See the Apify pricing guide for how rental vs PPR billing rolls up into your plan.
- YouTube at $2.40/1K videos is cheap for metadata, expensive if you're really after transcripts. Swap in a transcript-specific Actor from best YouTube scrapers.
- Instagram and Facebook bill different rates per event type (profile vs post vs comment). Model your real mix on a 100-row test before scaling. The Instagram scraper tutorial walks through a 100-row probe step by step.
Legal posture, in one paragraph
Public-only surfaces, no login bypass, no Actors you don't own the account for, and a documented purpose per dataset. LinkedIn and Facebook logged-in data are where contract and CFAA-style claims actually land. For those, get sign-off before a single run. Personal data triggers GDPR/CCPA regardless of platform; this page is not legal advice.
Create a free Apify account ($5 monthly platform credit) →
No. One account runs every Actor. Each Actor bills independently against your plan credits or card.
For small tests, yes. The $5 monthly credit covers a few thousand rows across Actors. Beyond that, the Starter ($29/mo) plan is the usual break-even for multi-platform monitoring.
Run both on a 100-row input set, diff the output fields, and compare failed URLs plus effective cost per kept row after filtering. Maintenance cadence (last release date on the Actor page) matters more than star rating.
Because every cross-platform question (share of voice, creator overlap, topic tracking) requires a join. Normalize once at ingest and joins become trivial; skip it and every dashboard becomes a bespoke ETL job.
LinkedIn and logged-in Facebook surfaces. Public YouTube, Reddit, X, and Instagram public profiles are lower risk but still require GDPR/CCPA discipline on personal data.
Common mistakes and fixes
Per-1k prices look similar but total runs diverge 3 to 5 times.
Compare per-event billing (profile vs post vs comment). Actors charge different events at different rates. Model your real mix, not the headline price.
Schemas drift between platforms, breaking downstream jobs.
Normalize to a shared schema at ingest (post_id, author_handle, posted_at, text, metrics{}, platform). Never query raw Actor output directly.
Orchestration over 3+ platforms times out or double-bills.
Fan out one Actor run per platform via the Apify API, poll for DEFAULT dataset URLs, then merge. Don't chain Actors inside a single run.



