Skip to main content
Glama
scraperapi

scraperapi-mcp-server

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
API_KEYYesYour ScraperAPI API key.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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.
    

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/scraperapi/scraperapi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server