Skip to main content
Glama

🐢 ScrapingDog MCP Server

The complete Model Context Protocol server for ScrapingDog β€” all 77 API endpoints as AI-ready tools.

Give Claude (or any MCP client) the power to scrape any webpage, search Google, pull Amazon product data, read LinkedIn profiles, fetch YouTube transcripts, track Google Trends, and much more β€” through one API key.

MIT License Node >= 18 MCP

Built by extracting the entire official documentation (~90 pages at scrapingdog.com/documentation) into machine-readable specs, then verifying endpoints against the live API β€” including fixing endpoints the official docs get wrong (see Deviations).


⚑ Quick start

1. Get an API key β€” free 200-credit trial, no credit card: api.scrapingdog.com/register

2. Install (pick your client):

claude mcp add --scope user scrapingdog -e SCRAPINGDOG_API_KEY=YOUR_KEY -- npx -y github:alessandrobenigni/ScrapingDog-MCP

Claude Desktop

Add to claude_desktop_config.json (Settings β†’ Developer β†’ Edit Config):

{
  "mcpServers": {
    "scrapingdog": {
      "command": "npx",
      "args": ["-y", "github:alessandrobenigni/ScrapingDog-MCP"],
      "env": { "SCRAPINGDOG_API_KEY": "YOUR_KEY" }
    }
  }
}

Cursor / Windsurf / any MCP client

Same JSON shape as above in the client's MCP config (.cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json, …).

From a local clone (fastest startup, easiest to hack on)

git clone https://github.com/alessandrobenigni/ScrapingDog-MCP.git
cd ScrapingDog-MCP
npm install
claude mcp add --scope user scrapingdog -e SCRAPINGDOG_API_KEY=YOUR_KEY -- node "$(pwd)/src/index.js"

3. Use it β€” just ask your AI naturally:

"Search Google for 'best espresso machine 2026' and summarize the top results" "Scrape this product page and extract the price" "Get the transcript of this YouTube video" "What's trending on Google Trends for 'AI agents' in the US this year?" "Pull the LinkedIn company profile for Anthropic" "How many ScrapingDog credits do I have left?" (β†’ account tool)

That's it. No proxy management, no CAPTCHAs, no blocked requests.


Related MCP server: crawl4ai-mcp-server

🧰 The 77 tools

Every tool maps 1:1 to a ScrapingDog endpoint, with every documented parameter typed and described. Credit costs are per successful request and are shown in each tool's description.

🌐 Web Scraping

Tool

What it does

Credits

scrape

Scrape any URL β†’ raw HTML. JS rendering (dynamic), premium residential proxies (premium), geotargeting (country), sticky sessions (session_number), Cloudflare/CAPTCHA bypass (stealth_mode), custom header forwarding

1–25

scrape_post

Forward a POST body (forms, POST-only APIs) through the proxy layer

1+

screenshot

Screenshot any page (viewport or full-page, png/jpg/webp) β†’ returned as an actual image

5

πŸ” Google Search & AI

Tool

What it does

Credits

google_search

Full SERP as JSON: organic results, ads, AI Overviews, knowledge graph, local pack, top stories, related questions/searches, inline images/videos/shopping, discussions, immersive products, pagination

5

google_ai_mode

Google's AI Mode answers

10

google_ai_overview

Standalone AI Overview extraction

5

google_autocomplete

Query suggestions

β€”

google_lens

Visual search by image URL

β€”

Tool

What it does

google_maps_search / google_maps_places / google_maps_reviews / google_maps_photos / google_maps_posts

Complete Maps data: place search, place details, paginated reviews, photos, business posts

google_trends / google_trends_autocomplete / google_trends_trending_now

Interest over time, entity lookup, real-time trending topics

google_news_search / google_news_v2

News SERP + the newer topic-token News API

πŸŽ“ Google Scholar & Patents

google_scholar Β· google_scholar_profiles Β· google_scholar_author Β· google_scholar_author_citation Β· google_scholar_cite Β· google_patents Β· google_patent_details

Tip: google_patents returns patent_id as patent/US11734097B1/en; pass just the publication number (US11734097B1) to google_patent_details.

πŸ›οΈ Google Shopping & verticals

google_shopping Β· google_immersive_product Β· google_images Β· google_videos Β· google_shorts Β· google_finance Β· google_jobs Β· google_local Β· google_hotels Β· google_flights Β· google_ads_transparency

Multi-step flows are documented in the tool descriptions β€” e.g. Flights chains departure_token β†’ booking_token; Shopping filters chain via shoprs.

πŸ”Ž Other search engines

bing_search Β· bing_shopping Β· duckduckgo_search Β· baidu_search Β· universal_search (20 credits, engine-agnostic)

πŸ“¦ Amazon

Tool

Credits

amazon_product (by ASIN)

1 (US) / 5 (other countries)

amazon_search

1 (US) / 5 (other) / +25 premium

amazon_reviews Β· amazon_offers Β· amazon_autocomplete

5 / 5 / β€”

πŸ›’ Walmart, eBay, Flipkart, Myntra

walmart_product Β· walmart_search Β· walmart_reviews Β· walmart_autocomplete Β· ebay_search Β· ebay_product Β· flipkart_search Β· flipkart_product Β· myntra_search Β· myntra_product

Walmart/eBay/Flipkart/Myntra tools take the full target-site URL (locale lives in the domain, e.g. ebay.co.uk).

πŸ’Ό LinkedIn, Jobs & Local

Tool

What it does

Credits

linkedin_person_profile

Full person profile by public ID

50–100

linkedin_company_profile

Company/school profile

10

linkedin_post

Post data

5

linkedin_jobs_search / linkedin_job_overview

Job search + job details

5

yelp_scraper / indeed_scraper / zillow_scraper

Local businesses, job listings, real estate

4 / 1 / 2

πŸ“± Social & Video

x_profile Β· x_post Β· tiktok_profile Β· tiktok_post Β· tiktok_ads Β· youtube_search Β· youtube_video Β· youtube_channel Β· youtube_comments Β· youtube_transcripts (only 1 credit!)

πŸ€– AI & Utilities

Tool

What it does

Credits

chatgpt_scraper

Send a prompt to ChatGPT, get the structured conversation back

30

account

Remaining credits, concurrency, plan info β€” costs nothing, check it anytime

0

webhook

Fire-and-forget async scraping: returns a sid immediately, result POSTs to your dashboard-configured webhook

β€”


πŸ—οΈ How it works

