Scrape social media profiles, posts, comments, followers, and search across 6 platforms via x402. USE FOR: - Getting TikTok, Instagram, X/Twitter, Facebook, Reddit, or LinkedIn profiles - Fetching a user's posts, stories, highlights, or videos - Getting comments, replies, and reactions on posts - Listing followers and following for any account - Searching posts, hashtags, profiles, jobs, and ads across platforms - Cross-platform social media research and monitoring TRIGGERS: - "tiktok", "instagram", "facebook", "linkedin profile", "linkedin posts" - "get followers", "who follows", "following list" - "scrape profile", "get posts from", "social media data" - "instagram stories", "tiktok videos", "facebook page" - "linkedin company", "linkedin jobs", "linkedin ads" - "cross-platform", "social media research" IMPORTANT: StableSocial uses an async two-step flow. Step 1: POST triggers data collection (paid, $0.06). Step 2: Poll GET /api/jobs?token=... until finished (free). All endpoints are $0.06 per call. Use `npx agentcash fetch` for paid POST triggers. Use `npx agentcash 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/...`).
Install with Tessl CLI
npx tessl i github:Merit-Systems/agentcash-skills --skill social-scraping18
Does it follow best practices?
If you maintain this skill, you can automatically optimize it using the tessl CLI to improve its score:
npx tessl skill review --optimize ./path/to/skillValidation for skill structure
Scrape profiles, posts, comments, followers, and search across TikTok, Instagram, X/Twitter, Facebook, Reddit, and LinkedIn. All endpoints cost $0.06 per call.
See rules/getting-started.md for installation and wallet setup.
Every request follows a trigger-then-poll pattern:
npx agentcash fetch https://stablesocial.dev/api/x/profile -m POST -b '{"handle": "elonmusk"}'Returns 202 Accepted with a JWT token:
{"token": "eyJhbGciOiJIUzI1NiIs..."}npx agentcash 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. Jobs typically finish in 5-60 seconds.
| 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.
| 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.
| Task | Endpoint | Depends On |
|---|---|---|
| Get profile | https://stablesocial.dev/api/x/profile | — |
| Get posts | https://stablesocial.dev/api/x/posts | profile |
| Post replies | https://stablesocial.dev/api/x/post-replies | posts |
| Post retweets | https://stablesocial.dev/api/x/post-retweets | posts |
| Quote tweets | https://stablesocial.dev/api/x/post-quotes | posts |
| Followers | https://stablesocial.dev/api/x/followers | profile |
| Following | https://stablesocial.dev/api/x/following | profile |
| Search posts | https://stablesocial.dev/api/x/search | — |
| Search profiles | https://stablesocial.dev/api/x/search-profiles | — |
Input: {"handle": "username"} for profile/posts/followers. {"query": "keyword"} for search.
| 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.
| 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.
| Task | Endpoint | Depends On |
|---|---|---|
| Member profile | https://stablesocial.dev/api/linkedin/profile | — |
| Member posts | https://stablesocial.dev/api/linkedin/posts | profile |
| Company profile | https://stablesocial.dev/api/linkedin/company | — |
| Company posts | https://stablesocial.dev/api/linkedin/company-posts | company |
| Post comments | https://stablesocial.dev/api/linkedin/post-comments | posts |
| Comment replies | https://stablesocial.dev/api/linkedin/comment-replies | post-comments |
| Post reactors | https://stablesocial.dev/api/linkedin/post-reactors | posts |
| Search posts | https://stablesocial.dev/api/linkedin/search-posts | — |
| Search jobs | https://stablesocial.dev/api/linkedin/search-jobs | — |
| Search members | https://stablesocial.dev/api/linkedin/search-members | — |
| Search companies | https://stablesocial.dev/api/linkedin/search-companies | — |
| Search ads | https://stablesocial.dev/api/linkedin/search-ads | — |
Input: {"member_id": "username"} for profile. {"company_id": "company"} for company. {"query": "keyword"} for search.
Some endpoints require a prior collection. For example, to get followers you must first trigger the profile:
# 1. Trigger profile collection
npx agentcash fetch https://stablesocial.dev/api/instagram/profile -m POST -b '{"handle": "natgeo"}'
# Poll until finished...
# 2. Now fetch followers (depends on profile)
npx agentcash fetch https://stablesocial.dev/api/instagram/followers -m POST -b '{"handle": "natgeo"}'
# Poll until finished...When results are paginated, the response includes page_info.has_next_page and a cursor. Pass the cursor to fetch the next page (each page is a new paid POST):
npx agentcash fetch https://stablesocial.dev/api/tiktok/followers -m POST -b '{"handle": "username", "cursor": "abc123"}'handle / profile_id / member_id / company_id — target accountmax_page_size — results per page (default varies, max 100)max_followers — how many followers to collect (default 500)max_posts / max_activities / max_results — item limits (default 50)cursor — pagination cursor from previous responseorder_by — sort order: date_desc, date_asc, id_descactivity_type — LinkedIn: posts, articles, documents, media, commentsreaction_type — LinkedIn: LIKE, CELEBRATE, SUPPORT, LOVE, INSIGHTFUL, FUNNYnpx agentcash wallet infonpx agentcash fetch https://stablesocial.dev/api/x/search -m POST -b '{"query": "brand name"}'
npx agentcash fetch https://stablesocial.dev/api/instagram/search -m POST -b '{"query": "brand name"}'
npx agentcash fetch https://stablesocial.dev/api/tiktok/search -m POST -b '{"query": "brand name"}'npx agentcash fetch https://stablesocial.dev/api/linkedin/company -m POST -b '{"company_id": "competitor"}'
npx agentcash fetch https://stablesocial.dev/api/linkedin/search-ads -m POST -b '{"query": "competitor name"}'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 |
The social-intelligence skill uses X/Twitter (Grok) and Reddit on stableenrich.dev ($0.02/call, synchronous). Use it for quick X/Twitter keyword searches and Reddit post lookups.
Use social-scraping (this skill) when you need:
fe3e7ab
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.