fetch_html
Fetch page HTML
Fetch the fully rendered HTML of any web page through ScrapeUnblocker, bypassing anti-bot protection (Cloudflare, DataDome, PerimeterX, Akamai, Shape). Use this when a normal fetch is blocked (403/429, captcha, 'access denied') or when the page needs a real browser to render. Returns the raw HTML as text. To read or summarise a page, fetch_markdown is much smaller. To click, type or scroll before capturing, use browse_page.
Parametersurlrequiredwait_valuewait_methodproxy_countrysleep_secondsmethod_timeout_seconds
browse_page
Interact with a page, then capture it
Load a web page in a real browser through ScrapeUnblocker, run an ordered list of browser actions on it (accept a cookie banner, click a tab, type into a search box, choose an option, press a key, scroll to trigger lazy loading, wait), then return the resulting HTML. Workflow: first call the `list_elements` tool to discover the real selectors on the page, then build `steps` against them. Steps act on the website and are NOT idempotent - they run once per call; never use them to buy, post, delete or change anything unless the user asked for exactly that. If a step fails, this tool returns which step failed, why, and the page HTML at that moment so you can fix the selector and retry. Billed as one request.
Parametersurlrequiredstepsrequiredwait_valuewait_methodproxy_countrysleep_secondsmethod_timeout_seconds
list_elements
List page elements (selector discovery)
Load a page through ScrapeUnblocker and return a JSON list of its notable elements (links, inputs, buttons, selects, etc.) with a ready-to-use `selector` for each, plus tag, text and useful attributes (name, id, type, placeholder, aria_label, href, ...). Read-only and does not interact with the page. This is the discovery half of interactive scraping: call `list_elements` to find the selectors you need, then pass matching `steps` to `browse_page` to click/type/select and capture the resulting HTML.
Parametersurlrequiredproxy_country
fetch_parsed
Fetch AI-parsed page data
Fetch a web page through ScrapeUnblocker and return AI-parsed structured JSON instead of raw HTML (e.g. product details, article content). Best for extracting fields from product, listing or article pages without writing your own HTML parsing. If the page holds no structured data, the result says so and returns the rendered HTML instead (billed like fetch_html).
Parametersurlrequiredrules_hintproxy_country
google_search
Google search results
Run a Google search through ScrapeUnblocker and return the results page as structured JSON: organic results with their real URLs, favicons, sitelinks and star ratings, ads, the AI Overview, People also ask, related searches with their links, the knowledge panel, top stories, videos, local and shopping results. Use this to discover URLs before fetching them.
Parameterskeywordrequiredproxy_countrypages_to_check
fetch_markdown
Fetch page as Markdown
Fetch a web page in a real browser through the ScrapeUnblocker API (https://docs.scrapeunblocker.com) and return it as clean Markdown: the main content with absolute links, without scripts, styles, navigation or footer. Use it to read, quote or summarise a page; it is usually 2-25% the size of the HTML. Works on JavaScript-rendered pages and on pages that refuse ordinary fetches (403/429, captcha). Use fetch_html instead when you need the markup, selectors or browser steps. Billed as one request.
Parametersurlrequiredwait_valuewait_methodproxy_countrysleep_secondsmain_content_only
search_and_read
Search Google and read the top results
Search Google through the ScrapeUnblocker API (https://docs.scrapeunblocker.com) and read the top results in one call: returns Google's AI Overview when there is one, each of the first `results` pages (default 3, max 5) as Markdown, and the other organic results as title, URL and snippet. Use it to answer a question from the live web. Billed as one request for the search plus one per page read.
Parameterskeywordrequiredresultsproxy_country
list_plugins
List site plugins
List ScrapeUnblocker's ready-made site plugins: scrapers for specific sites that return clean structured JSON (Amazon, Walmart, Target, eBay, Zillow, Redfin, Booking.com, Airbnb, Indeed, Glassdoor, Google Trends / Shopping / Maps, YouTube, Spotify, App Store, Google Play, Trustpilot, Yelp, Ahrefs, Semrush and 100+ more). Check here before scraping a known site with fetch_html - a plugin returns the data already parsed. Without arguments it lists every plugin with its parameters (* = required); `category` or `search` narrow the list; `name` returns one plugin's full parameter docs. Free - it calls nothing.
Parametersnamesearchcategory
run_plugin
Run a site plugin
Run one ScrapeUnblocker site plugin and return its JSON - e.g. a Target or Walmart search, a Zillow listing search, Google Trends for some keywords, an app's App Store reviews. Find the plugin and its parameters with list_plugins first. `params` uses the parameter names list_plugins shows (snake_case); a list value is fine where a parameter takes several. Each run is billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersnamerequiredparams
amazon_search
Scrape Amazon search listings
Searches any regional Amazon marketplace for `keyword` and returns the result cards as JSON: `asin`, `title`, `price` + `currency`, `listPrice`, `rating`, `reviewCount`, a clean product `url`, `image`, and the `sponsored` / `prime` flags. Filter with `min_price` / `max_price`, order with `sort` (featured, price_asc, price_desc, avg_review, newest), and page with `page`. Fetch each result's full detail (all fields above plus features and images) through `POST /marketplace/amazon-product`. Some cards show no price on the search page (Amazon defers it, or the item has buying options); those return `price: null` and are kept in the list rather than dropped. `proxy_country` defaults to the marketplace's home country so prices are in the expected currency. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parameterspagesortkeywordrequiredmax_pricemin_pricemarketplaceproxy_country
amazon_product
Scrape an Amazon product page
Fetches a single Amazon product and returns it as JSON: `title`, `brand`, `price` + `currency`, `listPrice` and `savingsPercent`, `availability` (+ a boolean `inStock`), `rating`, `reviewCount`, `seller`, `features` (bullet points), `categories` (breadcrumb) and `images`. Identify the product with either `asin` (plus `marketplace`) or a full product `url`. Amazon prices each page in the currency of the delivery location it infers from the visitor's IP address, so `proxy_country` defaults to the marketplace's home country (amazon.com -> US) and the call is routed through proxies in that country. The country of the proxy that served the request is reported as `exitCountry`. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersurlasinmarketplaceproxy_country
amazon_reviews
Scrape the reviews on an Amazon product page
Returns the review data an Amazon product page shows to a signed-out visitor, as JSON: the overall `rating`, total `reviewCount` (global ratings), the 5..1-star `histogram` (percent per star), the AI `customersSay` summary (overall text plus per-aspect `sentiment`, `mentions`, `positive`, `negative`, `summary` and the quoted review `excerpts` Amazon shows for the aspect) and the top `reviews` (each with `id`, `url`, `author`, `rating`, `title`, `body`, `date`, `country`, `fromOtherCountry`, `verified`, `helpfulVotes`, `variant` and `images`). Identify the product with `asin` (plus `marketplace`) or a product `url`. Scope: Amazon only shows its full review list to signed-in customers, so this endpoint returns the public slice on the product page - typically 5 to 13 top reviews, local ones first and then reviews from other countries - not a complete review export. When Amazon hides the top reviews behind a sign-in prompt (common on amazon.com), `reviewsGated` is `true` and `reviews` is empty; the rating, histogram and customers-say data, including its review excerpts, are still returned. Every field is always present and is `null` when the page does not show it. `proxy_country` defaults to the marketplace's home country; the country of the proxy that served the request is reported as `exitCountry`. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersurlasinmarketplaceproxy_country
walmart_search
Scrape Walmart product search
Searches Walmart for `query` and returns the products as JSON: `name`, `price` and `wasPrice`, `rating`, `reviewCount`, `brand`, `seller`, `availability`, `image` and a product `url`. Sort with `sort`, filter with `min_price`/`max_price`, and collect up to `max_results` across pages. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parameterspagesortqueryrequiredmax_pricemin_pricemax_resultsproxy_country
ebay_search
Scrape eBay search listings
Searches any regional eBay marketplace for `keyword` and returns the listings as JSON: `title`, `price` + `currency`, `condition` (with a normalised `conditionCode`), `seller` (username, feedback percentage and score), `shippingCost`, `sold`, `watchers`, `bids`, `image` and a clean item `url`. Filter with `condition`, `listing_type`, `min_price`/`max_price`, `free_shipping`, `seller` or `category`, sort with `sort`, and page with `page`/`page_size` (60, 120 or 240 per page). Set `marketplace` to search a specific site - prices, currency and availability differ between ebay.com, ebay.de, ebay.co.uk and the rest. When eBay finds no exact match it still serves a full page of its own loosely-related suggestions. That case is reported honestly: `exactMatches` is `false` and a `notice` explains it, so those listings are never mistaken for real matches. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parameterspagesortsellerkeywordrequiredcategoryconditionmax_pricemin_pricepage_sizemarketplacelisting_typefree_shipping+1 more
google_shopping
Scrape Google Shopping product listings
Runs the Google Shopping vertical (`udm=28`) for `q` and returns the product cards as JSON: `title`, `price`, `currency`, `currencyCode`, `originalPrice`, `discount`, `merchant`, `rating`, `reviewCount` and Google's own ids for the product (`productId`, `catalogId`, `offerId` - stable across searches, for tracking one product). Set `proxy_country`/`gl` to target a market (prices/merchants are region-specific) and `min_price`/`max_price` to filter. One render returns the first page of products (v1). Note: Google Shopping exposes no per-product URL, so `url` is omitted and `image` is best-effort. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersqrequiredglmax_pricemin_pricemax_resultsproxy_country
google_local
Scrape Google Local business listings
Runs a Google Local (`tbm=lcl`) search for `keyword` and returns up to ~20 businesses as JSON: `name`, `rating`, `reviews`, `price`, `category`, `address`, `phone`, `website`, `hours`, and a top `review_snippet`. `phone` and `website` are null when Google does not render them for that result - service businesses (plumbers, contractors) almost always carry both. Local results are location-sensitive - set `proxy_country` (and optionally `gl`/`hl`) to target a market. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersglhlkeywordrequiredproxy_country
maps_place_details
Scrape Google Maps place details
Returns the full data for one Google Maps place as JSON: `name`, `address` (+ `addressLines`), `phone`, `website`, `rating`, `categories`, `latitude`/`longitude`, `plusCode`, `hours` + `openNow`, `description`, `photo`, `cid`, `featureId`, `googleMapsUrl` and `relatedPlaces`. Identify the place with `place_id` (ChIJ...), a Maps `url`, or a raw `feature_id` (0xHEX:0xHEX). Location-neutral - the feature id resolves the place directly; `proxy_country` defaults to a US proxy to clear Google's consent wall. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersglhlrawurlplace_idfeature_idproxy_country
google_images
Scrape Google Images results
Runs the Google Images vertical (`udm=2`) for `q` and returns the image results as JSON. Every result carries `imageUrl` (the full-resolution origin image, not a Google thumbnail; for an image found inside a document such as a PDF, which has no URL of its own, it is Google's thumbnail and `sourcePageUrl` is the document), `sourceDomain` and `googleImagesUrl` (the Google Images viewer link, i.e. the `/imgres?...` URL a browser copies from the result tile), plus `sourcePageUrl`, `title`, `sourceName`, `thumbnailUrl`, `width`, `height` and `fileSize` where available. Set `proxy_country` to target a market: the Google market (`gl`) follows it automatically, and `gl` is only an optional override. `pages` fetches up to 5 result pages of ~100 each; every page fetched is billed as one request. `time_range` (past hour/day/week/month/year) or `date_from`/`date_to` limit the results to images Google found in that period, so a repeated scan returns only what is new. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersqrequiredglpagesdate_todate_fromtime_rangemax_resultsproxy_country
youtube_search
Search YouTube
Searches YouTube for `query` and returns the results as JSON. For each video: `videoId`, `title`, `url`, `channel` (name/id/url), `publishedText`, `viewCount` (+ text), `lengthSeconds` (+ text), `thumbnails`, `descriptionSnippet`, `badges`, `verified` and `isLive`. Filter with `type` (video / channel / playlist / all) and `sort` (relevance / date / views / rating), and collect up to `max_results` across pages. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parameterssorttypequeryrequiredmax_resultsproxy_country
youtube_transcript
Get a YouTube video transcript
Returns a YouTube video's captions as JSON: timestamped `segments` (`start`, `dur`, `text`) and a joined `text`, plus `availableLanguages`, the picked `language`, `isAutoGenerated`, and the video's `title`, `author` and `lengthSeconds`. Pass a video id or any YouTube video URL; choose a caption language with `lang`. Ideal for LLM/RAG pipelines, subtitles and content analysis. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parameterslangvideorequiredformatproxy_country
zillow_search
Scrape Zillow real-estate listings
Searches Zillow for `location` (a city/state or ZIP) and returns the listings as JSON: `price`, `beds`, `baths`, `area`, `address`, `homeType`, `zestimate`, `rentZestimate`, `daysOnZillow`, coordinates, broker and a clean `url`. Filter with `status` (for_sale / for_rent / sold), `min_price`/`max_price`, `beds`, `baths` and `home_type`, sort with `sort`, and collect up to `max_results` across pages. Rental results can include apartment buildings (`isBuilding: true`): they have no `zpid` and carry `lotId`, `buildingName`, a rent range (`price` to `maxPrice`), `units` and `availableUnits` instead. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersbedspagesortbathsstatuslocationrequiredhome_typemax_pricemin_pricemax_resultsproxy_country
indeed_jobs
Scrape Indeed job listings
Searches Indeed for `query` in `location` and returns the job listings as JSON: `title`, `company`, `location`, `salary` (with parsed `min`/`max`), `jobTypes`, `companyRating`, a `snippet`, `datePosted` (YYYY-MM-DD), `sponsored` (Indeed's paid placement) and a clean job `url`. Filter with `country`, `job_type`, `days` (posting age), `remote`, sort with `sort` (`date` returns the collected jobs newest first, sponsored ones included), and collect up to `max_results` across pages. Indeed sits behind Cloudflare + PerimeterX - handled for you. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersdayssortqueryrequiredstartradiusremotecountryjob_typelocationmax_resultsproxy_country
trustpilot_reviews
Scrape Trustpilot company reviews
Returns a company's Trustpilot profile and reviews as JSON. `company` is the reviewed domain (e.g. `www.nike.com`). The response has a `company` summary (`trustScore`, `totalReviews`, `ratingDistribution` 1-5, `categories`, `contact`) and a `reviews` array - each with `rating`, `title`, `text`, `verified`, `author` (name, country, review count), `reply` (the company's response) and dates. Page with `page`/`pages` (20 reviews per page), and filter with `stars`, `sort` (recency/relevancy), `language`, `date`, `search`, `verified` or `replies`. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersdatepagesortpagesstarssearchcompanyrequiredreplieslanguageverifiedproxy_country
booking_hotels
Scrape Booking.com hotels
Searches Booking.com for `location` and returns the properties as JSON: `name`, `price` (with `checkin`/`checkout`), `reviewScore`, `address`, coordinates, `image` and a hotel `url`. Set `adults`, `children`, `rooms` and `currency`, and collect up to `max_results` across pages. Prices only appear when check-in/check-out dates are given. Returns JSON. Billed like an API request; listing plugins bill one unit per result page they fetch, so keep max_results modest.
Parametersroomsadultscheckincheckoutchildrencurrencylocationrequiredmax_resultsproxy_country