CLI
CLI for the ScrapeCreators API — scrape 27+ social media platforms from the terminal or as an MCP server for AI agents. 110+ endpoints. One command.
Install
npm install -g @scrapecreators/cliOr run without installing:
npx @scrapecreators/cli tiktok profile --handle charlidamelio --api-key YOUR_KEYQuick Start
- Get your API key at app.scrapecreators.com or sign up with GitHub below
- Authenticate:
scrapecreators auth login - Make your first request:
scrapecreators tiktok profile --handle charlidamelio - Explore what's available:
scrapecreators list
Authentication
Three ways to authenticate, in priority order:
| Priority | Method | Example |
|---|---|---|
| 1 | --api-key flag | scrapecreators tiktok profile --handle x --api-key YOUR_KEY |
| 2 | Stored config | scrapecreators auth login (saves to ~/.config/scrapecreators/) |
| 3 | Environment variable | export SCRAPECREATORS_API_KEY=YOUR_KEY |
Security note: The --api-key flag is visible in shell history and process lists. For persistent use, prefer scrapecreators auth login or the environment variable. In CI/automated pipelines, always use the environment variable.
Sign up with GitHub
New users can sign up from a terminal or AI agent without creating a password. The GitHub device flow includes 10,000 free API calls and does not require a credit card. You authorize with a short code, so you never share your GitHub password with the CLI or agent.
This flow is separate from the local gh CLI. Do not read or send a local gh auth token.
1. Start the device flow
curl -sS -X POST "https://api.scrapecreators.com/v1/github/device/code" \
-H "content-type: application/json" \
-d '{}'The response includes device_code, user_code, verification_uri, interval, and expires_in. Open the verification URL and enter the short user code.
2. Poll for authorization
curl -sS -X POST "https://api.scrapecreators.com/v1/github/device/token" \
-H "content-type: application/json" \
-d '{"device_code":"YOUR_DEVICE_CODE"}'Wait at least the returned interval between requests. Keep polling on authorization_pending, increase the interval on slow_down, and stop on expired_token or access_denied. A completed authorization returns an access token.
3. Get your ScrapeCreators API key
ACCESS_TOKEN="value returned by the token endpoint"
curl -sS "https://api.scrapecreators.com/v1/github/device/profile" \
-H "Authorization: Bearer ${ACCESS_TOKEN}"The response includes your api_key. Save it with scrapecreators auth login or set it as SCRAPECREATORS_API_KEY. Then run scrapecreators balance to verify the key.
For agents: Ask before opening the GitHub page. Show the user only the user code and verification URL. Keep the device code, access token, and API key out of chat and logs. Do not claim signup succeeded until the balance check passes. If GitHub authorizes but the profile response has no API key, the account may already be linked. Ask the user to sign in at app.scrapecreators.com and retrieve the existing key.
Usage
Every API endpoint is a subcommand under its platform:
scrapecreators <platform> <action> [--params]Examples:
# profiles
scrapecreators instagram profile --handle jane
scrapecreators tiktok profile --handle charlidamelio
scrapecreators youtube channel --handle ThePatMcAfeeShow
# content feeds
scrapecreators tiktok profile-videos --handle charlidamelio --sort-by popular
scrapecreators instagram user-posts --handle jane
scrapecreators instagram user-reels --handle jane
# single post/video
scrapecreators instagram post --url "https://www.instagram.com/reel/DOq6eV6iIgD"
scrapecreators tiktok video --url "https://www.tiktok.com/@user/video/123"
# search
scrapecreators youtube search --query "tutorials"
scrapecreators instagram reels-search --query "dogs"
scrapecreators reddit search --query "best programming languages"Discover Endpoints
# list all platforms
scrapecreators list
# list endpoints for a specific platform
scrapecreators list tiktok
# see full help for any endpoint
scrapecreators tiktok profile --helpInteractive Mode
Run with no arguments to get a guided walkthrough:
scrapecreatorsWalks you through: pick platform → pick action → fill params → execute.
Commands Reference
| Command | Description |
|---|---|
scrapecreators <platform> <action> | Call any API endpoint |
scrapecreators list [platform] | List available platforms or endpoints |
scrapecreators auth login | Set your API key (interactive) |
scrapecreators auth status | Show current auth status |
scrapecreators auth logout | Remove stored API key |
scrapecreators balance | Check credit balance |
scrapecreators config set <key> <value> | Set a config value |
scrapecreators config get <key> | Get a config value |
scrapecreators config list | Show all config values |
scrapecreators agent add <target> | Write MCP config into an agent (cursor, claude, codex) |
Run any command with --help for full usage details.
Output & Options
The CLI auto-detects whether output goes to a terminal or a pipe:
# default: compact JSON
scrapecreators tiktok profile --handle charlidamelio
# pretty-printed JSON
scrapecreators tiktok profile --handle charlidamelio --pretty
# pipe to jq
scrapecreators tiktok profile --handle charlidamelio | jq '.stats'
# table format
scrapecreators tiktok profile --handle charlidamelio --format table
# csv (full dump — all fields)
scrapecreators tiktok profile --handle charlidamelio --format csv > output.csv
# csv clean (noisy fields removed — spreadsheet-friendly)
scrapecreators tiktok profile --handle charlidamelio --format csv --clean > output.csv
# clean json (strips booleans, empty values, settings)
scrapecreators tiktok profile --handle charlidamelio --clean
# save to file, print only the file path
scrapecreators tiktok profile-videos --handle charlidamelio --output ./data.jsonAll status messages (spinners, warnings) go to stderr. Data goes to stdout. Safe for piping.
| Flag | Description |
|---|---|
--api-key <key> | Override API key for this request |
--format <fmt> | Output format: json, table, csv, markdown |
--json | Compact JSON (default) |
--pretty | Pretty-print JSON with indentation |
--output <path> | Save response to file, print only the path |
--clean | Strip noisy fields (booleans, empty values, settings). Works with any format |
--no-color | Disable ANSI colors |
--verbose | Show request URL, timing, status code |
AI Agent Integration
The CLI is designed agent-first. All 110+ endpoints are also available as an MCP server — no CLI installation required for agents.
MCP Server
Add to your agent's MCP config manually:
{
"mcpServers": {
"scrapecreators": {
"url": "https://api.scrapecreators.com/mcp",
"headers": {
"x-api-key": "your-key-here"
}
}
}
}Or auto-configure with the CLI:
scrapecreators agent add cursor # writes .cursor/mcp.json
scrapecreators agent add claude # writes ~/.claude/claude_desktop_config.json
scrapecreators agent add codex # writes ~/.codex/mcp.jsonMerges into existing config without overwriting other MCP servers. Prompts for API key if not already stored.
Agent Skill
Install the ScrapeCreators agent skill to teach agents how to pick the right endpoint, handle pagination, and manage credits:
npx skills add ScrapeCreators/social-media-research-skillsWorks with Cursor, Claude Code, Codex, GitHub Copilot, Gemini CLI, Windsurf, and 40+ other agents.
Agent-Optimized Output
The default output is already compact JSON — no extra flags needed. To reduce further:
# --clean: strip booleans, empty values, settings (keeps urls and stats)
scrapecreators tiktok profile --handle x --clean
# --output: save to file, return only the path
scrapecreators tiktok profile-videos --handle x --clean --output ./data.json
# stdout: ./data.jsonStructured errors for agents:
{
"error": true,
"code": "HTTP_401",
"message": "...",
"suggestion": "Run 'scrapecreators auth login'..."
}Known Limitations
- Handles: pass without
@. Usecharlidamelionot@charlidamelio - Hashtags: pass without
#. Usefypnot#fyp - Transcripts: video must be under 2 minutes
