| scrape | Scrape a web page or image from any URL using the ScraperAPI services, bypassing anti-bot protections. Use this tool to retrieve the content of a web page or download an image from a given URL. It handles CAPTCHAs, IP blocks, and rate limits automatically via ScraperAPI's proxy infrastructure.
When to use:
- Extracting text content from web pages (articles, product listings, search results, etc.)
- Downloading images from URLs (returns the image directly if the URL points to an image file)
- Scraping geo-restricted content by specifying a country code
- Retrieving structured data (CSV/JSON) from supported websites with autoparse enabled
When NOT to use:
- For URLs that require authentication or login (ScraperAPI cannot access authenticated sessions)
- For non-HTTP resources (e.g., FTP, local files)
- When you already have the content and don't need to fetch it again (this tool is rate-limited)
Args:
params (Scrape): Validated input parameters containing:
- url (AnyUrl): The full URL to scrape (e.g. 'https://example.com/page')
- render (bool): Enable JavaScript rendering for dynamic pages (default: false)
- country_code (Optional[str]): ISO 3166-1 alpha-2 code for geo-targeted scraping (e.g. 'us', 'gb')
- premium (bool): Use premium proxies for difficult sites (default: false)
- ultra_premium (bool): Use ultra-premium proxies for heavily protected sites (default: false)
- device_type (Optional[DeviceType]): 'mobile' or 'desktop' User-Agent emulation
- output_format (OutputFormat): Response format — 'markdown' (default), 'text', 'csv', or 'json'
- autoparse (bool): Enable structured data extraction for supported sites (default: false)
Returns:
For web pages: str containing the page content in the requested output_format.
- 'markdown': Clean, readable markdown extracted from the page HTML
- 'text': Plain text without any formatting
- 'csv': Comma-separated values (requires autoparse=true on supported sites)
- 'json': JSON string (requires autoparse=true on supported sites)
For image URLs: Image object with binary image data (JPEG, PNG, GIF, WebP, BMP, TIFF, or SVG).
Images larger than ~700KB are rejected.
Raises:
ToolError: If the API key is not configured, rate limit is exceeded, or the scrape operation fails.
|
| google_searchA | Retrieve parsed Google Search (SERP) results for a query. Returns the organic results, ads, related searches, knowledge panels, and
pagination for a Google web search — already parsed into structured JSON —
without you having to scrape and parse the SERP HTML yourself.
When to use:
- Programmatic SERP data: rankings, titles, links, snippets for a keyword
- SEO/rank tracking, competitive research, or answer-engine grounding
- Time- or date-bounded searches (recent news-like results, date ranges)
When NOT to use:
- Fetching the content of a specific known URL (use the 'scrape' tool)
- Google News, Jobs, Shopping, or Maps — use the dedicated tool for each
Args:
params (GoogleSearchParams): query (required) plus optional
localization (country_code, gl, hl, uule), pagination (num, start),
date filters (date_range_start/end, time_period), tld, output_format,
include_html, and tbs.
Returns:
str: JSON (default) or CSV containing the structured search results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| google_newsA | Retrieve parsed Google News results for a query. Returns structured news articles (title, source, link, timestamp, snippet)
for a query from Google News.
When to use:
- Monitoring news coverage or headlines for a topic, brand, or entity
- Time-bounded news scans (last hour/day/week or a custom date range)
When NOT to use:
- General web results (use 'google_search')
- Reading the full text of a specific article (use 'scrape' on its URL)
Args:
params (GoogleNewsParams): query (required) plus optional localization,
pagination, date filters (date_range_start/end, time_period), tld,
and output_format.
Returns:
str: JSON (default) or CSV containing the structured news results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| google_jobsA | Retrieve parsed Google Jobs listings for a query. Returns structured job postings (title, company, location, posting age,
source) from the Google Jobs widget for a query.
When to use:
- Aggregating job listings for a role, company, or location
- Labor-market or hiring research
When NOT to use:
- General web or news results (use 'google_search' / 'google_news')
Args:
params (GoogleJobsParams): query (required) plus optional localization
(country_code, gl, hl, uule), pagination (num, start), tld, and
output_format.
Returns:
str: JSON (default) or CSV containing the structured job listings.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| google_shoppingA | Retrieve parsed Google Shopping product results for a query. Returns structured shopping listings (product title, price, merchant,
rating, link) from Google Shopping for a query.
When to use:
- Price comparison and product discovery across merchants
- Market/pricing research for a product keyword
When NOT to use:
- A specific marketplace's own data — use the Amazon/Walmart/eBay SDE tools
- General web results (use 'google_search')
Args:
params (GoogleShoppingParams): query (required) plus optional
localization, pagination, tld, output_format, and include_html.
Returns:
str: JSON (default) or CSV containing the structured shopping results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| google_maps_searchA | Retrieve parsed Google Maps place/business results for a query. Returns structured local business/place results (name, address, rating,
reviews count, category, coordinates) from Google Maps for a query,
optionally centered on a latitude/longitude and zoom level.
When to use:
- Local business discovery ('coffee shops in Austin')
- Building local listings datasets; location-based competitive research
When NOT to use:
- Non-local web results (use 'google_search')
- Driving directions or routing (not provided by this endpoint)
Args:
params (GoogleMapsSearchParams): query, latitude, and longitude are
required; optional zoom, country_code, tld, output_format, and
include_html.
Returns:
str: JSON (default) or CSV containing the structured maps results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| amazon_productA | Retrieve parsed details for a single Amazon product by ASIN. Returns structured product data — name, brand, pricing, images, feature
bullets, product information, review summary, category, coupon flags — for
one Amazon listing, already parsed from the product page.
When to use:
- You have a specific ASIN and want its full structured details
- Product monitoring, catalog enrichment, price/spec extraction
When NOT to use:
- You only have a search term, not an ASIN (use 'amazon_search' first)
- You need the list of sellers/offers for the product (use 'amazon_offers')
Args:
params (AmazonProductParams): asin (required) plus optional tld,
country_code, language, output_format, and include_html.
Returns:
str: JSON (default) or CSV containing the structured product data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| amazon_searchA | Retrieve parsed Amazon search results for a query. Returns structured search results — product name, price, rating, review
count, URL, image, Prime/best-seller/sponsored flags — plus pagination,
for a keyword search on Amazon.
When to use:
- Discovering products and their ASINs for a search term
- Price/market research and catalog building across a category
When NOT to use:
- You already have an ASIN (use 'amazon_product' / 'amazon_offers')
Args:
params (AmazonSearchParams): query (required) plus optional page,
sort_by, department, ref, tld, country_code, language, and
output_format.
Returns:
str: JSON (default) or CSV containing the structured search results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| amazon_offersA | Retrieve the parsed list of seller offers for an Amazon product. Returns structured offer listings for one ASIN — listing/shipping price,
condition, seller name and rating, Prime/FBA flags, and delivery info —
across the sellers offering that product.
When to use:
- Comparing sellers, prices, and conditions (new/used) for a known ASIN
- Buy-box / third-party seller and repricing analysis
When NOT to use:
- You want the product's own details (use 'amazon_product')
- You only have a search term (use 'amazon_search' to get the ASIN first)
Args:
params (AmazonOffersParams): asin (required) plus optional condition
filters (condition, f_new, f_used_like_new, f_used_very_good,
f_used_good, f_used_acceptable), tld, country_code, language, and
output_format.
Returns:
str: JSON (default) or CSV containing the structured offers.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| walmart_searchA | Retrieve parsed Walmart product search results for a query. Returns structured search results — product name, price, rating, review
count, product ID, URL, image — plus pagination, for a keyword search on
Walmart.
When to use:
- Discovering products and their Walmart product IDs for a search term
- Price/market research and catalog building across a category
When NOT to use:
- You already have a product ID (use 'walmart_product' / 'walmart_review')
Args:
params (WalmartSearchParams): query (required) plus optional page,
tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured search results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| walmart_productA | Retrieve parsed details for a single Walmart product by product ID. Returns structured product data — name, brand, pricing, availability,
specifications, images, and review summary — for one Walmart listing.
When to use:
- You have a Walmart product ID and want its full structured details
- Product monitoring, catalog enrichment, price/spec extraction
When NOT to use:
- You only have a search term (use 'walmart_search' first)
- You want the product's reviews (use 'walmart_review')
Args:
params (WalmartProductParams): product_id (required) plus optional
tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured product data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| walmart_categoryA | Browse parsed products within a Walmart category by category ID. Returns a structured list of products in a Walmart category, with
pagination.
When to use:
- Exploring products within a specific Walmart department/category
- Building category-level catalogs or monitoring a category
When NOT to use:
- Free-text product discovery (use 'walmart_search')
Args:
params (WalmartCategoryParams): category (required) plus optional
page, tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the category product list.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| walmart_reviewA | Retrieve parsed customer reviews for a Walmart product by product ID. Returns structured reviews — rating, title, text, author, date, verified
purchase status — for one Walmart product, with pagination, sorting, and
rating/verified filters.
When to use:
- Sentiment analysis or review mining for a known Walmart product
- Tracking new reviews or filtering by star rating
When NOT to use:
- You want the product's own details (use 'walmart_product')
- You only have a search term (use 'walmart_search' to get the ID first)
Args:
params (WalmartReviewParams): product_id (required) plus optional page,
sort, ratings, verified_purchase, tld, country_code, and
output_format.
Returns:
str: JSON (default) or CSV containing the structured reviews.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| ebay_searchA | Retrieve parsed eBay search results for a query. Returns structured listing results — title, price, condition, seller, bids,
shipping, item ID, URL — for a keyword search on eBay, with pagination and
filtering by condition, buying format, seller, and sort order.
When to use:
- Discovering listings and their item IDs for a search term
- Price/market research, auction monitoring, seller analysis
When NOT to use:
- You already have an item ID (use 'ebay_product')
Args:
params (EbaySearchParams): query (required) plus optional page,
items_per_page, seller_id, condition, buying_format, show_only,
sort_by, tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured search results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| ebay_productA | Retrieve parsed details for a single eBay listing by item ID. Returns structured listing data — title, price, condition, seller info,
description, shipping, and item specifics — for one eBay item.
When to use:
- You have an eBay item ID and want its full structured details
- Listing monitoring, price/spec extraction
When NOT to use:
- You only have search keywords (use 'ebay_search' first)
Args:
params (EbayProductParams): product_id (required) plus optional tld,
country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured listing data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| redfin_for_saleA | Retrieve parsed Redfin listing data for a home for sale. Returns structured property data — price, beds/baths, square footage,
address, description, photos, price history, and listing details — from a
Redfin for-sale property page.
When to use:
- Extracting details for a specific for-sale property from its Redfin URL
- Real-estate data collection, comps, or listing monitoring
When NOT to use:
- A rental listing (use 'redfin_for_rent')
- A search-results page (use 'redfin_search') or agent profile ('redfin_agent')
Args:
params (RedfinForSaleParams): url (required, full Redfin property URL)
plus optional raw, tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured property data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| redfin_for_rentA | Retrieve parsed Redfin listing data for a rental property. Returns structured rental data — rent, beds/baths, square footage, address,
description, photos, and availability — from a Redfin rental property page.
When to use:
- Extracting details for a specific rental from its Redfin URL
- Rental-market data collection or listing monitoring
When NOT to use:
- A for-sale listing (use 'redfin_for_sale')
- A search-results page (use 'redfin_search') or agent profile ('redfin_agent')
Args:
params (RedfinForRentParams): url (required, full Redfin rental URL)
plus optional raw, tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured rental data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| redfin_searchA | Retrieve parsed Redfin search results for a search-results URL. Returns a structured list of properties — address, price, beds/baths,
square footage, URL — from a Redfin search-results page (with its filters
encoded in the URL).
When to use:
- Collecting listings for an area or filter set from a Redfin search URL
- Building datasets of properties matching search criteria
When NOT to use:
- A single property (use 'redfin_for_sale' / 'redfin_for_rent')
Args:
params (RedfinSearchParams): url (required, full Redfin search URL with
filters) plus optional tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured search results.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| redfin_agentA | Retrieve parsed Redfin real-estate agent profile data. Returns structured agent data — name, contact, brokerage, ratings, and
recent transactions/listings — from a Redfin agent profile page.
When to use:
- Extracting an agent's profile and activity from their Redfin URL
- Agent research or lead building
When NOT to use:
- Property or search data (use the other Redfin tools)
Args:
params (RedfinAgentParams): url (required, full Redfin agent profile
URL) plus optional tld, country_code, and output_format.
Returns:
str: JSON (default) or CSV containing the structured agent data.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| crawler_job_startA | Start a ScraperAPI crawl job from a starting URL. Submits an asynchronous crawl that follows links matching a regex outward
from start_url and scrapes each page. Returns immediately with a job id and
status (e.g. {"status": "initiated", "jobId": "..."}); the crawl runs in the
background. Poll 'crawler_job_status' with the returned job id to track
progress, and/or provide a callback_url webhook to receive results.
When to use:
- Crawling multiple linked pages of a site (not a single known URL)
- Building a dataset by following links to a depth or credit budget
When NOT to use:
- Fetching one known URL (use the 'scrape' tool)
- A structured marketplace/SERP lookup (use the relevant SDE tool)
Args:
params (CrawlerJobStartParams): start_url and url_regexp_include are
required; provide either max_depth or crawl_budget to bound the
crawl. Optional: url_regexp_exclude, api_params, callback_url,
additional_data, schedule, enabled.
Returns:
str: JSON with the job id and initial status.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, the
inputs are invalid, or the request fails.
|
| crawler_job_statusA | Get the status of a ScraperAPI crawl job. Returns counts of pages that are done, failed, and active for the job,
letting you track progress and detect completion. Poll this after
'crawler_job_start' until the job is finished.
When to use:
- Tracking progress or detecting completion of a job from 'crawler_job_start'
When NOT to use:
- Retrieving the crawled page contents (those are delivered to the job's
callback_url webhook, not returned here)
Args:
params (CrawlerJobRefParams): job_id (required) — the id returned by
crawler_job_start.
Returns:
str: JSON with the job's page counts (done/failed/active).
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| crawler_job_deleteA | Cancel and delete a ScraperAPI crawl job. Irreversibly cancels a running crawl job and removes it. Use this to stop a
crawl you no longer need.
When to use:
- Stopping a running crawl you started and no longer want
When NOT to use:
- Pausing temporarily — this permanently cancels the job (there is no resume)
Args:
params (CrawlerJobRefParams): job_id (required) — the id returned by
crawler_job_start.
Returns:
str: JSON confirming the job was cancelled.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| ai_parser_createA | Create a reusable AI parser from example URLs. Generates a parser that extracts structured data from pages sharing a
layout. Generation is ASYNCHRONOUS: this returns a parser id and version
immediately (e.g. {"id": "...", "version": 0}); poll 'ai_parser_get_details' until
its status is 'FINISHED' before calling 'ai_parser_parse_url'.
When to use:
- You want repeatable structured extraction across many similar pages
(e.g. product pages of one site) and there's no dedicated SDE for it
- You can provide 1–3 example URLs of the same page type
When NOT to use:
- A one-off fetch (use 'scrape') or a supported marketplace/SERP (use the SDE)
Args:
params (AiParserCreateParams): name and urls (1–3) are required;
optional scraper_params (fetch options) and fields (pre-declared
output schema).
Returns:
str: JSON with the new parser's id and version.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, the
inputs are invalid, or the request fails.
|
| ai_parser_get_detailsA | Get an AI parser's details and generation status. Returns the parser's status ('GENERATING', 'FINISHED', or 'FAILED'), its
fields, example results, and any error. Poll this after 'ai_parser_create'
(or after a field-editing 'ai_parser_update') until status is 'FINISHED'.
When to use:
- Polling a parser's status after create/update until it is 'FINISHED'
- Inspecting a parser's fields before parsing with it
When NOT to use:
- Extracting data from a page (use 'ai_parser_parse_url')
Args:
params (AiParserGetParams): parser_id (required) and optional version.
Returns:
str: JSON with the parser details and status.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| ai_parser_parse_urlA | Parse a URL with an existing AI parser and return structured data. Scrapes the given URL and applies the parser, returning the extracted data
as structured JSON keyed by the parser's fields. The parser must already be
'FINISHED' (see 'ai_parser_create' / 'ai_parser_get_details'). Costs 1 credit per call.
When to use:
- Extracting structured data from a page using a FINISHED parser
- Applying one parser across many similarly structured pages
When NOT to use:
- The parser isn't ready yet (create it, then poll 'ai_parser_get_details')
- A one-off fetch (use 'scrape') or a supported marketplace/SERP (use the SDE)
Args:
params (AiParseParams): parser_id and url are required; optional version.
Returns:
str: JSON of the form {"parser": ..., "version": ..., "result": {...}}.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| ai_parser_listA | List the AI parsers on your account. Returns each parser's id, name, status, version, and generation time.
When to use:
- Discovering existing parsers and their ids/status before reusing one
When NOT to use:
- Getting one parser's full fields/details (use 'ai_parser_get_details')
Returns:
str: JSON array of parser summaries.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| ai_parser_deleteA | Delete an AI parser. Permanently removes the parser (and all its versions) from your account.
When to use:
- Removing a parser you no longer need (e.g. to stay under plan limits)
When NOT to use:
- Changing a parser's fields (use 'ai_parser_update'); deletion is permanent
Args:
params (AiParserDeleteParams): parser_id (required).
Returns:
str: Empty on success (HTTP 204).
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, or
the request fails.
|
| ai_parser_updateA | Edit an AI parser's fields, creating a new version. Add, modify, rename, or remove fields. Adding or modifying fields triggers
asynchronous regeneration (poll 'ai_parser_get_details' until 'FINISHED'); renaming
or removing fields is applied immediately.
When to use:
- Adjusting an existing parser's fields (add/modify/rename/remove) rather
than recreating it
When NOT to use:
- Creating a brand-new parser (use 'ai_parser_create')
Args:
params (AiParserUpdateParams): parser_id (required) and optional version,
plus any of add_fields, modify_fields, rename_fields, remove_fields.
Returns:
str: JSON with the parser id and (new) version.
Raises:
ToolError: If the API key is missing, the rate limit is exceeded, the
inputs are invalid, or the request fails.
|