Marketplace
Discover ready-to-use MrScraper scrapers for popular platforms, runnable directly from the dashboard or in your applications using pre-built request snippets.
The MrScraper Marketplace offers pre-configured, production-ready scrapers for popular websites like YouTube, Booking.com, Instagram, TikTok, LinkedIn, and Amazon. Selectors, proxies, and bot bypasses are handled automatically by MrScraper.
Exploring the Scraper Interface
Each scraper page in the Marketplace includes three main tabs and a details sidebar:
| UI Element | Description |
|---|---|
| Run Tab | Test and run the scraper directly in the browser with form inputs. |
| Output Schema Tab | Preview the JSON schema and fields returned by the scraper. |
| Example Code Tab | Copy ready-to-use request snippets in 8 languages with your API token pre-filled. |
| Details Sidebar | View pricing (tokens/run), estimated latency, concurrency limits, and categories. |
Run Directly from the Platform
Run scrapers interactively from the dashboard without writing any code.
Choose your scraper
Go to the Marketplace and select the scraper that fits your target website.
Fill in input parameters
In the Run tab, enter the required fields (such as target URLs, search terms, or date filters). You can check the Output Schema tab to review what data fields will be returned.
Execute and view results
Click Run to start the scrape. Once completed, inspect and copy the extracted JSON data directly in the dashboard.
Run in Your App or Flow
Every Marketplace scraper can be called directly via the Sync API (https://sync.scraper.mrscraper.com). You can copy pre-configured request snippets directly from the UI.
Open the "Example Code" tab
Navigate to the scraper page and switch to the Example Code tab. Your active API token (atk_...) is automatically injected into the code snippets and can also be copied from the token bar.
Select your language and copy the snippet
Select your language (cURL, Python, JavaScript, PHP, Go, Java, Ruby, or C#) and click copy.
For example, a request to scrape a YouTube video:
curl --location --request POST 'https://sync.scraper.mrscraper.com/api/video/youtube/sync' \
-H 'Authorization: Bearer <MRSCRAPER_API_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://www.youtube.com/watch?v=HeyIXwZyR8Y"
}'import requests
response = requests.post(
"https://sync.scraper.mrscraper.com/api/video/youtube/sync",
headers={
"Authorization": "Bearer <MRSCRAPER_API_TOKEN>",
"Content-Type": "application/json"
},
json={"url": "https://www.youtube.com/watch?v=HeyIXwZyR8Y"}
)
print(response.json())const response = await fetch('https://sync.scraper.mrscraper.com/api/video/youtube/sync', {
method: 'POST',
headers: {
'Authorization': 'Bearer <MRSCRAPER_API_TOKEN>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
url: 'https://www.youtube.com/watch?v=HeyIXwZyR8Y'
})
});
const data = await response.json();
console.log(data);Integrate into your application or workflow
Paste the request into your backend service, script, or workflow tool. Replace the sample URL with your dynamic input variables.
Handle the JSON response
Marketplace scrapers run and return the parsed result:
{
"success": true,
"message": "Successfully scraped",
"data": {
"ok": true,
"video_id": "HeyIXwZyR8Y",
"title": "MrScraper MCP is now Live",
"author": "MrScraper",
"author_url": "https://www.youtube.com/channel/UCYCwUmYcwIgCEUE9spiSV6A",
"thumbnail": "https://i.ytimg.com/vi/HeyIXwZyR8Y/maxresdefault.jpg",
"duration": 59,
"download_url": "https://mrscraper-files.s3.us-west-2.amazonaws.com/public/videos/HeyIXwZyR8Y_480p.mp4",
"thumbnails": {
"low": "https://i.ytimg.com/vi/HeyIXwZyR8Y/default.jpg",
"max": "https://i.ytimg.com/vi/HeyIXwZyR8Y/maxresdefault.jpg"
},
"formats": [
{ "type": "video", "format": "144p", "filesize": 1287199 },
{ "type": "video", "format": "360p", "filesize": 1889026 },
{ "type": "video", "format": "720p", "filesize": 5029353 },
{ "type": "audio", "format": "audio", "filesize": 960275 }
]
},
"tokenUsage": 5
}Sync & Async
Marketplace scrapers run synchronously by default: you send a request and the extracted data comes back in the same response. Some scrapers also have an asynchronous endpoint, such as SERP API - Web Results.
Use the sync endpoint by default. Switch to async when a request takes too long to return in a single call. The async endpoint queues the job and responds immediately with a task ID, so your request never waits for the scrape to finish.
| Sync | Async | |
|---|---|---|
| Host | https://sync.scraper.mrscraper.com | https://async.scraper.mrscraper.com |
| Returns | The extracted data | A taskId you use to retrieve the data |
| Best for | Requests that complete quickly | Long-running requests |
Run a scraper asynchronously
Create the task
Send your request to the async endpoint. Set callbackUrl to receive the result as a webhook once the scrape finishes, so you don't have to poll for it.
curl --location --request POST 'https://async.scraper.mrscraper.com/api/serp' \
-H 'Authorization: Bearer <MRSCRAPER_API_TOKEN>' \
-H 'Content-Type: application/json' \
-d '{
"query": "mrscraper",
"region": "us",
"language": "en",
"page": 1,
"format": "html",
"renderJs": false,
"callbackUrl": "https://async.scraper.mrscraper.com/webhook"
}'The response returns the taskId to retrieve the result with, along with the parameters the task was created from.
{
"success": true,
"message": "Task created successfully",
"data": {
"taskId": 603086110,
"params": {
"query": "mrscraper",
"region": "us",
"language": "en",
"page": 1,
"format": "html",
"renderJs": false,
"callbackUrl": "https://async.scraper.mrscraper.com/webhook"
}
}
}Retrieve the result
Pass the taskId to the result endpoint.
curl --location --request GET 'https://async.scraper.mrscraper.com/api/scraper/result/603086110' \
-H 'Authorization: Bearer <MRSCRAPER_API_TOKEN>' \
-H 'Content-Type: application/json'While the scrape is still running, the response reports PENDING. Keep requesting the result until the task completes.
{
"success": false,
"message": "PENDING",
"data": null
}Once the task finishes, the response contains the scraped data.
{
"success": true,
"message": "Successfully scraped",
"data": {
"html": "<!doctype html><html lang=\"en\"><head><title>mrscraper - Google Search</title></head>...</html>"
},
"tokenUsage": 1
}Operational Details
Token Usage & Pricing
- Token cost per run is shown in the Details sidebar (e.g.,
5 tokens/run). - Tokens are only deducted when a run completes successfully.
Concurrency Limits
- The Max Concurrency indicator defines how many parallel requests you can run at once.
- Requests exceeding your limit may return HTTP
429 Too Many Requests. Concurrency can be upgraded from your billing settings.