ScrapeCreators API
ScrapeCreators provides 100+ REST endpoints to scrape public data from 20+ social media platforms. One API key, one header, simple curl requests.
Quick start
Authentication
Every request needs a single header:
CODEBLOCK0
Get your key at https://scrapecreators.com (100 free credits on signup, no card required).
Store the key in an environment variable so it stays out of scripts and doesn't end up in version control or chat history:
CODEBLOCK1
Your first request
CODEBLOCK2
That's the whole pattern. Every endpoint works the same way: GET request, query parameters, one auth header.
Base URL
CODEBLOCK3
How credits work
- - Most endpoints: 1 request = 1 credit
- A few specialized endpoints cost more (e.g., audience demographics = 26 credits)
- Credits never expire, no monthly commitment
- Most responses include a
credits_remaining field - Check credit costs per endpoint in the docs: https://docs.scrapecreators.com
Common parameters
These work across most endpoints:
| Parameter | Description |
|---|
| INLINECODE2 | Returns a trimmed, smaller response — keeps context window manageable and saves tokens when you only need key fields like names, stats, and IDs |
| INLINECODE3 |
Pagination cursor returned in previous response — pass it to get the next page. Each page costs 1 credit, so only paginate if the user needs more results. Note: the v3 TikTok profile/videos endpoint uses
max_cursor instead of
cursor |
|
includeExtras=true | Returns additional fields (like counts, descriptions) on YouTube endpoints — without this, channel-videos only returns titles and IDs |
|
sort_by | Sort results — values depend on endpoint (e.g.,
popular,
relevance,
total_impressions,
recency). Check the platform reference for valid values per endpoint, since passing an invalid value returns a 400 error |
Pagination
Many endpoints return paginated results. The pattern is:
- 1. Make the first request without a cursor
- The response includes a
cursor (or next_cursor or next_page_id) field - Pass that value as
?cursor=... in the next request - Repeat until cursor is null/empty
CODEBLOCK4
Some v2 endpoints require manual pagination — check the platform reference for specifics.
Supported platforms and endpoints
Each platform has its own reference file with full endpoint details. Read the relevant one based on the user's request.
| Platform | Reference file | Key endpoints |
|---|
| TikTok | INLINECODE16 | Profile, videos, comments, search, trending, shop, songs, transcripts, live, followers/following, audience demographics |
| Instagram |
references/instagram.md | Profile, posts, reels, comments, search reels, transcripts, story highlights, embed |
| YouTube |
references/youtube.md | Video details, channel info, channel videos, shorts, search, transcripts |
| Twitter/X |
references/twitter.md | Profile, community, community tweets |
| LinkedIn |
references/linkedin.md | Person profile, company page, company posts, post details, ad library search, ad details |
| Facebook |
references/facebook.md | Posts, comments, reels, ad library, transcripts, group posts, profile |
| Reddit |
references/reddit.md | Profile, subreddit details/posts/search, post comments, search, ad library |
| Other platforms |
references/other-platforms.md | Pinterest, Threads, Bluesky, Snapchat, Twitch, Kick, Truth Social, Google (ads + search), link-in-bio platforms (Linktree, Komi, Pillar, Linkbio, Linkme), Amazon Shop |
Making requests: the pattern
Every call follows the same shape. Always use -G with --data-urlencode to safely pass query parameters — this prevents shell injection from user-provided values (handles, search queries, URLs) and properly encodes special characters:
CODEBLOCK5
Pipe through jq to format the JSON, or through jq '.some.field' to extract specific data. Using jq is important because raw API responses are often large nested JSON — extracting just the fields the user needs makes the output readable and keeps your context window clean.
Chaining requests
A common pattern is to fetch a profile first (to confirm the account exists and get IDs), then drill into their content:
CODEBLOCK6
Saving results
CODEBLOCK7
Processing and analyzing scraped data
After fetching data, here are common analysis patterns:
Extract key metrics
CODEBLOCK8
Aggregate across posts
CODEBLOCK9
Get video transcripts for content analysis
CODEBLOCK10
Search and filter
CODEBLOCK11
Important notes
- - Public data only — the API scrapes publicly available information. No private accounts or DMs.
- No rate limits — run as many concurrent requests as needed.
- 29-second timeout — requests that take longer will time out (AWS Lambda limit). Most complete in ~3 seconds.
- AI transcript limit — videos over 2 minutes that need AI-generated transcripts won't return transcripts. YouTube transcripts have their own dedicated endpoint and are unaffected.
- Versioned endpoints — some endpoints have moved beyond v1: TikTok profile videos is now v3 (uses
max_cursor instead of cursor), TikTok video info is v2, Instagram user posts / reels search / post comments are v2. Check the platform reference files for current versions. - Response format — all responses are JSON. Use
trim=true to reduce payload size when you only need key fields.
Error handling
If a request fails:
- 1. Check the HTTP status code
- The response body usually contains an error message
- Common issues: invalid API key (401), endpoint not found (404), timeout on slow requests (502/503)
CODEBLOCK12
Choosing the right endpoint
When the user describes what they need, match it to the right platform and endpoint:
- - "Get info about a creator/account" → INLINECODE32
- "Get their posts/videos/content" →
/{platform}/profile/videos (TikTok) or /{platform}/channel-videos (YouTube) or /{platform}/user/posts (Instagram) or /{platform}/posts (Facebook) - "Get comments on a post" →
/{platform}/video/comments or INLINECODE38 - "Search for content about X" →
/{platform}/search/keyword (TikTok) or /{platform}/search (others) - "Get the transcript of a video" →
/{platform}/video/transcript (TikTok/YouTube) or /v2/instagram/media/transcript (Instagram) or /facebook/transcript (Facebook) - "Who follows them / who do they follow" →
/{platform}/user/followers or INLINECODE45 - "What's trending" →
/tiktok/videos/popular, /tiktok/get-trending-feed, INLINECODE48 - "Find ads by a company" →
/facebook/adLibrary/search/ads, /linkedin/ads/search, /google/company/ads, or INLINECODE52 - "Get product details from TikTok Shop" →
/tiktok/product, INLINECODE54
When in doubt, check the platform reference file for the full endpoint list.
Full API docs
For the complete interactive documentation with response schemas and playground: https://docs.scrapecreators.com
ScrapeCreators API
ScrapeCreators 提供100多个REST端点,用于从20多个社交媒体平台抓取公开数据。一个API密钥,一个请求头,简单的curl请求。
快速开始
身份验证
每个请求都需要一个请求头:
x-api-key: YOURAPIKEY
在 https://scrapecreators.com 获取您的密钥(注册即送100免费积分,无需信用卡)。
将密钥存储在环境变量中,这样它就不会出现在脚本中,也不会出现在版本控制或聊天记录中:
bash
export SCRAPECREATORSAPIKEY=your-key-here
您的第一个请求
bash
curl -s -G https://api.scrapecreators.com/v1/tiktok/profile \
--data-urlencode handle=khaby.lame \
-H x-api-key: $SCRAPECREATORSAPIKEY | jq .
这就是完整的模式。每个端点的工作方式相同:GET请求、查询参数、一个认证请求头。
基础URL
https://api.scrapecreators.com
积分如何运作
- - 大多数端点:1个请求 = 1积分
- 少数专用端点消耗更多积分(例如,受众人口统计 = 26积分)
- 积分永不过期,无需月度承诺
- 大多数响应包含credits_remaining字段
- 在文档中查看每个端点的积分成本:https://docs.scrapecreators.com
通用参数
这些参数适用于大多数端点:
| 参数 | 描述 |
|---|
| trim=true | 返回精简后的较小响应——保持上下文窗口可控,当您只需要名称、统计数据和ID等关键字段时节省令牌 |
| cursor |
前一个响应中返回的分页游标——传递它以获取下一页。每页消耗1积分,因此仅在用户需要更多结果时才进行分页。注意:v3 TikTok个人资料/视频端点使用max_cursor代替cursor |
| includeExtras=true | 在YouTube端点上返回额外字段(如计数、描述)——没有此参数,频道视频仅返回标题和ID |
| sort
by | 排序结果——值取决于端点(例如,popular、relevance、totalimpressions、recency)。查看平台参考以获取每个端点的有效值,因为传递无效值会返回400错误 |
分页
许多端点返回分页结果。模式如下:
- 1. 不带游标发出第一个请求
- 响应包含cursor(或nextcursor或nextpage_id)字段
- 在下一个请求中传递该值作为?cursor=...
- 重复直到游标为null/空
bash
第一页
curl -s -G https://api.scrapecreators.com/v3/tiktok/profile/videos \
--data-urlencode handle=khaby.lame \
-H x-api-key: $SCRAPECREATORS
APIKEY | jq .
下一页(使用前一个响应中的max_cursor)
curl -s -G https://api.scrapecreators.com/v3/tiktok/profile/videos \
--data-urlencode handle=khaby.lame \
--data-urlencode max
cursor=CURSORVALUE \
-H x-api-key: $SCRAPECREATORS
APIKEY | jq .
某些v2端点需要手动分页——查看平台参考以了解具体情况。
支持的平台和端点
每个平台都有自己的参考文件,包含完整的端点详情。根据用户的请求阅读相应的文件。
| 平台 | 参考文件 | 关键端点 |
|---|
| TikTok | references/tiktok.md | 个人资料、视频、评论、搜索、趋势、商店、歌曲、转录、直播、粉丝/关注、受众人口统计 |
| Instagram |
references/instagram.md | 个人资料、帖子、Reels、评论、搜索Reels、转录、故事精选、嵌入 |
| YouTube | references/youtube.md | 视频详情、频道信息、频道视频、Shorts、搜索、转录 |
| Twitter/X | references/twitter.md | 个人资料、社区、社区推文 |
| LinkedIn | references/linkedin.md | 个人资料、公司页面、公司帖子、帖子详情、广告库搜索、广告详情 |
| Facebook | references/facebook.md | 帖子、评论、Reels、广告库、转录、群组帖子、个人资料 |
| Reddit | references/reddit.md | 个人资料、子版块详情/帖子/搜索、帖子评论、搜索、广告库 |
| 其他平台 | references/other-platforms.md | Pinterest、Threads、Bluesky、Snapchat、Twitch、Kick、Truth Social、Google(广告+搜索)、个人简介链接平台(Linktree、Komi、Pillar、Linkbio、Linkme)、Amazon Shop |
发起请求:模式
每个调用都遵循相同的格式。始终使用-G配合--data-urlencode来安全地传递查询参数——这可以防止用户提供的值(用户名、搜索查询、URL)导致的shell注入,并正确编码特殊字符:
bash
curl -s -G https://api.scrapecreators.com/v1/{platform}/{endpoint} \
--data-urlencode param=value \
-H x-api-key: $SCRAPECREATORSAPIKEY
通过管道传递给jq来格式化JSON,或通过jq .some.field来提取特定数据。使用jq很重要,因为原始API响应通常是大型嵌套JSON——仅提取用户需要的字段可以使输出可读,并保持您的上下文窗口干净。
链式请求
一个常见的模式是先获取个人资料(以确认账户存在并获取ID),然后深入其内容:
bash
1. 获取个人资料
PROFILE=$(curl -s -G https://api.scrapecreators.com/v1/tiktok/profile \
--data-urlencode handle=creator_name \
-H x-api-key: $SCRAPECREATORS
APIKEY)
2. 获取其最近的帖子
POSTS=$(curl -s -G https://api.scrapecreators.com/v3/tiktok/profile/videos \
--data-urlencode handle=creator_name \
-H x-api-key: $SCRAPECREATORS
APIKEY)
3. 获取特定视频的评论(从帖子中提取视频ID)
VIDEO
ID=$(echo $POSTS | jq -r .awemelist[0].aweme_id)
COMMENTS=$(curl -s -G https://api.scrapecreators.com/v1/tiktok/video/comments \
--data-urlencode video
id=$VIDEOID \
-H x-api-key: $SCRAPECREATORS
APIKEY)
保存结果
bash
保存原始JSON
curl -s -G https://api.scrapecreators.com/v1/instagram/profile \
--data-urlencode handle=natgeo \
-H x-api-key: $SCRAPECREATORS
APIKEY > natgeo_profile.json
保存为CSV(使用jq提取特定字段)
curl -s -G https://api.scrapecreators.com/v3/tiktok/profile/videos \
--data-urlencode handle=creator \
-H x-api-key: $SCRAPECREATORS
APIKEY \
| jq -r .aweme
list[] | [.awemeid, .desc, .statistics.play
count, .statistics.diggcount] | @csv \
> creator_posts.csv
处理和分析抓取的数据
获取数据后,以下是常见的分析模式:
提取关键指标
bash
从个人资料获取互动统计
curl -s -G https://api.scrapecreators.com/v1/tiktok/profile \
--data-urlencode handle=creator \
-H x-api-key: $SCRAPECREATORS
APIKEY \
| jq {followers: .statsV2.followerCount, following: .statsV2.followingCount, likes: .statsV2.heartCount}
跨帖子聚合
bash
最近帖子的平均互动
curl -s -G https://api.scrapecreators.com/v3/tiktok/profile/videos \
--data-urlencode handle=creator \
-H x-api-key: $SCRAPECREATORS
APIKEY \
| jq [.aweme
list[] | .statistics.diggcount] | (add / length)
获取视频转录用于内容分析
bash
获取TikTok视频的转录
curl -s -G https://api.scrapecreators.com/v1/tiktok/video/transcript