specs/*.json  ──►  src/index.js  ──►  77 MCP tools over stdio
(source of truth)   (generic engine)
  • specs/*.json β€” nine category files holding every endpoint: exact URL, method, credit cost, every documented parameter (name/type/required/default/description), quirks, and response structure. Extracted from the full official docs on 2026-07-10.

  • src/index.js β€” a single ~200-line engine. At startup it loads the specs and registers one tool per endpoint. To fix or extend an API, edit a JSON file β€” zero code changes.

  • docs/*.md β€” distilled human-readable API reference per category (param tables, response shapes, gotchas).

  • test/smoke.js β€” end-to-end test: boots the server over stdio as a real MCP client and makes live API calls.

Built-in robustness

Concern

Handling

Your API key

Injected server-side from SCRAPINGDOG_API_KEY β€” never exposed as a tool parameter, never visible to the model

Rate limits / transient errors

Automatic retry (3 attempts, backoff) on 429 / 5xx

Slow scrapes

90s client timeout (ScrapingDog's own limit is 60s)

Giant HTML pages

Capped at 400k chars with a clear truncation notice

Screenshots

Returned as real MCP image content (base64 png/jpg/webp), not text

API errors

Mapped to actionable hints (401 β†’ bad key, 403 β†’ plan doesn't include this API, 410 β†’ target returned nothing, …)


πŸ§ͺ Verify your install

SCRAPINGDOG_API_KEY=YOUR_KEY npm test          # macOS/Linux
$env:SCRAPINGDOG_API_KEY="YOUR_KEY"; npm test  # Windows PowerShell

Boots the server, lists all 77 tools, and makes 4 live calls (account, google_search, scrape, youtube_transcripts). Uses ~7 credits.


⚠️ Deviations from the official docs

Found and fixed by testing against the live API (2026-07-10):

  1. YouTube endpoints β€” the docs list https://api.scrapingdog.com/youtube for all five YouTube APIs. That URL returns the ScrapingDog web app, not data. The real endpoints (used by this server) are /youtube/search, /youtube/video, /youtube/channel, /youtube/comments, /youtube/transcripts.

  2. youtube_video parameter β€” docs say video_id; the live API rejects it and requires v.

  3. Datacenter proxy mode (http://scrapingdog:APIKEY@proxy.scrapingdog.com:8081) is a passthrough HTTP proxy, not a REST endpoint β€” documented in docs/engines-utilities.md but intentionally not exposed as a tool.

  4. Where the docs omit a credit cost or response sample (a handful of endpoints), the tool description says so explicitly rather than guessing.


πŸ’³ Credits, limits & error codes

  • Free plan: 200 credits/month. Every tool description states its cost; account is free and shows your balance.

  • Cost-saving tip: scrape defaults to JS rendering (5 credits). Pass dynamic: false for static pages β†’ 1 credit.

  • Requests time out server-side after 60 seconds; concurrency is limited per plan tier (excess β†’ 429, which this server retries automatically).

Code

Meaning

200

Success

202

Accepted, queued

400

Bad request β€” check parameters

401

Invalid or missing API key

403

Your plan doesn't include this API

404

Resource not found

410

Target URL returned no content

429

Rate limit β€” auto-retried


πŸ”§ Troubleshooting

Symptom

Fix

Server exits immediately: SCRAPINGDOG_API_KEY ... not set

Pass the key via -e (Claude Code) or the env block (JSON configs)

401 Unauthorized on every call

Key is wrong/expired β€” check your dashboard

403 Forbidden on one specific tool

That API isn't in your plan tier

npx install is slow on first launch

It's cloning + installing once; subsequent launches use the cache. Or use the local-clone install

Tool returns truncated HTML

Expected on huge pages (400k-char cap) β€” scrape a more specific URL or use a structured tool instead of raw scrape

Windows: server won't start from a path with spaces

Quote the path in your config: "args": ["C:\\path with spaces\\src\\index.js"]


πŸ—ΊοΈ Repo map

β”œβ”€β”€ src/index.js        # the server (spec-driven engine)
β”œβ”€β”€ specs/              # machine-readable endpoint specs β€” the source of truth
β”‚   β”œβ”€β”€ web-scraping.json
β”‚   β”œβ”€β”€ google-search.json
β”‚   β”œβ”€β”€ google-ai-maps-trends.json
β”‚   β”œβ”€β”€ google-news-scholar-patents.json
β”‚   β”œβ”€β”€ google-shopping-other.json
β”‚   β”œβ”€β”€ engines-utilities.json
β”‚   β”œβ”€β”€ amazon-walmart.json
β”‚   β”œβ”€β”€ ecommerce.json
β”‚   β”œβ”€β”€ profiles-jobs-local.json
β”‚   └── social-youtube.json
β”œβ”€β”€ docs/               # human-readable API reference per category
β”œβ”€β”€ test/smoke.js       # live end-to-end test
└── .env.example

🀝 Contributing

ScrapingDog ships new APIs regularly. Adding one is trivial:

  1. Add an endpoint object to the matching specs/*.json (or a new spec file) β€” tool_name, endpoint, params, credits, description, response_summary.

  2. Restart the server. The tool exists.

  3. Run npm test, open a PR.

πŸ“„ License

MIT Β© Alessandro Benigni

Not affiliated with ScrapingDog β€” an independent MCP integration. ScrapingDog is a product of its respective owners. Use responsibly and in accordance with the terms of service of the sites you scrape.

Available Tools

77 tools
accountA

Programmatically monitor Scrapingdog account usage: remaining API credits and active concurrent connections. [Credits: Not applicable (account status check; documentation does not state a credit cost)] Notes: Response field names in the documented sample do not perfectly match the field names referenced in the accompanying code examples (e.g., sample response uses requestLimit/requestUsed while the Python/JS examples read data['remainingApiCredits'] and data.concurrentRequests) β€” likely inconsistent/outdated documentation. Both sets of field names are captured in response_summary for completeness. Returns: Documented sample: { threadCount, requestLimit, requestUsed, validity, concurrency_limit, pack, pack_type, linkedin_concurrency_limit, linkedin_thread_count, email, username, apiKey }. Code examples instead reference: { remainingApiCredits, concurrentRequests }.

Inputs: no named parameters.

amazon_autocompleteA

Retrieves keyword suggestions from Amazon's autocomplete feature based on partial search terms. Useful for keyword research and search-driven features. [Credits: 5 API credits per successful request.] Notes: All search-related params (prefix, last_prefix, suffix, mid) and localization params (domain, language) are documented as Optional, though prefix is effectively required in practice to get meaningful suggestions. Returns: [ {type: "KEYWORD", keyword: "..."}, ... ] β€” flat array of suggestion objects.

Inputs: mid, domain, prefix, suffix, +2 more.

amazon_offersA

Retrieves detailed offer data for a given ASIN β€” every active offer with pricing, availability, seller details, and delivery options. [Credits: Not explicitly stated on the documentation page.] Notes: No pagination applicable β€” returns all active offers for the ASIN in a single response (offers_count / total_offers reflect the returned set). Returns: { title, rating, reviews_total, image, asin, link, offers_count, total_offers, offers: [{price:{symbol,value,currency,raw}, minimum_order_quantity:{value}, maximum_order_quantity:{value}, condition:{is_new,title}, delivery:{fulfilled_by_amazon,date,comments,price:{...}}, seller:{name,link,id,rating,ratings_total,ratings_percentage_positive}, offer_id, is_prime, position, buybox_winner, offer_asin, is_pinned}] }

Inputs: asin (required), domain (required), country (required), postal_code.

amazon_productA

Retrieves comprehensive product data from any Amazon product page using its ASIN. Supports 20+ Amazon domains globally with localization options. [Credits: 1 API credit per successful request when country=us. 5 API credits per request for any other country (per the country parameter's own credit note).] Notes: domain and country are independent: domain selects the Amazon TLD to scrape, country affects marketplace localization/pricing and credit cost. No pagination applicable (single product lookup). Returns: { title, location, search_filter, product_information: {Brand Name, UPC, ASIN, Customer Reviews:{ratings_count,stars}, ...}, parent_asin, description, is_prime_exclusive, aplus, main_image, images: [], product_category, average_rating, feature_bullets: [], total_reviews, ratings_distribution: [{rating, distribution}], customer_reviews: [{customer_name, rating, review_title, date, review_snippet}] }

Inputs: asin (required), domain (required), country (required), language, +1 more.

amazon_reviewsA

Scrapes customer reviews from any Amazon product page, with filtering by star rating, reviewer type, media type, format, and sort order. [Credits: 5 API credits per successful request.] Notes: Pagination via the page parameter (starts at 1). Single concurrency is recommended by ScrapingDog for best reliability on this endpoint. Either provide asin+domain+page, or provide url as a shortcut. Returns: { reviews (total count), rating, actual_reviews, customer_reviews: [{user, title, date, rating, review}] }

Inputs: asin (required), page (required), domain (required), url, +5 more.

bing_shoppingA

Retrieves shopping results from Bing with support for market targeting, country localization, pagination, and advanced filters. [Credits: 5 API credits per request] Notes: Endpoint costs 5 API credits per request. mkt and cc are mutually exclusive. Returns: { search_parameters: { q }, shopping_results: [ { link, external_link, title, thumbnails[], seller, price, extracted_price } ] }

Inputs: query (required), cc, mkt, efirst, +1 more.

chatgpt_scraperA

Sends any prompt to ChatGPT and receives a structured JSON response including the full conversation with user and assistant roles. No browser automation required. [Credits: 30 API credits per successful request] Notes: Assistant content is returned as an array of structured content blocks (paragraph, numbered_list, etc.), not a single plain-text string. Returns: { conversation: [ { role: 'user'|'assistant', content: string | [ { type: 'paragraph', text } | { type: 'numbered_list', items[] } ] } ] }

Inputs: prompt (required), html.

ebay_productA

Scrape any eBay product listing page by URL to retrieve title, item ID, pricing, seller details, images, specifications, shipping and return policies. [Credits: 5 API credits per successful request] Notes: Product identity/locale is embedded in the url (item ID path segment, e.g. /itm/, and eBay country domain, e.g. ebay.co.uk vs ebay.com). Returns: { product_results: { title, itemId, seller: { name, reviews, positive_feedback_percent, thumbnail }, likes, price, extracted_price, condition, is_buy_it_now, main_image, images: [ { link, variant } ], shipping_details: { shipping_cost, seller_location }, return_details: { full_return_text, accepts_returns }, payment_methods: [], specifications: [ { name, value } ], product: { rating, reviews, reviews_histogram } } }

Inputs: url (required), html.

flipkart_productA

Scrape any Flipkart product page by URL to retrieve title, brand, pricing, specifications, images, customer ratings, reviews, payment options, and available offers. [Credits: 5 API credits per successful request] Notes: Product identity is embedded in the url (the /p/ path segment, e.g. itm909c8202e1864). Returns: { product_results: { title, brand, brand_url, description, price, previous_price, discount, delivery_date, payment_options: { emi_available, cod_available, net_banking }, seller: { name, rating, services: [] }, highlights: [], main_image, images: [], overall_rating, ratings_count, reviews_count, specifications: { : { : value } }, reviews: [ { rating, title, comment, reviewer, helpful_count } ] } }

Inputs: url (required), html.

google_ai_modeA

Searches Google with AI Mode enabled and returns structured results with reference sources and text blocks (paragraphs, headings, lists). [Credits: 10 API credits per successful request] Notes: uule and location are mutually exclusive geo-targeting mechanisms. country further localizes the search alongside location/uule. Returns: JSON with shopping_results (array), inline_images (array), text_blocks (array of typed blocks: paragraph {type, snippet, links[]}, heading {type, text, level}, list {type, items[]}), references (array of {title, link, snippet, source, index}), and local_results (array).

Inputs: query (required), html, safe, uule, +2 more.

google_ai_overviewA

Fetches Google AI Overview results using the follow-up url returned inside a Google Search API response, for cases where Google requires a separate request to load the AI Overview content. [Credits: 5 API credits per successful request] Notes: This endpoint is only used when the primary Google Search API response indicates AI Overview content requires a secondary fetch (i.e., it returns a url for it rather than inline content). The url value is single-use and time-limited to 2 minutes from issuance. Returns: JSON with ai_overview object containing text_blocks (array of typed blocks: paragraph {type, snippet, snippet_highlighted_words}, list {type, list: [{snippet}]}) and references (array of {title, link, snippet, source, index}).

Inputs: url (required).

google_autocompleteB

Returns Google Search autocomplete suggestions for a query, based on geographic location and language, including relevance scores. [Credits: Not specified in documentation] Notes: No pagination parameters documented. Returns: { suggestions: [{value, relevance, type}] }

Inputs: query (required), country, language.

google_financeA

Retrieves Google Finance market data including stock price, price movement, and related market/news instruments across multiple markets and asset classes. [Credits: Not specified in documentation] Notes: The query value must be a Google Finance ticker:exchange pair (e.g. TICKER:EXCHANGE). Returns: { summary: {title, stock, exchange, price, price_movement: {percentage, value, movement}}, market: {: [{stock, name, price, price_movement: {percentage, value, movement}}]} }

Inputs: query (required), html, language.

google_flightsA

Retrieves Google Flights results for one-way, round-trip, and multi-city searches, with sorting/filtering and booking token support. Costs 5 API credits per request. [Credits: 5 API credits per request] Notes: Two-step flow for full itineraries: first request returns flights plus a departure_token per option; re-request with departure_token to get return/next-segment flights, then use a resulting booking_token to fetch booking options (which ignores dates/filters). return_date required only for type=1; return_times only usable for type=1. exclude_airlines/include_airlines are mutually exclusive, as are departure_token/booking_token. Returns: { best_flights: [{flights: [{departure_airport: {id, name, time}, arrival_airport: {id, name, time}, duration, airplane, travel_class, flight_number, airline, legroom}], total_duration, price, type}] }

Inputs: arrival_id (required), departure_id (required), bags, html, +25 more.

google_hotelsA

Retrieves Google Hotels search results including property listings, pricing, ratings, amenities, and detailed property info (via property_token). Costs 5 API credits per request. [Credits: 5 API credits per request] Notes: check_in_date/check_out_date use YYYY-MM-DD. Several hotel-only filters (brands, hotel_class, free_cancellation, special_offers, eco_certified) are not supported when vacation_rentals=true; conversely bedrooms/bathrooms only apply when vacation_rentals=true. Pagination via next_page_token; use property_token for a detail lookup on a single property. Returns: { ads: [{title, source, price, reviews, overall_rating, amenities: [], hotel_class, free_cancellation}] } (sample truncated in docs; likely also includes a properties/hotels results array alongside ads)

Inputs: query (required), check_in_date (required), check_out_date (required), html, +22 more.

google_imagesA

Retrieves Google Images search results including titles, thumbnails, source links, and original image dimensions. Each successful request costs 10 API credits. [Credits: 10 API credits per successful request] Notes: Time filtering: use either period_unit+period_value OR start_date/end_date, not both together with tbs's own date components (each overrides the corresponding tbs component). chips values are discovered from a prior response's suggested_searches array. Returns: { images_results: [{title, image, source, original, link, original_height, original_width, original_size, rank}] }

Inputs: query (required), cr, lr, tbs, +19 more.

google_immersive_productA

Scrapes Google's immersive product popup view for a specific product, returning brand info, price range, and per-store listings with ratings and reviews. [Credits: Not specified in documentation] Notes: Seller pagination is manual: enable stores=true and increment sori by the cumulative count of sellers already returned across previous calls. Returns: { title, brand, reviews, rating, price_range, stores: [{name, link, price, ratings, reviews}] }

Inputs: page_token (required), sori, stores, country, +1 more.

google_jobsA

Retrieves Google Jobs search results including job titles, company names, locations, salary/extensions, and apply links. Costs 5 API credits per request. [Credits: 5 API credits per request] Notes: Pagination uses next_page_token, obtained from a prior response. Returns: { jobs_results: [{title, company_name, location, via, extensions: [], apply_links: [{title, link}]}] }

Inputs: query (required), uds, lrad, uule, +6 more.

google_lensA

Reverse image search via Google Lens, supporting product results, visual matches, and exact matches for a given image URL. Costs 5 API credits per request. [Credits: 5 API credits per request] Notes: Documented parameter type for product/visual_matches/exact_matches is String but values are boolean-like ('true'/'false'). Returns: { lens_results: [{position, title, source, link, thumbnail}] }

Inputs: url (required), query, country, product, +3 more.

google_localA

Retrieves Google Local business listings including ratings, reviews, addresses, GPS coordinates, and business type. Costs 5 API credits per request. [Credits: 5 API credits per request] Notes: location and uule are mutually exclusive. Returns: { local_results: [{title, rating, reviews, price, description, address, type, place_id, gps_coordinates: {lat, lng}}] }

Inputs: query (required), tbs, page, uule, +5 more.

google_maps_photosA

Retrieves photos for a Google Maps location, optionally filtered by category, given a Maps data_id. [Credits: Not explicitly stated on this page (see general Scrapingdog credit pricing).] Notes: To filter by category, first call the endpoint without category_id to obtain the categories array and their id values, then re-call with category_id set. Pagination is cursor-based via next_page_token; the response also returns a ready-made scrapingdog_pagination.next URL for convenience. Returns: JSON with categories array of {name, id}, photos array of {thumbnail, image}, and scrapingdog_pagination {next (full next-page URL), next_page_token}.

Inputs: data_id (required), language, category_id, next_page_token.

google_maps_placesA

Retrieves a complete business profile for a specific Google Maps location, including operating hours, service options, amenities, accessibility features, and payment methods. [Credits: Not explicitly stated on this page (see general Scrapingdog credit pricing).] Notes: Two lookup modes: (1) type=place plus data_id, or (2) place_id alone. The docs list type and data_id as Required, but place_id is documented as independently usable without the other optional parameters, effectively making it an alternative required-parameter path. Returns: JSON object (single place) with title, rating, reviews (count), gps_coordinates {latitude, longitude}, type[], address, phone, website, operating_hours (per weekday), service_options {dine_in, takeout, delivery}, amenities {wifi, restroom, seating}, accessibility {wheelchair_accessible_entrance, wheelchair_accessible_seating}, payment_options {credit_cards, debit_cards, nfc_mobile_payments}.

Inputs: type (required), data_id (required), country, place_id.

google_maps_postsA

Retrieves posts and updates published on a Google Business Profile listing, such as promotions, announcements, and news, given a Maps data_id. [Credits: Not explicitly stated on this page (see general Scrapingdog credit pricing).] Notes: data_id is obtained by first querying google_maps_search with the location name and reading the data_id (or posts_link) field of the desired result. Pagination is cursor-based via next_page_token. Returns: JSON with location_details {title, logo}, post_data array of {description, date, image, link}, and next_page_token (string, present when more pages are available).

Inputs: data_id (required), next_page_token.

google_maps_reviewsA

Retrieves customer reviews for a Google Maps location, with sorting and topic filtering, given a Maps data_id. [Credits: Not explicitly stated on this page (see general Scrapingdog credit pricing).] Notes: topic_id values come from the topics array in a previous response (each topic has a keyword, mentions count, and id). The results param has an exception: on an unfiltered first page (no next_page_token and no topic_id) it is ignored and 8 results are returned. Pagination is cursor-based via next_page_token; response includes a ready-made pagination.next URL. Returns: JSON with locationDetails {title, address, rating, total_reviews}, topics array of {keyword, mentions, id}, reviews_results array of {rating, date, snippet, user {name, reviews, thumbnail}, images[]}, and pagination {next_page_token, next (full next-page URL)}.

Inputs: data_id (required), results, sort_by, language, +2 more.

google_news_v2A

Faster Google News endpoint (v2) that returns image URLs instead of base64 and actual ISO dates instead of relative durations. Supports browsing by topic, publication, or section tokens instead of a free-text query. [Credits: Not explicitly stated on this documentation page.] Notes: The docs reference a 'story_token' concept (used to restrict/sort story clusters via the so parameter, and excluded from combination with query/topic_token/publication_token) but do not provide a dedicated parameter entry or example for it - treat as undocumented/ambiguous and confirm with ScrapingDog support before relying on it. topic_token, publication_token, and query are mutually exclusive top-level ways to select content; section_token narrows a topic_token/publication_token further. No page/results pagination parameter is documented for this v2 endpoint. Returns: { news_results: [ { title, link, thumbnail, source, authors: [string], date (ISO 8601), rank } ] }

Inputs: so, query, country, language, +3 more.

google_patent_detailsA

Retrieves detailed information about a specific patent, including title, PDF link, inventors, assignees, filing/priority/publication dates, and prior-art keywords. [Credits: 5 API credits per request] Notes: patent_id format is the plain publication_number (e.g. US11734097B1), not the 'patent/US.../en' path format returned by the google_patents search endpoint's organic_results.patent_id field. Returns: { title, type, pdf, publication_number, country, prior_art_keywords: [string], prior_art_date, application_number, inventors: [ { name, link, scrapingdog_link } ], assignees: [string], priority_date, filing_date, publication_date, worldwide_applications: {} }

Inputs: patent_id (required), html, language.

google_patentsA

Searches patent records across Google Patents with advanced filtering by inventor, assignee, date range, country, language, status, type, and litigation status. [Credits: 5 API credits per request] Notes: Pagination uses page (0-indexed) plus num for page size. patent_id values returned (e.g. patent/US7520532B2/en) are the format needed - note this differs slightly from the plain publication_number format (e.g. US7520532B2) expected by google_patent_details' patent_id parameter; strip the 'patent/' prefix and '/en' suffix when passing to google_patent_details. Returns: { organic_results: [ { position, patent_id, title, priority_date, filing_date, grant_date, inventor, assignee, publication_number } ] }

Inputs: query (required), num, dups, page, +13 more.

google_scholarA

Searches academic papers and scholarly content on Google Scholar, with support for citation lookups, author/source search helpers, year filters, and pagination. [Credits: 5 API credits per request] Notes: Article/result 'id' values from scholar_results (e.g. 7QAkDEkBjpYJ) feed the google_scholar_cite endpoint's query parameter. cluster_id (from inline_links.versions) and cites_id (from inline_links.cited_by) are the tokens used respectively with the cluster and cites parameters on this same endpoint. Pagination uses page (0-indexed); pagination.page_no in the response maps page numbers to result URLs. Returns: { related_searches: [ { title, link } ], scholar_results: [ { title, title_link, id, displayed_link, snippet, inline_links: { versions: { total, link, cluster_id }, cited_by: { total, link, cites_id }, related_pages_link }, resources: [ { title, type, link } ] } ], pagination: { current, page_no: { : url } } }

Inputs: query (required), lr, html, page, +12 more.

google_scholar_authorA

Retrieves comprehensive author information from a Google Scholar profile: name, affiliation, email, and publication/citation history. The same endpoint also exposes a co-author list mode via view_op=list_colleagues. [Credits: Not explicitly stated on this documentation page.] Notes: IMPORTANT AMBIGUITY: this endpoint's URL (/google_scholar/author) is identical to the one documented separately as 'google_scholar_author_citation'. The two documentation pages describe the same physical endpoint used in two modes: (1) default/no view_op -> full author profile + article list (this tool), and (2) view_op=view_citation + citation_id -> single citation detail with h-index/i10-index/citation graph (see google_scholar_author_citation). Consider merging these into one MCP tool with an optional view_op/citation_id argument, or keep separate tools that both call the same endpoint with different required params. Returns: { author: { name, affiliations, email }, articles: [ { title, citation_id, authors, publication, cited_by: { value }, year } ] }

Inputs: author_id (required), sort, results, view_op, +2 more.

google_scholar_author_citationA

Retrieves citation metrics (h-index, i10-index, yearly citation graph) and individual article citation detail for a Google Scholar author, using view_op=view_citation on the author endpoint. [Credits: Not explicitly stated on this documentation page.] Notes: SAME endpoint URL as google_scholar_author (https://api.scrapingdog.com/google_scholar/author) - see ambiguity note on that tool. citation_id format observed as '<author_id>:<opaque_token>' (e.g. LSsXyncAAAAJ:2osOgNQ5qMEC). Returns: { cited_by: { table: [ { citations: { all, since_2019 } }, { h_index: { all, since_2019 } }, { i10_index: { all, since_2019 } } ], graph: [ { year, citations } ] } }

Inputs: view_op (required), author_id (required), citation_id (required), language.

google_scholar_citeA

Retrieves formatted academic citations (MLA, APA, Chicago, Harvard, Vancouver) plus export links (BibTeX, EndNote, RefMan, RefWorks) for a paper, using its Google Scholar organic result ID. [Credits: Not explicitly stated on this documentation page.] Notes: The 'query' parameter here is actually a result ID (e.g. FDc6HiktlqEJ), not free text - it is the id field returned by scholar_results items from the google_scholar endpoint. Returns: { citations: [ { title (format name: MLA/APA/Chicago/Harvard/Vancouver), snippet } ], links: [ { name (BibTeX/EndNote/RefMan/RefWorks), link } ] }

Inputs: query (required), language.

google_scholar_profilesA

Searches for academic researcher profiles on Google Scholar by author name, returning affiliation, citation counts, and research interests. [Credits: Not explicitly stated on this documentation page.] Notes: Cursor-based pagination via after_author/before_author tokens rather than page numbers (tokens are not shown in the sample response - they would need to be captured from a real API response's pagination metadata, not documented inline). Each profile's author_id is the value to feed into the google_scholar_author and google_scholar_author_citation endpoints. Returns: { profiles: [ { title, author_id, affiliations, cited_by (integer), interests: [ { title } ] } ] }

Inputs: mauthors (required), after_author, before_author.

google_shoppingA

Scrapes Google Shopping search results including ads, shopping listings, and available price/filter facets. Each successful request costs 10 credits. [Credits: 10 credits per successful request] Notes: Pagination via page (0-indexed). Product filtering is a two-step flow: read filters[].options[].scrapingdog_link from a response and reuse the shoprs/updated query values it encodes to apply/stack/remove filters. Each shopping result item includes scrapingdog_immersive_product_link, a ready-to-call URL for the Google Immersive Product API (contains the page_token). Returns: { filters: [{type, options: [{text, tbs}]}], ads: [{title, link, source, price, thumbnail}], shopping_results: [{title, product_link, product_id, scrapingdog_immersive_product_link, source, price, extracted_price, old_price_extracted, rating, reviews, extensions[], thumbnail, position}] }

Inputs: query (required), lr, tbs, html, +8 more.

google_shortsA

Retrieves Google Shorts (short video) search results with thumbnails, GIF previews, account names, and publication dates. [Credits: Not specified in documentation] Notes: Pagination is offset-based via start, unlike most other endpoints in this category which use page. Returns: { short_videos_results: [{title, source, thumbnail, gif_url, account_name, date}] }

Inputs: query (required), lr, tbs, html, +7 more.

google_videosA

Retrieves Google video search results with geographic localization, language preferences, and advanced filtering. Costs 5 API credits per request. [Credits: 5 API credits per request] Notes: Pagination via page (0-indexed). Returns: { video_results: [{title, thumbnail, link, displayed_link, time, rank}] }

Inputs: query (required), lr, tbs, html, +8 more.

indeed_scraperA

Extract job listings from any Indeed search results URL, returning structured JSON with job titles, companies, locations, descriptions, and salaries. [Credits: 1 credit per successful request] Notes: Input is a complete Indeed search-results URL rather than discrete keyword/location params; build it via Indeed's own search UI/filters first. The last array element in the response is a summary object with totalJobs and the searched jobTitle rather than an individual listing. Returns: Array of job objects: {jobTitle, jobLink, companyName, companyLocation, jobDescription, Salary, jobMetaData[] (e.g. 'Full-time','8 hour shift'), jobPosting (relative date string)}, plus a trailing summary object {totalJobs, jobTitle}.

Inputs: url (required).

linkedin_company_profileA

Scrape publicly available LinkedIn company (or school) profiles by their company/school ID. Uses the same endpoint as the person profile scraper, differentiated via the type parameter. [Credits: 10 credits per successful request] Notes: Shares the /profile endpoint with the Person Profile Scraper; the type value ('company' or 'school') determines which entity is scraped. No premium/webhook params are documented for this variant. Returns: No example response is published in the Scrapingdog documentation for this endpoint. Expected to be an object with company/school profile fields such as name, description/about, industry, website, headquarters/location, company size, specialties, and follower count -- exact field names are not confirmed by the docs.

Inputs: id (required), type (required).

linkedin_job_overviewA

Retrieve detailed information about a specific LinkedIn job posting using its job ID, such as full description, requirements, and company details. [Credits: 5 credits per successful request] Notes: Shares the /jobs endpoint with the Jobs Search API; presence of job_id (instead of field) triggers job-overview (detail) mode. job_id is typically obtained from a prior linkedin_jobs_search call or from a LinkedIn job posting URL. Returns: No example response is published in the Scrapingdog documentation for this endpoint. Expected to be an object with detailed job fields such as title, company, location, full description, employment type, experience level, applicant count, and posting date -- exact field names are not confirmed by the docs.

Inputs: job_id (required).

linkedin_person_profileA

Scrape publicly available LinkedIn person profiles by their profile ID (the slug from the profile URL). Returns full profile data such as experience, education, and about sections. [Credits: 50-100 credits per successful request] Notes: id is the LinkedIn profile slug (public identifier), not a numeric ID. type=profile is required to differentiate this from the company/school profile mode on the same endpoint. Using premium=true (private/hard-to-reach profiles) increases the credit cost toward the top of the 50-100 credit range. webhook=true trades immediate response for a delayed (2-3 min) but higher success-rate scrape. Returns: No example response is published in the Scrapingdog documentation for this endpoint. Based on the documented purpose (full LinkedIn person profile data), the JSON response is expected to be an object containing profile fields such as name/fullName, headline, location, about/summary, current position/company, experience (array), education (array), skills, and possibly profile/cover images -- exact field names are not confirmed by the docs.

Inputs: id (required), type (required), premium, webhook.

linkedin_postA

Scrape publicly available LinkedIn posts by their post ID, returning the post's content and engagement data. [Credits: 5 credits per successful request] Notes: id is the numeric LinkedIn post/activity ID extracted from the post's share URL. Returns: No example response is published in the Scrapingdog documentation for this endpoint. Expected to be an object with post fields such as author info, post text/content, posted date, and engagement metrics (likes, comments, shares) -- exact field names are not confirmed by the docs.

Inputs: id (required).

myntra_productA

Scrape any Myntra product page by URL to retrieve product name, brand, MRP, pricing, available sizes, color options, ratings, images, seller details, and available offers. [Credits: 5 API credits per successful request] Notes: Product identity is embedded in the url (the numeric ID path segment before /buy, e.g. 31076617). Returns: { product_results: { productId, name, brand, mrp, country_of_origin, material, fit, overall_rating, ratings_count, images: [], sizes: [ { label, mrp, discounted_price, discount_percent, available, seller, stock } ], offers: [ { type, description } ], product_details: [ { section, content } ], reviews: [ { rating, title, comment, reviewer, helpful_count } ] } }

Inputs: url (required), html.

scrapeA

Scrapes any public webpage. Pass your API key and target URL; Scrapingdog handles rotating proxies, CAPTCHA bypass, and optional JavaScript rendering automatically. Returns the raw HTML of the target page. [Credits: 1 credit (dynamic=false, no premium). 5 credits with JS rendering (dynamic=true, the default). 10 credits with premium=true (residential proxies). 25 credits when premium=true and dynamic=true are combined. 10 credits when stealth_mode=true.] Notes: All feature parameters above (dynamic, premium, country, session_number, stealth_mode, custom_headers, wait) are documented on separate sub-pages of the Web Scraping API doc but apply to this single GET /scrape endpoint β€” they are not separate tools/endpoints. Custom headers: attach real HTTP headers to your request to Scrapingdog (not as a query param value) and also set custom_headers=true; Scrapingdog relays them to the target site. Geotargeting (country) combines with premium for non-US residential exit nodes. Sessions (session_number) keep the same proxy IP for up to 60s of inactivity, useful for multi-step flows (e.g. login then scrape). Stealth Mode (stealth_mode=true) is the CAPTCHA/Cloudflare-bypass mechanism β€” there is no separate 'captcha' parameter documented. No markdown-output parameter or ai_query parameter was found documented on any of the fetched pages for this endpoint (unlike some other Scrapingdog APIs) β€” response is raw HTML only. Returns: Raw HTML of the target page (Content-Type text/html), returned as the response body exactly as fetched/rendered by Scrapingdog's proxy/browser infrastructure.

Inputs: url (required), wait, country, dynamic, +4 more.

scrape_postA

Sends a POST request (with custom headers and/or form/body data) through Scrapingdog to an external URL or form, e.g. for submitting forms or hitting POST-only APIs/endpoints while still benefiting from Scrapingdog's proxy and rendering infrastructure. Returns the target site's response body. [Credits: Same credit structure as the GET /scrape endpoint (1 base credit; more if dynamic/premium/stealth_mode are combined) β€” the docs do not state a different cost for POST specifically.] Notes: Mechanics: api_key and url stay as query-string parameters on the https://api.scrapingdog.com/scrape endpoint exactly like the GET variant; only the HTTP method changes to POST and the request body you send is what gets relayed as the POST body to the target url. Documented example uses application/x-www-form-urlencoded body (foo=bar) via curl -d / requests.post(data=...) / axios.post(body, ...). Custom headers can be combined with this (see custom_headers feature) for authenticated POST submissions. All other /scrape query parameters (dynamic, premium, country, session_number, stealth_mode, custom_headers, wait) are presumably still available since it is the same endpoint, though the POST-specific doc page only demonstrates api_key + url + body. Returns: The target site's raw response body (typically HTML) as returned after Scrapingdog submits the POST request on your behalf.

Inputs: url (required), body (required), content_type.

screenshotA

Captures a screenshot of any webpage. Control viewport size, output image format/quality, full-page vs. viewport-only capture, and when the browser considers the page 'loaded' before capturing. Returns binary image data. [Credits: 5 credits per successful request.] Notes: Distinct endpoint from /scrape (https://api.scrapingdog.com/screenshot). This is the only one of the fetched pages that ships a full, structured 'API Parameters' reference table in the docs (Scrapingdog Parameters / Query Parameters / Full Page / Viewport / Wait Until / Format sections) β€” all other /scrape sub-pages only describe their one feature parameter in prose plus a code example. No explicit country/proxy/session parameters are documented for the screenshot endpoint itself. Returns: Binary image data in the requested format (default PNG; Content-Type image/png, image/jpeg, or image/webp). Typically saved directly to a file (e.g. screenshot.png) rather than parsed as text.

Inputs: url (required), width, format, height, +3 more.

tiktok_adsA

Searches and extracts ad listings from TikTok's Ad Library by keyword or advertiser ID, with filtering by country, date range, and sort order. [Credits: 5 API credits per successful request] Notes: query_type=1 (default) pairs with query; query_type=2 pairs with advertiser_id. Pagination is handled via next_page_token echoed in the response. Returns: { code, total, has_more, search_id, next_page_token, ads: [{ id, name, audit_status, type, first_shown_date, last_shown_date, videos: [{video_url, cover_img}], image_urls[], estimated_audience, spent, impression, show_mode, rejection_info, sor_audit_status }] }

Inputs: query, country, sort_by, query_type, +3 more.

tiktok_postA

Extracts detailed data for any TikTok post including play counts, likes, comments, shares, video quality details, music info, and full author stats. [Credits: 5 API credits per successful request] Notes: Identify the post either via the (username + post_id) pair or via the single url parameter β€” one of these two approaches is required. Returns: { id, canonical_url, description, created_at, location, privacy, statistics: {plays, likes, comments, shares, collects}, video: {width, height, duration, quality, codec, play_url, download_url, subtitles[]}, music: {id, title, author, duration, audio_url, cover}, author: {id, username, verified, followers, following, likes, video_count}, hashtags: [{id, name}], mentions[], categories[], suggested_words[] }

Inputs: url, post_id, username.

tiktok_profileA

Scrapes comprehensive profile data for any TikTok user including follower counts, engagement metrics, bio, avatar URLs, and account metadata. [Credits: 5 API credits per successful request] Notes: username is the TikTok handle without the @ symbol. Returns: { id, username, nickname, sec_uid, bio, profile_url, verified, private_account, followers, following, likes, video_count, region, language, avatar, avatar_medium, avatar_large, created_at, is_commerce_account, commerce_category, is_organization, duet_setting, stitch_setting, comment_setting, download_setting }

Inputs: username (required).

walmart_autocompleteA

Retrieves Walmart autocomplete search suggestions for any query, including a list of suggested search terms and category navigation data. [Credits: 5 API credits per successful request.] Notes: No domain/country localization parameters documented for this endpoint. No pagination applicable. Returns: { queries: [{displayName, url}], fns: [{title, image, url}] } β€” fns are suggested category/browse links related to the query.

Inputs: query (required).

walmart_productA

Scrapes any Walmart product page by URL, retrieving title, price, images, ratings, reviews, seller info, and more. [Credits: 5 API credits per successful request.] Notes: Uses a full product page URL rather than a product ID parameter. No domain/country localization parameters documented; localization is implicit in the walmart.com URL passed. No pagination applicable. Returns: { title, description, upc, item_id, product_type, price, currency, availability, delivery_date, images: [], seller:{seller_id,seller_name,display_name}, overall_rating, review_count, ratings_distribution: [{stars,count}], categories: [{name,url}], specifications: {brand,count,active_ingredient,...} }

Inputs: url (required).

walmart_reviewsA

Scrapes Walmart product reviews by passing any Walmart reviews page URL, returning ratings distribution, individual reviews, and top positive/negative feedback. [Credits: 5 API credits per successful request.] Notes: No domain/country localization or explicit pagination parameters documented; pagination (if supported) would need to be embedded in the passed reviews URL. Returns: { product: { name, url, overall_rating, total_count, ratings: [{stars,count}], top_positive: {title,text,rating,review_submission_time,user_nickname,customer_type}, top_negative: {...same shape...}, reviews: [{position,title,text,rating,review_submission_time,user_nickname,customer_type}] } }

Inputs: url (required).

webhookA

Receives scraped data automatically at a user-configured endpoint instead of polling for results. Configure a webhook URL in the dashboard and Scrapingdog POSTs the scraped content directly to it once ready β€” ideal for async workflows and database pipelines. [Credits: Not specified in documentation] Notes: Calling this endpoint returns only a session id (sid) immediately β€” the actual scraped content is delivered asynchronously via HTTP POST to the webhook URL configured in the dashboard, not in the initial API response. Returns: Immediate response: { sid: '' }. Actual scraped payload is POSTed later to the configured webhook URL (shape not documented on this page).

Inputs: url (required), dynamic, webhook_id.

x_postA

Extracts detailed data for any X (Twitter) post, including engagement metrics (views, retweets, quotes, likes, bookmarks), full post content, timestamp, and complete author profile information. [Credits: 5 API credits per successful request] Notes: tweetId is the numeric status ID segment from the tweet permalink. Returns: { tweet_id, post_url, tweet, created_at, views, retweets, quotes, likes, bookmarks, profile_name, profile_handle, profile_url, profile_picture, description, location, followers_count, following_count, likes_count, statuses_count, is_blue_verified }

Inputs: tweetId (required).

x_profileA

Scrapes comprehensive profile data for any X (Twitter) user, including follower counts, engagement metrics, bio, profile picture, and account metadata. [Credits: 5 API credits per successful request] Notes: profileId accepts a plain handle/username (no @ shown in examples), e.g. elonmusk. Returns: { id, rest_id, name, handle, url, description, location, profile_picture, followers_count, following_count, likes_count, statuses_count, media_count, listed_count, is_blue_verified, verified, pinned_tweet_ids[], translator_type, labels[] }

Inputs: profileId (required).

yelp_scraperA

Extract business listings from Yelp by keyword and location, with support for category filters, sorting, attribute filters, and pagination. [Credits: 4 credits per successful request] Notes: Pagination uses the 'start' offset param in increments of 10 (matches Yelp's own pagination scheme); response includes a pagination.next URL. yelp_domain allows targeting international Yelp TLDs. Returns: Object with: filters { category[]: {text,value}, price[]: {text,value}, distance[]: {text,value} }, inline_ads[], sponsored_ads[]: {title,url,rating,review_count,price,categories[],neighborhood}, organic_results[]: {title,url,rating,review_count,price,categories[],neighborhood,thumbnail}, pagination: {next}.

Inputs: find_loc (required), l, cflt, attrs, +4 more.

youtube_channelA

Scrapes comprehensive YouTube channel data including about info, subscriber counts, video sections, and YouTube Shorts. [Credits: 5 API credits per successful request] Notes: Shares the single /youtube endpoint with all other YouTube tools; presence of channel_id selects Channel behavior. Requires the UC-prefixed channel ID, not a @handle. ENDPOINT VERIFIED LIVE 2026-07-10: docs show bare /youtube but the working endpoint is /youtube/channel. Returns: { about: {description, subscribers, videos, views, joined_date_text, joined_date, links:[{title,link}]}, channel: {handle, id, title, subscribers, videos, keywords, tags[], avatar, banner, is_family_safe, first_link}, highlighted_video: {id,title,link,views,published_time}, videos_sections: [{section_title, videos[]}], shorts_sections: [{section_title, videos: [{position,id,title,link,views,thumbnail}]}] }

Inputs: channel_id (required), country, language.

youtube_commentsA

Scrapes comments from any YouTube video, returning comment text, likes, reply counts, author details, and pagination tokens for fetching additional pages. [Credits: 5 API credits per successful request] Notes: Shares the single /youtube endpoint with all other YouTube tools; combination of v + comment-specific params selects Comments behavior (distinguish from Transcripts/Video by the presence of next_page_token support and response shape). Each comment includes its own replies_next_page_token for paginating that comment's reply thread. ENDPOINT VERIFIED LIVE 2026-07-10: docs show bare /youtube but the working endpoint is /youtube/comments. Returns: { total_comments, comments: [{ comment_id, link, channel: {id,handle,link,thumbnail}, published_date, text, likes, replies, replies_next_page_token }], pagination: {next_page_token} }

Inputs: v (required), country, language, next_page_token.

youtube_transcriptsA

Extracts the complete transcript (captions) from any YouTube video as an array of text segments with start time and duration. [Credits: 1 API credit per successful request] Notes: Shares the single /youtube endpoint with all other YouTube tools; presence of v (without search_query/channel_id) selects Transcripts behavior. This is the cheapest YouTube endpoint at 1 credit. ENDPOINT VERIFIED LIVE 2026-07-10: docs show bare /youtube but the working endpoint is /youtube/transcripts. Returns: { transcripts: [{ text, start, duration }] }

Inputs: v (required), country, language.

youtube_videoA

Scrapes detailed metadata for any YouTube video including title, views, likes, description, keywords, channel info, key moments, and chapters. [Credits: 5 API credits per successful request] Notes: Shares the single /youtube endpoint with all other YouTube tools; uses video_id (not v) to select Video-metadata behavior β€” this differs from Transcripts/Comments, which use v. ENDPOINT VERIFIED LIVE 2026-07-10: docs show bare /youtube but the working endpoint is /youtube/video. Param name is v (verified live; video_id returns an error). Returns: { video: {id, title, views, likes, author, published_time, description, keywords[], thumbnail}, channel: {id, name, link, subscribers, featured_channel:{id,name,link}, thumbnail}, comment: {total}, key_moments[], chapters[] }

Inputs: v (required), country, language.

zillow_scraperA

Extract real estate listings from any Zillow search page in real time, returning structured property data. [Credits: 2 credits per successful request] Notes: Input is a complete Zillow search-results URL rather than discrete keyword/location params; build it via Zillow's own search UI/filters first (e.g., for_sale, for_rent, sold pages). Returns: Object: { zillow_listings[]: {zpid, id, rawHomeStatusCd, marketingStatusSimplifiedCd, imgSrc, hasImage, detailUrl, statusType, statusText, countryCurrency, price, unformattedPrice, address, addressStreet, addressCity, addressState, addressZipcode, isUndisclosedAddress, beds, baths, latLong:{latitude,longitude}, zestimate, rentZestimate} }.

Inputs: url (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.6/5.0

    Scored across 77 tools

    Disambiguation4/5

    Each tool targets a specific platform and function (e.g., google_search vs google_images), making distinctions clear. Minor overlap exists between universal_search and google_search, but descriptions resolve ambiguity.

    Naming Consistency4/5

    Most tools follow a consistent 'service_function' pattern (e.g., amazon_product, google_images). A few tools like 'scrape' and 'account' lack a service prefix, causing slight inconsistency.

    Tool Count1/5

    With 77 tools, the server far exceeds the typical well-scoped range (3-15). This overwhelming number forces agents to sift through many options, increasing selection complexity and potential errors.

    Completeness4/5

    Coverage is broad, including search, product details, reviews, profiles, and posts for most major platforms. Some niche endpoints (patents, scholarships) are included, though a few services (e.g., Indeed, Yelp) have only one tool.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers