ScrapingBot
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Public web data for AI agents: scrape any page, plus Google, TikTok, Instagram and Amazon as JSON.
| Author | io.scrapingbot |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2461 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"ScrapingBot": {
"url": "https://scrapingbot.io/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (23)
listCapabilitiesread-onlyList every ScrapingBot tool, the API routes behind them and their parameters. Free.
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
scrapeWebsiteread-onlyFetch any public web page and return its content as markdown (format: "html" for the raw HTML). 1 credit; render_js (pages built with JavaScript) 5; premium_proxy 10; stealth_proxy 75. screenshot: true attaches a screenshot image.
Parameters:
url(required) — stringwait— integerformat— string — Page content as markdown (default, compact and readable) or the raw HTMLcookies— stringtimeout— integerwait_for— stringblock_ads— booleanrender_js— booleanscreenshotwait_browser— stringpremium_proxy— booleanstealth_proxy— booleanblock_resources— booleancapture_runtime_issues— boolean
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
extractStructuredDataread-onlyFetch a web page and have AI pull out exactly the fields you want, as JSON. Pass ai_query (plain English, e.g. "title, price and stock") or ai_schema ({"field": "description"}). The page cost plus 5 credits.
Parameters:
url(required) — stringwait— integercookies— stringtimeout— integerai_query— stringwait_for— stringai_schemablock_ads— booleanrender_js— booleanscreenshotwait_browser— stringpremium_proxy— booleanstealth_proxy— booleanblock_resources— booleancapture_runtime_issues— boolean
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
getScrapeJobread-onlyLook up an earlier scrape by the job_id it returned. Free.
Parameters:
job_id(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
pollJobUntilDoneread-onlyWait for a scrape job to finish, then return it. Free.
Parameters:
job_id(required) — stringtimeout_ms— integerpoll_interval_ms— integer
Hints: read-only yes · destructive not declared · idempotent not declared · open-world no
runBrowserScenarioread-onlyOpen a page in a real browser, run steps such as click, fill, scroll and wait, then return the resulting page as markdown. js_scenario: {"instructions": [{"fill": ["#q", "shoes"]}, {"click": "#go"}, {"wait": 1000}]}. From 5 credits.
Parameters:
url(required) — stringjs_scenario(required)wait— integerformat— string — Page content as markdown (default, compact and readable) or the raw HTMLcookies— stringtimeout— integerwait_for— stringblock_ads— booleanrender_js— booleanscreenshotwait_browser— stringpremium_proxy— booleanstealth_proxy— booleanblock_resources— booleancapture_runtime_issues— boolean
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
googleSearchread-onlyGoogle results as JSON: web (default), images, videos, news, shopping, places or maps (type), for any country (gl) and language (hl). Places and maps results include a cid for googleReviews. 10 credits.
Parameters:
q(required) — stringgl— stringhl— stringll— string — Maps/places viewport, e.g. @30.27,-97.74,12znumtbs— stringpagetype— string — What to search: web results (default), images, videos, news, shopping, places or maps.sortBy— stringautocorrect— boolean
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
googleReviewsread-onlyReviews of a place from Google Maps, by the cid, fid or placeId in a googleSearch places or maps result. sortBy newest, mostRelevant, highestRating or lowestRating; pass nextPageToken for more. 10 credits.
Parameters:
gl— stringhl— stringcid— stringfid— stringsortBy— stringplaceId— stringnextPageToken— string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
instagramUserread-onlyAn Instagram profile: bio, follower, following and post counts, links and the numeric user id other tools need. Pass one of username, user_id or url. 5 credits.
Parameters:
url— stringuser_idusername— string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
instagramSearchread-onlySearch Instagram accounts, hashtags, places or posts (search_type), or everything at once (global). 5 credits.
Parameters:
keyword(required) — stringsearch_type(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
instagramMediaread-onlyInstagram content by mode: an account's posts, reels or tagged posts (user_id), one post by shortcode or url, a post's comments, the replies to a comment (comment_id), or an account's active stories (username). 5 credits.
Parameters:
mode(required) — stringurl— stringcount— integeruser_idmedia_idusername— string — Username (stories)shortcode— stringcomment_id— string — Parent comment id (comment_replies)end_cursor— stringpagination_token— stringcode_or_id_or_url— string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
instagramFollowersread-onlyList or search an Instagram account's followers or following, by numeric user_id from instagramUser. query searches the whole list; max_id pages. For very large accounts Instagram shows only about 50 recent followers, so use query to find someone. 5 credits.
Parameters:
user_id(required) — string — Numeric user id (from instagramUser)direction(required) — stringquery— string — Search the list by username or namemax_id— string — next_max_id from the previous page
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
tiktokVideoread-onlyA TikTok video's stats, caption, author, sound and download links, by video URL. 1 credit.
Parameters:
url(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
tiktokUserread-onlyA TikTok profile by username: bio, counts, verified badge and numeric user id; include_posts returns the latest videos instead. 1 credit.
Parameters:
unique_id(required) — stringinclude_posts— boolean
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
tiktokSearchread-onlySearch TikTok creators (search_type: users) or videos (videos) by keyword. Videos page: for page 2 onward pass the previous response's data.cursor as cursor and its data.searchId as search_id. Users search returns a single page and ignores cursor. 1 credit.
Parameters:
query(required) — stringsearch_type(required) — stringcount— integercursor— Videos only: the previous response's data.cursor, for the next pagesearch_id— string — Videos only: the previous response's data.searchId; required with cursor for page 2 onward
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
tiktokCommentsread-onlyComments on a TikTok video (url), or the replies to one comment (comment_id plus the video url or video_id). 1 credit.
Parameters:
url— string — Video URL (required for comments)count— integercursor— integervideo_id— string — Video id (replies only; or pass url)comment_id— string — Set to fetch the replies to this comment
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
tiktokFollowersread-onlyA TikTok account's followers or the accounts it follows, by numeric user_id (data.user.id from tiktokUser). Up to 50. 1 credit.
Parameters:
user_id(required) — string — Numeric user id (data.user.id from tiktokUser)direction(required) — stringcount— integer
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
amazonSearchread-onlySearch Amazon US products by keyword: title, price, rating, Prime and photo for each. page for more. 10 credits.
Parameters:
query(required) — stringpagedepartment— string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
amazonProductread-onlyEverything on an Amazon product page by ASIN: price, rating, availability, bullet points, specifications, photos and variations. 10 credits.
Parameters:
asin(required) — string
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
amazonProductsread-onlyFull details for up to 20 ASINs in one call, the same as amazonProduct for each. 10 credits per product returned; ASINs that fail are free.
Parameters:
asins(required) — array — Up to 20 ASINs; 10 credits per product returned
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
amazonSuggestionsread-onlyThe suggestions Amazon shows as a shopper types: useful for keyword research. 10 credits.
Parameters:
query(required) — string — What a shopper has typed so farlimit— integerdepartment— string — Search alias such as aps, electronics, stripbooks
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
amazonRankingsread-onlyAmazon's Best Sellers or New Releases for a department, in rank order, with price and rating. 10 credits.
Parameters:
list(required) — stringcategory(required) — string — Amazon department slugpage— integer
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
providerRequestread-onlyCall any Google, Instagram, TikTok or Amazon endpoint by path, for the few the other tools do not cover (listCapabilities lists them). Costs the same as that API.
Parameters:
provider(required) — stringendpoint(required) — stringparams— object
Hints: read-only yes · destructive not declared · idempotent not declared · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.