SocialCrawl API Documentation
One API key and one JSON shape for public data from every platform SocialCrawl covers. Your first call is on this page and takes under a second.
SocialCrawl returns public data from 65 platforms through 575 endpoints. Every request uses one x-api-key header, and every response comes back in the same JSON shape, so one parser covers every platform.
You do not need an account to try it. Press Run below. If you are signed in, your own API key is already filled into every sample on this page.
Make your first call
curl "https://www.socialcrawl.dev/v1/tiktok/profile?handle=charlidamelio" \ -H "x-api-key: YOUR_API_KEY"Replace YOUR_API_KEY with your key, or press Run to try it with a shared demo key (5 runs a day).
Three things just happened. You sent one GET request with one header. The platform answered in well under a second on a normal connection. The call cost 1 credit, and your balance came back in the same response, so you always know where you stand.
Get your API key
Create a free account for 100 credits and your own key, filled into every sample here.
Try it in the Explorer
Run any of the endpoints in the browser without writing code.
Same call, different platform
Change one path segment and the same request reads a different platform. Same header, same handle parameter, same response shape.
curl "https://www.socialcrawl.dev/v1/tiktok/profile?handle=nasa" \
-H "x-api-key: YOUR_API_KEY"
curl "https://www.socialcrawl.dev/v1/instagram/profile?handle=nasa" \
-H "x-api-key: YOUR_API_KEY"
curl "https://www.socialcrawl.dev/v1/youtube/channel?handle=nasa" \
-H "x-api-key: YOUR_API_KEY"
curl "https://www.socialcrawl.dev/v1/twitter/profile?handle=nasa" \
-H "x-api-key: YOUR_API_KEY"You do not learn four APIs. Field coverage differs where the platforms differ, and each endpoint's exact response shape is one free call away (see below).
Read the response
Every response, success or failure, has the same top level. The platform data is always under data.
{
"success": true,
"platform": "tiktok",
"endpoint": "/v1/tiktok/profile",
"data": {
"author": { "username": "nasa", "followers": 3900000 }
},
"credits_used": 1,
"credits_remaining": 99,
"request_id": "req-abc123",
"cached": false
}| Field | What to do with it |
|---|---|
success | Branch on this first. When it is false, error.type says what went wrong. |
data | The platform payload. Profile calls return author, list calls return items. |
credits_used | The net charge for this call. Cache hits and failures are 0. |
credits_remaining | Your balance after this call. No separate balance call needed. |
request_id | Quote it to support and we can see exactly what happened. |
List endpoints add a pagination block. Send next_cursor back as cursor and stop when has_more is false. That rule is the same on every list endpoint. See Pagination and Response schema.
When an endpoint supports a computed field and the required source inputs are present, the response also carries it under computed, for example engagement_rate. A field that cannot be computed is null, never a guess. See Computed fields.
Explore the catalogue for free
Every /v1/utility/* endpoint and /v1/credits/balance cost 0 credits. They answer in about 150 ms and are generated from the endpoint registry at request time, so they cannot drift from what is callable. Use them instead of reading 575 reference pages.
# Everything you need for a first call, in one JSON document
curl "https://www.socialcrawl.dev/v1/utility/quickstart?platform=instagram" \
-H "x-api-key: YOUR_API_KEY"
# Search every endpoint by keyword. Try "comments", "reviews", "transcript"
curl "https://www.socialcrawl.dev/v1/utility/endpoints?search=comments" \
-H "x-api-key: YOUR_API_KEY"
# The full guide for one endpoint: parameters, cost, paging, an example call
curl "https://www.socialcrawl.dev/v1/utility/endpoint?id=youtube/channel" \
-H "x-api-key: YOUR_API_KEY"
# Your balance
curl "https://www.socialcrawl.dev/v1/credits/balance" \
-H "x-api-key: YOUR_API_KEY"Hand it to your AI agent
If Claude, Cursor, ChatGPT, or another agent writes your code, give it the same catalogue. The MCP server and the Agent Skill both call it before every request, so the agent never guesses a path or a parameter. The Using an AI agent page has a prompt you can paste as it is.
# Claude Code (hosted MCP, nothing to install)
claude mcp add --transport http socialcrawl https://mcp.socialcrawl.dev/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
# Any MCP client, local package
npx -y socialcrawl-mcpEvery docs page is also plain Markdown: append .md to its URL. The machine index is at /llms.txt, the per-platform context is at /v1/utility/llms?platform=tiktok, and the full spec is at /v1/openapi.json. See AI agents and Skills and MCP.
What a call costs
New accounts start with 100 credits and no card. Most endpoints cost 1 credit. Cache hits cost 0. Failed calls and empty results are refunded automatically. Invalid parameters are rejected before billing.
| Tier | Cost | Endpoints | Typical use |
|---|---|---|---|
| Standard | 1 credit | 258 | Profiles, posts, comments, basic search |
| Advanced | 5 credits | 166 | Trending feeds, ad libraries, audience analytics |
| Premium | 10 credits | 19 | Video transcripts, LinkedIn people/job search |
A small set of endpoints has a flat or metered price instead of a tier. The exact figure for every endpoint is in Endpoint pricing and in the credits field of /v1/utility/endpoints. Rate limits are 600 requests per minute and 50 in flight per key. See Credits and Rate limits.
When something goes wrong
Errors use the same JSON shape with success: false. Branch on error.type, never on the message text. Every error carries a doc_url that links to the fix.
error.type | HTTP | Meaning and fix |
|---|---|---|
MISSING_API_KEY | 401 | No x-api-key header reached us. Add it, and check that a proxy is not stripping it. |
INVALID_API_KEY | 401 | The key is malformed, revoked, or unknown. Copy it again from the dashboard. |
INVALID_REQUEST | 400 | A required parameter is missing or invalid. Never billed. The message names the field. |
INSUFFICIENT_CREDITS | 402 | Your balance is below the endpoint's cost. Top up, or wait for a cache hit. |
ENDPOINT_NOT_FOUND | 404 | SocialCrawl does not have that platform or resource. Search the catalogue. |
RESOURCE_NOT_FOUND | 404 | The platform does not have that item. This is a real answer, and it is refunded. |
CONCURRENCY_LIMIT | 429 | More than 50 requests in flight on one key. Honor Retry-After, then continue. |
ENDPOINT_NOT_FOUND means we do not have it. RESOURCE_NOT_FOUND means the platform does not have it. The full table, with which codes are safe to retry, is in Errors.
Next
You made a call. The Quickstart walks you through your first 100 calls: your own key, several platforms in one script, one search across every platform, and the free catalogue from your terminal.
Quickstart
Your key, your first 100 calls across several platforms, and the free catalogue.
Pagination
One rule for every list: send next_cursor back as cursor.
API Reference
Every endpoint with an interactive playground and full response schemas.
Recipes
Runnable TypeScript builds, each with its credit cost attached.
Which platforms does SocialCrawl support?
Frequently asked questions
How do I authenticate with the SocialCrawl API?
Pass your API key in the x-api-key header on every request. Sign up at socialcrawl.dev, open Dashboard → API Keys, and create a key. There is no OAuth flow, token exchange, or session to manage.
Which platforms does the SocialCrawl API support?
SocialCrawl covers 65 platforms through 575 endpoints (including TikTok, Instagram, YouTube, Facebook, Twitter/X, LinkedIn, Reddit, Threads, Pinterest, and Twitch) plus research sources like GitHub, Hacker News, Tavily, and Perplexity.
What does the SocialCrawl response envelope look like?
Every response (success or error) uses the same JSON envelope: success, platform, endpoint, data, credits_used, credits_remaining, request_id, and cached. List responses return data as { items, next_cursor }, and computed fields like engagement_rate arrive pre-calculated on every author and post.
How do I use SocialCrawl with Claude, Cursor, or other MCP clients?
Install the MCP server with npx -y socialcrawl-mcp. In Claude Code, run: claude mcp add --scope user socialcrawl -- npx -y socialcrawl-mcp. In Claude Desktop, Cursor, VS Code, or Windsurf, add socialcrawl-mcp to your mcpServers config with your SOCIALCRAWL_API_KEY.
How many free credits do I get when I sign up?
Every new account receives 100 welcome credits automatically on signup. Standard endpoints cost 1 credit per request, so that is up to 100 free requests to evaluate the API, and cache hits cost 0 credits.
