Unified scraper API
for every social platform
Bring public profiles, posts, videos and conversations into your apps.
One social media data API for your workflows and AI agents.
Social data infrastructure
One integration for the social web.
Scrape social networks, video, forums, messaging, ad libraries, IRL events and communities, link-in-bio pages, and commerce. Bring the data into your apps and AI workflows through one API.
const baseUrl = "https://api.scrapeatlas.com";
const url = new URL('/v1/youtube/video', baseUrl);
url.searchParams.set("url", "https://www.youtube.com/watch?v=Vid0000001a");
const response = await fetch(url, {
method: 'GET',
headers: {
'x-api-key': process.env.SCRAPEATLAS_API_KEY
}
});
const data = await response.json();
console.log(data);Example Channel
- Views
- 1.8B
- Likes
- 19.4M
- Comments
- 2.4M
const baseUrl = "https://api.scrapeatlas.com";
const url = new URL('/v1/depop/product', baseUrl);
url.searchParams.set("slug", "examplecloset-example-sneakers-worn-twice-0001");
const response = await fetch(url, {
method: 'GET',
headers: {
'x-api-key': process.env.SCRAPEATLAS_API_KEY
}
});
const data = await response.json();
console.log(data);- Price
- $18.00
- Likes
- 7
- Seller rating
- 4.9
id900000001“ScrapeAtlas powers my social media scheduler - and I couldn't operate without it”
StevieFounder, WahluUse cases
What our customers
are building
From your first research tool to your next product.
Six ways to put public social data to work.
Brand monitoring
Bring public posts, comments and conversations into your listening tools. Understand how people talk about your brand and products.
Explore the dataCreator discovery
Find creators worth a closer look. Combine public profiles, recent content and engagement to build your next campaign shortlist.
Explore the dataVideo intelligence
Turn videos into something you can work with. Feed transcripts, comments and video metadata into research and content tools.
Explore the dataCompetitive intelligence
Study the content and ads behind another brand’s strategy. Bring public creatives and engagement into your own comparisons.
Explore the dataCommerce research
Connect products, prices and customer reviews. Build product discovery tools and research what shoppers are talking about.
Explore the dataAI agents & workflows
Give your agents public social context. Connect ScrapeAtlas through MCP or HTTP to research, summarize and enrich your workflows.
Explore the dataCUSTOMER STORIES
What they are saying
about us.
Watch Nigel’s story
Watch Janu’s storyDigging your ScrapeAtlas experience?
Email Viktor with a testimonial & receive 10,000 free credits.
EXPLORE THE ATLAS
Every platform in one place.
39 platforms. 289 endpoints.
Pick a platform to explore what you can build.
TikTok
17 endpointsX (Twitter)
4 endpointsYouTube
17 endpointsThreads
8 endpointsTwitch
7 endpointsDepop
12 endpointsAmazon
8 endpointsBluesky
5 endpointsCouchsurfing
6 endpointsEtsy
8 endpointsFacebook Events
4 endpointsFacebook Marketplace
5 endpointsGitHub
27 endpointsHacker News
5 endpointsKick
1 endpointKomi
1 endpointKwai
3 endpointsLinkedIn Ads Library
4 endpointsLinkme
1 endpointLinktree
3 endpointsLnk.Bio
1 endpointMastodon
10 endpointsMeetup
8 endpointsMeta Ads Library
8 endpointsPillar
1 endpointProduct Hunt
10 endpointsQuora
11 endpointsRumble
2 endpointsSkool
11 endpointsTelegram
5 endpointsTikTok Shop
6 endpointsVinted
7 endpointsWhatnot
12 endpointsConnect your agent.
Explore the social web.
Use the CLI in your terminal or connect your MCP client with one ScrapeAtlas API key.
CLI. Public data, straight to your terminal.
Install, sign in with your API key, and discover the available commands.
npm install -g @scrapeatlas/cli
scrapeatlas auth login
scrapeatlas listMCP. Give your agent the tools to explore.
Add the server to your HTTP MCP client and replace the key placeholder.
{
"mcpServers": {
"scrapeatlas": {
"type": "http",
"url": "https://api.scrapeatlas.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_SCRAPEATLAS_API_KEY"
}
}
}
}API PLAYGROUND
Try the API
in your browser.
Choose an endpoint, fill in the request fields, and run it with your API key. See the JSON response and copy the code for your app.
- 01
Choose an endpoint
Browse the platforms and choose what you want to retrieve.
- 02
Enter your details
Add the URL, username or search terms the endpoint needs, along with your API key.
- 03
Run it and see the response
View the JSON response and copy a request example in your preferred language.
# ScrapeAtlas · use your customer API key
export BASE_URL="https://api.scrapeatlas.com"
curl --get "$BASE_URL/v1/reddit/subreddit/details" \
-H "x-api-key: $SCRAPEATLAS_API_KEY" \
--data-urlencode "subreddit=Example"const baseUrl = "https://api.scrapeatlas.com";
const url = new URL('/v1/reddit/subreddit/details', baseUrl);
url.searchParams.set("subreddit", "Example");
const response = await fetch(url, {
method: 'GET',
headers: {
'x-api-key': process.env.SCRAPEATLAS_API_KEY
}
});
const data = await response.json();
console.log(data);type Result = {
status: "success" | "partial" | "failed" | "challenged";
requestId: string;
[field: string]: unknown;
};
const response = await fetch(
"https://api.scrapeatlas.com/v1/reddit/subreddit/details?subreddit=Example",
{
headers: {
"x-api-key": process.env.SCRAPEATLAS_API_KEY!
}
}
);
const data = (await response.json()) as Result;
if (data.status === "failed" || data.status === "challenged") {
throw new Error(`Reddit request failed: ${data.requestId}`);
}
console.log(data);import requests
response = requests.get(
"https://api.scrapeatlas.com/v1/reddit/subreddit/details",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"subreddit": "Example"
},
timeout=60,
)
data = response.json()
print(data["status"], data)package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.scrapeatlas.com/v1/reddit/subreddit/details?subreddit=Example", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
fmt.Println(data["status"], data)
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(URI.create("https://api.scrapeatlas.com/v1/reddit/subreddit/details?subreddit=Example"))
.GET()
.header("x-api-key", "YOUR_API_KEY")
.build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}/v1/reddit/subreddit/detailsJSON response# ScrapeAtlas · use your customer API key
export BASE_URL="https://api.scrapeatlas.com"
curl --get "$BASE_URL/v1/pinterest/search" \
-H "x-api-key: $SCRAPEATLAS_API_KEY" \
--data-urlencode "query=synthetic recipes"const baseUrl = "https://api.scrapeatlas.com";
const url = new URL('/v1/pinterest/search', baseUrl);
url.searchParams.set("query", "synthetic recipes");
const response = await fetch(url, {
method: 'GET',
headers: {
'x-api-key': process.env.SCRAPEATLAS_API_KEY
}
});
const data = await response.json();
console.log(data);type Result = {
status: "success" | "partial" | "failed" | "challenged";
requestId: string;
[field: string]: unknown;
};
const response = await fetch(
"https://api.scrapeatlas.com/v1/pinterest/search?query=synthetic+recipes",
{
headers: {
"x-api-key": process.env.SCRAPEATLAS_API_KEY!
}
}
);
const data = (await response.json()) as Result;
if (data.status === "failed" || data.status === "challenged") {
throw new Error(`Pinterest request failed: ${data.requestId}`);
}
console.log(data);import requests
response = requests.get(
"https://api.scrapeatlas.com/v1/pinterest/search",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"query": "synthetic recipes"
},
timeout=60,
)
data = response.json()
print(data["status"], data)package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.scrapeatlas.com/v1/pinterest/search?query=synthetic+recipes", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
fmt.Println(data["status"], data)
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(URI.create("https://api.scrapeatlas.com/v1/pinterest/search?query=synthetic+recipes"))
.GET()
.header("x-api-key", "YOUR_API_KEY")
.build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}/v1/pinterest/searchJSON response# ScrapeAtlas · use your customer API key
export BASE_URL="https://api.scrapeatlas.com"
curl --get "$BASE_URL/v1/instagram/profile" \
-H "x-api-key: $SCRAPEATLAS_API_KEY" \
--data-urlencode "handle=example"const baseUrl = "https://api.scrapeatlas.com";
const url = new URL('/v1/instagram/profile', baseUrl);
url.searchParams.set("handle", "example");
const response = await fetch(url, {
method: 'GET',
headers: {
'x-api-key': process.env.SCRAPEATLAS_API_KEY
}
});
const data = await response.json();
console.log(data);type Result = {
status: "success" | "partial" | "failed" | "challenged";
requestId: string;
[field: string]: unknown;
};
const response = await fetch(
"https://api.scrapeatlas.com/v1/instagram/profile?handle=example",
{
headers: {
"x-api-key": process.env.SCRAPEATLAS_API_KEY!
}
}
);
const data = (await response.json()) as Result;
if (data.status === "failed" || data.status === "challenged") {
throw new Error(`Instagram request failed: ${data.requestId}`);
}
console.log(data);import requests
response = requests.get(
"https://api.scrapeatlas.com/v1/instagram/profile",
headers={"x-api-key": "YOUR_API_KEY"},
params={
"handle": "example"
},
timeout=60,
)
data = response.json()
print(data["status"], data)package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.scrapeatlas.com/v1/instagram/profile?handle=example", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
var data map[string]interface{}
json.NewDecoder(resp.Body).Decode(&data)
fmt.Println(data["status"], data)
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class Main {
public static void main(String[] args) throws Exception {
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(URI.create("https://api.scrapeatlas.com/v1/instagram/profile?handle=example"))
.GET()
.header("x-api-key", "YOUR_API_KEY")
.build();
var response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}/v1/instagram/profileJSON responseUse your ScrapeAtlas API key. Replace the sample input with your own.
Pay as you go
Start free.
Build at your pace.
One-time credit packs, priced in US dollars. Credits never expire, and there is no monthly commitment.
Free
Try the API with your next idea.
$0No credit card needed
100 free credits
One starter grant per account
Starter
For a new idea or a one-off project.
$19USD / one-time
10,000 credits
$1.90 per 1,000 successful requests
Growth
Save 6.3%For regular workflows and bigger builds.
$89USD / one-time
50,000 credits
$1.78 per 1,000 successful requests
Enterprise Plan
Want to scrape larger volumes?
Let’s talk about a plan that fits your scale.
A few good questions
Frequently asked questions
The essentials, from your first request
to the way you build.
The basics
Find your data. Make it useful.
What does ScrapeAtlas do?
ScrapeAtlas brings public social media data into your software. Send a request for a profile, post, video or conversation, and get structured JSON that you can use in your product or workflow.
What kind of data can I explore?
Explore social profiles, posts, comments, videos, transcripts, ad creatives, creator links and marketplace listings. The platform reference shows the requests and fields for each API.
What can I build with it?
Build creator discovery tools, content research workflows, brand dashboards and market intelligence products. Combine profiles, engagement, conversations or transcripts with your own analysis to answer the questions that matter to your users.
Building with the API
From your first call to your next idea.
How do I make my first request?
Create your ScrapeAtlas account, generate an API key in the dashboard and choose an endpoint from the docs. Add your key to the x-api-key header and send the request. The API playground lets you try requests and inspect their responses.
Can I use my existing tools and language?
Yes. ScrapeAtlas works over HTTP, so you can call it from Python, JavaScript, cURL or a workflow tool with an HTTP request step. Use the CLI for terminal scripts and the documentation’s request examples as a starting point.
How do I connect an AI agent?
Connect your MCP-compatible client to the ScrapeAtlas MCP server using your API key. Your agent can then discover platform tools and request social data. The agent reference also gives coding assistants a readable guide to the API.
What does the response look like?
Responses contain structured JSON with the data returned by the endpoint. The API reference includes field descriptions and example responses, including pagination details, so you can map the result into your application.
Credits & support
Start small. Keep building.
Can I try ScrapeAtlas before buying credits?
Yes. Your account starts with 100 free credits, with no credit card needed. Create a key and try the API with the data you want to build around.
How do credits and top-ups work?
A successful retrieval uses one credit, including partial results and valid empty collections. Each additional page you request is another request. Failed requests cost zero credits, and internal retries cost nothing extra. Buy one-time packs in Billing when you need more. Your balance is shared across your API keys, and credits never expire.
Where can I get help with an integration?
Tell us what you are building and which platform or endpoint you are working with through Contact. You can also reach us from Support in your dashboard. For request formats and examples, start with the API documentation.
Have something else in mind?
Talk to usMake something with it
Ready to build?
Bring social data into your next project.
Start with 100 free credits and see what you can build.