SKILL.md
Social Media Scraping with StableSocial
Scrape profiles, posts, comments, followers, and search across 20+ platforms: TikTok, Instagram, YouTube, LinkedIn, X/Twitter, Facebook, Reddit, GitHub, Rumble, Threads, Bluesky, Pinterest, Twitch, Spotify, and more — plus ad libraries and a UGC research agent (Lightreel). All endpoints cost $0.06 per call.
Three endpoint families:
- Legacy platform endpoints (
/api/tiktok/,/api/instagram/,/api/facebook/,/api/reddit/) — profiles, posts, comments, followers, search - Scrape Creators suite (
/api/sc/*) — much broader platform and data coverage, including transcripts, ad libraries, and niche platforms - Lightreel UGC research agent (
/api/lightreel/*) — durable-job research tasks (hooks, trends, creator search, scripts, briefs)
Setup
See [rules/getting-started.md](rules/getting-started.md) for installation and wallet setup.
Notes
Use npx agentcash@latest fetch for paid POST triggers. Use npx agentcash@latest fetch for free GET polling.
IMPORTANT: Use exact endpoint paths from the Quick Reference tables below. All paths include a platform prefix (e.g. https://stablesocial.dev/api/tiktok/...).
How It Works: Async Two-Step Flow
Every request follows a trigger-then-poll pattern:
Step 1: Trigger (paid, $0.06)
npx agentcash@latest fetch https://stablesocial.dev/api/instagram/profile -m POST -b '{"handle": "natgeo"}'
Returns 202 Accepted with a durable job ID, poll URL, and legacy JWT token:
{"jobId": "abc123", "status": "pending", "pollUrl": "https://stablesocial.dev/api/jobs/abc123", "token": "eyJhbGciOiJIUzI1NiIs..."}
Step 2: Poll (free)
Poll the durable job by ID (requires SIWX wallet auth from the paying wallet — the agentcash CLI handles this automatically):
npx agentcash@latest fetch https://stablesocial.dev/api/jobs/abc123
Or poll with the legacy token (no wallet auth needed):
npx agentcash@latest fetch "https://stablesocial.dev/api/jobs?token=eyJhbGciOiJIUzI1NiIs..."
{"status": "pending"}— poll again in 3-5 seconds{"status": "finished", "data": {...}}— data is ready{"status": "failed", "error": "..."}— collection failed (not charged)
Tokens expire after 30 minutes; durable jobs remain pollable by jobId. Jobs typically finish in 5-60 seconds (Lightreel jobs can take longer). GET /api/jobs (no token) lists your durable jobs.
Quick Reference — TikTok
| Task | Endpoint | Depends On |
|---|---|---|
| Get profile | https://stablesocial.dev/api/tiktok/profile |
— |
| Get posts | https://stablesocial.dev/api/tiktok/posts |
profile |
| Post comments | https://stablesocial.dev/api/tiktok/post-comments |
posts |
| Comment replies | https://stablesocial.dev/api/tiktok/comment-replies |
post-comments |
| Followers | https://stablesocial.dev/api/tiktok/followers |
profile |
| Following | https://stablesocial.dev/api/tiktok/following |
profile |
| Search posts | https://stablesocial.dev/api/tiktok/search |
— |
| Search hashtag | https://stablesocial.dev/api/tiktok/search-hashtag |
— |
| Search profiles | https://stablesocial.dev/api/tiktok/search-profiles |
— |
| Search by music | https://stablesocial.dev/api/tiktok/search-music |
— |
Input: {"handle": "username"} for profile/posts/followers. {"query": "keyword"} for search.
Quick Reference — Instagram
| Task | Endpoint | Depends On |
|---|---|---|
| Get profile | https://stablesocial.dev/api/instagram/profile |
— |
| Get posts | https://stablesocial.dev/api/instagram/posts |
profile |
| Post comments | https://stablesocial.dev/api/instagram/post-comments |
posts |
| Comment replies | https://stablesocial.dev/api/instagram/comment-replies |
post-comments |
| Followers | https://stablesocial.dev/api/instagram/followers |
profile |
| Following | https://stablesocial.dev/api/instagram/following |
profile |
| Stories | https://stablesocial.dev/api/instagram/stories |
profile |
| Highlights | https://stablesocial.dev/api/instagram/highlights |
profile |
| Search posts | https://stablesocial.dev/api/instagram/search |
— |
| Search tags | https://stablesocial.dev/api/instagram/search-tags |
— |
Input: {"handle": "username"} for profile/posts/followers. {"query": "keyword"} for search.
Quick Reference — Facebook
| Task | Endpoint | Depends On |
|---|---|---|
| Get profile | https://stablesocial.dev/api/facebook/profile |
— |
| Get posts | https://stablesocial.dev/api/facebook/posts |
profile |
| Post comments | https://stablesocial.dev/api/facebook/post-comments |
posts |
| Comment replies | https://stablesocial.dev/api/facebook/comment-replies |
post-comments |
| Followers | https://stablesocial.dev/api/facebook/followers |
profile |
| Following | https://stablesocial.dev/api/facebook/following |
profile |
| Search posts | https://stablesocial.dev/api/facebook/search |
— |
| Search people | https://stablesocial.dev/api/facebook/search-people |
— |
| Search pages | https://stablesocial.dev/api/facebook/search-pages |
— |
| Search groups | https://stablesocial.dev/api/facebook/search-groups |
— |
Input: {"handle": "username"} or {"profile_id": "id"} for profile. {"query": "keyword"} for search.
Quick Reference — Reddit
| Task | Endpoint | Depends On |
|---|---|---|
| Get post | https://stablesocial.dev/api/reddit/post |
— |
| Post comments | https://stablesocial.dev/api/reddit/post-comments |
post |
| Get comment | https://stablesocial.dev/api/reddit/comment |
— |
| Search posts | https://stablesocial.dev/api/reddit/search |
— |
| Search profiles | https://stablesocial.dev/api/reddit/search-profiles |
— |
| Subreddit posts | https://stablesocial.dev/api/reddit/subreddit |
— |
Input: {"post_id": "id"} for post details. {"query": "keyword"} for search. {"subreddit": "name"} for subreddit.
Quick Reference — Scrape Creators Suite (/api/sc/*)
A larger, newer suite (~155 endpoints, all $0.06, same trigger-then-poll flow) covering many more platforms and data types. Coverage by platform:
| Platform | Base path | Coverage highlights |
|---|---|---|
| TikTok | https://stablesocial.dev/api/sc/tiktok/... |
profile, videos, video transcripts, comments/replies, followers/following, audience demographics, search (users/hashtag/keyword/top), trending feed, popular creators/hashtags, songs, Shop products/reviews |
https://stablesocial.dev/api/sc/instagram/... |
profile, posts, reels, post/reel info, media transcripts, comments, highlights, hashtag/profile/reels search, trending reels | |
| YouTube | https://stablesocial.dev/api/sc/youtube/... |
channel details/videos/playlists/lives/shorts/community posts, video details, transcripts, sponsors, comments/replies, search, trending shorts |
https://stablesocial.dev/api/sc/linkedin/... |
person profile (pass a linkedin.com/in/... URL), company page/posts, post details/transcript, search posts, ads search/details | |
https://stablesocial.dev/api/sc/facebook/... |
profile, posts/reels/photos, post transcript, comments/replies, group posts, Ad Library (search/details/transcript/company ads), Marketplace (search/item/location), Events (search/details) | |
| X/Twitter | https://stablesocial.dev/api/sc/twitter/... |
profile, user tweets, tweet details/transcript, communities |
https://stablesocial.dev/api/sc/reddit/... |
subreddit details/posts/search, post comments/transcript, search | |
| GitHub | https://stablesocial.dev/api/sc/github/... |
user, repositories, PRs, activity, followers/following, contributions, repository, trending repos/developers |
| Rumble | https://stablesocial.dev/api/sc/rumble/... |
search, channel videos, video, transcript, comments |
| Ad libraries | .../api/sc/tiktok/ad-library/..., .../api/sc/google/..., .../api/sc/linkedin/ads/... |
TikTok Ad Library search/ad, Google company ads/ad details/advertiser search, LinkedIn ads |
| Others | https://stablesocial.dev/api/sc/... |
Truth Social, Threads, Bluesky, Pinterest, Twitch, Spotify, SoundCloud, Kwai, Kick, Snapchat, Google Search, Amazon Shop, link-in-bio pages (Linktree, Komi, Pillar, Linkbio, Linkme), age/gender detection |
Representative examples:
npx agentcash@latest fetch https://stablesocial.dev/api/sc/tiktok/profile -m POST -b '{"handle": "username"}'
npx agentcash@latest fetch https://stablesocial.dev/api/sc/youtube/video/transcript -m POST -b '{"url": "https://youtube.com/watch?v=..."}'
npx agentcash@latest fetch https://stablesocial.dev/api/sc/linkedin/profile -m POST -b '{"url": "https://linkedin.com/in/someone"}'
npx agentcash@latest fetch https://stablesocial.dev/api/sc/facebook/adLibrary/search/ads -m POST -b '{"query": "brand name"}'
Input: varies per endpoint — many accept {"handle": ...} or an ID, some accept a full {"url": ...} (e.g. LinkedIn profile). Check the endpoint schema (npx agentcash@latest discover https://stablesocial.dev) when unsure.
Quick Reference — Lightreel UGC Research Agent (/api/lightreel/*)
An AI research agent for UGC/short-form content. All $0.06 per call; returns a durable job immediately — poll GET /api/jobs/{jobId}. Jobs are research tasks and can take minutes, not seconds.
| Task | Endpoint |
|---|---|
| Ask the agent anything | https://stablesocial.dev/api/lightreel/chat |
| Top-performing hooks | https://stablesocial.dev/api/lightreel/top-hooks |
| UGC video search | https://stablesocial.dev/api/lightreel/video-search |
| Creator search (incl. contact info) | https://stablesocial.dev/api/lightreel/creator-search |
| Content trends | https://stablesocial.dev/api/lightreel/trends |
| Account audit/feedback | https://stablesocial.dev/api/lightreel/account-feedback |
| Competitor strategy | https://stablesocial.dev/api/lightreel/competitor-strategy |
| Script ideas | https://stablesocial.dev/api/lightreel/script-ideas |
| Video ideas | https://stablesocial.dev/api/lightreel/video-ideas |
| Video/draft feedback | https://stablesocial.dev/api/lightreel/video-feedback |
| UGC brief | https://stablesocial.dev/api/lightreel/ugc-brief |
| Content calendar | https://stablesocial.dev/api/lightreel/content-calendar |
| Brand mentions | https://stablesocial.dev/api/lightreel/brand-mentions |
| Creator performance | https://stablesocial.dev/api/lightreel/creator-performance |
Input: /chat takes {"question": "..."} (required), optional conversationid to continue a conversation and responsefields (up to 5 fields, type string or array) for structured output. Task endpoints take task-specific fields — e.g. /top-hooks takes {"topic": "..."} (required) plus optional timeframe, platform, maxhooks, conversationid.
npx agentcash@latest fetch https://stablesocial.dev/api/lightreel/top-hooks -m POST -b '{"topic": "skincare UGC ads"}'
Free SIWX-authed extras: GET /api/lightreel/chats lists your Lightreel chats; GET /api/lightreel/chat/{conversationId} fetches a transcript (must be the wallet that paid).
Data Dependencies
Some endpoints require a prior collection. For example, to get followers you must first trigger the profile:
# 1. Trigger profile collection
npx agentcash@latest fetch https://stablesocial.dev/api/instagram/profile -m POST -b '{"handle": "natgeo"}'
# Poll until finished...
# 2. Now fetch followers (depends on profile)
npx agentcash@latest fetch https://stablesocial.dev/api/instagram/followers -m POST -b '{"handle": "natgeo"}'
# Poll until finished...
Pagination
When results are paginated, the response includes pageinfo.hasnext_page and a cursor. Pass the cursor to fetch the next page (each page is a new paid POST):
npx agentcash@latest fetch https://stablesocial.dev/api/tiktok/followers -m POST -b '{"handle": "username", "cursor": "abc123"}'
Key Parameters
handle/profile_id— target accountmaxpagesize— results per page (default varies, max 100)max_followers— how many followers to collect (default 500)maxposts/maxresults— item limits (default 50)cursor— pagination cursor from previous responseorderby— sort order:datedesc,dateasc,iddesc
Workflows
Profile Deep Dive
- (Optional) Check balance:
npx agentcash@latest balance - Trigger profile collection
- Poll until finished
- Trigger posts collection
- Poll until finished
- Optionally fetch comments, followers
Cross-Platform Search
- Search same keyword across multiple platforms
- Compare results and synthesize findings
npx agentcash@latest fetch https://stablesocial.dev/api/instagram/search -m POST -b '{"query": "brand name"}'
npx agentcash@latest fetch https://stablesocial.dev/api/tiktok/search -m POST -b '{"query": "brand name"}'
npx agentcash@latest fetch https://stablesocial.dev/api/reddit/search -m POST -b '{"query": "brand name"}'
Influencer Analysis
- Get profile on target platform
- Fetch recent posts with engagement
- Get follower list for audience analysis
- Check comments for sentiment
Competitive Intelligence
- Search for competitor on target platform
- Get competitor posts and engagement
- Monitor competitor mentions across platforms
- Analyze audience sentiment via comments
npx agentcash@latest fetch https://stablesocial.dev/api/instagram/profile -m POST -b '{"handle": "competitor"}'
npx agentcash@latest fetch https://stablesocial.dev/api/reddit/search -m POST -b '{"query": "competitor name"}'
Cost Estimation
All endpoints are $0.06 per trigger call. Polling is free.
| Task | Calls | Cost |
|---|---|---|
| Single profile | 1 | $0.06 |
| Profile + posts | 2 | $0.12 |
| Full profile deep dive | 4-6 | $0.24-0.36 |
| Cross-platform search (3 platforms) | 3 | $0.18 |
| Competitor analysis | 4-8 | $0.24-0.48 |
vs social-intelligence Skill
The social-intelligence skill uses Reddit (stableenrich.dev). Use it for quick Reddit post lookups and discussions.
Use social-scraping (this skill) when you need:
- TikTok, Instagram, YouTube, LinkedIn, X/Twitter, Facebook, Reddit, GitHub, or other platform data (beyond basic Reddit search)
- Profiles, followers, following — not just search
- Comments, replies, reactions, transcripts on posts and videos
- Ad libraries, Marketplace, Events data
- UGC research (hooks, trends, creators, scripts) via Lightreel
- Cross-platform research