ScrapingDog-MCP
Provides tools to scrape Amazon product pages by ASIN, search products, retrieve reviews, offers, and autocomplete suggestions.
Provides a tool to search Baidu, the Chinese search engine.
Provides a tool to search DuckDuckGo.
Provides tools to search eBay and retrieve product details by URL.
Provides tools to search Flipkart and retrieve product details.
Provides comprehensive tools for Google search, AI Overviews, autocomplete, Trends, News, Shopping, Images, Videos, Finance, Jobs, Local, Hotels, Flights, Ads Transparency, and more.
Provides tools for Google Maps search, place details, reviews, photos, and business posts.
Provides tools for Google Scholar search, author profiles, author citations, and citation formats.
Provides a tool to scrape job listings from Indeed.
Provides tools to scrape TikTok profiles, posts, and ads.
Provides tools to scrape Walmart product pages, search products, reviews, and autocomplete.
Provides a tool to scrape Yelp for local business information.
Provides tools to search YouTube, retrieve video details, channel information, comments, and transcripts.
Provides a tool to scrape real estate listings from Zillow.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ScrapingDog-MCPSearch Google for 'MCP servers' and summarize"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
πΆ 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.
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 Code (recommended: user scope = available in every project)
claude mcp add --scope user scrapingdog -e SCRAPINGDOG_API_KEY=YOUR_KEY -- npx -y github:alessandrobenigni/ScrapingDog-MCPClaude 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?" (β
accounttool)
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 any URL β raw HTML. JS rendering ( | 1β25 |
| Forward a POST body (forms, POST-only APIs) through the proxy layer | 1+ |
| Screenshot any page (viewport or full-page, png/jpg/webp) β returned as an actual image | 5 |
π Google Search & AI
Tool | What it does | Credits |
| 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's AI Mode answers | 10 |
| Standalone AI Overview extraction | 5 |
| Query suggestions | β |
| Visual search by image URL | β |
πΊοΈ Google Maps, Trends, News
Tool | What it does |
| Complete Maps data: place search, place details, paginated reviews, photos, business posts |
| Interest over time, entity lookup, real-time trending topics |
| 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_patentsreturnspatent_idaspatent/US11734097B1/en; pass just the publication number (US11734097B1) togoogle_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 viashoprs.
π Other search engines
bing_search Β· bing_shopping Β· duckduckgo_search Β· baidu_search Β· universal_search (20 credits, engine-agnostic)
π¦ Amazon
Tool | Credits |
| 1 (US) / 5 (other countries) |
| 1 (US) / 5 (other) / +25 premium |
| 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 |
| Full person profile by public ID | 50β100 |
| Company/school profile | 10 |
| Post data | 5 |
| Job search + job details | 5 |
| 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 |
| Send a prompt to ChatGPT, get the structured conversation back | 30 |
| Remaining credits, concurrency, plan info β costs nothing, check it anytime | 0 |
| Fire-and-forget async scraping: returns a | β |
ποΈ 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 |
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 PowerShellBoots 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):
YouTube endpoints β the docs list
https://api.scrapingdog.com/youtubefor 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.youtube_videoparameter β docs sayvideo_id; the live API rejects it and requiresv.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.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;
accountis free and shows your balance.Cost-saving tip:
scrapedefaults to JS rendering (5 credits). Passdynamic: falsefor 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: | Pass the key via |
| Key is wrong/expired β check your dashboard |
| That API isn't in your plan tier |
| 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 |
Windows: server won't start from a path with spaces | Quote the path in your config: |
πΊοΈ 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:
Add an endpoint object to the matching
specs/*.json(or a new spec file) βtool_name,endpoint,params,credits,description,response_summary.Restart the server. The tool exists.
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 toolsaccountA
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 }.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden. It transparently notes that response field names are inconsistent between sample and code examples, and captures both in 'response_summary'. Also clarifies that credits are not applicable. This reveals important behavioral quirks beyond basic functionality.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and not front-loaded. It starts with purpose but then dives into detailed notes about documentation inconsistencies, which could be summarized more briefly. Every sentence does not earn its place; extraneous details clutter the message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately details return fields (though inconsistently). For a simple status-check tool with zero parameters, it covers essential aspects, but the lengthy digression on documentation conflicts may confuse rather than clarify.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the baseline is 4. The description does not need to add parameter details. It instead provides useful information about the response structure, adding value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool monitors Scrapingdog account usage, specifically remaining API credits and active concurrent connections. This verb+resource combination is unique among sibling tools (primarily scrapers), leaving no ambiguity about its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. However, among siblings with different scraping functions, the context strongly implies it's for account status checks. Still, lacking when-not or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mid | No | Merchant ID for identifying a specific seller to scope suggestions. | |
| domain | No | TLD extension of the Amazon domain. Examples: com, in, de, fr. See Amazon Supported TLDs doc for the full list. | |
| prefix | No | The partial search term that Amazon uses to generate keyword suggestions (e.g. spoon, iph). | |
| suffix | No | Assists with search query completion and predictions. | |
| language | No | Language code for suggestions (e.g. en, es, fr, de). (default: en) | |
| last_prefix | No | Indicates previously typed characters. For example, if the user typed 'i' then 'phone', set last_prefix=i. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses credit cost and clarifies parameter behavior (prefix effectively required), but does not mention read-only nature or rate limits. Overall, it provides useful behavioral context beyond basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with purpose. It includes necessary details about credits and return format without unnecessary verbosity. A slight amount of extra text could be trimmed, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description explains the return format (flat array of suggestion objects). All parameters are covered both in schema and description, and the effective requirement for prefix is noted. Fairly complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that prefix is effectively required, describing the return format, and providing context for parameters like last_prefix and suffix. This goes beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves keyword suggestions from Amazon's autocomplete feature based on partial search terms. It uses specific verbs and resources, and is distinct from sibling tools like amazon_search and google_autocomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it's useful for keyword research and search-driven features, and notes that prefix is effectively required. It implies when to use but does not explicitly state when not to use or name alternatives, though context from sibling tools makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | The Amazon Standard Identification Number (ASIN) of the product whose offers you want to retrieve. Example: B0BZXDFGSJ. | |
| domain | Yes | The Amazon domain to scrape. Pass the TLD only β e.g. com, co.uk, de, co.jp. See Amazon Supported TLDs doc for the full list. | |
| country | Yes | ISO country code for targeting a particular country. Affects price, delivery estimates, and offer availability. See Amazon Supported Countries doc for the full list. (default: us) | |
| postal_code | No | ZIP / postal code for hyper-local delivery filtering. When set, the API returns shipping dates and fees specific to that location. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. Discloses no pagination and returns all active offers, also provides return structure. However, lacks disclosure of whether tool is read-only, auth needs, rate limits, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is relatively concise, front-loading purpose. Includes helpful notes on credits and pagination with return structure example. A few extra details could be trimmed but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given absence of output schema, description compensates by providing detailed return structure. Covers key aspects like no pagination and credit note. Adequate for a single-resource tool with 4 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3. Description does not add much beyond schema for parameters; it mentions 'for a given ASIN' but schema already describes asin. No additional semantic enrichment for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Retrieves detailed offer data for a given ASIN' combined with resource 'ASIN' and includes key aspects like pricing, availability, seller details, delivery. Clearly distinguishes from sibling tools like amazon_product (product details) and amazon_reviews (reviews).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when needing offer data for a specific ASIN, mentions no pagination and returns all active offers, but does not explicitly state when to use vs alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | Amazon product ID (ASIN), found in the product URL (e.g. B00AP877FS). | |
| domain | Yes | TLD extension of the Amazon domain to scrape. Examples: com, in, de, fr, co.uk. See Amazon Supported TLDs doc for the full list. | |
| country | Yes | ISO country code for targeting a specific Amazon marketplace. Costs 5 credits per request except USA which costs 1 credit. See Amazon Supported Countries doc for the full list. (default: us) | |
| language | No | Standard ISO 639-1 language code (e.g. en, de, fr) to specify the language for product data. | |
| postal_code | No | To get data from a particular postal code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses credit costs (1 vs 5 credits), explains domain/country independence, notes no pagination, and outlines return fields. Missing details like error handling or rate limits but adequate for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a main purpose sentence, then notes on credits and domain/country, and a return structure summary. It is informative without being overly verbose, though slightly long due to the return format details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no annotations, and no output schema, the description provides significant context: return structure (partial), credit costs, domain/country semantics, and no pagination. It could be more complete with error handling but covers the essentials for a product lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline is 3. The description adds value by explaining the domain/country interaction and credit cost implications, which go beyond the schema descriptions. This extra context justifies a score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves comprehensive product data from any Amazon product page using its ASIN. This specific verb+resource+identifier distinguishes it from sibling tools like amazon_offers, amazon_reviews, and amazon_search which focus on specific subsets of data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool (single product lookup) and explains the relationship between domain and country parameters. However, it does not explicitly contrast with sibling tools or state when not to use it, leaving room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Alternative to passing asin, domain, and page separately β pass the full Amazon reviews URL directly. | |
| asin | Yes | Amazon product ID (ASIN) of the product whose reviews you want to scrape. | |
| page | Yes | The page number of reviews to retrieve. Starts at 1. | |
| domain | Yes | TLD extension of the Amazon domain. Examples: com, in, de, fr. See Amazon Supported TLDs doc for the full list. | |
| sort_by | No | Sort order for reviews. Values: helpful (default), recent. (default: helpful) | |
| media_type | No | Filter by media type. Values: all_contents (default), media_reviews_only. (default: all_contents) | |
| format_type | No | Filter by format. Values: all_formats (default), current_format. (default: all_formats) | |
| reviewer_type | No | Filter by reviewer type. Values: all_reviews (default), avp_only_reviews (verified purchases only). (default: all_reviews) | |
| filter_by_star | No | Filter reviews by star rating. Values: all_stars (default), five_star, four_star, three_star, two_star, one_star, positive, critical. (default: all_stars) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description takes responsibility for behavioral disclosure. It mentions credit cost (5 API credits per request), pagination, concurrency recommendation, and return format. Missing details on error handling or input validation, but overall adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient: 4-5 sentences, front-loaded with purpose, followed by important notes. No redundant or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and no output schema, the description provides a return format example, which adds completeness. It covers key aspects like pagination, concurrency, and input alternatives but lacks details on potential errors or limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal value beyond what is in the schema. It groups parameters (asin+domain+page) and notes the url shortcut, but does not elaborate on each parameter's meaning. Baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes customer reviews from Amazon product pages, with explicit filtering options. It distinguishes itself from sibling tools that target other platforms (e.g., google_maps_reviews, walmart_reviews) by specifying Amazon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear usage guidance: pagination via page parameter (starts at 1), single concurrency recommendation, and alternative ways to provide input (asin+domain+page vs url). However, it does not explicitly differentiate from other review scraping tools or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
amazon_searchA
Retrieves search result listings from Amazon for any query, including product titles, prices, ratings, review counts, sponsored status, and ASINs, plus pagination links. [Credits: 1 API credit per successful request when country=us (5 credits for other countries per the country parameter). premium=true costs an additional 25 credits per request.] Notes: Pagination is via the page parameter (starts at 1); the response also returns a pagination array of ready-to-use next-page Amazon URLs (informational, not directly usable as this API's own next-page param). Returns: { search_message, location, results: [{type, title, image, has_prime, is_best_seller, is_amazon_choice, limited_time_deal, deal_of_the_day, stars, total_reviews, optimized_url, sponsored, number_of_people_bought, asin, availability_quantity, price_string, price_symbol, price, extracted_price, currency, climate_pledge_friendly, absolute_position, organic_position, certification}], pagination: [urls] }
| Name | Required | Description | Default |
|---|---|---|---|
| page | Yes | The page number of results to retrieve. Starts at 1. | |
| query | Yes | The search query string to look up on Amazon. | |
| domain | Yes | TLD extension of the Amazon domain. Examples: com, in, de, fr, co.uk. See Amazon Supported TLDs doc for the full list. | |
| country | Yes | ISO country code for targeting a specific Amazon marketplace. Costs 5 credits per request except USA which costs 1 credit. See Amazon Supported Countries doc for the full list. (default: us) | |
| premium | No | Set to true to use premium proxies for scraping Amazon, which increases the chances of retrieving sponsored results. Costs 25 credits per request. (default: false) | |
| language | No | Standard ISO 639-1 language code (e.g. en, de, fr) to specify the language for product data. | |
| postal_code | No | To get data from a particular postal code. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It discloses credit costs per country and premium, and explains pagination behavior (page parameter and informational pagination array). It does not mention rate limits, error handling, or side effects, but for a read-only search tool, these are less critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear main sentence, credit details in brackets, pagination note, and return format. It is slightly verbose but front-loaded with the primary purpose, making it effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description thoroughly details the return structure with example fields. It covers all necessary aspects of the tool's functionality, including multiple parameters and their effects, making it complete for an agent to use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter documented. The description adds value beyond the schema by explaining credit cost implications for country and premium, and clarifying that the page parameter starts at 1 and the pagination array is informational.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves search result listings from Amazon for any query, listing specific data points (titles, prices, ratings, etc.) and pagination links. It distinguishes itself from sibling tools like amazon_product, amazon_reviews, etc., which focus on single product details or reviews.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes credit costs and pagination notes but does not explicitly state when to use this tool versus alternatives. The context of sibling tools implies usage, but the description lacks direct guidance on scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
baidu_searchA
Scrape Baidu search engine results pages. Supports Baidu search operators (inurl:, site:, intitle:, etc.) and localization/pagination controls. [Credits: 5 API credits per successful request] Notes: Pagination is offset-based via pn (0, 10, 20, ...) combined with rn (page size, max 50, default 10). Localization is controlled via ct for Chinese script variant. Advanced filters (q5, q6, bs, oq, f, gpc) mimic Baidu's native search operators/URL parameters for finer targeting. Returns: { Baidu_data: [ { title, link, snippet, rank } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| f | No | Source of the search. E.g., 8 = standard search, 3 = from suggestion list, 1 = from related search. | |
| bs | No | Specifies the preceding search query. | |
| ct | No | Language restriction. Allowed values: 1 = All languages, 2 = Simplified Chinese, 3 = Traditional Chinese. | |
| oq | No | Indicates the original search query when the user arrives via a related search. | |
| pn | No | Result offset for pagination. 0 = first page, 10 = second page, 20 = third page, etc. | |
| q5 | No | Functions like inurl: or intitle:. Use 1 to search by page title, 2 to search by URL. | |
| q6 | No | Functions like site: (e.g., q6=scrapingdog.com). | |
| rn | No | Maximum number of results to return. Maximum value is 50. (default: 10) | |
| gpc | No | Time range filter for results, specified using Unix timestamps. | |
| html | No | Return the full HTML of the Baidu page instead of parsed JSON. (default: false) | |
| query | Yes | Search query. Supports Baidu search operators such as inurl:, site:, intitle:, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description compensates fully. It discloses credit cost (5 API credits), pagination behavior (offset-based via pn/rn), localization (ct parameter), advanced filters (mimicking Baidu operators), and the ability to return HTML instead of parsed JSON. This is rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and well-structured: purpose, cost, pagination, localization, advanced filters, return format. Every sentence provides essential information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description specifies the exact return format (Baidu_data array with title, link, snippet, rank). With 11 parameters and complex behavior (pagination, localization, operators), the description covers all key aspects, making it complete for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter has a description. The tool description adds value by grouping parameters (q5, q6, bs, oq, f, gpc) as 'advanced filters' and explaining their combined purpose, and clarifying pagination semantics. This synthesizes usage context beyond individual schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Scrape Baidu search engine results pages' with specific verb+resource, and supports Baidu-specific search operators. It distinguishes itself from sibling search tools (e.g., google_search, bing_search) by being Baidu-specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use the tool (for scraping Baidu results) and details pagination/localization settings, but does not explicitly state when not to use it or compare to alternatives. The sibling list includes many search tools, so the name and description sufficiently differentiate it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bing_searchA
Retrieves organic search results from Bing with customizable parameters for geographic location, localization, pagination, and content filtering. [Credits: 5 API credits per request] Notes: Endpoint costs 5 API credits per request. lat/lon set a geographic starting point; mkt and cc are mutually exclusive localization options. Returns: { bing_data: [ { title, displayed_link, link, snippet, rank, images[] } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Country from which the search is conducted, using two-character ISO 3166-1 format (e.g., 'us', 'de', 'gb'). | |
| lat | No | GPS latitude as the starting point for the search. | |
| lon | No | GPS longitude as the starting point for the search. | |
| mkt | No | Market from which the results originate, formatted as <language code>-<country code> (e.g., en-US), case-insensitive. Mutually exclusive with cc. | |
| count | No | Number of results displayed per page, ranging from 1 to 50 maximum. Actual results may vary. | |
| first | No | Adjusts the starting position of organic search results. Setting first=10 shifts the 10th result to first position. (default: 1) | |
| query | Yes | The search query, allowing any terms or operators used in a standard Bing search (e.g., 'query', NOT, OR, site:, filetype:, near:, ip:, loc:, feed:, etc.). | |
| filters | No | Enables advanced filtering options such as date range filtering or specific display filters. Construct values by copying filters from a Bing search URL. | |
| safeSearch | No | Controls filtering level for adult content. Allowed values: Off, Moderate, Strict. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the credit cost, mutual exclusivity of mkt and cc, and the return format. However, it omits details like rate limits, auth requirements, or error handling. The added context is valuable but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably concise with two sentences plus a notes section. It front-loads the purpose and adds essential details. Slight repetition of credit cost could be removed, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and no output schema, the description covers the return format and key parameter interactions. It lacks details on pagination behavior or error cases, but for a search tool it provides sufficient context for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds meaning beyond the schema by explaining that lat/lon set a geographic starting point, mkt and cc are mutually exclusive, and first adjusts starting position with a default. This improves usability beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves organic search results from Bing with customizable parameters, using a specific verb and resource. It implicitly distinguishes from sibling tools like Bing Shopping and other search engines by explicitly naming Bing search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or compare to related sibling tools like google_search, duckduckgo_search, etc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| cc | No | Country from which search results are returned, using 2-character ISO 3166-1 format (e.g., 'us', 'de', 'gb'). | |
| mkt | No | Market from which results are returned, formatted as <language code>-<country code> (e.g., en-US), case-insensitive. See Bing Market Codes reference. Cannot be used together with cc. | |
| query | Yes | The search query. Any term normally used in a Bing Shopping search. | |
| efirst | No | Controls the offset of the shopping results. For example, efirst=10 starts the results from the 10th shopping result. | |
| filters | No | Advanced filters such as date range filters (e.g., ex1:"ez5_18169_18230") or specific display filters (e.g., ufn:, sid:, catguid:, segment:, entitysegment:). Create exact filter values by running a Bing search and copying the filters query parameter from the URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It reveals the credit cost, mutual exclusivity constraint, and return structure (JSON snippet). It does not mention idempotency or side effects, but as a read tool, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a note on credits and mutual exclusivity, plus a return snippet. It is fairly concise, though the return snippet could be more structured. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description provides a return structure example. It covers credit usage and mutual exclusivity. It omits rate limits and error handling, but for a search tool, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are documented there. The description adds minor value: notes mutual exclusivity (not in schema) and efirst offset behavior. Most parameter meaning is already in schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieves shopping results from Bing', specifying the resource and action. It lists features like market targeting, pagination, and filters, distinguishing it from sibling shopping tools (e.g., google_shopping, walmart_search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions mutual exclusivity of mkt/cc, pagination via efirst, and filters, providing clear usage context. However, it lacks explicit guidance on when to choose this tool over alternatives like google_shopping or ebay_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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[] } ] } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | Set to true to return the full HTML of the ChatGPT page instead of parsed JSON. (default: false) | |
| prompt | Yes | The prompt to send to ChatGPT (e.g., 'What is web scraping?'). The API returns the full conversation with user and assistant roles in structured JSON. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that no browser automation is required, the credit cost, and details of the return format (structured content blocks). However, it does not mention potential rate limits, error handling, or any required authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with no wasted words. It is front-loaded with the core action, then provides key details (credits, return format) in a clear, well-structured manner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description adequately explains the return value. It covers credits and behavioral notes. It is mostly complete for a simple 2-parameter tool, though it could mention error scenarios or timeouts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by explaining the return format and that the prompt is the input, providing context beyond the schema descriptions. It clarifies the structure of the response, aiding interpretation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool sends a prompt to ChatGPT and returns a structured JSON conversation. The verb 'sends' and resource 'ChatGPT' are specific, and the description distinguishes from sibling tools that cover other platforms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you want a ChatGPT conversation, but does not explicitly state when to use this tool vs alternatives, nor does it mention when not to use it. The sibling context helps, but the description itself lacks guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
duckduckgo_searchA
Retrieves organic search results from DuckDuckGo with support for region codes, date filters, and pagination via next page tokens. [Credits: Not specified in documentation] Notes: Documentation page does not state a per-request credit cost (unlike Bing Search/Shopping, Universal Search, and ChatGPT Scraper). Response text in the doc's example description referenced 'Google page' for the html param, likely a documentation copy-paste artifact β applies to the DuckDuckGo result page. Returns: { organic_results: [ { title, displayed_link, link, snippet, rank } ], next_page_token }
| Name | Required | Description | Default |
|---|---|---|---|
| df | No | Filters results by date. Allowed values: d (Past day), w (Past week), m (Past month), y (Past year). Custom range format: from_date..to_date (e.g., 2021-06-15..2024-06-16). | |
| kl | No | Region for the DuckDuckGo search, e.g., us-en for the United States, uk-en for the United Kingdom, fr-fr for France. See DuckDuckGo Supported Regions documentation page. | |
| html | No | Returns the full HTML of the (DuckDuckGo) page. (default: false) | |
| query | Yes | The search query. Any terms or operators normally used in a standard DuckDuckGo search (e.g., inurl:, site:, intitle:, etc.). | |
| next_page_token | No | Token used to fetch subsequent results. Each page returns 15 results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It describes return format and pagination but does not explicitly state read-only nature or any side effects. The documentation note is about a copy-paste artifact, not behavioral.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed and well-structured, front-loading the core purpose and then adding notes. It is slightly lengthy but each part adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description thoroughly explains the return format and pagination tokens. It covers query, filters, region, pagination, and HTML retrieval, making it self-contained for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 5 parameters are documented in schema (100% coverage). The description adds extra context: custom date range format, region documentation reference, and clarification on the html param, providing value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves organic search results from DuckDuckGo and lists key features (region codes, date filters, pagination), differentiating it from sibling search tools like Google or Bing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use DuckDuckGo vs alternatives (e.g., Google, Bing). Mentions credit cost differences but does not provide decision criteria for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 } } }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the eBay product listing page to scrape (e.g., https://www.ebay.co.uk/itm/305209925234). | |
| html | No | Return the full HTML of the eBay page instead of parsed JSON. (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the output format (parsed JSON or HTML), mentions credit cost, and describes the return structure in detail. However, it omits potential error states or rate limiting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and includes important notes. It is moderately concise; the return schema section is lengthy but useful. Minor redundancy (credits noted twice). Still efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a detailed return structure. Parameters are fully described. It covers credits and URL structure. Missing guidance on error handling or edge cases, but adequate for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the URL structure (product identity embedded) but largely restates schema descriptions for the html parameter. Infomation adds minimal extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scrapes an eBay product listing page by URL to retrieve specific fields. It uses a specific verb ('scrape') and resource ('eBay product listing page'), and is easily distinguishable from siblings like ebay_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for scraping known product pages but does not explicitly state when to use this vs alternatives (e.g., ebay_search). It provides a note about URL structure but no when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ebay_searchA
Scrape eBay search result pages by passing any eBay search URL. Returns product titles, item IDs, prices, seller info, condition, and shipping details. [Credits: 5 API credits per successful request] Notes: No dedicated query/keyword parameter β instead pass a full, pre-built eBay search URL (including any eBay-native filters such as _nkw, category, price range, etc.) via the url parameter. eBay domain (e.g. ebay.com, ebay.co.uk) inside the url determines locale/country. Returns: { search_results: [ { position, itemId, title, seller: { name, feedback, positive_feedback_percent }, condition, is_sponsored, rating, reviews, buying_format, is_best_offer, price, extracted_price, original_price, extracted_original_price, discount, link, items_sold, extracted_items_sold, shipping, is_free_return } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the eBay search page to scrape (e.g., https://www.ebay.com/sch/i.html?_nkw=laptop). Build this URL from eBay's website using their search filters. | |
| html | No | Return the full HTML of the eBay page instead of parsed JSON. (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses credit cost per request and describes the return structure in detail. No annotations provided, so description carries full burden; it adequately informs the agent about behavior (a read scrape with cost implications).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficient use of three sentences plus structured Notes and Returns sections. No redundancy; every sentence adds value. Front-loaded with purpose and cost, then usage details, then output format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description provides a detailed schema for the return object. Covers credit cost, URL construction, and parameter semantics. Fully adequate for a simple two-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but description adds practical context: explains that url must be a full pre-built search URL, gives example, and clarifies that domain sets locale. This goes beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States specific verb ('scrape'), resource ('eBay search result pages'), and what is returned (product titles, item IDs, etc.). Clearly distinguishes from sibling tools like ebay_product by referring to search pages, not product pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to pass a full eBay search URL and explains how to build it using eBay's filters. Notes that the domain determines locale. Lacks explicit when-not-to-use or alternatives, but guidance is strong and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 } ] } }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the Flipkart product page to scrape (e.g., https://www.flipkart.com/product/p/itm909c8202e1864). | |
| html | No | Return the full HTML of the Flipkart page instead of parsed JSON. (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. It mentions credit consumption and notes about URL identity, but does not disclose rate limits, error handling, or behavior for invalid URLs. Some transparency but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is relatively concise with organized sections (credits, notes, returns). Could be slightly more concise, but this is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations or output schema, description provides a detailed return structure and credit info. Lacks error behavior and prerequisites, but is largely complete for a scraping tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters described). Description adds value by explaining credit cost and return format, enhancing understanding beyond the schema. Baseline 3, plus extra context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states it scrapes Flipkart product pages via URL and lists the data retrieved (title, brand, pricing, etc.). It clearly distinguishes from sibling tools like flipkart_search (which searches) and other product scrapers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides credit cost and notes about URL structure, but does not explicitly state when to use this tool versus alternatives (e.g., flipkart_search for search, or amazon_product for Amazon). No exclusion criteria or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
flipkart_searchA
Scrape Flipkart search result pages by passing any Flipkart search URL. Returns product titles, URLs, prices, discounts, ratings, and product IDs. [Credits: 5 API credits per successful request] Notes: No dedicated query parameter β pass a full pre-built Flipkart search URL (with the q= query string and any native Flipkart filters) via url. Returns: { search_results: [ { title, url, price, previous_price, discount, rating, ratings_count, reviews_count, features: [], image, product_id } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the Flipkart search page to scrape (e.g., https://www.flipkart.com/search?q=laptops). | |
| html | No | Return the full HTML of the Flipkart page instead of parsed JSON. (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the credit cost (5 API credits) and the return format, but does not mention failure modes, rate limits, or explicitly state it is read-only. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with purpose, and every sentence adds value. It includes a note about credits and a sample return structure, all within a few sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity and lack of output schema, the description provides a complete picture: purpose, parameter usage, return format, and cost. The example return structure compensates for the missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value beyond the schema by clarifying that the 'url' parameter must be a fully built search URL with q= parameter. The schema already covers both parameters with 100% coverage, and the description reinforces usage without adding redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes Flipkart search result pages and lists the returned fields (titles, prices, etc.). It distinguishes from siblings like flipkart_product by specifying search results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to pass a full pre-built Flipkart search URL via the 'url' parameter, providing clear usage guidance. It does not mention when not to use or list alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_transparencyA
Pulls ad data from the Google Ads Transparency Center, looked up by advertiser ID or keyword/domain, filterable by platform, region, date range, and creative format. Costs 5 API credits per request. [Credits: 5 API credits per request] Notes: Provide either advertiser_id or text (not necessarily both). political_ads=true requires region to be set. Pagination via next_page_token found in scrapingdog_pagination of the response. Note the endpoint path uses a slash (google/ads_transparency) rather than an underscore, unlike other endpoints in this category. Returns: { search_information: {total_results}, ad_creatives: [{advertiser_id, advertiser, ad_creative_id, format, link, total_days_shown, first_shown, last_shown}], scrapingdog_pagination: {next_page_token} }
| Name | Required | Description | Default |
|---|---|---|---|
| num | No | Maximum number of ad results to return per request. (default: 40) | |
| html | No | Set true to receive raw HTML of the page instead of parsed JSON. (default: false) | |
| text | No | Keyword or domain to search within the Google Ads Transparency Center, equivalent to typing into its search bar. Alternative to advertiser_id; when provided, advertiser_id is not required. | |
| region | No | Numeric region code to limit results to a geographic region, e.g. 2840 for the United States. Omit for global results. | |
| end_date | No | Latest date for returned ads, format YYYYMMDD, e.g. 20221231. To fetch a single day, set end_date to one day after start_date. | |
| platform | No | Filter results to a specific platform. Allowed values: PLAY (Google Play), MAPS (Google Maps), SEARCH (Google Search), SHOPPING (Google Shopping), YOUTUBE (YouTube). Leave blank for all platforms. | |
| start_date | No | Earliest date for returned ads, format YYYYMMDD, e.g. 20221201. | |
| advertiser_id | No | Unique ID assigned to a Google advertiser, found in the Ads Transparency Center URL (e.g. AR17828074650563772417 from https://adstransparency.google.com/advertiser/AR17828074650563772417). Accepts a single ID or comma-separated list. Alternative to `text`. | |
| political_ads | No | Set true to include only political advertisements (tracked/excluded from regular results by default). Must be combined with `region`. (default: false) | |
| creative_format | No | Filter ads by creative type. Allowed values: text, image, video. | |
| next_page_token | No | Token for fetching the next page of results, obtained from the previous response's scrapingdog_pagination.next_page_token. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses API credit cost (5 per request), pagination mechanism, endpoint path quirk, and return structure. While it omits auth or rate limits, it covers key behavioral aspects well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is efficiently structured: front-loaded purpose, followed by usage notes, pagination, endpoint correction, and return schema. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters, no annotations, and no output schema, the description is remarkably complete. It explains alternative parameter groups, pagination, cost, and return format. Users have enough to use tool correctly without external docs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all params described). The description adds value beyond schema by explaining usage relationships (advertiser_id vs text, political_ads+region), pagination token origin, and endpoint path note, raising it above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it pulls ad data from Google Ads Transparency Center, specifying lookup methods (advertiser ID or keyword/domain) and multiple filters. It distinguishes itself from sibling Google scraping tools by focusing on ad transparency, making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage conditions: provide either advertiser_id or text, political_ads requires region, pagination via next_page_token. It lacks explicit comparison to siblings, but given no direct competition, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | If true, returns the full HTML of the Google page instead of/alongside structured JSON. (default: false) | |
| safe | No | Adult content filter. Allowed values: `active` (filter on) or `off` (filter disabled). (default: off) | |
| uule | No | Encoded parameter specifying the geographic location/locale for tailored results (e.g. w+CAIQIFJlbGF5IFN0YXRlcw==). Cannot be used together with `location`. | |
| query | Yes | The query you want to search in Google AI Mode. | |
| country | No | Two-letter country code for the Google search (e.g. us, uk, fr). See Google Country Parameter documentation for full list. (default: us) | |
| location | No | Specifies the origin location of the search. Cannot be used together with `uule`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description details the return format including specific fields (shopping_results, inline_images, text_blocks, references, local_results) and notes the credit cost per request. It also explains the mutual exclusivity of geo-targeting parameters. However, it does not mention authentication requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence followed by structured notes on parameter constraints and return format. It is front-loaded with the core purpose and credits. The return format details are extensive but necessary for a tool returning structured data. Could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description provides a thorough explanation of the return structure and key parameter interactions. It covers credit costs and mutual exclusivity. However, it does not explain what 'AI Mode' entails or how it differs from other Google search tools, which would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% parameter description coverage, so the baseline is 3. The description adds value by explaining the mutual exclusivity of uule and location, and that country further localizes the search alongside these parameters. This additional context improves understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool searches Google with AI Mode enabled and returns structured results with reference sources and text blocks. It distinctly identifies the action and resource, differentiating from siblings like 'google_search' which likely returns standard search results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions credit cost and mutual exclusivity of parameters (uule and location), but does not provide explicit guidance on when to use this tool versus alternatives (e.g., standard Google Search or AI Overview). The context of when to prefer AI Mode over other Google tools is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The AI Overview fetch URL returned by the Google Search API response's ai_overview field. Expires after 2 minutes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses cost, single-use and time-limited nature, and return format. No annotations provided, so description carries full burden. Missing failure modes for expired URLs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus concise notes on credits and output. Front-loaded with purpose, minimal waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given single parameter and no output schema, description details when, why, how, cost, limitations, and expected JSON structure. Very complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with a description. Description adds context about the URL source and expiration, enhancing understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it fetches Google AI Overview using a follow-up URL from Google Search API. Distinguishes from sibling tools like google_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (only when primary response indicates secondary fetch), notes URL is single-use and time-limited (2 minutes), and provides credit cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Google Search query. Example: query=pizza | |
| country | No | Two-letter country code for the Google search (e.g. US, UK, FR). (default: us) | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses key behaviors: returns suggestions with relevance scores, based on country and language, and notes no pagination. However, it lacks explicit mention of read-only nature, rate limits, or error handling. Since no annotations are present, this is acceptable but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but includes filler ('Credits: Not specified in documentation') that adds no value. Could be tightened by removing that line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description specifies the return format with fields. It covers the core functionality well, though it omits details like field descriptions ('type' unclarified) and possible empty results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions, and the description reinforces their purpose (query, country, language). No additional semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns Google Search autocomplete suggestions for a query, including relevance scores. It differentiates from generic search tools but does not explicitly distinguish from sibling autocomplete tools like google_trends_autocomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like google_search or other autocomplete tools. No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}}]} }
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | Return the response as raw HTML instead of JSON. (default: false) | |
| query | Yes | The stock/ticker to search for, in Google Finance format, e.g. NIFTY_50:INDEXNSE. | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides the return structure and input format, disclosing behavioral traits. However, it lacks information on error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and is mostly concise, though the credits line is superfluous and could be removed for better conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of output schema, the description adequately covers input format and return structure, but could be improved by noting error behavior or response format limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by reinforcing the query format and defining the return structure, but does not significantly enhance parameter understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves Google Finance market data including stock price, price movement, and related market/news instruments. This distinguishes it from sibling tools like google_search which are more general.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage for financial data retrieval and specifies the query format requirement, but does not explicitly contrast with alternatives or state when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| bags | No | Number of carry-on bags. (default: 0) | |
| html | No | Return the full HTML of the Google page. (default: false) | |
| type | No | Flight type. Allowed values: 1 (Round trip, default), 2 (One way), 3 (Multi-city). (default: 1) | |
| stops | No | Maximum number of stops. Allowed values: 0 (Any, default), 1 (Nonstop only), 2 (Up to 1 stop), 3 (Up to 2 stops). (default: 0) | |
| adults | No | Number of adult passengers. (default: 1) | |
| country | No | Two-letter country code for the Google search (e.g. US, UK, FR). (default: us) | |
| sort_by | No | Sort order. Allowed values: 1 (Top flights, default), 2 (Price), 3 (Departure time), 4 (Arrival time), 5 (Duration), 6 (Emissions). (default: 1) | |
| children | No | Number of child passengers. (default: 0) | |
| currency | No | Currency for returned prices. (default: USD) | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) | |
| emissions | No | Filter by emission level. Allowed value: 1 (show only flights with lower emissions). | |
| max_price | No | Maximum ticket price allowed. No limit by default. | |
| arrival_id | Yes | Arrival point: 3-letter uppercase airport code or a location kgmid beginning with '/m/'. Multiple points comma-separated. | |
| return_date | No | Return travel date, format YYYY-MM-DD, e.g. 2026-03-06. Required when type=1 (Round trip). | |
| departure_id | Yes | Departure point: 3-letter uppercase airport code (e.g. JFK, LHR) or a location kgmid beginning with '/m/' (e.g. /m/02_286 for San Francisco). Multiple points comma-separated. | |
| max_duration | No | Maximum total flight duration in minutes, e.g. 960 = up to 16 hours. | |
| return_times | No | Preferred time range for the return flight; each number represents the start of an hour. Only used when type=1 (Round trip). | |
| travel_class | No | Travel class. Allowed values: 1 (Economy, default), 2 (Premium economy), 3 (Business), 4 (First class). (default: 1) | |
| booking_token | No | Retrieves booking options for a selected flight. Cannot be used with departure_token. When used, date-based parameters and all Advanced Filters parameters are ignored. | |
| exclude_conns | No | Exclude specific connecting airports, comma-separated for multiple. | |
| outbound_date | No | Outbound travel date, format YYYY-MM-DD, e.g. 2026-03-05. | |
| infants_on_lap | No | Number of infants traveling on an adult's lap. (default: 0) | |
| outbound_times | No | Preferred time range for the outbound flight; each number represents the start of an hour. | |
| departure_token | No | Selects a departure flight to fetch the next set of results (return flights for round trip, or next segment for multi-city). Cannot be used with booking_token. | |
| infants_in_seat | No | Number of infants traveling in their own seat. (default: 0) | |
| multi_city_json | No | JSON string containing an array of flight segment objects, used to provide details for multi-city trips. | |
| exclude_airlines | No | Exclude specific airlines, each a 2-character IATA code. Cannot be used together with include_airlines. | |
| include_airlines | No | Include only specific airlines, each a 2-character IATA code. Cannot be used together with exclude_airlines. | |
| layover_duration | No | Preferred layover duration range in minutes, e.g. '75,240' for 1h15m to 4h. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the cost (5 API credits per request), the two-step flow (multi-step process), mutual exclusions, and parameter interactions (e.g., booking_token ignores dates/filters). It also describes the return format. This gives good insight into the tool's behavior, though it could mention error handling or rate limits beyond credits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but somewhat verbose and contains redundancy (credits mentioned twice: 'Costs 5 API credits per request. [Credits: 5 API credits per request]'). The structure is front-loaded with purpose but then mixes parameter notes and return format. Could be more concise by removing repetition and organizing flow better.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (29 parameters, multi-step flow), the description covers the essential two-step process, mutual exclusions, and a sample return format. It lacks detailed explanation of multi-city JSON structure and full enumeration of type values (only mentions round trip constraints). Still, it provides substantial context, and no output schema is present, so the return format description helps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so each parameter is already documented. The description adds value by explaining interactions (e.g., return_date required only for type=1, mutual exclusions) and the multi-step flow involving departure_token and booking_token. This context helps understand parameter usage beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves Google Flights results for one-way, round-trip, and multi-city searches, with sorting/filtering and booking token support. It specifies the resource (Google Flights) and action (retrieves), and distinguishes it from sibling tools like google_hotels or general google_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool, including a two-step flow for full itineraries, parameter requirements (e.g., return_date required for type=1), mutual exclusions (exclude/include airlines, departure_token/booking_token), and the return format. However, it does not explicitly state when NOT to use the tool or alternatives, but the sibling list makes it obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | Return the full HTML of the Google page. (default: false) | |
| query | Yes | Search query, anything you would normally type into a standard Google Hotels search. | |
| adults | No | Number of adults. (default: 2) | |
| brands | No | Brand ID(s) to focus the search on. Single: '33'; multiple: '33,67,101'. Not supported for Vacation Rentals. | |
| rating | No | Minimum rating filter. Allowed values: 7 (3.5+), 8 (4.0+), 9 (4.5+). | |
| country | No | Two-letter country code for the Google search (e.g. US, UK, FR). (default: us) | |
| sort_by | No | Sort order. Default is Relevance. Allowed values: 3 (lowest price), 8 (highest rating), 13 (most reviews). | |
| bedrooms | No | Minimum number of bedrooms. Vacation Rentals only. (default: false) | |
| children | No | Number of children. (default: 0) | |
| currency | No | Currency for returned prices. (default: USD) | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) | |
| amenities | No | Only include listings with the selected amenities; see the Google Hotels / Vacation Rentals Amenities reference pages for allowed values. | |
| bathrooms | No | Minimum number of bathrooms. Vacation Rentals only. (default: false) | |
| max_price | No | Maximum price in the results range. | |
| min_price | No | Minimum price in the results range. | |
| hotel_class | No | Filter to specific star ratings. Allowed values: 2, 3, 4, 5. Not supported for Vacation Rentals. | |
| check_in_date | Yes | Check-in date, format YYYY-MM-DD, e.g. 2025-08-15. | |
| children_ages | No | Ages of children, valid range 1-17. Single child: '5'; multiple: '5,8,10'. | |
| eco_certified | No | Only include eco-certified listings. Not supported for Vacation Rentals. | |
| check_out_date | Yes | Check-out date, format YYYY-MM-DD, e.g. 2025-08-16. | |
| property_token | No | Retrieves detailed property information (name, address, phone number, prices, nearby places, etc.) for a specific property. | |
| property_types | No | Property type(s) to include; see the Google Hotels / Vacation Rentals Property Types reference pages for allowed values. | |
| special_offers | No | Only include listings with special offers. Not available for Vacation Rentals. | |
| next_page_token | No | Token to fetch the next page of results. | |
| vacation_rentals | No | Search Vacation Rentals instead of Hotels. (default: false) | |
| free_cancellation | No | Only include listings offering free cancellation. Not available for Vacation Rentals. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: credit cost (5 API credits), date format (YYYY-MM-DD), filter mutual exclusivity between hotels and vacation rentals, pagination via next_page_token, and detail lookup via property_token. Example return structure is also included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient paragraph front-loaded with purpose, then credit cost, then parameter constraints, then pagination, then return structure. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 26 parameters, 3 required, no output schema, the description covers core flows (search and detail lookup), filter constraints, pagination, and sample output. Could be enhanced with rate limit info, but overall adequate for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description adds context beyond schema: mutual exclusivity of certain filters, credit cost, pagination mechanism, and property_token usage. This justifies a score above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves Google Hotels search results including property listings, pricing, ratings, amenities, and detailed property info via property_token. The verb 'retrieves' and specific resource 'Google Hotels search results' make the purpose unambiguous and distinguishable from siblings like google_search or google_flights.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides usage guidelines like credit cost, date format, and filter compatibility notes (e.g., hotels filters not supported for vacation rentals). It explains pagination and property token usage. However, it does not explicitly contrast with alternative tools like google_search for general hotel queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| cr | No | Restrict search to specific countries, formatted country{2-letter uppercase code}, pipe-separated for multiple, e.g. countryFR|countryDE. | |
| lr | No | Limit search to one or multiple languages, formatted lang_{language code}. | |
| tbs | No | Advanced parameter ('to be searched') to filter search results. | |
| html | No | Return the full HTML of the Google Images page. (default: false) | |
| nfpr | No | Set 1 to exclude auto-corrected/misspelled-query results, 0 to include them. (default: 0) | |
| page | No | Page number of Google search results. 0 = first page, 1 = second page, etc. (default: 0) | |
| safe | No | Adult content filter. Allowed values: active, off. (default: off) | |
| uule | No | Encoded geographic location/locale to tailor results, e.g. w+CAIQIFJlbGF5IFN0YXRlcw==. | |
| chips | No | Filters results using a Google-suggested search term (e.g. 'red apple'). Suggested chips appear under suggested_searches in the response when ijn=0; each includes a chip value and a scrapingdog_link. | |
| imgar | No | Image aspect ratio filter. Allowed values: s (Square), t (Tall), w (Wide), xw (Panoramic). | |
| imgsz | No | Image size filter. Allowed values: l (Large), m (Medium), i (Icon), qsvga (>400x300), vga (>640x480), svga (>800x600), xga (>1024x768), 2mp, 4mp, 6mp, 8mp, 10mp, 12mp, 15mp, 20mp, 40mp, 70mp (Larger than N megapixels). | |
| query | Yes | Google Search query. Example: query=pizza | |
| domain | No | Google domain for local results, e.g. google.co.in for India, google.co.uk for the UK. (default: google.com) | |
| filter | No | Enables/disables the 'Similar Results' and 'Omitted Results' filters. 1 (default) activates filters, 0 turns them off. | |
| country | No | Two-letter country code for the Google search (e.g. US, UK, FR). (default: us) | |
| end_date | No | End date for the image search date range. Format YYYYMMDD, e.g. 20241231. Cannot be used with period_unit/period_value. If start_date is blank, includes all dates before end_date. Overrides cdr/cd_max in tbs. | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) | |
| licenses | No | License filter. Allowed values: f (Free to use/share), fc (Free to use/share, even commercially), fm (Free to use/share/modify), fmc (Free to use/share/modify, even commercially), cl (Creative Commons), ol (Commercial and other licenses). Overrides the sur component of tbs. | |
| image_type | No | Image type filter. Allowed values: face, photo, clipart, lineart, animated. Overrides the itp component of tbs. | |
| start_date | No | Start date for the image search date range. Format YYYYMMDD, e.g. 20241201. Cannot be used with period_unit/period_value. If end_date is blank, range extends to today. Overrides cdr/cd_min in tbs. | |
| image_color | No | Image color filter. Allowed values: bw, trans, red, orange, yellow, green, teal, blue, purple, pink, white, gray, black, brown. Overrides ic/isc components of tbs. | |
| period_unit | No | Time unit for retrieving recent images. Allowed values: s (Second), n (Minute), h (Hour), d (Day), w (Week), m (Month), y (Year). Cannot be used with start_date/end_date; takes precedence over the qdr component of tbs. | |
| period_value | No | Duration used with period_unit, e.g. 15 seconds, 42 hours, 178 days. Valid range 1 to 2,147,483,647. (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the cost (10 credits), return structure, and important parameter interactions (mutual exclusivity of date parameters, chips from suggested_searches). It does not cover rate limits or authentication, but given the complexity, it provides substantial behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative and front-loaded with purpose, but it contains a slight redundancy (credit mentioned twice). It is structured with clear notes, but could be more concise. Overall, it earns its place without being overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (23 parameters, no output schema, no annotations), the description covers key behavioral aspects: cost, return format, and parameter constraints. It does not detail every edge case, but it provides sufficient contextual completeness for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds meaningful semantic guidance beyond the schema, such as the chips discovery mechanism and the constraints on time filtering parameters. This extra context helps an agent use the parameters correctly, elevating it above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves Google Images search results including specific fields like titles, thumbnails, source links, and dimensions. It distinguishes from sibling tools such as google_search, google_videos, and google_lens, which handle different media or search types. The verb 'retrieves' is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions cost (10 API credits per request) and provides notes on time filtering and chips usage. However, it does not explicitly contrast with siblings or state when to use this tool vs. alternatives like google_search or google_lens. While some guidance is implied, it lacks explicit when-to-use/when-not-to-use direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| sori | No | Used with `stores` to fetch the next page of seller results. Its value depends on how many sellers were returned in prior responses; e.g. if the last two responses each returned 5 sellers, set sori=10 to continue. | |
| stores | No | Enables pagination to fetch more sellers. Pass true to enable. Must be used together with `sori`. (default: false) | |
| country | No | Two-letter country code for the Google search (e.g. US, UK, FR). (default: us) | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) | |
| page_token | Yes | Token required to display additional product details in Google's immersive popup. Typically obtained from a google_shopping response's scrapingdog_immersive_product_link. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry burden. Discloses return structure and pagination behavior but does not mention rate limits, authentication, or side effects (though read-only assumed).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two substantive sentences plus return format. Front-loaded with purpose. Extraneous credit note but overall concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Completeness is high given 5 parameters and pagination complexity. Covers pagination, parameter usage, return structure. No output schema, so return format is helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 5 parameters. Description adds context: explains sori and stores collaboration, and source of page_token. Also gives return format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it scrapes Google's immersive product popup view for a specific product, returning brand info, price range, and per-store listings. Distinguishes from sibling google_shopping by focusing on popup view.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit pagination guidance: enable `stores=true` and increment `sori` by cumulative sellers. Notes that page_token comes from google_shopping. Lacks explicit alternatives or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}]}] }
| Name | Required | Description | Default |
|---|---|---|---|
| uds | No | Opaque Google-provided string used as an additional search result filter. | |
| lrad | No | Search job results within a particular radius. | |
| uule | No | Encoded geographic location/locale to tailor results. | |
| chips | No | Extra query filters found at the top of the Google Jobs search page. | |
| ltype | No | Filter results by work-from-home listings. | |
| query | Yes | Google Search query, e.g. 'jobs in london'. | |
| domain | No | Google domain for local results, e.g. google.co.in for India. (default: google.com) | |
| country | No | Country name in ISO 3166 Alpha-2 format. (default: us) | |
| language | No | Language of the requested results. (default: en_us) | |
| next_page_token | No | Token used to fetch the subsequent page of results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It effectively discloses the cost (5 API credits), pagination behavior (next_page_token), and the return format. This goes beyond the schema by adding behavioral context. It does not contradict any annotations (none provided). However, it could mention error conditions or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is mostly concise with two sentences and a return type example. However, it includes a redundant phrase '[Credits: 5 API credits per request]' that repeats the earlier statement, slightly reducing efficiency. Still, it is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters, no output schema, and no annotations, the description provides adequate context: cost, pagination, and return structure. It lacks explanation of error handling, rate limits, or parameter interactions. It is complete enough for basic use but has gaps for a 10-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds minimal extra meaning beyond the schema; it clarifies that query should be like 'jobs in london' and that next_page_token comes from a prior response. Most parameters remain as described in the schema, so no significant additional semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves Google Jobs search results with specific fields (job titles, company names, etc.), distinguishing it from general search tools like google_search. However, it does not explicitly differentiate from other job-specific tools in the sibling list (e.g., linkedin_jobs_search, indeed_scraper), so it loses a point for lack of explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on pagination using next_page_token and mentions the cost (5 credits), which helps in usage. However, it does not specify when to use this tool versus alternatives, nor does it mention prerequisites or limitations. The guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The Google Lens URL to scrape, typically in the form https://lens.google.com/uploadbyurl?url={image_url}. | |
| query | No | Additional search query to execute alongside the reverse image search, same as a standard Google search. Example: query=pizza | |
| country | No | ISO 3166-1 country code for Google Lens results. (default: us) | |
| product | No | Set true to retrieve product results from Google Lens. (default: false) | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) | |
| exact_matches | No | Set true to retrieve exact match results from Google Lens. (default: false) | |
| visual_matches | No | Set true to retrieve visual match results from Google Lens. (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses cost (5 API credits), parameter type nuance (string but boolean-like), and returns structure. With no annotations, this is valuable behavioral context. Lacks mention of idempotency or rate limits, but sufficient for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise and front-loaded with the main action and credits. Could be more structured (e.g., bullet points), but no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters with 100% schema coverage and no output schema, the description provides meaningful extra context (credits, type warning, return format) to support agent decision-making. Complete enough for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds clarity on boolean-like parameter values and the URL format for the required parameter. This goes beyond the schema descriptions, aiding correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it performs reverse image search via Google Lens, supporting product, visual, and exact matches. It differentiates itself from sibling tools like google_search and google_images by specifying the Lens endpoint and result types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as when to choose Lens over generic image or web search. No explicit when-not-to-use scenarios mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}}] }
| Name | Required | Description | Default |
|---|---|---|---|
| tbs | No | Advanced parameter ('to be searched') to filter search results. | |
| page | No | Page number of Google search results. 0 = first page, 1 = second page, etc. (default: 0) | |
| uule | No | Encoded geographic location/locale to tailor results, e.g. w+CAIQIFJlbWF5IFN0YXRlcw==. Cannot be used together with `location`. | |
| query | Yes | Google Search query, e.g. query=coffee+in+manhattan. | |
| domain | No | Google domain for local results, e.g. google.co.in for India, google.co.uk for the UK. (default: google.com) | |
| country | No | ISO country code from which to seek Google search results. (default: us) | |
| ludocid | No | Google My Business listing ID (CID), also known as the Google Place ID, to scrape. | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) | |
| location | No | Location from which to scrape local results, e.g. 'Manhattan, New York'. Cannot be used together with `uule`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses credit cost and mutual exclusivity but lacks details on authentication, rate limits, error handling, or pagination beyond the 'page' parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear first sentence stating purpose, followed by credits and notes. The structure is good, though the credits line is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and no output schema, the description provides a reasonable return structure and constraints. However, it misses potential error scenarios and pagination behavior beyond the 'page' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents parameters. The description adds critical mutual exclusivity note and return format, which goes beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves Google Local business listings with specific fields like ratings, reviews, addresses, etc. It distinguishes from siblings like google_search (web search) but does not explicitly differentiate from similar tools like google_maps_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions cost (5 credits) and the mutual exclusivity of 'location' and 'uule', providing some constraints. However, it does not provide when to use this tool versus alternatives like google_maps_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| data_id | Yes | The Google Maps data ID for the location, obtained from the google_maps_search endpoint (or its returned photos_link). | |
| language | No | Language of the results (e.g. en, es, fr, de). See Google Language Page documentation for full list. (default: en) | |
| category_id | No | Unique identifier of a photo category, obtained from the `categories` array returned by a prior call to this same endpoint (e.g. "Food & drink", "Interior"). | |
| next_page_token | No | Token used to fetch the next page of photo results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes retrieval behavior, optional filtering, pagination mechanism, and return format. No mention of side effects or authentication, but for a read-only tool, it's sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with main purpose upfront, then notes and return format. The credit note is minor but not excessive. Every sentence provides value; could be slightly shorter but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a good summary of return structure and pagination. Covers category filter workflow. Lacks error handling or limits, but is fairly complete for a photo retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds substantial meaning: explains how to obtain and use category_id, notes data_id origin from search endpoint, and describes next_page_token usage. This goes well beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves photos for a Google Maps location using a data_id, with optional category filtering. It distinguishes from sibling tools like google_maps_search and google_maps_reviews, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit instructions for category filtering (two-step process) and pagination (cursor-based with ready-made URL). Mentions data_id source from google_maps_search. Lacks explicit when-not-to-use or alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Must be set to `place` (type=place). Not required when using place_id instead. | |
| country | No | ISO country code for the results. See Google Country Parameter documentation for full list. (default: us) | |
| data_id | Yes | The Google Maps data ID for the location, obtained from the google_maps_search endpoint. Required unless place_id is used instead. | |
| place_id | No | Uniquely identifies a place on Google Maps; obtainable via the google_maps_search endpoint. Can be used independently without any other optional parameters (i.e., in place of type+data_id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return format and fields, but lacks information on error handling, rate limits, authentication, or what happens if no place is found. The credit note is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections and front-loaded purpose. The credit note is slightly extraneous, but overall it's efficient and provides necessary detail in a readable format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the number of parameters (4), no output schema, and no annotations, the description is comprehensive. It explains the input parameters' relationships, describes the output fields in detail, and covers the core functionality adequately for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. The description adds value by explaining the alternative required-parameter paths (type+data_id vs place_id) and clarifying that place_id can be used independently, which goes beyond the schema's field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a complete business profile for a specific Google Maps location, with explicit details on what fields are included. This distinguishes it from sibling tools like google_maps_search (which returns lists) and other specific data tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains two lookup modes (type+data_id vs place_id) and clarifies the parameter requirements. While it doesn't explicitly say when to use this versus alternatives, the context and sibling tool names imply it's for individual place details after a search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| data_id | Yes | The Google Maps data ID for the location, obtained from the google_maps_search endpoint (or its returned posts_link). | |
| next_page_token | No | Token used to fetch the next page of post results, taken from the previous response's next_page_token field. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the read-only nature (retrieves posts), mentions pagination behavior, and specifies the return structure. No contradictions exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, notes on prerequisites, pagination, and return format. The credits note is slightly extraneous but not detracting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains the return JSON structure (location_details, post_data, next_page_token). It covers data source and pagination, making it complete for a paginated list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining that data_id comes from google_maps_search and next_page_token from previous responses, which is beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieves' and the resource 'posts and updates published on a Google Business Profile listing', and distinguishes it from sibling tools like google_maps_reviews or google_maps_photos by specifying it's for posts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to obtain the required data_id via google_maps_search and that pagination is cursor-based. It provides clear context but does not explicitly state when not to use this tool or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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)}.
| Name | Required | Description | Default |
|---|---|---|---|
| data_id | Yes | The Google Maps data ID for the location, obtained from the google_maps_search endpoint (or its returned reviews_link). | |
| results | No | Maximum number of results to return. Valid range: 1-20. Cannot be used on the first page without also supplying next_page_token or topic_id β in that case the response will contain 8 results regardless. (default: 10) | |
| sort_by | No | Sort order for reviews. Allowed values: `qualityScore` (most relevant, default), `newestFirst` (most recent), `ratingHigh` (highest rated), `ratingLow` (lowest rated). (default: qualityScore) | |
| language | No | Language of the results (e.g. en, es, fr, de). See Google Language Page documentation for full list. (default: en) | |
| topic_id | No | ID of a review topic to filter by, taken from the `topics` array returned in a prior response of this endpoint. | |
| next_page_token | No | Token used to fetch the next page of review results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully bears the burden of disclosing behavior. It explains pagination (cursor-based via next_page_token), the exception for results param on first page, and the detailed return structure including locationDetails, topics, reviews_results, and pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat lengthy but well-structured, front-loading the main purpose and then detailing nuances. Every sentence adds value, though a slight trim could improve conciseness without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters and no output schema, the description provides a thorough explanation of inputs, behavior, and return fields. It covers edge cases, pagination, and the structure of the response, making it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant meaning beyond the schema: it explains the origin of topic_id, the edge case for results on first page, and the meaning of next_page_token. This helps the agent understand parameter usage beyond syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves customer reviews for a Google Maps location given a data_id. It uses specific verb 'retrieves' and resource 'customer reviews', distinguishing it from sibling tools like google_maps_search or google_maps_photos.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that data_id comes from google_maps_search and topic_id from a prior response, providing context for usage. It does not explicitly list when not to use or direct alternatives, but the purpose is clear among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_maps_searchA
Returns Google Maps business listings for a search query or a specific place, including rating, reviews, address, phone, website, and operating hours. [Credits: Not explicitly stated on this page (see general Scrapingdog credit pricing).] Notes: Each result item includes ready-made follow-up links: reviews_link, photos_link, and posts_link (each pre-filled with the item's data_id) that map directly to the google_maps_reviews, google_maps_photos, and google_maps_posts endpoints. data_id (format 0xHEX:0xHEX) and place_id (format ChIJ...) are both usable to look up a specific place across the other Maps endpoints. Pagination requires ll to be set. Returns: JSON with search_results array; each item has title, place_id, data_id, data_cid, reviews_link, photos_link, posts_link, gps_coordinates {latitude, longitude}, rating, reviews (count), price, type, types[], address, open_state, operating_hours (per weekday), phone, website, description, thumbnail.
| Name | Required | Description | Default |
|---|---|---|---|
| ll | No | GPS coordinates defining the search origin. Format: @latitude,longitude,zoom/map_height (e.g. @40.7455096,-74.0083012,15.1z). Zoom range: 3z-30z; map height range: 1m-15028132m. Required when using the `page` pagination parameter. | |
| data | No | Filters search results; copied directly from a Google Maps URL. Required for place-specific searches when using type=place. Format: !4m5!3m4!1s[data_id]!8m2!3d[latitude]!4d[longitude]. | |
| page | No | Page number of results, incrementing by 20 per page (0 = first page, 20 = second page, etc.). Recommended maximum: 100. The `ll` parameter must be set when paginating. (default: 0) | |
| type | No | Search type: `search` for query-based results, or `place` for specific location details. Not required when using place_id. | |
| query | Yes | A Google Maps search query. Example: query=pizza. | |
| domain | No | Google domain to obtain local results from a specific country, e.g. google.co.in for India, google.co.uk for the UK. See Google Domains Page documentation. (default: google.com) | |
| country | No | Two-letter country code for the search (e.g. us, uk, fr). See Google Country Parameter documentation for full list. (default: us) | |
| language | No | Language of the results (e.g. en, es, fr, de). See Google Language Page documentation for full list. (default: en) | |
| place_id | No | Uniquely identifies a place on Google Maps (businesses, landmarks, parks, intersections). Can be used independently without any other optional parameters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It details return format, pagination behavior (requires ll), and notes that each result contains follow-up links. It does not mention any destructive or auth-related behavior, but the tool appears read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose first, then notes, then return format. It is somewhat long but flows logically, and every sentence adds value. Could be slightly more terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully details the return JSON structure, pagination, and parameter interactions. It addresses complex scenarios like using place_id independently and pagination requirements.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds significant context: format details for ll and data, pagination increments, independent use of place_id, and domain/country/language parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it returns Google Maps business listings including rating, reviews, address, etc. for a search query or specific place. It distinguishes itself from siblings (google_maps_photos, etc.) by noting that it provides follow-up links to those endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (search query or place_id), and includes pagination requirements. It implies when to use sibling tools via the follow-up links, but does not explicitly state when not to use this tool or provide alternative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_news_searchA
Retrieves news search results from Google News (classic search-style scrape), returning headlines, snippets, source names, and relative timestamps. [Credits: 5 API credits per request] Notes: Pagination via page (0-indexed). Results returned are relative-time stamped ('19 hours ago') rather than absolute dates - use google_news_v2 for absolute dates. No id/token concepts used by this endpoint. Returns: { search_information: { query_displayed, url }, news_results: [ { title, snippet, source, lastUpdated, url, favicon } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| lr | No | Limit the search to one or multiple languages. Used as lang_{language_code} (e.g. lang_en). See Google LR Language Page. | |
| tbs | No | Time-Based Search filter: qdr:h (past hour), qdr:d (past 24h), qdr:w (past week), qdr:m (past month), qdr:y (past year), or a custom range. | |
| html | No | Return the full HTML of the Google page instead of parsed JSON. (default: false) | |
| nfpr | No | Excludes results from auto-corrected (spelling-corrected) queries. Set 1 to exclude, 0 to include. (default: 0) | |
| page | No | Page number of Google searches. 0 = first page, 1 = second page, etc. (default: 0) | |
| safe | No | Adult content filter. Set to active to filter, or off to disable. (default: off) | |
| uule | No | Specifies the geographic location/locale for tailored results (e.g. w+CAIQIFJlbGF5IFN0YXRlcw==). Cannot be used with a location parameter. | |
| query | Yes | Google Search query. Example: query=pizza | |
| domain | No | Google domain to get local results from a specific country, e.g. google.co.in for India, google.co.uk for the UK. See Google Domains Page. (default: google.com) | |
| country | No | ISO code of the country from which to get Google search results. See Google Country Parameter docs for full list. (default: us) | |
| results | No | Number of results to scrape. Value between 1 and 100. (default: 10) | |
| language | No | Language of the results, e.g. en, es, fr, de. See Google Language Page for full list. (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does well by disclosing credits usage, pagination behavior, relative timestamps, and that no id/token concepts are used. It could mention rate limits or error handling, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise, combining key information in a few sentences and notes. It could be better structured (e.g., bullet points for notes), but it is efficient and front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters, no output schema, and no annotations, the description adequately covers the tool's purpose, behavior, and return structure (inline). It does not cover error scenarios or environment requirements, but it is sufficient for basic invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description adds some context (e.g., pagination note, v2 reference) but does not significantly enhance parameter meaning beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves news search results from Google News with specific fields (headlines, snippets, etc.). It distinguishes itself from google_news_v2 by mentioning relative timestamps vs absolute dates, and from other search tools by specifying the 'classic search-style scrape' nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context on pagination (0-indexed), credits, and a clear alternative (google_news_v2) for absolute dates. However, it lacks explicit guidance on when to use this tool over other search tools like google_search or google_news_v2 beyond the date distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| so | No | Sorting method: 0 = Relevance (default), 1 = Date. Can only be used with story_token. (default: 0) | |
| query | No | A standard Google News search query; supports operators like site: or when:. Cannot be used together with publication_token, story_token, or topic_token. | |
| country | No | Two-letter country code for the Google search, e.g. us, uk, fr. See Google Country Parameter docs. (default: us) | |
| language | No | Language of the results, e.g. en, es, fr, de. See Google Language Page. (default: en) | |
| topic_token | No | Google News topic token to get results for a particular topic (e.g. World, Business, Technology). Cannot be used with query, story_token, or publication_token. | |
| section_token | No | Google News section token to access a subsection of a specific topic (e.g. Business -> Economy). Can only be used together with topic_token or publication_token. | |
| publication_token | No | Google News publication token to get results from a specific publisher (e.g. CNN, BBC, The Guardian). Cannot be used with query, story_token, or topic_token. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: it returns a specific result structure, notes undocumented 'story_token' concept, warns about ambiguity, and states lack of pagination parameter. This level of transparency is exemplary for a potentially complex endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with key information front-loaded (improvements, search modes). However, it includes a superfluous [Credits] line and the Notes section is verbose, slightly hindering conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers return format, parameter constraints, undocumented features, and differences from v1. It lacks explicit mention of error handling or rate limits, but given the tool's complexity, it is largely complete and helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds value by explaining token concepts, mutual exclusivity, and the undocumented story_token. It provides high-level context beyond the schema, justifying a score above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a faster v2 endpoint for Google News, highlighting key improvements (image URLs, ISO dates). It distinguishes from v1 and explains the different search modes (topic, publication, section tokens vs free-text query), making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool (v2 for faster results, image URLs, ISO dates) and explains mutual exclusivity among parameters. However, it does not explicitly compare to sibling google_news_search or state when to prefer v1, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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: {} }
| Name | Required | Description | Default |
|---|---|---|---|
| html | No | Return the full HTML of the Google page instead of parsed JSON. (default: false) | |
| language | No | Language of the results, e.g. en, es, fr, de. See Google Language Page. (default: en) | |
| patent_id | Yes | The patent ID, e.g. US11734097B1 (plain publication-number style, not the 'patent/<id>/en' format returned by google_patents' organic_results). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses API credit cost (5 credits per request) and the return structure. However, it does not mention error handling, rate limits, or what happens if patent_id is invalid. The credit cost is helpful but incomplete for full behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is efficient at 5-6 sentences, front-loading the core purpose and key fields. Uses notes for critical format clarification and cost info. Could be slightly tighter but is well-structured and avoids verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters, no output schema, and no annotations, the description covers what the tool does, what it returns, and the crucial format constraint. It does not explain the html or language parameters beyond the schema, but those are standard. Overall adequate for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with parameter descriptions already clarifying the patent_id format. The description's format note is redundant with the schema. The description adds minimal extra meaning beyond listing return fields, which is not directly parameter semantics. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed information about a specific patent, listing key fields like title, PDF link, inventors, dates, and prior-art keywords. It is specific and distinguishes from sibling tools like google_patents which is a search endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on the required patent_id format, including an example and warning about the format returned by the sibling google_patents search. Implies this tool should be used after obtaining a patent ID from search results. Could be more explicit about when to use vs. other patent-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| num | No | Number of results to scrape, between 1 and 100. (default: 10) | |
| dups | No | Deduplication method: default is by Family. Available value: language (deduplicate by Publication). | |
| page | No | Page number of results. 0 = first page, 1 = second page, etc. (default: 0) | |
| sort | No | Sorting method. Default is Relevance. Allowed: new (Newest), old (Oldest). For patents, sorting is by filing date; for scholar results, by publication date. | |
| type | No | Filter by patent type. Allowed: PATENT (Patent), DESIGN (Design). | |
| after | No | Minimum date for results, format type:YYYYMMDD where type is priority, filing, or publication. Example: publication:20230101. | |
| query | Yes | Search query. Multiple search terms can be separated with a semicolon (;). Example single term: (Coffee) OR (Tea). Example multi-term: (Coffee) OR (Tea);(A47J). See 'About Google Patents' for advanced syntax. | |
| before | No | Maximum date for results, format type:YYYYMMDD where type is priority, filing, or publication. Example: priority:20221231. | |
| status | No | Filter by patent status. Allowed: GRANT (Grant), APPLICATION (Application). | |
| country | No | Filter by country code(s). Separate multiple codes with a comma. Example: WO,US. | |
| patents | No | Whether to include Google Patents results. (default: true) | |
| scholar | No | Whether to include Google Scholar results. (default: false) | |
| assignee | No | Filter by assignee(s). Separate multiple assignees with a comma. | |
| inventor | No | Filter by inventor(s). Separate multiple inventors with a comma. | |
| language | No | Filter by language(s), comma-separated. Supported: ENGLISH, GERMAN, CHINESE, FRENCH, SPANISH, ARABIC, JAPANESE, KOREAN, PORTUGUESE, RUSSIAN, ITALIAN, DUTCH, SWEDISH, FINNISH, NORWEGIAN, DANISH. | |
| clustered | No | How results should be grouped. Available option: true (Classification). | |
| litigation | No | Filter by litigation status. Allowed: YES (Has Related Litigation), NO (No Known Litigation). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses credits, pagination behavior, patent_id format, and return structure. It does not mention rate limits or error handling, but provides sufficient behavioral details for an AI agent to use the tool correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: main purpose in first sentence, credits, then key behavioral notes, return format. Every sentence adds value without redundancy. It is front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 17 parameters, no output schema, the description covers return structure and key behavioral notes. It explains how to use results with a sibling tool, but could mention more about error states or edge cases for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds significant value by explaining date format (type:YYYYMMDD), semicolon usage for multiple query terms, and the patent_id format conversion, which are not fully covered in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches patent records across Google Patents with advanced filtering, specifying the verb (Searches) and resource (patent records). It differentiates from sibling tool google_patent_details by noting the patent_id format difference and how to pass parameters to that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on pagination, date format, and how to use results with google_patent_details, but does not explicitly state when to use this tool versus alternatives like google_scholar or other search tools. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 } } }
| Name | Required | Description | Default |
|---|---|---|---|
| lr | No | Limit search to one or multiple languages, used as lang_{language_code}. See Google LR Language Page. | |
| html | No | Render the response as raw HTML instead of parsed JSON. (default: false) | |
| page | No | Page number of Google Scholar searches. 0 = first page, 1 = second page, etc. (default: 0) | |
| safe | No | Adult content filter. Allowed values: active, off. (default: off) | |
| as_rr | No | Whether to show only review articles: 1 = enable filter, 0 = show all results. (default: 0) | |
| cites | No | Unique article ID to run a 'Cited By' search - returns documents citing the given article. Combine with query to search within citing articles. | |
| query | Yes | Search query; supports helpers like author: or source:. Becomes optional if the cites parameter is supplied (combining cites+query refines to citing articles matching the query). Cannot be used together with cluster. | |
| as_sdt | No | Acts as filter or search type. As filter (article search): 0 = excludes patents (default), 7 = includes patents. As search type: 4 = case law (US courts, all state/federal); can append court codes e.g. as_sdt=4,33,192 (4 must be first, comma-separated). | |
| as_vis | No | Whether citations are included in results: 1 = exclude citations, 0 = include citations. (default: 0) | |
| as_yhi | No | Ending year for results, e.g. as_yhi=2018 excludes results after 2018. Can combine with as_ylo. | |
| as_ylo | No | Starting year for results, e.g. as_ylo=2018 excludes results before 2018. Can combine with as_yhi. | |
| filter | No | Enables (1) or disables (0) the 'Similar Results' and 'Omitted Results' filters. (default: 1) | |
| scisbd | No | Whether to include only abstract results (1) or all results (0). | |
| cluster | No | Unique ID for an article to fetch all available versions of it. Cannot be used simultaneously with query and cites. | |
| results | No | Number of results per page. | |
| language | No | Language of the results, e.g. en, es, fr, de. See Google Language Page. (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It details credit cost (5 API credits per request), pagination behavior, and return structure (including related_searches, scholar_results, pagination). It does not explicitly state read-only nature, but the context implies it. It is transparent about input-output relations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence overview, then adds credits, usage notes, and return format. It is relatively dense but well-organized, avoiding unnecessary repetition. The return schema is provided in lieu of an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 16 parameters and no output schema, the description provides a complete return object definition and explains inter-parameter dependencies. It covers pagination and language filters adequately, making the tool usable without external references.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by clarifying relationships: query becomes optional if cites is provided, cluster cannot be used with query and cites, and IDs from results tie to parameters. This goes beyond individual schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Searches academic papers and scholarly content on Google Scholar' and lists specific capabilities (citation lookups, author/source helpers, year filters, pagination). This distinguishes it from siblings like google_scholar_author (author details) and google_scholar_cite (citation output).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit notes on how to use IDs from results for other endpoints (e.g., 'id' values feed google_scholar_cite, cluster_id and cites_id are used with cluster and cites parameters). It also explains pagination (0-indexed) and provides return schema. However, it lacks direct comparison with all sibling tools, though the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort articles: title (by article title) or pubdate (by publication date). | |
| results | No | Number of results (articles) per page. | |
| view_op | No | Access a specific section of the author page: view_citation (requires citation_id, returns a single citation's detail) or list_colleagues (returns all co-authors). | |
| language | No | Language of the results, e.g. en, es, fr, de. See Google Language Page. (default: en) | |
| author_id | Yes | Author ID of the person to get data for (obtainable from google_scholar_profiles results as profiles[].author_id). | |
| citation_id | No | ID of an individual article's citation; required only when view_op=view_citation. Obtainable from this endpoint's articles[].citation_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It explains the two modes (default profile vs list_colleagues) and the ambiguity with the sibling endpoint, and provides a return structure. It could mention authentication or rate limits but is still clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured well with a clear main purpose followed by notes. The ambiguity note is lengthy but important. Front-loaded with core functionality. Could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description provides a complete return structure and covers all parameters and modes. It addresses the sibling tool relationship and potential confusion, making it fully informative for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is described. The description adds context beyond schema by explaining the behavioral differences of view_op values and the relationship between author_id and citation_id. However, it repeats some schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves comprehensive author information (name, affiliation, email, publication/citation history) and also exposes a co-author list mode. It explicitly distinguishes from the sibling tool 'google_scholar_author_citation' by explaining the ambiguity and the two modes of the same endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus the citation tool, including the note about potential merging. It also mentions how to obtain the author_id from the profiles tool and prerequisites for using citation_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 ':' (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 } ] } }
| Name | Required | Description | Default |
|---|---|---|---|
| view_op | Yes | Section of the page to access: view_citation (display citation detail; requires citation_id) or list_colleagues (view all co-authors). | |
| language | No | Language of the results, e.g. en, es, fr, de. See Google Language Page. (default: en) | |
| author_id | Yes | Author ID of the person to get data for. | |
| citation_id | Yes | ID for fetching an individual article's citation detail. Mandatory when view_op=view_citation. Obtainable from google_scholar_author's articles[].citation_id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It does so by describing the read-only retrieval operation, the return structure, and the required parameters. It could mention rate limits or authentication, but for a simple data retrieval tool, it's sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is multi-sentence but each sentence adds necessary information: purpose, endpoint note, citation_id format, and output structure. It is front-loaded with the core action. Slightly verbose but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a detailed breakdown of the return structure. It covers all required parameters and their interrelation. Missing error handling or edge cases, but sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions, but the description adds significant value by explaining the citation_id format (author_id:opaque_token) and its source (from google_scholar_author's articles). This extra context helps the agent use the parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves citation metrics (h-index, i10-index, yearly graph) and article citation details, using view_op=view_citation on the author endpoint. This distinguishes it from siblings like google_scholar_author (profile retrieval) and google_scholar_cite (citation format).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that citation_id is required and obtainable from google_scholar_author, and points to an ambiguity note about the shared endpoint. While it doesn't explicitly list when not to use, it provides enough context to avoid confusion with similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ID of an individual Google Scholar organic search result, obtained from the id field of google_scholar's scholar_results. | |
| language | No | Language of the results, e.g. en, es, fr, de. See Google Language Page. (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool requires a specific ID, returns citations and links, and mentions credits not stated. It does not mention auth or rate limits, but as a read-only citation retrieval, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, followed by notes and return structure. It is slightly long but every sentence provides value. Could be slightly more concise but overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description includes a clear return structure. It provides all necessary information to use the tool correctly, including parameter clarification, return format, and context from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description adds critical value by clarifying that 'query' is actually a result ID and referencing the id field from google_scholar results, and it explains the 'language' parameter default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves formatted academic citations (MLA, APA, etc.) and export links using a Google Scholar result ID. This uniquely identifies its function and distinguishes it from sibling tools like google_scholar (search) and google_scholar_author (author info).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies when to use (to get citations for a paper given its result ID) and clarifies that the 'query' parameter is a result ID, not free text. However, it does not explicitly mention when not to use or provide alternatives, though the sibling context implies its narrow use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 } ] } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| mauthors | Yes | The author name to search for. Supports query helpers like label: in the search string. | |
| after_author | No | Pagination token to fetch the next set of results. Takes precedence over before_author. | |
| before_author | No | Pagination token to fetch the previous page of results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explains cursor-based pagination, token precedence, credit mention, and the linkage to other tools. Could further disclose rate limits or limitations but is sufficient for basic transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but slightly verbose with bracketed notes. Every sentence adds value, though the structure could be streamlined by integrating the pagination note into the main flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters, no output schema, and no nested objects, the description provides a clear return structure and pagination details. It is complete enough for an AI agent to understand usage, though an explicit return format table would improve it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds meaning by noting that 'mauthors' supports query helpers like 'label:', and that 'after_author' takes precedence over 'before_author'. The pagination token retrieval note adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies a clear verb ('searches') and resource ('academic researcher profiles on Google Scholar by author name'), and distinguishes from sibling tools like google_scholar_author and google_scholar_author_citation by noting that its author_id is used as input to those endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides usage by stating that the author_id feeds into google_scholar_author and google_scholar_author_citation endpoints, and explains pagination tokens. However, it does not explicitly contrast with google_scholar (which searches articles) or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_searchA
Scrapes Google Search results (organic results, ads, AI overview, knowledge graph, local results, and every other SERP feature) for a given query, without needing to manage proxies or parsing. [Credits: 5 (standard search). 10 credits when advance_search=true OR mob_search=true.] Notes: Pagination: the 'page' request parameter is documented as 0-based sequential (0 = page 1, 1 = page 2, ...), but the response's scrapingdog_pagination.page_no map (see pagination doc) shows page values incrementing by 10 per page (page=10 for page 2, page=20 for page 3) β mirroring Google's native 'start' offset. Follow the URLs Scrapingdog returns in response.pagination.page_no / response.scrapingdog_pagination.page_no to fetch subsequent pages rather than hand-computing the page value. advance_search=true unlocks richer/advanced feature snippets (more SERP blocks populated) and doubles credit cost to 10; mob_search=true returns mobile-rendered results and also costs 10 credits; both can presumably be combined. location and uule are mutually exclusive (both control geo-targeting of the search origin). kgmid and si can override most other params (except page/results) to target Knowledge Graph entities/tabs directly. Response shape is dynamic: only the SERP feature blocks actually present on the rendered Google page for that query appear in the JSON (e.g. no ads block if Google didn't show ads). Returns: Top-level JSON containing whichever of the following blocks Google rendered for the query: search_information {time_taken, total_results, query_displayed, organic_results_state, url} β search metadata; organic_results[] {title, link, displayed_link, source, snippet, highlighted_keywords[], extended_sitelinks[]{title,link,snippet}, rank} β standard web listings; ai_overview {text_blocks[...
| Name | Required | Description | Default |
|---|---|---|---|
| cr | No | Restricts search results to specific countries, format countryFR, or multiple with countryFR|countryDE. See Scrapingdog's Supported Google Countries via cr parameter page. | |
| lr | No | Limits search to one or more languages, format lang_en, or multiple with lang_en|lang_fr. See Scrapingdog's Google LR Language Page. | |
| si | No | Cached search parameters of the Google Search to scrape. May override other parameters except page and results. Can be used to scrape Knowledge Graph tabs. | |
| ibp | No | Controls rendering of specific layouts and expansion of certain elements, e.g. gwp;0,7 expands ludocid searches. | |
| tbs | No | Advanced parameter to filter search results, e.g. time ranges or verbatim mode. | |
| uds | No | Filters search results using a filter string provided by Google. | |
| html | No | Returns the full raw HTML of the Google results page instead of/alongside parsed JSON. (default: false) | |
| lsig | No | May be required for the Knowledge Graph map view. Obtainable via the Google Local API or Google My Business redirects. | |
| nfpr | No | Excludes results from auto-corrected (spelling-corrected) queries. 1 = exclude, 0 = include. (default: 0) | |
| page | No | Page number of Google search results. 0 = first page, 1 = second page, and so on. NOTE: the pagination.md doc's example scrapingdog_pagination block instead shows page values incrementing by 10 (page=10 for page 2, page=20 for page 3), matching Google's native 'start' offset semantics β the two docs are inconsistent; treat 0-based sequential page numbers (0,1,2,...) as the documented parameter contract unless testing shows otherwise. (default: 0) | |
| safe | No | Adult-content filtering. active enables SafeSearch, off disables it. (default: off) | |
| uule | No | Encoded geographic location/locale string for tailoring results (e.g. w+CAIQIFJlbGF5IFN0YXRlcw==). Cannot be combined with location. | |
| kgmid | No | ID (KGMID) of a Google Knowledge Graph listing. May override other parameters except page and results. | |
| query | Yes | The search query to execute, exactly like a standard Google search. Supports Google search operators such as inurl:, site:, and intitle:. | |
| domain | No | Google domain to use for localized results, e.g. google.co.in (India), google.co.uk (UK). See Scrapingdog's Google Domains Page for the full list. (default: google.com) | |
| filter | No | Controls whether Google's 'Similar Results' and 'Omitted Results' filters are enabled. 1 (default) = active, 0 = off. (default: 1) | |
| country | No | Two-letter country code for the search (e.g. us, uk, fr). See Scrapingdog's Google Country Parameter page for the full list. (default: us) | |
| ludocid | No | ID (CID) of a Google My Business listing, also called the Google Place ID. | |
| results | No | Number of results to return per page. | |
| language | No | Language of the results (e.g. en, es, fr, de). See Scrapingdog's Google Language Page for the full list. (default: en) | |
| location | No | Origin location the search should be tailored to; city-level granularity recommended. Cannot be combined with uule. | |
| mob_search | No | Returns mobile Google search results instead of desktop. Costs 10 credits per request when true. (default: false) | |
| advance_search | No | Enables advanced/extra feature snippets from Google (fuller SERP feature coverage). Costs 10 credits per request instead of 5 when true. (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses credit costs, pagination inconsistencies (0-based sequential vs. 'start' offset), response shape dynamics (only present SERP blocks), mutual exclusivity of location/uule, and parameter overrides. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is long but well-structured: core purpose first, then credits, then pagination clarifications, then parameter notes. Every sentence adds value; minimal redundancy. Slightly verbose but does not waste words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 23 parameters, no output schema, and no nested objects, description is remarkably thorough. Covers credits, pagination behavior, response shape, parameter interactions, and edge cases. Agent has all needed information for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3), but description adds significant value beyond schema: pagination inconsistency note for 'page', credit cost for 'advance_search'/'mob_search', mutual exclusivity for 'location'/'uule', override semantics for 'kgmid'/'si', and usage example for 'ibp'. Elevates agent understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'scrapes' and resource 'Google Search results' (organic, ads, AI overview, etc.), distinguishing it from sibling tools like bing_search or duckduckgo_search. Specificity about SERP features and credits ensures unambiguous purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly says when to use (scraping Google results without proxy management) and provides usage guidance: credits for standard vs. advanced/mobile search, mutual exclusivity of location/uule, pagination nuance, and override behavior of kgmid/si. Implicitly suggests alternatives via sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| lr | No | Limit search to one or multiple languages, formatted as lang_{language code}, e.g. lang_us. | |
| tbs | No | Advanced parameter ('to be searched') to filter search results. | |
| html | No | Return the response as raw HTML instead of JSON. (default: false) | |
| nfpr | No | Set 1 to exclude auto-corrected/misspelled-query results, 0 to include them. (default: 0) | |
| page | No | Page number of Google search results. 0 = first page, 1 = second page, etc. (default: 0) | |
| safe | No | Adult content filter. Allowed values: active, off. (default: off) | |
| uule | No | Encoded parameter specifying the geographic location/locale to tailor results to, e.g. w+CAIQIFJlbGF5IFN0YXRlcw==. | |
| query | Yes | Any Google query or a complete Google URL. Example: query=shoes | |
| domain | No | Google domain to obtain local results, e.g. google.co.in for India, google.co.uk for the UK. (default: google.com) | |
| shoprs | No | Helper ID used to apply search filters. Must be used together with an updated query (q) that includes the selected filter name alongside the original query, e.g. 'sugar free Coffee'. Obtain the value from filters[index].options[index].scrapingdog_link in the JSON response. Apply multiple filters by following each scrapingdog_link in sequence; each new request retains previously applied filters. Remove a filter by using its associated scrapingdog_link. | |
| country | No | Two-letter country code for the Google Shopping search (e.g. us, uk, fr). (default: us) | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden; it discloses credit cost, pagination, filter flow, and return structure effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with purpose and includes necessary notes, though could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers return structure, pagination, filtering, and credits. No output schema, but provides sufficient detail for a complex scraping tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds some context for shoprs and page but doesn't significantly enhance meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes Google Shopping search results including ads, listing, and filter facets. It distinguishes from siblings like bing_shopping or google_search by focusing on Google Shopping.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides pagination guidance and two-step filter flow, but lacks explicit alternatives or when-not-to-use scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| lr | No | Limit search to one or multiple languages, formatted lang_{language code}. | |
| tbs | No | Advanced parameter ('to be searched') to filter search results. | |
| html | No | Return the full HTML of the Google page. (default: false) | |
| nfpr | No | Set 1 to exclude auto-corrected/misspelled-query results, 0 to include them. (default: 0) | |
| safe | No | Adult content filter. Allowed values: active, off. (default: off) | |
| uule | No | Encoded geographic location/locale to tailor results, e.g. w+CAIQIFJlbGF5IFN0YXRlcw==. | |
| query | Yes | Google query. Example: query=shoes | |
| start | No | Number of results to skip for pagination, e.g. start=12 skips the first 12 results. | |
| domain | No | Google domain for local results, e.g. google.co.in for India, google.co.uk for the UK. (default: google.com) | |
| country | No | Two-letter country code for the Google search (e.g. US, UK, FR). (default: us) | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the return format and pagination uniqueness, but does not mention whether the tool is read-only, requires authentication, or handles errors. This is adequate but not fully transparent for a search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused paragraph with the purpose upfront, followed by a critical pagination note and a clear return structure. No unnecessary words, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides a return structure example, compensating for the missing output schema. It covers the essential behavioral note on pagination. However, it lacks explicit mention of idempotency or error scenarios, which are minor gaps for a simple search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all 11 parameters described, so the description adds no additional semantic value beyond the schema. The mention of pagination offset is a behavioral note, not parameter-specific. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves Google Shorts search results, specifying the type of content (short videos) and listing returned fields (thumbnails, GIF previews, account names, dates). This distinguishes it from siblings like google_videos or google_search which cover general video or web search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes that pagination uses offset-based 'start' unlike other endpoints using 'page', providing clear context for correct usage. However, it does not explicitly state when to use this tool versus alternatives, though the purpose is self-explanatory for short video queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_trendsA
Retrieves Google Trends search interest data: interest over time, comparative regional breakdown, or interest by region, for up to 5 queries at once. [Credits: 5 API credits per request] Notes: Multi-query comparison (up to 5 comma-separated queries) is only supported for data_type=TIMESERIES and data_type=GEO_MAP; GEO_MAP_0 supports only a single query. region is only meaningful alongside GEO_MAP/GEO_MAP_0 data types. Returns: JSON with interest_over_time.timeline_data array of {date, timestamp, values: [{query, value, extracted_value}]} for TIMESERIES; structure varies for GEO_MAP/GEO_MAP_0 (regional breakdown, not shown in sample).
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | Time zone offset in minutes, range -1439 to 1439. Examples: 420 (PDT), 600 (Pacific/Tahiti), -540 (Asia/Tokyo), -480 (Canada/Pacific). (default: 420) | |
| cat | No | Search category filter. Default 0 means all categories. (default: 0) | |
| geo | No | Location the search originates from. See Google Trends Locations documentation for supported values. (default: Worldwide) | |
| date | No | Date range for the search. Predefined values: now 1-H, now 4-H, now 1-d, now 7-d, today 1-m, today 3-m, today 12-m, today 5-y, all. Custom range formats: 'yyyy-mm-dd yyyy-mm-dd' or 'yyyy-mm-ddThh yyyy-mm-ddThh' for hourly precision (custom hourly range limited to a one-week window). | |
| gprop | No | Property to source results from. Allowed values: `images` (Image Search), `news` (News Search), `froogle` (Google Shopping), `youtube` (YouTube Search). Default is Web Search (no value). (default: Web Search) | |
| query | No | Search term(s) or topic(s), comma-separated (e.g. coffee,pizza,dark chocolate,/m/027lnzs,bread). Terms can be plain search terms (e.g. Tesla) or Topic IDs (e.g. /m/0663v). Each query up to 100 characters. Up to 5 queries allowed only for data_type TIMESERIES and GEO_MAP; other data types support only 1 query. | |
| region | No | Region resolution, used only with the GEO_MAP and GEO_MAP_0 (compared/interest by region) data types. Allowed values: `COUNTRY`, `REGION`, `DMA` (metro level), `CITY`. Not all options yield results for every location. | |
| language | No | Language of the results (e.g. en, es, fr, de). (default: en) | |
| data_type | No | Type of Trends data to fetch. Allowed values: `TIMESERIES` (interest over time; multi-query), `GEO_MAP` (compared breakdown by region; multi-query), `GEO_MAP_0` (interest by region; single query only). (default: TIMESERIES) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses credit cost, multi-query constraints, region parameter dependencies, and a sample return format for TIMESERIES. However, it omits details like error handling, rate limits, and full structure for GEO_MAP data types, which would enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at a few sentences, front-loading the core purpose. It includes inline notes and return format, but the structure is dense and could be improved with bullet points for better readability. No wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters and no output schema, the description covers key behavioral constraints and a sample output for TIMESERIES. It omits full output structures for GEO_MAP types and does not differentiate from many siblings, but is adequate for a read tool with good parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds value by clarifying relationships between data_type and query limits, and region parameter usage with GEO_MAP types. It also provides practical examples for date formats and topic IDs, going beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves Google Trends search interest data, listing three specific data types (interest over time, comparative regional breakdown, interest by region) and the capacity for up to 5 queries. It distinguishes from siblings like google_trends_autocomplete and google_trends_trending_now by focusing on historical trends data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly compare this tool to alternatives or state when to use it over siblings. It implies usage through data type descriptions but lacks direct guidance on tool selection, such as 'for autocomplete suggestions use google_trends_autocomplete'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_trends_autocompleteB
Returns Google Trends autocomplete suggestions for a search query, including relevant topics/entities with categorization and a Trends exploration link. [Credits: Not explicitly stated on this page (see general Scrapingdog credit pricing).] Notes: Each suggestion includes a Freebase-style topic mid (e.g. /m/02vx4) usable as a Topic ID query value in the google_trends endpoint. Returns: JSON with suggestions array of {mid, title, type, link (Google Trends explore URL)}.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | A Google search query to get autocomplete suggestions for. Example: query=pizza. | |
| language | No | Language of the results (e.g. en, es, fr, de). (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes the output structure (JSON with suggestions array) and explains the Freebase-style mid usable in google_trends. However, it lacks details on rate limits, authentication, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description includes useful output info and credit note, but the credit statement is extraneous for tool invocation. Could be more concise without losing essential guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 params, 100% schema coverage, no output schema, and no annotations, the description is reasonably complete. It explains output structure and the use of mid, satisfying basic needs for a lightweight autocomplete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. Description does not add meaning beyond the schema; it mentions query and language but provides no additional constraints, examples, or formatting details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns Google Trends autocomplete suggestions for a search query, including topics/entities with categorization and a Trends link. Distinguishes from siblings like google_trends and google_autocomplete by focusing on autocomplete for Trends data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. Mentions the mid can be used in google_trends endpoint, implying it is a precursor, but does not specify when to choose this over google_autocomplete or other similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_trends_trending_nowA
Retrieves currently trending searches on Google, filtered by location, time window, and language. [Credits: Not explicitly stated on this page (see general Scrapingdog credit pricing).] Notes: geo is listed as Required with a default of US, so it behaves like an optional parameter with a fallback in practice. Returns: JSON with trending_searches array of {title, start_timestamp, end_timestamp, active (boolean), search_volume, increase_percentage, trend_breakdown[] (related terms)}.
| Name | Required | Description | Default |
|---|---|---|---|
| geo | Yes | Location the trending searches originate from (geo code, e.g. US). (default: US) | |
| hours | No | Lookback window for trending searches. Allowed predefined values: `4` (past 4 hours), `24` (past 24 hours), `48` (past 48 hours), `168` (past 7 days). (default: 24) | |
| language | No | Two-letter language code for results (e.g. en, es, fr). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides useful behavioral context: notes the geo parameter's default behavior making it effectively optional, and describes the return format (JSON with trending_searches array and specific fields). This adds value beyond the schema, though it lacks explicit safety or side-effect information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (a few sentences) and front-loaded with the core purpose. It includes necessary details like credits and return format without unnecessary fluff. The structure is clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with three parameters, the description covers purpose, parameters, and output format adequately. Missing elements like error handling or use case examples are not critical given the tool's simplicity. The absence of an output schema is compensated by the return structure description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description adds nuance about geo's practical optionality due to a default, and hints at hours' predefined values. This enriches the schema information, justifying a score above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Retrieves currently trending searches on Google', specifying a concrete action and resource. It distinguishes itself from siblings like 'google_trends' (historical trends) and 'google_trends_autocomplete' by focusing on real-time trending data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for current trends with location/time/language filters, but does not explicitly state when to use this tool versus alternatives like 'google_trends' or 'google_trends_autocomplete'. No exclusions or when-not guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] }
| Name | Required | Description | Default |
|---|---|---|---|
| lr | No | Limit search to one or multiple languages, formatted lang_{language code}, e.g. lang_us. | |
| tbs | No | Advanced parameter ('to be searched') to filter search results. | |
| html | No | Return the response as raw HTML instead of JSON. (default: false) | |
| nfpr | No | Set 1 to exclude auto-corrected/misspelled-query results, 0 to include them. (default: 0) | |
| page | No | Page number of Google search results. 0 = first page, 1 = second page, etc. (default: 0) | |
| safe | No | Adult content filter. Allowed values: active, off. (default: off) | |
| uule | No | Encoded geographic location/locale to tailor results, e.g. w+CAIQIFJlbGF5IFN0YXRlcw==. | |
| query | Yes | Google query. Example: query=shoes | |
| domain | No | Google domain for local results, e.g. google.co.in for India, google.co.uk for the UK. (default: google.com) | |
| country | No | ISO country code for the Google search results. (default: us) | |
| language | No | Language of the results, e.g. en, es, fr, de. (default: en) | |
| result_time | No | Companion to the tbs parameter for time-range filtering (e.g. language, country, file type, etc). Example value: qdr:d. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description adds credit cost, pagination behavior, and return format, but does not disclose rate limits, authentication requirements, or any destructive actions. It covers basic behavioral aspects but lacks depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long with no wasted words. The first sentence states the core purpose, followed by credits and a pagination note, and finally the return format. It is efficiently structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description provides a sample return structure and explains pagination. It covers essential operational details for a search tool, though it could include error scenarios or result limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal extra meaning: notes that 'page' is 0-indexed and provides an example of the return structure. However, it does not elaborate on parameter interdependencies or usage recommendations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves Google video search results with specific features like geographic localization and language preferences. It uses a specific verb ('Retrieves') and resource ('Google video search results'), distinguishing it from siblings like google_images or google_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions pagination and credits cost but does not explicitly state when to use this tool over alternatives. No guidance on when not to use it or which sibling tools are better for other search types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full Indeed search URL to scrape (e.g., https://www.indeed.com/jobs?q=python&l=New+York,NY). Built directly from the Indeed website using its search filters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the credit cost, the special summary object at the end, and the input format. However, it does not mention potential issues like scraping rate limits, error handling, or the fact that Indeed might block requests, which would be useful for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections, front-loading the main purpose, then credits, notes, and return format. It is slightly verbose in the returns section, repeating some field names, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description fully specifies the return structure including the array of job objects and the trailing summary object. It covers input requirements, credit cost, and output format, leaving no major gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single 'url' parameter. The description adds value by explaining the URL must be a complete Indeed search-results URL and how to construct it, going beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Extract job listings') and resource ('Indeed search results URL'), and lists the structured fields returned. It distinguishes itself from sibling scrapers by naming Indeed explicitly and detailing the URL input format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance on building the input URL via Indeed's search UI and notes that it requires a complete search-results URL rather than discrete parameters. Lacks explicit when-not-to-use scenarios or comparisons with other job scrapers, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique identifier of the company or school profile. It is the last part of the profile URL, e.g. 'amazon' from /company/amazon or 'mit' from /school/mit. | |
| type | Yes | Defines the type of profile to scrape. Set to 'company' for company profiles or 'school' for educational institutions. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses credit cost, endpoint sharing, absence of premium/webhook params, and lack of published example response. Acknowledges uncertainty about exact field names, providing honest expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with separate sections for credits and notes. Information is relevant, though slightly verbose; could be trimmed without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description provides reasonable expectations for return fields and acknowledges documentation gaps. Lacks details on error handling or authentication requirements, but adequate for a two-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions. Description adds minor context (e.g., id from URL), but does not significantly enhance understanding beyond the schema. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Explicitly states it scrapes LinkedIn company or school profiles by ID. Distinguishes from the sibling person profile scraper by noting the same endpoint but different type parameter. Verb 'scrape' and resource are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly indicates the tool is for company/school profiles and differentiates from the person profile scraper via the type parameter. However, lacks explicit 'when-to-use' versus other siblings like LinkedIn jobs or posts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The ID of the job listing. Can be found via the Jobs Search Scraper or directly from a LinkedIn job URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It explains endpoint behavior (shares with search API, job_id triggers detail mode), credits cost, and honestly acknowledges that no example response is published with expected fields but field names not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise (two sentences plus notes) and well-structured: purpose, credits, endpoint hints, parameter source, return expectations. No wasted words, though slightly dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple tool (one parameter, no output schema or annotations), description covers purpose, parameter acquisition, endpoint behavior, credits, and expected return fields (with caveat). Lacks error handling details but adequate for scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter described. Description adds meaning beyond schema by explaining how to obtain job_id (from search or URL) and its role in triggering detail mode, providing valuable context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Retrieve detailed information') and resource ('specific LinkedIn job posting') with specific details (full description, requirements, company details). It distinguishes from sibling 'linkedin_jobs_search' by noting job_id is typically from a prior search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains when to use (when job ID is available) and where to obtain job_id (from search or URL). It mentions credits cost and endpoint sharing, but does not explicitly state when not to use or provide alternatives beyond the implied search tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkedin_jobs_searchA
Search and scrape LinkedIn job listings by keyword, location, job type, experience level, and work model. [Credits: 5 credits per successful request] Notes: Shares the /jobs endpoint with the Job Overview API; presence of 'field' (without job_id) triggers search mode. geoid defaults to a global search (92000000); location is a separate free-text alternative/supplement to geoid. Pagination is via the page parameter (values > 0). Returns: No example response is published in the Scrapingdog documentation for this endpoint. Expected to be an array/object of job listing results with fields such as job title, company name, location, job URL/ID, posting date, and possibly a total results count -- exact field names are not confirmed by the docs.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number of results. Must be greater than 0. (default: 1) | |
| field | Yes | Job title or company name to search for (e.g., 'Product Manager' or 'Amazon'). | |
| geoid | No | Unique LinkedIn location ID. Use 92000000 to search for jobs globally. (default: 92000000) | |
| sort_by | No | Filter by posting date. Accepted values: day, week, month. | |
| job_type | No | Filter by employment type. Accepted values: temporary, contract, volunteer, full_time, part_time. | |
| location | No | Geographic location string for job listings (e.g., 'New York', 'London'). | |
| exp_level | No | Filter by experience level. Accepted values: internship, entry_level, associate, mid_senior_level, director. | |
| work_type | No | Filter by work model. Accepted values: at_work, remote, hybrid. | |
| filter_by_company | No | Filter results by a specific company's LinkedIn company ID. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description takes full responsibility. It discloses the 5-credit cost, shared /jobs endpoint, pagination behavior, and uncertain return format (noting missing documentation). This honesty about lack of example response is transparent, though it could mention rate limits or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose sentence followed by 'Notes' section for operational details. It is dense with information but avoids unnecessary verbosity. Minor improvement could be to integrate notes into a more flowing structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and no annotations, the description provides a solid overview of all parameters, cost, endpoint behavior, and expected return fields. It acknowledges documentation gaps. For a complex search tool, it is fairly complete, though missing explicit error states or status codes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining parameter interactions (e.g., geoid vs location, search mode trigger) and providing defaults (geoid=92000000). This goes beyond the schema's individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool searches and scrapes LinkedIn job listings with multiple filters (keyword, location, job type, experience level, work model). It distinguishes itself from 'linkedin_job_overview' by noting the shared endpoint and search mode trigger via 'field' without 'job_id'. This is specific and helps the agent differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides context on when to use this tool versus linkedin_job_overview (search mode vs overview) and explains the geoid/location relationship and pagination. It does not explicitly state when not to use it, but the guidance on endpoint sharing and credits implies appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of any person profile. Found inside the URL of any LinkedIn person profile (e.g., 'rbranson' from linkedin.com/in/rbranson). | |
| type | Yes | Must be set to 'profile' to scrape a person profile. | |
| premium | No | Set to 'true' to use premium proxies to bypass LinkedIn's anti-bot measures. (default: false) | |
| webhook | No | Set to 'true' to schedule profile scraping after 2-3 minutes, which increases the success rate. (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers credit costs (50-100), premium cost increase, webhook delay, and expected fields (with uncertainty). However, it does not explicitly state that the operation is read-only, nor does it disclose potential rate limits or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and then details each parameter. It includes a note about uncertain return fields, which slightly reduces conciseness but is honest. Overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description attempts to describe return fields but admits uncertainty. It covers parameters well but omits error handling, rate limits, and pagination details. Adequate but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds valuable context: id is a slug, type='profile' differentiates modes, premium impacts cost, webhook trades timeliness for success. This enriches the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scrapes LinkedIn person profiles using a profile ID and returns full profile data including experience, education, and about sections. This specific verb+resource combination distinguishes it from sibling tools like linkedin_company_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on using the profile ID slug, required type='profile', and options like premium and webhook with their trade-offs. It does not explicitly state when not to use this tool, but the distinction from company/profile mode is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The post ID of any LinkedIn post. Found in the post's share URL (e.g., '6976499964512243712'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It notes credits cost and missing official documentation, but does not disclose rate limits, authentication requirements, or potential side effects. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is efficiently structured: one short paragraph with key information (purpose, credits, parameter hint, expected return fields). No superfluous sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description adequately covers what it does, parameter source, and expected return structure. It honestly notes documentation gaps, which aids realistic agent expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description already covers the 'id' parameter well (100% coverage). The tool description adds practical guidance on extracting the numeric ID from the share URL, providing extra value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it scrapes LinkedIn posts by ID, returning content and engagement data. This clearly distinguishes it from sibling tools targeting other LinkedIn data like profiles or jobs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for scraping post data and provides credit cost and ID extraction instructions, but lacks explicit guidance on when to prefer this tool over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 } ] } }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the Myntra product page to scrape (e.g., https://www.myntra.com/jeans/powerlook/powerlook-men-baggy-fit-mildly-distressed-jeans/31076617/buy). | |
| html | No | Return the full HTML of the Myntra page instead of parsed JSON. (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses behavior: credits per request, required URL structure (numeric ID before /buy), and detailed return format including optional HTML output and nested fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and includes a detailed return schema. While the return schema is lengthy, it is valuable for an agent. Minor verbosity could be trimmed but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description enumerates the full return structure including nested objects (sizes, offers, reviews). It also covers the URL format requirement, making it complete for proper tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds significant meaning beyond the schema: it clarifies the url must be a product page with a numeric ID, and explains the html parameter returns full HTML instead of parsed JSON.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes a Myntra product page by URL to retrieve product details, distinguishing it from sibling tools like myntra_search which handles search queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies to use this tool for product page URLs, includes credit cost, and explains URL format. While not explicitly excluding alternatives, the context of siblings (e.g., myntra_search) makes the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
myntra_searchA
Scrape Myntra search result pages by passing any Myntra search URL. Returns product IDs, names, brands, prices, discounts, ratings, and images. [Credits: 5 API credits per successful request] Notes: No dedicated query parameter β pass a full pre-built Myntra search URL (including rawQuery and any native Myntra filters) via url. Returns: { search_results: [ { productId, product, productName, brand, rating, ratingCount, mrp, price, discount, gender, primaryColour, category, sizes, landingPageUrl, searchImage, images: [ { view, src } ], inventoryInfo: [ { skuId, label, inventory, available } ], couponData: { couponDiscount, couponDescription: { couponCode, bestPrice } }, articleType: { typeName }, masterCategory: { typeName } } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the Myntra search page to scrape (e.g., https://www.myntra.com/nike-shoes?rawQuery=nike%20shoes). | |
| html | No | Return the full HTML of the Myntra page instead of parsed JSON. (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions credits cost and output format (parsed JSON by default, or HTML if html=true). However, it lacks details on error handling, rate limits, or any destructive behavior (though scraping is presumably read-only).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but verbose, especially the extensive return structure example. It is front-loaded with purpose, but the length could be reduced without losing clarity. Several sentences could be condensed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a thorough breakdown of the return object fields. Parameters are fully covered. However, it missing information about pagination or how to retrieve additional results, which would be expected for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage, but the description adds meaning by specifying that the url must be a full pre-built Myntra search URL with rawQuery and filters, and explains the html parameter. This provides context beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes Myntra search result pages by passing a search URL, and lists extracted data (product IDs, names, brands, prices, etc.). It distinguishes from sibling tools like myntra_product by focusing on search results.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to use it (pass a full pre-built Myntra search URL) but does not explicitly state when to use this tool vs alternative shopping search tools or provide exclusion criteria. The context is implied by the platform-specific name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The target URL to scrape. Should be URL-encoded. | |
| wait | No | Gives slow-loading dynamic pages extra time to finish loading before the page is scraped. Mentioned in the Javascript Rendering doc's prose only β no worked example or explicit unit/range was shown; commonly milliseconds in comparable APIs, but this is not confirmed by the docs. | |
| country | No | ISO 3166-1 country code (e.g. 'us') controlling which country the proxy appears to be from. Mainly useful for search engines / geo-sensitive sites. Available on all plans from Free to Enterprise. | |
| dynamic | No | Enables JavaScript rendering via headless Chrome for JS-heavy pages. Enabled by default, raising cost to 5 credits (25 with premium). Set dynamic=false to scrape static HTML only and reduce cost to 1 credit when JS rendering is not needed. (default: true) | |
| premium | No | Enables premium residential proxies for websites that are difficult to scrape with standard datacenter proxies. Defaults to USA-based proxies but supports geotargeting via the country parameter. Costs 10 credits per request, or 25 credits when combined with dynamic=true (JS rendering). (default: false) | |
| stealth_mode | No | Stealth Mode bypasses Cloudflare and similar bot-protection/CAPTCHA systems using advanced browser fingerprinting techniques. Costs 10 credits per request. (default: false) | |
| custom_headers | No | Set to true to have Scrapingdog forward custom HTTP headers you attach to the request (e.g. via a header like 'X-customheader') on to the target site. Useful for authentication-protected content or sites requiring specific headers. No additional cost. (default: false) | |
| session_number | No | Reuses the same proxy IP across multiple scraping requests. Any integer value creates or resumes a session; use the same number across requests to keep the same proxy. Sessions automatically expire 60 seconds after last use. No additional cost. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Very detailed credit costs, session reuse, CAPTCHA bypass, JavaScript rendering, and undocumented features disclosed. No annotations present, so description carries full burden and exceeds expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with main purpose first, then details. Slightly verbose in credit explanation but organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive coverage of behavior, all parameters, return value, and limitations. No output schema but description explains raw HTML response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant meaning beyond schema: credit costs, defaults, parameter interactions (e.g., premium+dynamic). Schema coverage is 100% but description adds crucial operational context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes scraping any public webpage with specific verb and resource. Distinguishes from sibling tools which are specific site scrapers or search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear context: 'Scrapes any public webpage' implies general purpose. No explicit when-not or alternatives, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The target URL to POST to, passed as a query string parameter (same as GET). | |
| body | Yes | Raw POST body forwarded verbatim to the target URL (e.g. form-encoded 'foo=bar&baz=1' or a JSON string). Scrapingdog relays it as its own POST body. | |
| content_type | No | Content-Type header for the forwarded body (e.g. application/x-www-form-urlencoded or application/json). (default: application/x-www-form-urlencoded) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It details mechanics (query-string parameters, method change), credit structure, and that the return value is the raw response body. It also mentions optional parameters like custom headers and wait. However, it does not cover error scenarios or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy and includes some redundancy (e.g., credit structure repeated). It front-loads the core purpose but could be more concise without losing necessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return value. It covers input parameters, behavior, and credits. It does not discuss error handling or edge cases, but for a 3-parameter tool it provides sufficient context for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that the body is forwarded verbatim, the content_type default, and notes that api_key and url are query parameters (even though api_key is not in the input schema). This goes beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sends a POST request through Scrapingdog, with specific use cases like form submission or hitting POST-only APIs. It distinguishes itself from the GET variant, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (for POST requests) and implicitly contrasts with the GET version. It mentions that other /scrape parameters are available, but does not explicitly state when not to use it or provide direct alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the page for which you want to take a screenshot. | |
| width | No | The width of the browser viewport in pixels. | |
| format | No | Screenshot output format. Available: png, jpg, webp. (default: png) | |
| height | No | The height of the browser viewport in pixels. | |
| quality | No | Image quality setting, 0-100 range. (default: 80) | |
| fullPage | No | Whether to take a full-page screenshot (scrolling the whole page) or just the visible viewport portion without scrolling. | |
| wait_until | No | Determines when navigation is considered complete before taking the screenshot. Options: load, domcontentloaded, networkidle. (default: domcontentloaded) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return type (binary image data), credit cost (5 credits per request), and notes that no country/proxy/session parameters are documented. It also mentions the wait_until parameter controls load timing. This adds value beyond the schema and annotations (which are absent).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action but includes extraneous details about documentation structure (e.g., 'only one of the fetched pages that ships a full, structured API Parameters reference table') that may not aid an AI agent. Could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, no output schema, and no annotations, the description adequately covers purpose, parameters, output type, and credit cost. It lacks error handling details but sufficiently describes the return format for a screenshot tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds credit cost and documentation notes but does not add significant new meaning beyond what the schema already provides for each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Captures a screenshot of any webpage' which clearly states the action (captures) and resource (screenshot of webpage). It lists controllable aspects and distinguishes from the sibling 'scrape' by noting it's a distinct endpoint, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context by contrasting with /scrape endpoint, implying this tool is for image capture rather than HTML scraping. However, it does not explicitly state when to use this tool over other siblings or provide when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 }] }
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Keyword to search for on TikTok Ads. Used for keyword search (query_type=1). | |
| country | No | The country to search ads from. (default: all) | |
| sort_by | No | Sort order for results. Allowed values: `last_shown_date_newest_to_oldest` (default), `last_shown_date_oldest_to_newest`, `published_date_newest_to_oldest`, `published_date_oldest_to_newest`, `unique_users_seen_low_to_high`, `unique_users_seen_high_to_low`. (default: last_shown_date_newest_to_oldest) | |
| query_type | No | Type of search: `1` for keyword search (default), `2` for advertiser ID search. (default: 1) | |
| time_period | No | Custom date range in `YYYY-MM-DD..YYYY-MM-DD` format. Defaults to the past 12 months if omitted. | |
| advertiser_id | No | Unique advertiser ID to search for ads from a specific advertiser. Used together with query_type=2. | |
| next_page_token | No | Token used to fetch the next page of results. Use the `next_page_token` value returned in the previous response. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully compensates by disclosing credits cost ('[Credits: 5 API credits per successful request]'), parameter pairing rules, pagination behavior, and the complete return structure including nested fields. This is a comprehensive disclosure of what the tool does and what to expect, exceeding typical expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded with the core purpose. The second sentence densely packs credits, query type notes, pagination, and return structure, which could be more readable with bullet points or a list. However, it remains within acceptable length and contains no unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 optional parameters and no output schema, the description covers all essential aspects: search modes, pagination, return fields, and credits. Missing details like error handling or rate limits are minor omissions. Overall, it is complete enough for an agent to use effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters already have descriptions. The description adds context like pairing rules and default for `time_period`, but does not significantly enhance understanding beyond the schema. Baseline 3 is appropriate as the description adds modest value (e.g., credit cost mention) but does not fundamentally elevate parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Searches and extracts ad listings from TikTok's Ad Library by keyword or advertiser ID'. The verb 'searches and extracts' paired with the specific resource 'ad listings from TikTok's Ad Library' leaves no ambiguity. It distinguishes itself from sibling tools (e.g., google_ads_transparency, tiktok_post) by focusing on TikTok's Ad Library with specific parameter modes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains how to use the two query modes ('query_type=1 (default) pairs with `query`; query_type=2 pairs with `advertiser_id`') and how to paginate ('Pagination is handled via next_page_token echoed in the response'). While it doesn't explicitly state when not to use the tool, the context is clear enough for an agent to decide. A slightly higher score would require explicit exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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[] }
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Full TikTok post URL, used instead of passing `username` and `post_id` separately. Example: `https://www.tiktok.com/@nba/video/7255379108241198378`. | |
| post_id | No | The ID of the post to get data for. Required unless the `url` parameter is used (must be paired with username). | |
| username | No | The username of the TikTok profile whose post you want to scrape. Required unless the `url` parameter is used (must be paired with post_id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses the return structure and credit cost, but does not explicitly state that the tool is read-only, nor does it mention potential errors, rate limits, or authentication needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose, though the return structure is presented as a dense block. Overall, it avoids redundancy and is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the description covers the key aspects: purpose, parameters, credit cost, and return format. No output schema exists, but the inlined return structure compensates. It is sufficiently complete for agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions, and the description adds value by explaining the two identification approaches and providing an example URL, making parameter usage clearer.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it extracts detailed data for any TikTok post, listing specific fields like play counts, likes, comments, etc. However, it does not explicitly differentiate from sibling tools like tiktok_profile or scrape_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two parameter approaches (url or username+post_id) and mentions credit cost, but does not provide guidance on when to use this tool over alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 }
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | The username of the TikTok profile to scrape (e.g., `nike`, `mrbeast`). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full weight. Mentions credit cost (5 per request) and lists all return fields comprehensively. No hidden behaviors like auth requirements or rate limits are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is 4 sentences with clear structure: purpose, credit note, formatting note, return data. Could be slightly trimmed, but every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the detailed list of return fields is essential and provided. Lacks error handling or additional limitations, but given the tool's simplicity (single parameter, no pagination), it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter already described well. Description adds value by clarifying 'username is the TikTok handle without the @ symbol', which is a helpful nuance beyond the schema's examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'scrapes' with specific resource 'profile data for any TikTok user' and lists key data types (follower counts, engagement metrics, etc.). Distinguishes from siblings like tiktok_post and tiktok_ads by focusing on profile-level data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States the tool is for 'any TikTok user' and notes credit cost and username format, but does not explicitly contrast with alternatives or provide when-not-to-use guidance. Siblings include other TikTok tools, but no direct comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
universal_searchB
Scrapes results from various search engines without worrying about proxy rotation and data parsing. Supports geographic targeting and language customization. [Credits: 20 API credits per successful request] Notes: Only 20 credits per successful request. Documentation does not name which specific search engine(s) are aggregated beyond 'various search engine results'. Returns: { organic_results: [ { title, displayed_link, snippet, date, missing[], link, extended_sitelinks: [ { title, link } ], rank } ] }
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query to execute, just like a standard search. | |
| country | No | Country for the search using a two-letter country code (e.g., US, UK, FR). (default: us) | |
| language | No | Language of the results. Possible values: en, es, fr, de, etc. (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries the full burden. It discloses credit cost and notes that documentation does not name specific engines, which is transparent. However, it does not discuss rate limits, reliability, or handling of duplicates across engines. The return structure is given, adding some transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: it states the core capability, then adds credit info and return format. It is front-loaded with the most important information. Could be slightly shorter if credit info were moved, but overall cohesive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and moderate complexity (multiple engines, credit cost), the description provides a decent overview. It explains the return structure and credit usage. However, it lacks details on real-time vs cached results, how credits are consumed per query, and whether advanced operators are supported.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the description adds value by explaining query behavior ('just like a standard search') and providing examples for country and language parameters. It also emphasizes geographic targeting and language customization, which goes beyond the schema's generic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes results from various search engines, handling proxy and parsing. This distinguishes it from sibling tools targeting specific engines (e.g., google_search). However, it could be more explicit that it aggregates multiple engines in one request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus individual search tools. Lacks context about trade-offs or prerequisites. The description only says it supports geographic targeting, but does not help the agent decide between universal and specific search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The Walmart search query to get autocomplete suggestions for (e.g. football, laptop). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses credit cost per request, notes on missing localization documentation, and describes the return structure. However, it does not cover rate limits, authentication, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the purpose. It includes essential notes on credits, localization, pagination, and return structure without unnecessary words. Every sentence provides value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is simple with one parameter and no output schema, the description adequately covers purpose, return structure, and usage constraints. Minor omissions like error handling prevent a perfect score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only one parameter (query) that includes an example. The main description adds no additional parameter semantics beyond what the schema already provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves Walmart autocomplete search suggestions for any query, specifying it includes suggested search terms and category navigation data. This distinguishes it from sibling tools like google_autocomplete or walmart_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on credits, lack of localization parameters, and no pagination, but does not explicitly state when to use this tool versus alternatives like walmart_search or other autocomplete tools. Usage guidance is implied rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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,...} }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full Walmart product page URL to scrape (e.g. https://www.walmart.com/ip/46480251). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavior: it mentions credit cost (5 per request), explains input format, notes no pagination, and provides a detailed return structure. This gives the agent clear expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose. It includes credits, notes, and return structure in a single paragraph. Minor improvement could be more structured formatting, but it is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (single parameter, no output schema), the description covers all necessary aspects: purpose, input, behavior, cost, and return data. No gaps are evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'url' is well-described in the schema. The description adds context that it must be a full product page URL (not an ID), which is helpful but not critical. With 100% schema coverage, the description adds moderate value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scrapes Walmart product pages via URL and lists the data retrieved (title, price, images, etc.). It distinguishes from sibling tools like walmart_reviews, walmart_search, and walmart_autocomplete, which handle different functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes that a full product page URL is needed (not a product ID) and that localization is implicit, but it does not explicitly state when to use this tool versus alternatives. Usage context is implied but not directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}] } }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full Walmart reviews page URL (e.g. https://www.walmart.com/reviews/product/317408869). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses credit usage, return format, and limitations on pagination and localization. Does not mention rate limits or error handling, but adds useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is structured with a clear purpose statement, followed by notes and return format. It is somewhat long but organized, with front-loaded key information. Some minor redundancy could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description details the full return structure and notes important limitations. For a single-parameter tool, it provides comprehensive context, making it self-contained for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal extra context beyond the schema's description of the 'url' parameter, mainly giving an example URL. Does not significantly enhance semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it scrapes Walmart product reviews and returns ratings distribution, individual reviews, and top positive/negative feedback. Distinguishes from siblings like walmart_product and walmart_search by specifying the input is a reviews page URL.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides some usage context (no pagination parameters, credits cost) but does not explicitly state when to use this tool versus alternatives like walmart_product. Lacks direct guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
walmart_searchA
Scrapes Walmart search result pages by passing any Walmart search URL, returning product titles, prices, ratings, review counts, availability, and seller info. [Credits: 5 API credits per successful request.] Notes: Pagination is handled by including page parameters in the passed Walmart search URL itself (e.g. &page=2) rather than via a separate API parameter β the docs only document the url parameter. No domain/country localization parameters documented. Returns: { search_results: [{title, totalItemCount, item: [{title, id, usItemId, type, thumbnail, canonicalUrl, rating, review_count, seller_name, availability_status, current_price, before_price, price_range_string, sponsored, shipping}]}] }
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full Walmart search URL to scrape. Build this URL directly from the Walmart website (e.g. https://www.walmart.com/search?q=football). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses credit cost (5 API credits) and return format. With no annotations, the description carries the burden well, though it could mention rate limits or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Detailed but slightly verbose; all sentences are useful. Could be trimmed by merging some notes, but overall well-structured with key info up front.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully covers the tool's functionality: input, behavior, return format. Even provides example return structure. No output schema needed; description is self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'url' parameter is well-explained: shows how to construct the URL and notes pagination. Schema coverage is 100%, and the description adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes Walmart search results and lists returned fields (titles, prices, ratings, etc.). It distinguishes from sibling tools like walmart_product and walmart_reviews by focusing on search pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear instructions: pass a Walmart search URL, handle pagination via URL parameters. However, it lacks explicit guidance on when to use this vs. other search tools (e.g., google_shopping) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL of the page to scrape and send to the configured webhook. | |
| dynamic | No | Set to true to enable JavaScript rendering (headless browser). Set to false for faster plain HTTP requests. (default: true) | |
| webhook_id | No | Identifies the target webhook by name, as configured in the Scrapingdog dashboard. If omitted, the default webhook is used. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the async behavior: immediate session ID response followed by asynchronous POST to webhook. It notes the undocumented webhook payload shape, which is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly verbose including a redundant 'Credits: Not specified' line and a returns section that repeats the notes. Could be tightened without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-param tool with no output schema, the description covers core behavior and return value. However, it lacks information on error handling, authentication requirements, or potential failure modes, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add further meaning to the parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it receives scraped data at a configured webhook endpoint asynchronously, using a session ID pattern. It explicitly distinguishes from polling and is unique among sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises using this tool for async workflows and database pipelines, explicitly contrasting with polling. However, it does not specify when not to use or compare to synchronous scraping tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 }
| Name | Required | Description | Default |
|---|---|---|---|
| tweetId | Yes | The numeric tweet ID of the X post to scrape. Found in the post URL, e.g. for `twitter.com/i/web/status/1655608985058267139`, the ID is `1655608985058267139`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses cost (5 API credits), how to extract tweetId from URL, and lists all return fields. While it doesn't mention failure modes or rate limits, it provides sufficient behavioral context for a read-only extraction tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is moderately sized with front-loaded purpose. Each sentence adds value: metrics list, credit cost, input note, return fields. Could be slightly trimmed, but overall efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description lists all return fields comprehensively. It covers input format, cost, output structure, and includes a usage note. For a single-parameter tool, this is complete and self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both schema and description explaining tweetId. Description adds redundant but clarifying example. Baseline 3 is appropriate as schema already does the heavy lifting and description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts detailed data for any X (Twitter) post, listing specific engagement metrics, content, and author info. The verb 'extracts' and resource 'X post' are specific and distinct from siblings like x_profile or search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention when not to use it or suggest sibling tools. Usage is implied by the clear purpose, but lacking explicit context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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[] }
| Name | Required | Description | Default |
|---|---|---|---|
| profileId | Yes | The user ID or username of the X (Twitter) profile to scrape (e.g., `elonmusk`, `nasa`). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It discloses the credit cost and return fields but lacks warnings about rate limits, authentication needs, or potential data staleness. This is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with clear structure: purpose, credit note, and return fields. No fluff, front-loaded with key verb 'scrapes'. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter scraping tool, the description covers purpose, param format with example, credit cost, and all return fields. No output schema exists, but the description compensates with a comprehensive field list. Complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by clarifying that profileId accepts a plain handle without '@' and gives an example ('elonmusk'). It also later lists the return structure, aiding understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes comprehensive profile data for X users and lists specific data fields (follower counts, engagement metrics, etc.). However, it does not explicitly differentiate from sibling tools like 'account' or 'scrape'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching profile data and includes credit cost, but provides no explicit guidance on when to use this tool versus alternatives (e.g., 'account' or 'scrape_post'). No when-not-to-use conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| l | No | Distance or map radius string to narrow results by geographic area. | |
| cflt | No | Category filter to narrow results to a specific Yelp category (e.g., 'restaurants', 'bars'). | |
| attrs | No | Refine results by business attributes (e.g., 'GoodForKids', 'WheelchairAccessible'). | |
| start | No | Pagination offset. Use multiples of 10 to paginate through results (e.g., 10, 20). (default: 0) | |
| sortby | No | Sort method for results. Accepted values: recommended, rating, review_count. (default: recommended) | |
| find_loc | Yes | Target location for the search (e.g., 'San Francisco, CA'). | |
| find_desc | No | The search query term (e.g., 'burger', 'pizza', 'coffee'). | |
| yelp_domain | No | The Yelp domain to scrape (e.g., 'yelp.com', 'yelp.co.uk'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses credit cost (4 credits) and pagination scheme (start offset in increments of 10, next URL). However, lacks details on potential restrictions, rate limiting, or authentication requirements. Without annotations, more behavioral context would be beneficial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is three sentences, front-loaded with purpose, and contains no unnecessary words. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description adequately explains the return structure (filters, ads, organic_results, pagination). Covers pagination details, credit cost, and domain targeting. Missing some nuance on parameter interdependencies but generally complete for a scraper tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%βevery parameter is described in the schema. The tool description adds marginal semantics like pagination explanation and domain targeting, but overall adds limited value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb (extract), resource (business listings from Yelp), and key parameter categories (keyword, location, filters, sorting, pagination). Distinguishes from sibling scraper tools by targeting Yelp specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not provide when-to-use or when-not-to-use guidance. With many sibling scraper tools (e.g., google_search, amazon_search), explicit guidance on selecting this tool for Yelp-specific scraping is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}]}] }
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | ISO code of the country from which you are seeking YouTube results. (default: us) | |
| language | No | Language of the results. Possible values: `en`, `es`, `fr`, `de`, etc. (default: en) | |
| channel_id | Yes | The YouTube Channel ID, found in the channel URL (e.g., `youtube.com/channel/UCX6OQ3DkcsbYNE6H8uQQuVA`). This is the parameter that selects Channel behavior on the shared /youtube endpoint. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses endpoint sharing, ID format requirement, and provides detailed return structure. Missing behavioral details like error handling, rate limits, or consequences of invalid input, but the return structure adds significant transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with main action ('Scrapes comprehensive YouTube channel data') followed by credits, endpoint note, ID requirement, and return structure. Fairly concise but includes a long JSON example; could be slightly tighter but still well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description provides a full, nested return structure with field details, credits, and endpoint notes. This compensates for the missing schema and gives complete context for an agent to understand what the tool returns and how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by clarifying that channel_id must be UC-prefixed (not a handle) and that it selects Channel behavior. Also notes defaults for country and language from schema, though no major extra beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it scrapes comprehensive YouTube channel data including about info, subscriber counts, video sections, and Shorts. Distinguishes from sibling tools like youtube_search and youtube_video by focusing on channel data, and specifies it requires UC-prefixed channel ID, not a handle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: requires UC-prefixed channel ID, presence of channel_id selects Channel behavior on shared /youtube endpoint, and credits cost. However, does not explicitly state when not to use this tool versus alternatives like youtube_search or youtube_video, nor mention exclusions or prerequisites beyond the ID format.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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} }
| Name | Required | Description | Default |
|---|---|---|---|
| v | Yes | Video ID of the YouTube video whose comments you want to scrape, found in the video URL after `?v=`. | |
| country | No | Two-letter country code specifying search location (e.g., `us`, `uk`, `fr`). (default: us) | |
| language | No | Language of the results. Possible values: `en`, `es`, `fr`, `de`, etc. (default: en) | |
| next_page_token | No | Defines the next page token for retrieving the next page of comments or replies. Use the `next_page_token` value from the previous response (top-level pagination.next_page_token, or a comment's own replies_next_page_token to fetch that comment's replies). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses credits cost, endpoint verification, endpoint discrepancy (docs vs working), and detailed response structure including pagination tokens. Fully transparent about behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is structured with clear sections (credits, notes, endpoint note, returns) but is somewhat lengthy. Could omit some details or condense, but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description must cover return format. It does so comprehensively with field names and types. Endpoint and pagination details are included. Complete for a 4-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by explaining next_page_token usage for paginating both comments and replies, and notes defaults for country/language. Exceeds baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scrapes comments from YouTube videos, listing returned fields and pagination support. It distinguishes from sibling tools like youtube_transcripts and youtube_video by noting endpoint sharing and behavior differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on when to use (comments) and indicates differentiation from transcripts/video via next_page_token support and response shape. Implicitly advises against using for other YouTube data types, though explicit when-not-to-use is lacking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_searchA
Scrapes YouTube search results for any query, returning structured video/channel/shorts data including titles, links, channel info, view counts, durations, thumbnails, and pagination tokens. [Credits: 5 API credits per successful request] Notes: Shares the single /youtube endpoint with all other YouTube tools; presence of search_query selects Search behavior. Pagination via sp = previous response's pagination.next_page_token. ENDPOINT VERIFIED LIVE 2026-07-10: docs show bare /youtube but the working endpoint is /youtube/search. Returns: { channel_results: [{title, link, verified, handle, subscribers, description, thumbnail, position}], video_results: [{title, link, channel:{name,link,thumbmail,verified}, published_date, views, length, description, extensions[], thumbnail:{static,rich}, position}], shorts_results: [{shorts: [{title,link,thumbnail,views_original,views,video_id,position}], position}], movie_results[], pagination: {current, next_page_token, next} }
| Name | Required | Description | Default |
|---|---|---|---|
| sp | No | Used for pagination and filtering search results on YouTube. Supports filters like upload date (`CAI%3D`), 4K videos (`EgJwAQ%3D%3D`), exact spelling (`QgIIAQ%3D%3D`), and custom filters. Also used as the `next_page_token` value from the previous response to paginate. | |
| country | No | ISO code of the country from which you are seeking YouTube search results. (default: us) | |
| language | No | Language of the results. Possible values: `en`, `es`, `fr`, `de`, etc. (default: en) | |
| search_query | Yes | Any YouTube search query, e.g. `search_query=elon+musk`. This is the parameter that identifies this call as a Search request against the shared /youtube endpoint. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses credit costs, endpoint verification status (and the actual working endpoint), pagination token usage, and the shared endpoint behavior. However, it does not mention rate limits, authentication, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is slightly long but well-structured, starting with the core purpose, then credits, endpoint notes, pagination, verification, and return format. Every sentence adds value, though it could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (multiple result types, pagination) and no output schema, the description provides a detailed return structure and explains pagination and endpoint behavior. It covers most key aspects but omits error handling and rate limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds context for sp (pagination and filter examples) and search_query (identifying the tool), but country and language are already well-documented in the schema. The description adds marginal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes YouTube search results for any query and lists the types of data returned (videos, channels, shorts, etc.). It distinguishes itself from sibling tools like youtube_video or youtube_channel by focusing on search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that the presence of search_query selects Search behavior and explains pagination, but it does not provide explicit guidance on when to use this tool vs alternatives like youtube_video or youtube_channel. No exclusions or when-not-to-use scenarios are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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 }] }
| Name | Required | Description | Default |
|---|---|---|---|
| v | Yes | YouTube Video ID, found in the video URL after `?v=` (e.g., for `youtube.com/watch?v=0e3GPea1Tyg`, the ID is `0e3GPea1Tyg`). This is the parameter that selects Transcripts behavior on the shared /youtube endpoint. | |
| country | No | ISO code of the country from which you are seeking YouTube results. (default: us) | |
| language | No | Language of the results/transcript. Possible values: `en`, `es`, `fr`, `de`, etc. (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the credit cost, shares the /youtube endpoint with other tools, and explains that the presence of `v` selects this behavior. It also describes the return format. It does not mention destructive actions, which is appropriate for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly concise and front-loaded with the main purpose. It includes necessary operational notes (credits, endpoint sharing, verified live date, return format) without being overly verbose. Minor improvements could remove redundant info like the date.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description describes the return format. It also addresses the endpoint nuance and credit cost. It does not cover error conditions or prerequisites, but for a simple transcript extraction, it is fairly complete and distinguishable from sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that `v` selects the Transcripts behavior on the shared endpoint and provides an example of how to find the video ID. This enhances understanding beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts the complete transcript from a YouTube video as an array of text segments with start time and duration. The verb 'extracts' and resource 'transcript' are specific, and it distinguishes itself from sibling tools like youtube_search, youtube_comments, and youtube_video.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is the cheapest YouTube endpoint at 1 credit and explains how the `v` parameter selects this behavior on the shared /youtube endpoint. It also notes the endpoint discrepancy (docs show bare /youtube but working endpoint is /youtube/transcripts). However, it does not explicitly say when not to use it, though the context with sibling tools makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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[] }
| Name | Required | Description | Default |
|---|---|---|---|
| v | Yes | YouTube video ID (docs call it video_id, but the live API requires the parameter name v). The YouTube Video ID, found in the video URL after `?v=` (e.g., for `youtube.com/watch?v=0e3GPea1Tyg`, the ID is `0e3GPea1Tyg`). This is the parameter that selects Video-metadata behavior on the shared /youtube endpoint (note the differing param name `video_id` vs `v` used by Transcripts/Comments). | |
| country | No | Two-letter country code for the YouTube video request (e.g., `us`, `uk`, `fr`). (default: us) | |
| language | No | Language of the results. Possible values: `en`, `es`, `fr`, `de`, etc. (default: en) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: credits cost, live-verified endpoint (/youtube/video), parameter name must be v (not video_id), full return structure, and default values. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose, containing a full return JSON in text, verification notes, and credits info. While front-loaded with purpose, the length and unstructured details hurt conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description compensates thoroughly: includes endpoint verification, parameter differences, default values, and a complete return object shape. All 3 parameters are explained. Very complete for a scraping tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baselining at 3. The description adds significant value: clarifies that v is the video ID from URL, warns against using video_id, and explains country/language defaults. The live verification note is extra context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it scrapes detailed metadata for any YouTube video, listing specific fields (title, views, likes, description, etc.). It distinguishes from sibling tools by noting the differing parameter name for video metadata vs. transcripts/comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While it doesn't give explicit when-to-use/when-not-to-use statements, it contrasts with transcript and comment tools by pointing out the parameter difference. This implies its usage for video metadata, but lacks clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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} }.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The full Zillow URL to scrape (e.g., https://www.zillow.com/homes/for_sale/Brooklyn,-New-York,-NY_rb/). Built directly from the Zillow website using its filters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must stand alone. It mentions credits cost (2 per request) and the need for a full URL, but does not disclose whether the tool is read-only, rate limits, or authentication requirements. The return object is detailed, partially compensating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise but includes a lengthy sample return object inline. While front-loaded with the purpose, the return format details could be condensed. Every sentence adds value, but the structure could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a comprehensive sample return object. However, it lacks information on error handling, result limits, or pagination. For a single-parameter tool, it covers the essential usage context well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'url' has a schema description that is minimal. The tool description adds critical context: the URL must be a full Zillow search-results URL built via Zillow's own UI, with examples. This significantly enhances understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'extract', resource 'real estate listings from any Zillow search page', and output 'structured property data'. It distinguishes itself from sibling tools by specifying Zillow as the source, which no other sibling covers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on constructing the input URL via Zillow's own UI and filters, and gives examples like for_sale, for_rent. It implies the tool is for Zillow listings but doesn't discuss when to avoid it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
77 tool updates
v1.0.0- First observed
account - First observed
amazon_autocomplete - First observed
amazon_offers - First observed
amazon_product - First observed
amazon_reviews - First observed
amazon_search - First observed
baidu_search - First observed
bing_search - First observed
bing_shopping - First observed
chatgpt_scraper - First observed
duckduckgo_search - First observed
ebay_product - First observed
ebay_search - First observed
flipkart_product - First observed
flipkart_search - First observed
google_ads_transparency - First observed
google_ai_mode - First observed
google_ai_overview - First observed
google_autocomplete - First observed
google_finance - First observed
google_flights - First observed
google_hotels - First observed
google_images - First observed
google_immersive_product - First observed
google_jobs - First observed
google_lens - First observed
google_local - First observed
google_maps_photos - First observed
google_maps_places - First observed
google_maps_posts - First observed
google_maps_reviews - First observed
google_maps_search - First observed
google_news_search - First observed
google_news_v2 - First observed
google_patent_details - First observed
google_patents - First observed
google_scholar - First observed
google_scholar_author - First observed
google_scholar_author_citation - First observed
google_scholar_cite - First observed
google_scholar_profiles - First observed
google_search - First observed
google_shopping - First observed
google_shorts - First observed
google_trends - First observed
google_trends_autocomplete - First observed
google_trends_trending_now - First observed
google_videos - First observed
indeed_scraper - First observed
linkedin_company_profile - First observed
linkedin_job_overview - First observed
linkedin_jobs_search - First observed
linkedin_person_profile - First observed
linkedin_post - First observed
myntra_product - First observed
myntra_search - First observed
scrape - First observed
scrape_post - First observed
screenshot - First observed
tiktok_ads - First observed
tiktok_post - First observed
tiktok_profile - First observed
universal_search - First observed
walmart_autocomplete - First observed
walmart_product - First observed
walmart_reviews - First observed
walmart_search - First observed
webhook - First observed
x_post - First observed
x_profile - First observed
yelp_scraper - First observed
youtube_channel - First observed
youtube_comments - First observed
youtube_search - First observed
youtube_transcripts - First observed
youtube_video - First observed
zillow_scraper
TDQS
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.
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.
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.
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
31All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce and more.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
- ZapierOAuthcom.zapier
Hosted MCP server connecting AI assistants to 9,000+ apps and 40,000+ actions via Zapier.
Related MCP Servers
AlicenseAqualityBmaintenanceA local MCP server that lets AI agents bypass bot detection, geo-restrictions, and JavaScript rendering challenges when scraping the web, backed by ScraperAPI's services285MIT- AlicenseNot gradedqualityDmaintenanceA lightweight MCP server that exposes Crawl4AI web scraping and crawling capabilities as tools for AI agents, enabling single-page scraping and multi-page crawling with adaptive stopping.107MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for ScrapingDog API that provides comprehensive web scraping, search engine data extraction, social media scraping, and e-commerce data collection capabilities.-
- AlicenseAqualityBmaintenanceMCP server providing tools for web scraping, browser automation, computer vision, audio transcription, and RAG via API.91MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/alessandrobenigni/ScrapingDog-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server