HasData MCP Server
OfficialThe HasData MCP Server provides 40+ tools for scraping, searching, and extracting structured data from major websites across search engines, e-commerce, maps, travel, real estate, jobs, and social platforms.
Web Scraping
Scrape any URL with JS rendering, custom headers, proxy selection (datacenter/residential), screenshots, and AI-powered structured extraction.
Search: Full SERP (organic, ads, knowledge graph, PAA, featured snippets) plus lightweight organic-only variant.
News, Shopping, Images, Events, Short Videos: Dedicated tools for each content type with relevant filters.
Product & Merchant: Product offers, specs, reviews, and expanded merchant listings.
AI Overview & AI Mode: Fetch AI Overview blocks or get Gemini-powered conversational answers with citations.
Maps: Search places, get full place details, reviews, photos, and contributor reviews by Local Guide.
Trends: Interest over time, geo breakdowns, and related topics/queries.
Flights: Search itineraries with filters for stops, airlines, times, class, and emissions.
E-Commerce
Amazon: Keyword search, full product details (ASIN), paginated reviews, seller profiles, and seller catalogs.
Shopify: Products and collections from any public Shopify storefront.
Real Estate
Zillow: Property listings with rich filters and full details including Zestimate and price history.
Redfin: For-sale, for-rent, or sold listings and full property details with walk scores.
Jobs
Indeed & Glassdoor: Job search by keyword/location and full job posting details.
Travel & Local
Airbnb: Search stays by location/dates and get full listing details.
Yelp & YellowPages: Business search, details, hours, reviews, and contact info.
Bing: SERP results with geo targeting and pagination.
Social
Instagram: Public profile metadata including follower/following counts and bio.
All tools return structured JSON, making them suitable for use cases like competitive intelligence, lead generation, market research, and recruiting.
Allows searching Airbnb listings by location and dates, and retrieving detailed property information.
Enables searching Amazon products, retrieving product details by ASIN, and fetching product reviews.
Enables searching Glassdoor job listings and retrieving detailed job information.
Provides access to Google Search, News, Shopping, Images, Events, Product details, Trends, and Flights data.
Allows searching places on Google Maps, retrieving place details, reviews, photos, and contributor reviews.
Retrieves Google News search results.
Enables searching Indeed job listings and retrieving detailed job information.
Retrieves public Instagram profile details.
Allows searching Shopify store products and retrieving collections.
Enables searching Yelp businesses and retrieving detailed business information.
Allows searching Zillow property listings and retrieving detailed property information.

HasData MCP Server
Model Context Protocol server for HasData scraping and search APIs. Connect any MCP-compatible AI client to 40 ready-to-use data tools.
Quick Start
Claude Desktop. Add to claude_desktop_config.json:
{
"mcpServers": {
"hasdata": {
"type": "http",
"url": "https://mcp.hasdata.com/api/mcp",
"headers": {
"x-api-key": "<your-api-key>"
}
}
}
}Claude Code:
claude mcp add hasdata -t http https://mcp.hasdata.com/api/mcp --header "x-api-key: <your-api-key>"Cursor. Add to ~/.cursor/mcp.json or .cursor/mcp.json:
{
"mcpServers": {
"hasdata": {
"url": "https://mcp.hasdata.com/api/mcp",
"headers": {
"x-api-key": "<your-api-key>"
}
}
}
}Cline. Add the hasdata server to your Cline MCP settings file:
{
"mcpServers": {
"hasdata": {
"url": "https://mcp.hasdata.com/api/mcp",
"type": "streamableHttp",
"headers": {
"x-api-key": "<your-api-key>"
},
"disabled": false
}
}
}Any other MCP client that supports streamable HTTP with custom headers:
Field | Value |
URL |
|
Transport | HTTP (streamable) |
Header |
|
Get your API key from the HasData dashboard. Requests without a valid key return 401 Unauthorized.
Related MCP server: webpeel
What you can do with it
"Find the cheapest flights from NYC to London next month and compare prices."
"Monitor iPhone 16 prices on Amazon across the last 7 days."
"Pull all 5-star reviews for this product ASIN and summarize the common themes."
"Get me all software engineer job postings in Berlin from Indeed and Glassdoor."
"Find the top-rated Italian restaurants in Chicago using Google Maps."
"What are people searching for related to 'AI agents' on Google Trends this week?"No scraping code. No proxies to manage. No parsing logic. Just ask.
Compatible clients
Client | Supported |
Claude Desktop | ✅ |
Claude Code | ✅ |
Claude.ai (web) | ✅ |
Cursor | ✅ |
Windsurf | ✅ |
VS Code (GitHub Copilot) | ✅ |
Gemini CLI | ✅ |
Custom agents (OpenAI, LangChain, etc.) | ✅ |
Any client that supports the MCP streamable HTTP transport with custom headers will work.
Tools
40 tools across search, e-commerce, maps, travel, real estate, and more.
Web
Tool | Description |
| Scrape any URL with optional parameters |
Tool | Description |
| Google Search results |
| Google Search results (lightweight) |
| Google News results |
| Google Shopping results |
| Google Image Search results |
| Google Events results |
| Google product details |
| Google immersive product details |
| Google AI Overview results |
| Google AI Mode results |
| Google Maps search |
| Place details by |
| Place reviews |
| Place photos |
| Reviews by contributor ID |
| Google Trends data |
| Google Flights results |
| Bing Search results |
E-commerce
Tool | Description |
| Amazon search results |
| Amazon product details by ASIN |
| Amazon product reviews |
| Shopify store products |
| Shopify store collections |
Real Estate
Tool | Description |
| Zillow listing search |
| Zillow property details |
| Redfin listing search |
| Redfin property details |
Jobs
Tool | Description |
| Indeed job listings |
| Indeed job details |
| Glassdoor job listings |
| Glassdoor job details |
Travel & Local
Tool | Description |
| Airbnb listings by location and dates |
| Airbnb listing details |
| Yelp search results |
| Yelp place details |
| YellowPages search results |
| YellowPages place details |
Social
Tool | Description |
| Instagram public profile details |
Why HasData
A lot of scraping APIs hand you back raw HTML and call it a day. With JavaScript-heavy sites, half of them just time out. HasData's tools return parsed JSON specific to each site, so the model gets structured fields it can actually work with, not a blob of markup to wade through.
A few things worth knowing before you start:
Each tool is site-specific.
amazon_productknows about ASINs, variants, and seller data.google_maps_placeknows about hours, coordinates, and ratings. You're not calling a generic scraper and hoping for the best.It's a remote server. Nothing runs locally. No Node process, no version pinning, no cold starts on your machine.
Credits work the same as the REST API. If you're already a HasData customer, your existing balance and rate limits apply here too.
Authentication is per-request. The
x-api-keyheader goes on every call. There's no session or token exchange.
Use cases
Competitive intelligence. Point amazon_search and google_serp_shopping at the same query and let the model compare pricing, ranking, and review counts across both. Runs in one prompt.
Lead generation. google_maps_search by keyword and city returns business names, addresses, phone numbers, and ratings. Stack it with yellowpages_search for broader coverage.
Market research. google_trends_search plus google_serp_news in the same session gives you both the search volume signal and the editorial context behind it.
Real estate. zillow_listing accepts filters for beds, baths, price range, and listing type. The model can pull a filtered list and summarize it without you touching a browser.
Recruiting. indeed_listing and glassdoor_listing both take location and keyword. Run both and the model can deduplicate and rank by recency.
Travel. google_travel_flights returns structured itineraries with prices, stops, and duration. Combine it with airbnb_listing for a full trip plan in one conversation.
Billing
Each tool call uses HasData credits the same way a direct API call would. See Credits and Concurrency for details.
Resources
Available Tools
42 toolshasdata_airbnb_listing_getAirbnbListingsairbnb_listing: GET /AInspect
Get Airbnb Listings
Searches Airbnb for available stays by location and date range (check-in/check-out) with guest composition (adults, children, infants, pets) and nextPageToken pagination. Returns listing id/url, title, price per night and total, rating, review count, coordinates, photos, host info, room/bed/bath counts, and amenities summary. Use for travel planning agents, short-term rental market analysis, pricing/occupancy research, and lead lists for property management.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | The location to search for listings. | |
| checkIn | Yes | The check-in date for the listings. | |
| checkOut | No | The check-out date for the listings. | |
| adults | No | Number of adults. | |
| children | No | Number of children. | |
| infants | No | Number of infants. | |
| pets | No | Number of pets. | |
| nextPageToken | No | The token used to retrieve the next 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 describes the operation as a search returning list data, but does not mention read-only nature, authentication, or potential side effects. Adequate but not detailed.
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 title and elaborates efficiently. A minor redundancy is the repeated title, but overall it is well-structured and 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 no output schema, the description lists most returned fields but lacks details on pagination mechanics, date format expectations, and error handling. It covers use cases but could be more complete for a complex 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%, so the base score is 3. The description groups parameters and adds context but does not significantly enhance meaning 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 the verb 'Searches' and the resource 'Airbnb listings', enumerates input parameters and output fields, and distinguishes from sibling tools by being specific to Airbnb listings 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 use cases like travel planning and market analysis, but does not explicitly mention when not to use or suggest alternative tools for specific needs like property details.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_airbnb_property_getAirbnbPropertyDetailsairbnb_property: GET /AInspect
Get Airbnb Property Details
Fetches the full Airbnb property page by listing URL. Returns title, description, location, coordinates, price breakdown, cleaning/service fees, rating and review distribution, host profile, room/bed/bath counts, photos, amenities list, house rules, cancellation policy, and availability calendar hints. Use for travel-planning agents, deep-dive rate research, photo/amenity enrichment of listings discovered via the listing-search endpoint, and LSTR compliance or market-quality audits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the Airbnb listing. Must be a valid Airbnb listing URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. The tool name 'Get' implies read-only, but the description does not confirm it is non-destructive, nor does it mention rate limits, authentication needs, or what happens on failure. This lack of explicit behavioral disclosure is a significant gap for a data-fetching 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 moderately concise, starting with the action and listing the return fields efficiently. It could be slightly tighter, but it is well-structured and avoids unnecessary words, earning a score of 4.
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 of the tool (returns a rich set of property details) and no output schema, the description comprehensively lists the data fields. However, it omits potential error conditions (e.g., invalid URL) and behavioral notes, which would enhance completeness. Overall, it covers the main use cases and outputs 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 schema has 100% coverage (one parameter, 'url', with a clear description). The description adds context about using the URL to fetch the property page but does not provide additional semantic detail beyond the schema. 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 fetches full Airbnb property details by listing URL, lists specific return fields (title, description, location, coordinates, price, fees, ratings, etc.), and distinguishes it from the sibling 'listing-search' endpoint by emphasizing deep-dive enrichment. This provides a specific verb+resource+scope.
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 recommends use for travel-planning agents, deep-dive rate research, photo/amenity enrichment of listings from the listing-search endpoint, and compliance audits. It implies appropriate contexts but does not explicitly state when not to use it or mention alternatives beyond the listing-search endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_amazon_product_getProductDetailsamazon_product: GET /AInspect
Get Amazon Product Details
Fetches a single Amazon product page by ASIN on a chosen Amazon domain (amazon.com, .co.uk, .de, .jp, etc.). Returns title, brand, current/list/deal price, currency, availability, Buy Box seller, Prime eligibility, bullet points, A+ description, rating and review count, images, category breadcrumbs, variants/sibling ASINs, and the other-sellers offers block (when otherSellers=true), plus delivery-zone-aware pricing when a shipping zip/location is set. Use for product research agents, price/stock monitoring, catalog enrichment, listing QA, Buy Box tracking, and cross-locale competitive analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | The Amazon Standard Identification Number (ASIN) of the product. | |
| domain | No | Amazon domain to use. Default is www.amazon.com. | |
| language | No | Optional Amazon language code. Supported values depend on the selected domain. | |
| deliveryZip | No | Postal code of the delivery location. | |
| shippingLocation | No | The two-letter country code to define the country of the delivery address. | |
| otherSellers | No | If set to true, extracts the other sellers block from the product page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden of behavioral disclosure. It mentions that otherSellers=true triggers extra data extraction and that deliveryZip/shippingLocation affect pricing. It does not cover rate limits or auth, but for a read-only product lookup, this is 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 moderately sized with a clear title and structured sentences. It front-loads the core purpose and then lists return fields and use cases. A bit verbose in listing all return fields, but 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 the lack of an output schema, the description provides a comprehensive list of return fields (title, brand, price, availability, etc.) and covers behavior for optional parameters (otherSellers, delivery zip/location). It is complete for an agent to understand what the tool does and what to expect.
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 6 parameters are described in the schema (100% coverage). The description adds context beyond the schema: it explains the role of otherSellers (triggering other sellers block) and notes that deliveryZip and shippingLocation enable delivery-zone-aware pricing. This adds meaningful 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 explicitly states it fetches a single Amazon product page by ASIN on a chosen domain, and lists the extensive data returned. It clearly distinguishes itself from sibling tools like search, reviews, and seller details.
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 enumerates specific use cases such as product research, price/stock monitoring, catalog enrichment, listing QA, Buy Box tracking, and cross-locale analysis. It does not explicitly state when not to use or mention alternatives, but the context is clear enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_amazon_reviews_getProductReviewsamazon_reviews: GET /BInspect
Get Amazon Product Reviews
Paginated fetch of customer reviews for an Amazon ASIN with filters for star rating (1-5, positive, critical), reviewer type (all vs verified purchase), media-only reviews, current-variant vs all-formats, keyword search, and sort (helpful/recent). Returns per-review title, body, star rating, author name and profile, review date, country, verified-purchase flag, helpful-vote count, variant/format attributes, and attached media URLs, plus aggregate rating histogram. Use for voice-of-customer analysis, sentiment and theme extraction, feature-request mining, competitor review benchmarking, and feeding review-summarization or Q&A agents.
| Name | Required | Description | Default |
|---|---|---|---|
| asin | Yes | The Amazon Standard Identification Number (ASIN) of the product. | |
| domain | No | Amazon domain to use. Default is www.amazon.com. | |
| language | No | Optional Amazon language code. Supported values depend on the selected domain. | |
| page | No | The page number to retrieve. | |
| searchTerm | No | A term to search within the reviews. | |
| reviewerType | No | The type of reviewers to filter. | |
| stars | No | The star ratings to filter reviews. | |
| format | No | The format type to filter reviews. Include reviews of any product format/variant or specifically to the current format/variant. | |
| mediaType | No | The media type to filter reviews. | |
| sortBy | No | The criterion to sort reviews. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only mentions 'Paginated fetch' without detailing rate limits, authentication needs, or error behavior. It does not disclose what happens on API limits or missing data, leaving gaps 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 two sentences: a clear introductory line and a concise second sentence that packs the features and use cases. No redundant text, but could be more structured with bullet points for readability.
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 lists return fields (title, body, rating, etc.) which partially compensates for missing output schema. However, given the tool's complexity (10 parameters, pagination), it lacks details on pagination limits, default page size, or error scenarios.
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, so the baseline is 3. The description enumerates filter options (star rating, reviewer type, etc.) but does not add meaning beyond the schema. For instance, 'positive' and 'critical' stars are not explained.
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 'Get Amazon Product Reviews' and specifies the action (paginated fetch) and resource (Amazon ASIN). It distinguishes itself from sibling tools by focusing specifically on product 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 lists several use cases (voice-of-customer analysis, sentiment extraction, etc.) but does not explicitly state when NOT to use this tool or compare it to siblings like getProductDetails or search. It gives context but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_amazon_search_getSearchResultsamazon_search: GET /AInspect
Get Amazon Search Results
Runs a keyword search on a chosen Amazon domain with pagination, delivery zip/location scoping, and sort order (featured, price low-to-high, price high-to-low, avg-customer-review, newest). Returns the organic results list with ASIN, title, thumbnail, product URL, price and list price, currency, star rating, review count, Prime/sponsored flags, and position, plus related search suggestions and filter facets. Use for SERP monitoring, keyword/share-of-shelf tracking, competitor discovery, ASIN harvesting to feed downstream product/reviews endpoints, and building product-research or price-comparison agents.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | The search term for which to get the search results. | |
| domain | No | Amazon domain to use. Default is www.amazon.com. | |
| language | No | Optional Amazon language code. Supported values depend on the selected domain. | |
| page | No | Page number for pagination (e.g., 1 for the first page, 2 for the second page, etc.). | |
| deliveryZip | No | Postal code of the delivery location. | |
| shippingLocation | No | The two-letter country code to define the country of the delivery address. | |
| sortBy | No | Parameter used for sorting results |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description transparently covers the read-only nature, pagination, supported sort orders, delivery location scoping, and the structure of returned data. However, it omits details on rate limits, data freshness, or authentication requirements.
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, covering functionality, parameters, returns, and use cases in a single paragraph. It is front-loaded and each sentence adds value, though it could be structured with bullet points for 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, the description provides a detailed list of return fields and mentions related suggestions and facets. It is sufficient for understanding the tool’s role in product research and price comparison, though it lacks explicit mention of the response format.
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 little beyond listing parameters like 'domain' and 'sortBy'. It contextualizes their role in filtering and sorting but does not significantly extend 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 performs a keyword search on Amazon domains with pagination, delivery scoping, and sort options. It enumerates return fields (ASIN, title, price, etc.) and lists concrete use cases like SERP monitoring and competitor discovery, distinguishing it from siblings such as 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?
Use cases are provided but no explicit guidance on when to use this tool versus alternatives. It does not mention when not to use it or contrast with sibling tools like product details or seller details, leaving the agent to infer based on return fields.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_amazon_seller_getSellerDetailsamazon_seller: GET /AInspect
Get Amazon Seller Details
Fetches the public storefront profile for an Amazon seller by sellerId on the chosen domain/language. Returns business name, seller logo, About-this-seller text, overall feedback rating and lifetime/12-month/90-day/30-day rating breakdown, feedback count, business address and contact details, customer service info, and any listed policies. Use for seller due-diligence and vetting, counterfeit/brand-protection workflows, MAP-violation investigations, building seller leaderboards, and enriching marketplace seller directories.
| Name | Required | Description | Default |
|---|---|---|---|
| sellerId | Yes | The unique Amazon seller ID. | |
| domain | No | Amazon domain to use. Default is www.amazon.com. | |
| language | No | Optional Amazon language code. Supported values depend on the selected domain. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It explicitly states the tool 'Fetches the public storefront profile', confirming it is a read-only operation. It does not mention rate limits or authentication, but the read-only nature is 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 two sentences long and efficiently conveys purpose and return data. The first sentence serves as a clear verb+resource statement, and the second provides details and use cases. It is slightly dense but 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 absence of an output schema, the description compensates by listing the key data fields returned (business name, ratings, address, etc.). It also covers use cases sufficiently. No missing critical information for a seller details 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?
The input schema has 100% coverage with descriptions for all three parameters. The description does not add meaning beyond the schema; it only restates the parameter roles implied by schema's descriptions and enums. 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 fetches the public storefront profile for an Amazon seller by sellerId on a specified domain and language. It lists the specific data returned (business name, feedback ratings, etc.) and distinguishes this tool from the sibling 'hasdata_amazon_seller_products_getSellerProducts' by focusing on seller profile details rather than their products.
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 lists several use cases (due-diligence, brand protection, etc.) but does not explicitly compare this tool to alternatives like 'getSellerProducts'. Usage context is implied but could be clearer on 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.
hasdata_amazon_seller_products_getSellerProductsamazon_seller_products: GET /AInspect
Get Amazon Seller Products
Paginated listing of the storefront catalog offered by a given Amazon sellerId on the chosen domain. Returns each product row with ASIN, title, image, product URL, price and list price, currency, star rating, review count, and Prime flag. Use to map a competitor's or 3P seller's full assortment, detect new SKU launches, build brand-protection watchlists, drive price-intelligence pipelines, and seed per-ASIN deep-dives against the product and reviews endpoints.
| Name | Required | Description | Default |
|---|---|---|---|
| sellerId | Yes | The unique Amazon seller ID. | |
| domain | No | Amazon domain to use. Default is www.amazon.com. | |
| language | No | Optional Amazon language code. Supported values depend on the selected domain. | |
| page | No | Page number for pagination (e.g., 1 for the first page, 2 for the second page, etc.). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains that the tool returns paginated results with specific fields and implies read-only behavior. It does not cover rate limits or authentication but provides sufficient transparency for typical use.
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 title line, a summary sentence, a return fields sentence, and a use case sentence. It is front-loaded and each 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?
The description covers purpose, return fields, and use cases, but given no output schema, it does not specify the return structure (e.g., array, pagination metadata missing). It also does not explain the optional language parameter. These gaps limit 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 description coverage is 100%, so all parameters already have descriptions in the input schema. The tool description adds no additional parameter-level information beyond implying pagination via 'page' and domain selection. Thus it meets the baseline but does not enhance parameter 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 provides a paginated listing of products for a given Amazon sellerId on a domain, distinguishing it from siblings like product details, reviews, search, or seller details tools. It specifies the return fields and use cases, 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 lists concrete use cases such as mapping a competitor's assortment, detecting new SKUs, and building watchlists, which imply when to use this tool. However, it does not explicitly state when not to use it or name alternative tools, though context from siblings suggests alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_bing_serp_getSearchResultsbing_serp: GET /AInspect
Get Bing Search Results
Fetches Bing SERPs for a query with geo targeting (location/lat/lon), market (mkt), country (cc), safesearch (off/moderate/strict), time/custom filters, device type, and pagination (first offset, count up to 50). Returns organic results (title, url, snippet, displayed url, position), related searches, answer boxes/knowledge panels, and pagination metadata. Use for SEO rank tracking, SERP feature monitoring, Bing-specific visibility audits, and training/eval data for search agents.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| location | No | Defines the search’s origin location. For realistic results, set location at the city level. If omitted, the proxy’s location may be used. | |
| lat | No | GPS latitude for the search origin. | |
| lon | No | GPS longitude for the search origin. | |
| mkt | No | The two-letter country code for the country to search from. | |
| cc | No | The two-letter country code for the country to search from. | |
| safe | No | Adult Content Filtering option. | |
| filters | No | Allows applying various filters to narrow search results, including date-based options: - `ex1:"ez1"` – past 24 hours - `ex1:"ez2"` – past week - `ex1:"ez3"` – past month For complex filters, run a Bing search and copy the filters parameter from the URL. | |
| deviceType | No | Specify the device type for the search. | |
| first | No | This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 1 (default) indicates the first page of results, 11 refers to the second page, and 21 to the third page. | |
| count | No | Number of results per page, ranging from 1 to 50. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full responsibility. It explains that the tool fetches SERPs, accepts various parameters (geo, market, safesearch, filters, device type, pagination), and returns organic results, related searches, and answer boxes. This provides sufficient behavioral insight without side effects 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 concise yet comprehensive, front-loading the core function and then listing capabilities in a structured list-like format. No redundant or vague statements; 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?
Given 11 parameters and no output schema, the description covers all essential aspects: input parameters, return types, and use cases. It even provides example filter syntax. This makes the tool easy to understand and use without additional documentation.
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, but the description adds value by grouping parameters (e.g., 'geo targeting (location/lat/lon)') and explaining their purpose in context. It highlights key constraints like 'count up to 50' and 'first offset' for pagination, which aids 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 'Get Bing Search Results' and details the functionality: fetching SERPs with geo targeting, market, etc. It lists return types (organic results, related searches, answer boxes) and specifies use cases like SEO rank tracking. This distinguishes it from sibling tools focused on other platforms (e.g., Google, 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?
The description explicitly lists intended use cases: 'SEO rank tracking, SERP feature monitoring, Bing-specific visibility audits, and training/eval data for search agents.' It provides clear context but does not explicitly state when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_glassdoor_job_getJobDetailsglassdoor_job: GET /AInspect
Get GlassDoor Job Details
Fetches a Glassdoor job posting by its vacancy URL. Returns job title, company name and rating, location, salary estimate, employment type, posted date, full job description, qualifications/benefits, and apply link. Use for ATS ingestion, job aggregators, comp benchmarking, enrichment of company profiles, and feeding descriptions into LLM matching or resume-tailoring pipelines.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the job vacancy to retrieve details for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral transparency. It explains the tool fetches details by URL and returns many fields, but it does not disclose error handling, rate limits, or authentication requirements. The behavior is partially 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 a single paragraph of four sentences. It front-loads the purpose and immediately lists returns and use cases. The first sentence is slightly redundant with the title 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 the tool has one parameter, no output schema, and no annotations, the description covers the essential information: what it does, what it returns, and why to use it. It is complete enough for a simple fetch operation, though it lacks details on potential errors.
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 the single 'url' parameter already described as the job vacancy URL. The description repeats this without adding extra semantic nuance, so it meets the baseline for high coverage but does not exceed it.
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 'Fetches' and the resource 'Glassdoor job posting by its vacancy URL'. It lists the specific data returned (title, company, salary, etc.) and outlines use cases, making the tool's purpose distinct from sibling tools like the listing 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 explicit use cases such as 'ATS ingestion', 'job aggregators', and 'comp benchmarking', offering clear context for when to use the tool. However, it does not explicitly specify when not to use it or compare it to alternatives like the Glassdoor listings tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_glassdoor_listing_getJobListingsglassdoor_listing: GET /AInspect
Get GlassDoor Job Listings
Searches Glassdoor job listings by keyword and location with sort (recent/relevant), domain targeting, and nextPageToken pagination. Returns an array of jobs with title, company, location, salary estimate, posted date, job URL, and jobId, plus the next page token. Use to build job feeds, monitor hiring trends for roles/companies/regions, power candidate sourcing tools, and collect URLs for downstream full-detail scraping via the Glassdoor Job endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | The keyword used to search for job listings. | |
| location | Yes | The location to search for job listings. | |
| sort | No | The sorting option for the search results. | |
| domain | No | The domain of the Glassdoor site (optional). | |
| nextPageToken | No | Token for fetching the next page of jobs. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully details the return structure (fields like title, company, salary estimate, etc.) and pagination behavior via nextPageToken. It does not mention any destructive actions or auth requirements, but for a GET endpoint 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 composed of two clear paragraphs: one explaining functionality and one listing use cases. It is efficient without redundancy, though a bit verbose for an experienced user.
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 and 5 parameters, the description covers the return values (array of jobs with specific fields) and pagination, plus use cases. It lacks details on default sort or domain, but overall it is complete enough 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?
The input schema has 100% parameter description coverage, so the description only adds minimal context (like 'searches by keyword and location with sort, domain targeting'). The baseline of 3 is appropriate as the schema already explains each parameter well.
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 identifies the tool as retrieving GlassDoor job listings, specifying search by keyword and location with optional sort, domain, and pagination. It distinguishes itself from its sibling 'hasdata_glassdoor_job_getJobDetails' by stating it returns listings for downstream scraping.
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 use cases like building job feeds and monitoring trends, and mentions the alternative endpoint for full details. However, it does not explicitly state when not to use this tool (e.g., if full details are needed immediately).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_images_images_getImageSearchResultsgoogle_images_images: GET /AInspect
Get Image Search Results
Scrapes Google Images for a query with advanced filters (size, color, image type, safesearch, domain/country/language, device type) plus page-based pagination (ijn). Returns each image with title, source page URL, direct image URL, thumbnail, dimensions, source domain, and position. Use for visual-asset discovery, reverse-image workflows, dataset collection for ML/CV training, brand/logo monitoring, stock-image sourcing, and grounding multimodal LLMs with fresh image context.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query term for retrieving image results. | |
| location | No | Google canonical location for the search. | |
| uule | No | The encoded location parameter. | |
| domain | No | Google domain to use. Default is google.com. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| tbs | No | `tbs` parameter for the Google Images API customizes image search results with various filters that can be combined using commas. Here are the available options: Image Size Filters: - `isz:l` - Search for large images. - `isz:m` - Search for medium images. - `isz:i` - Search for icon-sized images. - `isz:lt,islt:qsvga` - Filter for images larger than 400×300. - `isz:lt,islt:vga` - Filter for images larger than 640×480. - `isz:lt,islt:svga` - Filter for images larger than 800×600. - `isz:lt,islt:xga` - Filter for images larger than 1024×768. - `isz:lt,islt:2mp` - Filter for images larger than 1600×1200. - `isz:lt,islt:4mp` - Filter for images larger than 2272×1704. - `isz:ex,iszw:1000,iszh:1000` - Search for images exactly 1000×1000. Color Filters: - `ic:color` - Search for full-color images. - `ic:gray` - Search for black and white images. - `ic:specific,isc:red` (and other colors such as orange, yellow, green, etc.) - Search for images predominantly in specified colors. Image Type Filters: - `itp:face` - Search for images of faces. - `itp:photo` - Search for photographs. - `itp:clipart` - Search for clipart images. - `itp:lineart` - Search for line drawings. - `itp:animated` - Search for animated images (GIFs). | |
| safe | No | Adult Content Filtering option. | |
| filter | No | Defines whether to enable or disable the filters for 'Similar Results' and 'Omitted Results'. Set to 1 (default) to enable these filters, or 0 to disable them. | |
| deviceType | No | Specify the device type for the search. | |
| ijn | No | Page number for paginated results, where 0 is the first page. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It mentions pagination (ijn) and scraping behavior, but lacks details on rate limits, authentication, or any side effects. The disclosure is adequate 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 a concise, three-sentence paragraph that front-loads the core action and follows with capabilities and use cases. It is efficient with no wasteful content.
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 (11 parameters, no output schema, no annotations), the description covers the main capabilities, return fields, and use cases. It could elaborate on output structure further, but the provided details are 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?
Schema coverage is 100%, so the schema already documents all parameters thoroughly. The description groups parameters conceptually and lists return fields, adding 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 the tool 'Get Image Search Results' against Google Images, lists specific filters and pagination, and distinguishes it from sibling Google search tools by focusing on image-specific features and return fields.
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 enumerates use cases (visual discovery, reverse-image workflows, dataset collection, brand monitoring, etc.) but does not provide when-not-to-use guidance or compare with alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_maps_contributor_reviews_getMapReviewsgoogle_maps_contributor_reviews: GET /AInspect
Get Map Contributor Reviews
Lists all Google Maps reviews authored by a specific Local Guide / contributor by contributorId, with language/country targeting and nextPageToken pagination. Returns per-review rating, text, date, place name, place address, placeId, photos, and owner responses. Use for reviewer reputation checks, detecting fake/bot review patterns, local-guide activity analysis, and building review-author profiles for trust scoring.
| Name | Required | Description | Default |
|---|---|---|---|
| contributorId | Yes | Google Maps Contributor ID. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| num | No | Number of results per page, ranging from 10 to 200. | |
| nextPageToken | No | Defines the next page token. It is used for retrieving the next page results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, rate limits, or authentication requirements. The description focuses on functionality rather than 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 a single concise paragraph that efficiently conveys purpose, returned fields, and use cases. No redundant information, though bullet points could improve readability.
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 5 parameters and no output schema, the description covers the main purpose and return fields but lacks information on output structure, pagination limits, or potential side effects. Adequate but not fully 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 the schema already describes all parameters. The description adds minimal context by mentioning 'language/country targeting' and 'nextPageToken pagination', but does not enrich parameter 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 lists all Google Maps reviews for a specific contributor by contributorId, distinguishing it from sibling tools like getMapReviews for place 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?
Provides specific use cases like reviewer reputation checks and fake review detection, making it easy to decide when to use this tool. No explicit exclusion of 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.
hasdata_google_maps_photos_getMapPhotosgoogle_maps_photos: GET /AInspect
Get Place Photos
Fetches the photo gallery of a Google Maps place by dataId or placeId, paginated with nextPageToken and filterable by categoryId (all, latest, menu, by owner, videos, street view). Returns each photo with image URL, thumbnail, upload date, uploader, and photoId. Use for restaurant-menu extraction, venue/ambience visual audits, building rich place detail pages, and sourcing up-to-date imagery for POI listings.
| Name | Required | Description | Default |
|---|---|---|---|
| dataId | No | Google Maps data ID. Either dataId or placeId should be set. | |
| placeId | No | Unique reference to a place on Google Maps. Either dataId or placeId should be set. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| categoryId | No | Filters photos by category. | |
| nextPageToken | No | Token for fetching the next page of photos. |
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 pagination (nextPageToken), filtering by categoryId, and return fields (image URL, thumbnail, etc.). It does not mention rate limits or exact page size, but covers core behavior 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?
The description is a single, dense paragraph that front-loads the purpose, then details parameters and use cases. Every sentence adds useful 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?
Given the tool's moderate complexity (pagination, filtering), the description covers inputs, outputs, and use cases thoroughly. No output schema exists, but the description lists return fields, making it 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%, baseline 3. The description adds value by explaining that dataId and placeId are alternatives, listing categoryId filter values (all, latest, menu, etc.), and specifying returned fields 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 fetches the photo gallery of a Google Maps place using dataId or placeId, and distinguishes from sibling tools like getPlaceDetails or reviews by focusing specifically on 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 provides explicit use cases such as restaurant-menu extraction and venue visual audits, implicitly guiding when to use this tool over siblings. However, it lacks explicit 'when not to use' statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_maps_place_getPlaceDetailsgoogle_maps_place: GET /AInspect
Get Place Details
Fetches full Google Maps place data by placeId with optional domain/language localization. Returns name, address, coordinates, phone, website, categories, hours, rating, review count, price level, photos, popular times, attributes/amenities, plus_code, and map URL. Use for local SEO audits, POI enrichment, lead generation, competitor mapping, and building location-aware agents.
| Name | Required | Description | Default |
|---|---|---|---|
| placeId | Yes | A unique identifier for the place. This ID can be obtained from Google Maps search results. | |
| domain | No | Google domain to use. Default is google.com. | |
| hl | No | The two-letter language code for the language you want to use for the search. |
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 tool as fetching data and lists returned fields, implying a read operation. However, it lacks detail on failure cases, rate limits, or authentication requirements.
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: first explains the function, second lists fields and use cases. Front-loaded and no wasted 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 no output schema, the description lists many return fields, covering key aspects. With many sibling tools, this description is sufficient for an agent to understand and use 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% with good descriptions. The description adds a list of return fields 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 fetches full Google Maps place data by placeId with optional domain/language localization, and lists specific use cases. It distinguishes from sibling tools like search and 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 lists explicit use cases (local SEO audits, POI enrichment, etc.) but does not mention when not to use or compare with other place detail tools. Still provides good context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_maps_reviews_getMapReviewsgoogle_maps_reviews: GET /BInspect
Get Map Reviews
Paginated fetch of Google Maps reviews for a place by dataId or placeId, with sort (qualityScore, newestFirst, ratingHigh, ratingLow), topicId filter, and language. Returns per-review author name and profile link, star rating, text, published/relative date, likes count, owner response, attached photos, and local-guide flag. Use for reputation management, sentiment and topic mining, competitor review benchmarking, and feeding review data into summarization or trust-score LLMs.
| Name | Required | Description | Default |
|---|---|---|---|
| dataId | No | Google Maps data ID. | |
| placeId | No | Unique reference to a place on a Google Map. Either dataId or placeId should be set. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| sortBy | No | Parameter used for sorting and refining results. | |
| topicId | No | Defines the ID of the topic you want to use for filtering reviews. | |
| nextPageToken | No | Defines the next page token. It is used for retrieving the next page results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully bears the responsibility. It describes the tool as a paginated fetch and lists return fields, but omits how pagination works (e.g., nextPageToken usage), rate limits, or authentication. This leaves key behavioral details unclear.
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 paragraph that front-loads the purpose and efficiently conveys key information. It could be better structured (e.g., bullet points for return fields), but it is clear and without excessive 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?
The description covers the main purpose, parameters, and return data, which is sufficient for a simple read tool. However, it lacks explanation of pagination mechanics (how to use nextPageToken) and error conditions, leaving some gaps given no 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 input schema has 100% parameter description coverage, providing basic definitions. The description adds value by explaining sorting options (qualityScore, newestFirst, etc.) and the topic filter, but does not elaborate on parameters beyond what schema already states.
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 fetches Google Maps reviews for a place, using dataId or placeId, with sorting, filtering, and language options. It distinguishes itself from sibling tools like 'getMapPhotos' by focusing on reviews, but does not explicitly differentiate from the contributor reviews 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 lists specific use cases (reputation management, sentiment mining, etc.), providing clear context for when to use the tool. However, it does not mention when not to use it or compare with alternative tools (e.g., contributor reviews).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_maps_search_performMapSearchgoogle_maps_search: GET /AInspect
Get Google Maps Search Results
Runs a Google Maps search by keyword plus optional GPS coordinates (@lat,lng,zoomz via ll) with language, country, domain, and offset-based pagination (start). Returns the local pack list with placeId, name, address, coordinates, rating, review count, price level, categories, phone, website, hours, and thumbnail. Use for local lead generation, competitor density mapping, market expansion research, hyperlocal directories, and feeding placeIds into the Maps Place, Reviews, or Photos endpoints.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query term or phrase. | |
| domain | No | Google domain to use. Default is google.com. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| start | No | Specifies the result offset for pagination purposes. The offset dictates the number of rows to skip from the beginning of the results. This is useful for accessing subsequent pages of search results. For example, an offset of 0 (the default value) returns the first page of results, 20 returns the second page, 40 returns the third page, and so on. This parameter is especially relevant when used in conjunction with the 'll' parameter for location-based searches. | |
| ll | No | GPS coordinates of the location where the search query is to be performed. This parameter is required if the 'start' parameter is present. The format for the `ll` parameter is `@` followed by latitude, longitude, and zoom level, separated by commas. The latitude and longitude should be in decimal degrees, and the zoom level is an integer. Example: `@40.7455096,-74.0083012,14z`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the return format (local pack list) and key parameters like pagination and GPS coordinates. However, with no annotations provided, it does not disclose any side effects, rate limits, or authentication needs, leaving some behavioral ambiguity.
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 concise paragraph with a clear opening line, followed by parameter explanations and use case examples. 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?
The description covers the return fields, pagination via 'start', and integration with sibling tools. However, it omits details on result limits, error conditions, and the interaction between zoom level and location, which would be helpful for a tool with 6 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 coverage is 100%, so baseline is 3. The description adds marginal value by hinting at the relationship between 'll' and 'start' and the format of 'll'. However, the schema already describes each parameter adequately.
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 'Runs a Google Maps search by keyword plus optional GPS coordinates' and lists the return fields. It clearly identifies the tool's purpose as a search tool for local business data, distinct from sibling tools like place 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 lists concrete use cases (local lead generation, competitor density mapping) and mentions feeding results into other endpoints like Maps Place, Reviews, or Photos. While not explicitly stating when to avoid this tool, it provides strong contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_ai_mode_getAiModeResponsegoogle_serp_ai_mode: GET /AInspect
Get AI Mode SERP Results
Captures Gemini-powered AI Mode answers from Google Search. Returns the conversational response text, cited source links, subtopic breakdowns, follow-up suggestions, and a subsequentRequestToken for multi-turn continuation. Use for next-gen search interfaces, AI-answer monitoring, citation tracking, content research agents, building question-answering pipelines grounded in live Google results, and person/company data enrichment — e.g. asking Who is the CEO of HasData?, What is Roman Milyushkevich's LinkedIn?, HasData founder email, HasData Instagram handle to get a synthesized answer plus source URLs in one call, ideal for lead enrichment, sales research, people search, and filling in contact/attribute gaps for CRM records.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| location | No | Google canonical location for the search. | |
| uule | No | The encoded location parameter. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| continuable | No | Whether to continue an existing AI Mode conversation. | |
| subsequentRequestToken | No | Token used to continue a previous AI Mode request. |
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 details the return components (conversational response, cited sources, subtopics, follow-ups, continuation token) and implies a read-only, AI-powered search, which is adequate behavioral disclosure.
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 long paragraph that lists many use cases and examples, making it somewhat verbose and less concise. Not all sentences are essential; some redundancy exists between the use case list and examples.
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?
While the description covers the main purpose and return components, it lacks detailed parameter explanations (e.g., location, continuable) and does not compensate for the missing output schema. For a complex tool with 7 parameters and no output schema, more completeness is expected.
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 covers 100% of parameters with descriptions, meeting the baseline for schema coverage. The description adds no extra parameter meaning beyond the schema, only mentioning the search term in examples. Thus, it does not improve parameter understanding 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 the tool gets AI Mode SERP results from Google Search, listing the components returned. However, it does not differentiate from sibling tools like 'hasdata_google_serp_ai_overview_getAiOverviewResponse' or 'hasdata_google_serp_serp_getSearchResults', which may cause confusion.
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 extensive use cases and example queries, giving clear context for when to use the tool. However, it does not specify when not to use it or mention alternative tools for similar tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_ai_overview_getAiOverviewResponsegoogle_serp_ai_overview: GET /AInspect
Get AI Overview Results
Fetches the lazy-loaded Google AI Overview block via a pageToken returned by the Google SERP API (token valid for 4 minutes). Returns the AI-generated answer text, referenced source URLs, and expanded subtopic sections. Use as a follow-up call to Google SERP for tracking AI citations in SEO, fact-checking answers against sources, and LLM retrieval pipelines grounded in live Google results.
| Name | Required | Description | Default |
|---|---|---|---|
| pageToken | Yes | Token from `aiOverview` block in Google SERP API. Valid for 4 minutes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description reveals that the tool fetches lazy-loaded content via a token valid for 4 minutes. It also outlines returned data (AI answer text, source URLs, subtopic sections). This is good behavioral context for a read-only follow-up 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 concise with about 4 sentences, no fluff. Front-loaded with core purpose, then details and use cases. 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?
Given the single parameter and no output schema, the description explains the return type and workflow integration. It is complete enough for an agent to use the tool correctly, though the exact response structure is not detailed.
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 context about the parameter (token from `aiOverview` block, 4-minute validity). It clarifies the token's source and purpose beyond the schema 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 clearly states 'Get AI Overview Results' and explains it fetches the lazy-loaded AI Overview block via a pageToken from the Google SERP API. It distinguishes from siblings by specifying it is a follow-up call for AI citations and sourcing.
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 says 'Use as a follow-up call to Google SERP' and gives concrete use cases (SEO, fact-checking, LLM retrieval). It does not state when not to use or provide 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.
hasdata_google_serp_events_getEventInformationgoogle_serp_events: GET /AInspect
Get Google Events Results
Scrapes the Google Events vertical for a query plus location (or uule) with date filters (today, tomorrow, this/next week, weekend, this/next month), virtual-event toggle, domain/country/language targeting, and pagination. Returns event title, start date/time, venue name and address, ticket/source links, description, and thumbnail. Use for event-discovery chatbots, local aggregators, calendar sync, competitive monitoring of event listings, and pulling upcoming shows/conferences for a region.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| location | No | Google canonical location for the search. | |
| uule | No | The encoded location parameter. | |
| domain | No | Google domain to use. Default is google.com. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| start | No | This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page. | |
| htichips | No | Filter parameter for refining event search results. Supports various filters for events. Multiple filters can be passed using a comma. The available filters are: - `date:today`: Today's Events - `date:tomorrow`: Tomorrow's Events - `date:week`: This Week's Events - `date:weekend`: This Weekend's Events - `date:next_week`: Next Week's Events - `date:month`: This Month's Events - `date:next_month`: Next Month's Events - `event_type:Virtual-Event`: Online Events For example, to filter for today's online events, use: `event_type:Virtual-Event,date:today`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavior. It mentions scraping, filters, targeting, pagination, and return fields, but omits details on rate limits, authentication, or potential blocking. 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?
Mostly concise with relevant information, but the first sentence duplicates the title. The description is front-loaded with clear action and then detailed features. Slight redundancy prevents a perfect score.
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 enumerates return fields (title, date, venue, links, etc.) and covers key features. Missing error handling or limits, but sufficient for a scraping tool with 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 covers all parameters well. Description adds value by summarizing date filter options and virtual-event toggle, and clarifying the use of location/uule. Though schema is detailed, the description provides useful contextual grouping.
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 Google Events results with specific filters and returns structured event data. It is unique among siblings as no other tool targets events, so differentiation is implicit.
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 lists use cases such as event-discovery chatbots, local aggregators, calendar sync, competitive monitoring, and pulling upcoming shows/conferences. Provides clear context without needing exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_immersive_product_getImmersive_e29f691177google_serp_immersive_product: GET /AInspect
Get Immersive Product Information
Expands the Google Shopping Immersive Product pop-up given an immersiveProductPageToken from the Google Shopping API, with optional moreStores (up to ~13 merchants instead of 3–5) and nextPageToken for paginating stores. Returns multi-store offers (merchant, price, shipping, condition, URL), product specs, images, ratings, and the nextPageToken. Use for price-comparison bots, merchant discovery, dropshipping research, and aggregating full offer lists per product.
| Name | Required | Description | Default |
|---|---|---|---|
| pageToken | Yes | Token for displaying more product info in the Google immersive pop-up, available in the Google Shopping API response as the `immersiveProductPageToken` property. | |
| moreStores | No | Fetch additional store results in a single search. By default it returns 3–5 stores, and when true it returns up to 13 or the maximum available for the product. | |
| nextPageToken | No | Token used to retrieve the next page of store results. |
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 that moreStores returns up to 13 merchants instead of 3-5, and lists output fields (offers, specs, images, ratings, nextPageToken). It does not cover rate limits or auth, but for a read tool, this is 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 a single well-structured paragraph that front-loads the purpose. It is not overly verbose, though it 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 no output schema, the description explains the return values (multi-store offers, specs, images, ratings, nextPageToken). It covers what the tool does, its parameters, and typical use cases, making it complete for the context.
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 moreStores fetches up to 13 merchants and nextPageToken paginates results, which is 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 immersive product information from Google Shopping, using a specific verb 'Get' and identifying the resource. It distinguishes itself from sibling tools by specifying it expands the immersive pop-up, not general search or product 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?
The description lists use cases like price-comparison bots and merchant discovery, and explains when to use optional parameters. However, it does not explicitly state when to avoid this tool in favor of siblings, so it lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_news_getGoogleNewsgoogle_serp_news: GET /AInspect
Get Google News Results
Retrieves Google News results by free-text query, topicToken (World, Business, Technology, etc.), sectionToken, publicationToken (e.g. CNN, BBC), or storyToken (full-coverage cluster with sort by relevance/date). Returns article title, snippet, source publisher, published date, thumbnail, and URL, plus tokens for navigating topics, sub-sections, and story clusters. Use for news monitoring, brand/PR tracking, topical aggregators, publisher-specific feeds, and drilling into full story coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text query as used on news.google.com. Not allowed with `topicToken`, `storyToken`, or `publicationToken`. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| topicToken | No | Token for a Google News topic such as World, Business, or Technology. Not allowed with `q`, `storyToken`, or `publicationToken`. | |
| sectionToken | No | Token for a sub-section under a topic, for example Business → Economy. Use only when `topicToken` or `publicationToken` is present. | |
| publicationToken | No | Token for a specific publisher such as CNN or BBC. Not allowed with `q`, `storyToken`, or `topicToken`. | |
| storyToken | No | Token for a single news story cluster (the “Full coverage” page). | |
| so | No | Sort order for articles in a story. Use only with storyToken. |
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 return fields (title, snippet, publisher, etc.) and the concept of token-based navigation. It does not mention read-only nature, but that is implied by 'get'. The description adds value beyond the schema by explaining mutual exclusivity of tokens.
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, well-organized paragraph: first sentence states purpose, second explains inputs/returns, third lists use cases. No redundant or irrelevant phrases. Every sentence earns 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?
For a tool with 8 parameters, 100% schema coverage, no output schema, and no annotations, the description covers the key aspects: input types, return fields, token relationships, and use cases. It could mention pagination or error handling, but it is sufficient 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 coverage is 100%, so baseline is 3. The description adds meaning by grouping tokens, explaining their mutual exclusivity (e.g., 'q' not allowed with tokens), and detailing the sort option with storyToken. This goes beyond the 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?
The description clearly states 'Retrieves Google News results' and lists distinct input methods (query, tokens). It differentiates from sibling tools like general web search by focusing on news and specifying token-based navigation for topics and publishers.
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 use cases: 'news monitoring, brand/PR tracking, topical aggregators, publisher-specific feeds, and drilling into full story coverage.' While it does not directly mention when not to use it, the sibling context (e.g., general search tools) implies the distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_product_getProductInformationgoogle_serp_product: GET /AInspect
Get Product Information
Pulls detailed product data from Google Shopping by productId with searchType (offers, specs, reviews) and rich filters (free shipping, used-condition, sort by price/total price/deals/seller rating, reviews count). Returns product title, images, price, ratings, specs, merchant offers (seller, shipping, condition, total price), and review text depending on searchType. Use for price intelligence, catalog enrichment, review mining, competitor spec comparison, and building shopping assistants that surface the cheapest or highest-rated offer.
| Name | Required | Description | Default |
|---|---|---|---|
| productId | Yes | The product ID to get results for. | |
| location | No | Google canonical location for the search. | |
| uule | No | The encoded location parameter. | |
| domain | No | Google domain to use. Default is google.com. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| searchType | No | Parameter for fetching specific product information, such as 'offers', 'specs', or 'reviews'. | |
| start | No | This parameter specifies the number of search results to skip and is used for pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page. This parameter is applicable only when `searchType=offers` is specified. For reviews pagination use `filter` parameter. | |
| filter | No | Filter parameter for refining search results. Supports various filters for offers and reviews. Multiple filters can be passed using a comma. The available filters are: Offers filters: - `freeship:1`: Show only products with free shipping. - `ucond:1`: Show only used products. - `scoring:p`: Sort by base price. - `scoring:tp`: Sort by total price. - `scoring:cpd`: Sort by current promotion deals (special offers). - `scoring:mrd`: Sort by seller's rating. Reviews filters: - `rnum:{number}`: Number of results (100 is max). |
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 that the tool returns various fields based on searchType, but does not discuss side effects, data freshness, rate limits, or authorization requirements. The read-only nature is implied but not explicit.
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 of five sentences, front-loading the main action, and every sentence adds value without redundancy. It is well-structured and easy to parse.
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 (9 parameters, no output schema, no annotations), the description covers the main purpose, key parameters, return fields, and use cases. It misses some details like the effect of location/domain parameters and pagination, but the schema descriptions handle those. Suitable for most agents.
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 explaining how searchType and filter parameters affect the output, and lists return fields, compensating for the lack of output schema. This provides meaningful context beyond the 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?
The description clearly states it pulls detailed product data from Google Shopping by productId, listing specific fields and searchTypes. It distinguishes from sibling tools like shopping search results which are for queries, not specific product 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?
The description implies use when you have a productId and need detailed product info, but it does not explicitly state when to use it versus alternatives like shopping search or immersive product, nor does it provide 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.
hasdata_google_serp_serp_getSearchResultsgoogle_serp_serp: GET /AInspect
Get Google Search Results
Full-featured Google Search scraper with location/uule, country (gl), language (hl, lr), domain, device type, safesearch, time/date filters (qdr, cdr), knowledge-graph IDs, and tbm vertical selection (images, videos, news, shopping, local), plus offset/num pagination. Returns organic results (title, link, snippet, position), ads, knowledge graph, related searches, People Also Ask, local pack, featured snippets, AI Overview pageToken, and rich SERP features. Use for SEO rank tracking, keyword research, SERP-feature monitoring, competitor analysis, grounding LLMs with fresh location-aware search data, and especially for person/company data enrichment — e.g. finding a person's LinkedIn/Instagram/Twitter profile (Roman Milyushkevich LinkedIn, HasData Instagram), a company's CEO/founder/leadership (HasData CEO, HasData founder), contact emails (Roman Milyushkevich HasData email), phone numbers, GitHub profiles, press mentions, or any public attribute of a person or business by running a targeted query and parsing the top organic results.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| location | No | Google canonical location for the search. | |
| uule | No | The encoded location parameter. | |
| domain | No | Google domain to use. Default is google.com. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| lr | No | The 'lr' parameter specifies the language of the websites to return results from. This parameter filters results based on the language of the web content. | |
| ludocid | No | The Google Place ID for a specific location. | |
| lsig | No | Additional Google Place ID. | |
| kgmid | No | Google Knowledge Graph ID. | |
| si | No | Google Cached Search Parameters ID. | |
| tbs | No | This parameter supports various filters that can be combined by separating them with a comma. Here are examples of these filters: - Specific Time Range: `cdr:1,cd_min:10/17/2018,cd_max:3/8/2021` - Filter results to show only those within the defined date range. - Sort by Date: `sbd:1` - Results are sorted by date, from the most recent to the oldest. - Sort by Relevance: `sbd:0` - Results are sorted by relevance to the search query. - Sites with Images: `img:1` - Only show results from webpages that contain images. Quick Date Range (qdr): - `qdr:h` - Show results from the past hour. - `qdr:d` - Limit results to the past day. - `qdr:w` - Filter results from the week. - `qdr:m` - Display results from the past month. - `qdr:y` - Show results from the past year. - `qdr:h10`, `qdr:d10`, `qdr:w10`, `qdr:m10`, `qdr:y10` - Specify a number to show results from the last 10 hours, days, weeks, months, or years respectively. These filters enhance the control over search results, allowing for precise retrieval of information based on specific criteria. | |
| safe | No | Adult Content Filtering option. | |
| filter | No | Defines whether to enable or disable the filters for 'Similar Results' and 'Omitted Results'. Set to 1 (default) to enable these filters, or 0 to disable them. | |
| nfpr | No | Controls if auto-corrected results are shown. 0 includes them (default), 1 shows only the original query. Google may still return auto-corrected results if no others are available. | |
| tbm | No | Specify the type of search. | |
| deviceType | No | Specify the device type for the search. | |
| start | No | This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page. For Google Local Results, the start value must be in multiples of 20, such as 20 for the second page, 40 for the third page, etc. | |
| num | No | Number of results per page, ranging from 10 to 100. |
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 that the tool returns organic results, ads, knowledge graph, etc., and implies a read-only scrape. It does not mention auth, rate limits, or side effects, but given the GET nature, 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 front-loaded with purpose and then lists features and use cases. It is somewhat verbose but each sentence adds value, covering capabilities, parameters, and applications. Could be more concise but is well-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?
Given the tool's complexity (19 parameters, no output schema), the description is complete: it explains what the tool does, what parameters control, what results to expect, and when to use it. An agent can fully assess if this tool suits its needs.
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 grouping parameters (e.g., 'location/uule, country (gl), language (hl, lr)') and providing high-level guidance (e.g., 'Use for person/company data enrichment'). It enhances understanding beyond 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?
The description clearly states 'Get Google Search Results' and elaborates that it is a 'Full-featured Google Search scraper'. It distinguishes from sibling tools (e.g., the light version) by emphasizing rich capabilities and specific use cases like person/company data enrichment.
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 lists use cases: SEO rank tracking, keyword research, SERP-feature monitoring, competitor analysis, LLM grounding, and data enrichment. It implies that for simpler needs the light version may be used. However, it lacks explicit 'when not to use' statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_serp_light_getSearchResultsgoogle_serp_serp_light: GET /AInspect
Get Google Light Search Results
Lightweight Google Search scraper that returns only organic results and basic pagination, omitting AI Overview, knowledge graph, PAA, and other rich SERP blocks for faster, cheaper responses. Supports location/uule, country (gl), language (hl/lr), domain, safesearch, and time/date filters (qdr, cdr) with offset/num pagination. Returns title, link, snippet, and position per result. Use for high-volume keyword monitoring, bulk rank tracking, backlink discovery, and any workflow where only the ten blue links matter.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| location | No | Google canonical location for the search. | |
| uule | No | The encoded location parameter. | |
| domain | No | Google domain to use. Default is google.com. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| lr | No | The 'lr' parameter specifies the language of the websites to return results from. This parameter filters results based on the language of the web content. | |
| tbs | No | This parameter supports various filters that can be combined by separating them with a comma. Here are examples of these filters: - Specific Time Range: `cdr:1,cd_min:10/17/2018,cd_max:3/8/2021` - Filter results to show only those within the defined date range. - Sort by Date: `sbd:1` - Results are sorted by date, from the most recent to the oldest. - Sort by Relevance: `sbd:0` - Results are sorted by relevance to the search query. - Sites with Images: `img:1` - Only show results from webpages that contain images. Quick Date Range (qdr): - `qdr:h` - Show results from the past hour. - `qdr:d` - Limit results to the past day. - `qdr:w` - Filter results from the week. - `qdr:m` - Display results from the past month. - `qdr:y` - Show results from the past year. - `qdr:h10`, `qdr:d10`, `qdr:w10`, `qdr:m10`, `qdr:y10` - Specify a number to show results from the last 10 hours, days, weeks, months, or years respectively. These filters enhance the control over search results, allowing for precise retrieval of information based on specific criteria. | |
| safe | No | Adult Content Filtering option. | |
| filter | No | Defines whether to enable or disable the filters for 'Similar Results' and 'Omitted Results'. Set to 1 (default) to enable these filters, or 0 to disable them. | |
| start | No | This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 10 refers to the second page, and 20 to the third page. For Google Local Results, the start value must be in multiples of 20, such as 20 for the second page, 40 for the third page, etc. | |
| num | No | Number of results per page, ranging from 10 to 100. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description discloses it returns only organic results and basic pagination, omits rich blocks, and lists returned fields (title, link, snippet, position). It also mentions supported filters. This is sufficient behavioral context 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?
Two short paragraphs: first sentence is a clear title, followed by a concise explanation of what it is, what it omits, what it supports, and what it returns. No redundant 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 tool with 12 parameters and no output schema, the description covers purpose, filters, and return fields completely. It is adequate for an agent to select and invoke the tool 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?
Input schema has 100% description coverage. The description adds value by grouping parameters (location/uule, country, language, etc.) and summarizing their purpose, exceeding 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 'Get Google Light Search Results' with a specific verb and resource. It distinguishes itself from other Google SERP tools by explicitly listing omitted rich features (AI Overview, knowledge graph, PAA) and focusing on organic results. Use cases like high-volume keyword monitoring are listed.
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 states when to use: 'high-volume keyword monitoring, bulk rank tracking, backlink discovery, and any workflow where only the ten blue links matter.' It implies alternatives for rich results but does not name specific sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_shopping_getSearchResultsgoogle_serp_shopping: GET /AInspect
Get Shopping Search Results
Scrapes Google Shopping listings for a query with location/uule, country/language/domain, time/date filters, device type, shoprs filter-helper IDs, and offset pagination. Returns product title, price, merchant/source, rating, reviews count, thumbnail, product link, productId, immersiveProductPageToken, and filter chips with hasdata_link for refining by brand/price/condition/promotions. Use for e-commerce price tracking, catalog building, promotion discovery, and feeding productIds into the Product API or tokens into the Immersive Product API for deeper data.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to scrape the SERP. | |
| location | No | Google canonical location for the search. | |
| uule | No | The encoded location parameter. | |
| domain | No | Google domain to use. Default is google.com. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| tbs | No | This parameter supports various filters that can be combined by separating them with a comma. Here are examples of these filters: - Specific Time Range: `cdr:1,cd_min:10/17/2018,cd_max:3/8/2021` - Filter results to show only those within the defined date range. - Sort by Date: `sbd:1` - Results are sorted by date, from the most recent to the oldest. - Sort by Relevance: `sbd:0` - Results are sorted by relevance to the search query. - Sites with Images: `img:1` - Only show results from webpages that contain images. Quick Date Range (qdr): - `qdr:h` - Show results from the past hour. - `qdr:d` - Limit results to the past day. - `qdr:w` - Filter results from the week. - `qdr:m` - Display results from the past month. - `qdr:y` - Show results from the past year. - `qdr:h10`, `qdr:d10`, `qdr:w10`, `qdr:m10`, `qdr:y10` - Specify a number to show results from the last 10 hours, days, weeks, months, or years respectively. These filters enhance the control over search results, allowing for precise retrieval of information based on specific criteria. | |
| shoprs | No | Specifies the helper ID for applying search filters. Must be used with the updated `q` parameter, which includes the selected filter (e.g., Coffee sale). To apply filters, use the `hasdata_link` from `filters[index].options[index]` in the JSON. Apply multiple filters by following each `hasdata_link` one by one. To remove a filter, follow its specific `hasdata_link`. | |
| deviceType | No | Specify the device type for the search. | |
| start | No | This parameter specifies the number of search results to skip and is used for implementing pagination. For example, a value of 0 (default) indicates the first page of results, 40 refers to the second page, and 80 to the third page. |
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 it 'Scrapes' Google Shopping listings, mentions offset pagination, and details return fields including filter chips with hasdata_link. However, it lacks information on rate limits, authentication, or potential side effects.
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 paragraph that is informative but somewhat lengthy. It could be more concise and better structured, especially the list of returned fields.
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 (10 parameters, no output schema), the description covers purpose, parameters, and return values. It mentions pagination and filter chips. However, it lacks details on error handling, rate limits, or guidance for combining with other 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 description coverage is 100%, so the baseline is 3. The description adds some context (e.g., 'shoprs filter-helper IDs') but largely repeats parameter information already in the schema. It does not significantly enhance 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 'Get Shopping Search Results' and lists specific use cases like e-commerce price tracking, catalog building, and promotion discovery. It distinguishes this tool from siblings such as hasdata_google_serp_serp_getSearchResults by focusing on Google Shopping listings.
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 use cases but does not explicitly state when to use or when not to use this tool compared to alternatives. There is no direct comparison to sibling tools or guidance on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_serp_short_videos_getShortVideosSearchResultsgoogle_serp_short_videos: GET /AInspect
Get Short Videos Search Results
Scrapes the Google Short Videos carousel (TikTok, YouTube Shorts, Instagram Reels, etc.) for a query with location/uule, country (gl/cr), language (hl/lr), device type, and page-based pagination. Returns video title, thumbnail, duration, source platform, channel/creator, publish date, and direct video URL. Use for short-form content discovery, viral-trend monitoring, influencer research, cross-platform video aggregation, and sourcing short clips to summarize or embed in LLM responses.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query term for retrieving short videos results. | |
| location | No | Google canonical location for the search. | |
| uule | No | The encoded location parameter. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| lr | No | The 'lr' parameter specifies the language of the websites to return results from. This parameter filters results based on the language of the web content. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| cr | No | The country code for the country you want to limit the search to. | |
| page | No | Page number for paginated results, where 0 is the first page. | |
| deviceType | No | Specify the device type for the search. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the return fields (title, thumbnail, etc.) but does not mention rate limits, authentication, or side effects. It 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?
The description is two paragraphs and front-loaded with functionality, followed by use cases. It is concise but could be slightly tighter without losing meaning.
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 lists the return fields. It covers the main behavioral aspects for a scraping tool, though it could mention pagination limits or error handling.
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 description adds minimal extra meaning. It groups parameters (location/uule, country, language) but does not significantly enhance the schema's own 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 the Google Short Videos carousel with query parameters. It distinguishes from sibling tools by specifying short videos, which is unique among the many Google SERP and platform-specific 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 lists explicit use cases like short-form content discovery and influencer research, providing context for when to use the tool. However, it does not mention when not to use it or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_travel_flights_getGoogleFlightsgoogle_travel_flights: GET /AInspect
Get Google Flights Results
Searches Google Flights for one-way, round-trip, or multi-city itineraries with passenger mix (adults, children, infants in-seat/on-lap), travel class, bags, max price, sort order (price, duration, emissions, departure/arrival time), stops, include/exclude airlines and connections, time windows, layover duration, and deep-search mode. Returns per-itinerary price, currency, total duration, stops, flight legs with airline, flight number, aircraft, departure/arrival airports and times, CO2 emissions, plus booking and departure tokens for round-trip returns or booking options. Use for travel-planning agents, fare monitoring, corporate travel dashboards, emission-aware trip optimization, and comparing routes and airlines across markets.
| Name | Required | Description | Default |
|---|---|---|---|
| departureId | Yes | Specifies the departure airport code (IATA) or location kgmid. - **IATA Code**: A 3-letter uppercase code (e.g., SFO for San Francisco, LHR for London Heathrow). Search on [IATA](https://www.iata.org/en/publications/directories/code-search). - **Location kgmid**: A string starting with `/m/`, found in Wikidata under "Freebase ID" (e.g., `/m/02_286` for New York, NY). Multiple values can be separated by commas (e.g., `JFK,LGA,/m/0hptm`). | |
| arrivalId | Yes | Specifies the arrival airport code (IATA) or location kgmid. - **IATA Code**: A 3-letter uppercase code (e.g., `SFO` for San Francisco, `LHR` for London Heathrow). Search on [IATA](https://www.iata.org/en/publications/directories/code-search). - **Location kgmid**: A string starting with `/m/`, found in Wikidata under "Freebase ID" (e.g., `/m/02_286` for New York, NY). Multiple values can be separated by commas (e.g., `JFK,LGA,/m/0hptm`). | |
| outboundDate | Yes | The outbound travel date in 'yyyy-MM-dd' format. | |
| returnDate | No | The return travel date in 'yyyy-MM-dd' format. Required when **type** is `roundTrip`. | |
| type | No | Specifies the type of flight. Options: - `roundTrip` (default) - `oneWay` - `multiCity` (requires `multiCityJson` for flight details) For round trips, retrieve return flight details with a separate request using `departureToken`. | |
| multiCityJson | No | This parameter specifies flight details for multi-city trips. It is a JSON string containing multiple flight objects. Each object must include the following fields: - **departureId** – The departure airport code or location KGMID. Uses the same format as the main `departureId` parameter. - **arrivalId** – The arrival airport code or location KGMID. Uses the same format as the main `arrivalId` parameter. - **date** – The flight date. Uses the same format as the `outboundDate` parameter. - **times** *(optional)* – The time range for the flight. Uses the same format as the `outboundTimes` parameter. | |
| gl | No | The two-letter country code for the country you want to limit the search to. | |
| hl | No | The two-letter language code for the language you want to use for the search. | |
| currency | No | Parameter defines the currency of the returned prices | |
| travelClass | No | The travel class for the flight (Economy, Premium Economy, Business, or First). | |
| showHidden | No | Indicates whether to include hidden options in the results. | |
| adults | No | Number of adult passengers (>= 1 if specified). | |
| children | No | Number of child passengers. | |
| infantsInSeat | No | Number of infants occupying seats. | |
| infantsOnLap | No | Number of infants sitting on an adult's lap. | |
| sortBy | No | Sort the flight results based on price, departure time, arrival time, etc. | |
| stops | No | Restrict the number of stops (layovers) in the flight itinerary. | |
| excludeAirlines | No | A comma separated list of airline codes to exclude from results. You can search for airline codes on [IATA](https://www.iata.org/en/publications/directories/code-search). For example, `UA` is United Airlines. | |
| includeAirlines | No | A comma separated list of airline codes to exclusively include in results. You can search for airline codes on [IATA](https://www.iata.org/en/publications/directories/code-search). For example, `UA` is United Airlines. `excludeAirlines` and `includeAirlines` parameters can't be used together. | |
| bags | No | Number of carry-on bags per passenger. | |
| maxPrice | No | Maximum price limit for the flight search, in the selected currency. | |
| outboundTimes | No | Set up to 4 time boundaries (2 for departure, 2 for arrival) to filter flights. Each number represents the start of an hour. Examples: - `6,20` → 6:00 AM - 9:00 PM departure - `1,15` → 1:00 AM - 4:00 PM departure - `7,18,2,21` → 7:00 AM - 9:00 PM departure, 2:00 AM - 10:00 PM arrival | |
| returnTimes | No | Set up to 4 time boundaries (2 for departure, 2 for arrival) to filter return flights. Each number represents the start of an hour. Examples: - `6,20` → 6:00 AM - 9:00 PM departure - `1,15` → 1:00 AM - 4:00 PM departure - `7,18,2,21` → 7:00 AM - 9:00 PM departure, 2:00 AM - 10:00 PM arrival | |
| lessEmissions | No | Prefer flight options with lower carbon emissions. | |
| layoverDuration | No | Set the maximum layover duration in minutes to filter flights. For example, `120, 360` filters layovers between 2 hours and 6 hours, while `45, 180` allows layovers from 45 minutes to 3 hours. | |
| includeConnections | No | A comma separated list of specific airports to allow as connections. | |
| excludeConnections | No | A comma separated list of specific airports to exclude as connections. | |
| maxDuration | No | The maximum total flight duration in minutes. | |
| deepSearch | No | Enable deep search. Returns the same results as Google Flights in a browser, but takes longer to respond. Default is `false`. | |
| departureToken | No | Used to select a flight and retrieve return flights for a round trip or the next leg of the itinerary for a multi-city trip. | |
| bookingToken | No | Used to request booking options for selected flights. This token is found in the flight results and cannot be used with `departureToken`. |
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 deep-search mode taking longer, but does not disclose rate limits, authentication requirements, data source freshness, or error handling. The description adds some transparency about behavior but could be more 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 a single, well-structured paragraph that front-loads the tool's purpose. It covers key aspects without being overly verbose. However, it could be slightly more concise or broken into bullet points for easier reading.
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 (31 parameters) and no output schema, the description covers input parameters well and mentions return values. It lacks details on error handling, pagination, or rate limits, which would improve completeness 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%, so baseline is 3. The description groups parameters (passenger mix, travel class, etc.) but does not add significant new information beyond the schema's detailed descriptions. It does not clarify parameter interactions or complex constraints beyond what the schema covers.
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 Google Flights for various trip types (one-way, round-trip, multi-city) and lists many parameters and use cases. It distinguishes itself from sibling tools, which cover different domains (e.g., Airbnb, Amazon, Google SERP).
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 several use cases (travel-planning agents, fare monitoring, etc.), implying when to use the tool. However, it lacks explicit guidance on when not to use it or alternatives for similar flight search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_google_trends_search_getTrendsDatagoogle_trends_search: GET /AInspect
Get Google Trends Data
Pulls Google Trends data for one or more queries with geo targeting, region granularity (country/subregion/metro/city), date range, category, time zone, Google property (web, images, news, shopping, YouTube), and dataType (timeseries, geoMap, relatedTopics, relatedQueries). Returns interest-over-time series, geo-level breakdowns, and rising/top related topics/queries with relative scores. Use for keyword/content strategy, demand forecasting, seasonality analysis, topic discovery, campaign timing, and adding live-trend signals to marketing or research agents.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Specify the search term for which you want to retrieve trends data. | |
| geo | No | Specifies the location for the search. Defaults to Worldwide if not set or empty. | |
| region | No | Used to get more specific results when using "Interest by region" data type. Other data types do not accept this parameter. The default value depends on the geo location that is set. Available options: - `country`: Country - `region`: Subregion - `dma`: Metro - `city`: City Note: Not all region options will return results for every geo location. | |
| dataType | No | Defines the type of search to perform. Available options: - `timeseries`: Interest over time (default). Accepts both single and multiple queries per search. - `geoMap`: Interest by region. Accepts both single and multiple queries per search. - `relatedTopics`: Related topics. Accepts only single query per search. - `relatedQueries`: Related queries. Accepts only single query per search. | |
| tz | No | Defines a time zone offset in minutes. The default value is 420 (Pacific Daylight Time (PDT): UTC-7). The valid range for this parameter is from -1439 to 1439. To calculate the `tz` value for a specific time zone, you can use the time difference between UTC +0 and the desired time zone. Examples: - `420`: Pacific Daylight Time (PDT) - `60`: Central European Time (CET) - `-540`: Japan Standard Time | |
| cat | No | Category of the search term. The default value is 0 ("All categories"). | |
| gprop | No | Sorts results by a specific property. The default property is Web Search (applied when the gprop parameter is not set or empty). Available options: - `images`: Image Search - `news`: News Search - `froogle`: Google Shopping - `youtube`: YouTube Search | |
| date | No | Defines a date range for the search. Available options: - `now 1-H`: Past hour - `now 4-H`: Past 4 hours - `now 1-d`: Past day - `now 7-d`: Past 7 days - `today 1-m`: Past 30 days - `today 3-m`: Past 90 days - `today 12-m`: Past 12 months - `today 5-y`: Past 5 years - `all`: 2004 - present You can also specify a custom date range using one of the following formats: - `yyyy-mm-dd yyyy-mm-dd` - (e.g. 2021-10-15 2022-05-25) for dates from 2004 to present. - `yyyy-mm-ddThh yyyy-mm-ddThh` - (e.g. 2022-05-19T10 2022-05-24T22) for dates with hours within a week range. The hours will be calculated based on the tz (time zone) parameter. |
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 mentions what is returned (interest-over-time, geo breakdowns, related queries) but lacks details on authentication, rate limits, or data freshness. Adequate but not fully 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 a single paragraph, efficiently covering purpose, parameters, and use cases. It is not overly long but could be slightly more structured. Front-loaded with 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 the tool's complexity (8 params, no output schema), the description explains output types and use cases well. It lacks details on restrictions or error handling, but covers the essential 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 minor context (e.g., multiple vs single query per dataType) but does not significantly enhance understanding beyond the schema's own 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 starts with 'Get Google Trends Data' and elaborates with specific parameters and output types. It clearly distinguishes itself from sibling tools like SERP and Images, as no other tool serves Google 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 lists use cases (keyword strategy, demand forecasting, etc.) but does not explicitly state when not to use or alternatives. However, the name and context make it clear this is the sole Google Trends tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_indeed_job_getJobDetailsindeed_job: GET /AInspect
Get Indeed Job Details
Fetches a single Indeed job posting by its viewjob URL. Returns job title, company, location, salary/compensation, employment type, posted date, full description, requirements/benefits, and apply URL. Use for ATS/CRM enrichment, compensation benchmarking, resume-to-JD matching with LLMs, and structured archival of postings discovered via the Indeed Listing endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the job vacancy to retrieve details for. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It accurately describes a read-only operation ('Fetches') and lists the returned data fields, which implies no side effects or destructive actions. While it does not mention rate limits or authentication, the nature of the tool (simple GET of job details) makes the behavior 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 concise, consisting of a header and two sentences that front-load the purpose and use cases. Every sentence adds value without redundancy, making it easy for an AI agent to quickly understand the tool's function and applicability.
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 simplicity (one parameter, no output schema), the description is complete. It explains what the tool does, what parameters it takes, what data it returns (including a detailed list of fields), and provides relevant use cases. No additional information is needed for an agent to select and invoke this tool 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?
The input schema has 100% coverage, with the sole parameter 'url' described as 'The URL of the job vacancy to retrieve details for.' The description adds context by specifying it is a 'viewjob URL' from Indeed. This provides enough meaning beyond the schema, though the schema already covers the basics adequately.
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 'Fetches a single Indeed job posting by its viewjob URL' and enumerates the specific fields returned (title, company, salary, etc.). This distinguishes it from the sibling tool 'hasdata_indeed_listing_getJobListings' which likely returns a list of postings, thereby 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 lists explicit use cases: 'ATS/CRM enrichment, compensation benchmarking, resume-to-JD matching with LLMs, and structured archival of postings discovered via the Indeed Listing endpoint.' It implicitly suggests when to use this tool (for detailed single job data) versus the listing sibling. However, it does not explicitly state when not to use it or mention alternatives beyond the listing endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_indeed_listing_getJobListingsindeed_listing: GET /AInspect
Get Indeed Job Listings
Searches Indeed job listings by keyword and location with sort (relevance/date), country domain targeting, and offset-based pagination (start). Returns an array of jobs with title, company, location, salary, posted date, job URL, and jobKey for the requested page. Use for job-market dashboards, role/geo hiring-trend analysis, sourcing pipelines, and generating URL lists to feed into the Indeed Job endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | The keyword used to search for job listings. | |
| location | Yes | The location to search for job listings. | |
| sort | No | The sorting option for the search results. | |
| domain | No | The domain of the Indeed site (optional). | |
| start | No | The starting index of the results to retrieve (optional). |
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 mentions offset-based pagination and return fields but does not disclose rate limits, authentication requirements, or page size limits. Behavioral insight is moderate.
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 two short paragraphs: the first covers functionality and parameters, the second lists use cases. 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 no output schema and no annotations, the description reasonably covers the tool's operation. It specifies returned fields and use cases. However, it lacks details on pagination limits, default sort behavior, and error handling, leaving minor 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 description coverage is 100%, so the schema already explains parameters well. The description only adds minor context (e.g., 'sort (relevance/date)' and 'offset-based pagination') that is already in the schema. No significant additional meaning is provided.
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 Indeed job listings by keyword and location, and distinguishes itself from sibling tools (e.g., hasdata_indeed_job_getJobDetails) by focusing on listing retrieval. The verb 'get' combined with resource 'Indeed Job Listings' is 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 lists specific use cases (job-market dashboards, hiring-trend analysis, etc.), providing context for when to use the tool. However, it does not explicitly state when not to use it or mention alternatives, though the sibling tools imply such boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_instagram_profile_getInstagramProfileinstagram_profile: GET /AInspect
Get Instagram Profile
Fetches a public Instagram profile by username (handle) and returns full name, biography, external link, profile picture URL, followers count, following count, posts count, verified/private flags, and category. Use to enrich CRM/lead records, verify influencer reach before outreach, monitor competitor accounts, or build datasets of creator metadata for vetting and analytics.
| Name | Required | Description | Default |
|---|---|---|---|
| handle | Yes | The Instagram username of the profile you want to scrape, without the `@` symbol. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral transparency. It states the tool 'Fetches' data, implying a read operation, and lists returned fields. However, it omits important details such as rate limits, authentication requirements, data freshness guarantees, and error handling for invalid handles. The description is adequate but could be more 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?
The description is two sentences, beginning with a clear verb and resource. The first line 'Get Instagram Profile' is somewhat redundant with the title, but the overall structure is efficient and front-loaded with key information. Minor waste could be eliminated, but it remains 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?
For a simple tool with one parameter and no output schema or annotations, the description covers the core functionality and returned fields. However, it lacks details on error responses, data format, and any constraints. The description is minimally sufficient but not fully complete for an agent to anticipate all behaviors.
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 for the single parameter 'handle', explaining it must be a username without '@'. The tool description adds minimal extra meaning beyond restating that the handle is used. Since the schema already fully documents the parameter, a 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 a public Instagram profile by handle, listing specific returned fields (full name, biography, etc.). The sibling tools are all for different platforms (Amazon, Google, etc.), making this tool distinct and uniquely identified for Instagram profile 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 explicitly provides several use cases (enrich CRM, verify influencer reach, monitor competitors, build datasets), giving clear context for when to use it. However, it does not mention when NOT to use it or compare it to other tools, but given the lack of similar tools on the server, this is a minor omission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_redfin_listing_getRealEstateListingsredfin_listing: GET /AInspect
Get Redfin Real Estate Listings
Searches Redfin for-sale, for-rent, or sold listings by zipcode with pagination. Returns each listing with address, Redfin URL, list price, beds/baths, square footage, lot size, year built, days on market, status, coordinates, photos, MLS number, and HOA. Use for real-estate market research, lead generation for agents, price/DOM trend analysis, and feeding URLs into the Redfin Property endpoint for deep-dive details.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | The zipcode used to search for listings. | |
| type | Yes | The type of listing. | |
| page | No | The page number of the results to retrieve. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It mentions pagination and returned fields but lacks details on rate limits, authentication, error handling, or output structure.
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 two paragraphs; first sentence repeats the title. Could be more front-loaded and concise. Adequate but not 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?
No output schema, so description must detail return format. It lists fields but not structure or pagination behavior. Missing details on how to interpret results, pagination limits, or total pages.
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. Description reinforces that keyword is a zipcode but adds no new meaning 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 Redfin real estate listings by zipcode with pagination, lists specific fields returned, and distinguishes from sibling tools like the property details 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 use cases (market research, lead generation, trend analysis) and mentions feeding URLs to the property endpoint. Does not explicitly say when not to use or list 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.
hasdata_redfin_property_getPropertyDetailsredfin_property: GET /AInspect
Get Redfin Property Details
Fetches the full Redfin property page by URL. Returns address, list/sold price, price history, Redfin Estimate, beds/baths, square footage, lot size, year built, property type, HOA, days on market, school ratings, tax history, listing agent, full description, photos, walk/transit/bike scores, and nearby comparables. Use for CMA reports, investor due-diligence, valuation models, listing enrichment, and powering buyer-assistant agents with verified property facts.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the property on Redfin. Must be a valid Redfin property URL. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but description discloses it fetches a full property page. It doesn't mention rate limits or authentication, but for a simple GET with one parameter, behavior is 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?
Front-loaded with title and main action. Lists many data points, which is informative but slightly verbose. No wasted sentences, overall concise for the complexity.
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 one parameter and no output schema, the description explains input, output fields, and use cases thoroughly. No gaps for a simple fetch 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 already has 100% coverage with a clear description. The tool description adds no extra parameter details beyond the 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 it fetches Redfin property details by URL, listing specific data fields. It distinguishes from sibling tools like listing search and Zillow by naming Redfin and detailing use cases.
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?
Lists explicit use cases (CMA reports, valuation models, etc.) and implies differentiation from listing endpoints. 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.
hasdata_shopify_collections_getCollectionsshopify_collections: GET /AInspect
Get Shopify Store Collections
Lists collections from any public Shopify storefront URL with limit (up to 250) and page pagination. Returns each collection's id, title, handle, body_html description, image, and timestamps. Use the returned handles as input to the Shopify Products endpoint to enumerate category-specific catalogs, or to map a competitor's merchandising taxonomy and track collection changes over time.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the Shopify store. For example, 'https://b2bdemoexperience.myshopify.com'. | |
| limit | No | The maximum number of collections to retrieve. Must be between 1 and 250. | |
| page | No | The page number of the results to retrieve. Must be a positive integer. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description does not disclose any side effects, rate limits, or authentication requirements. It adequately indicates a read operation and public URL requirement.
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 no fluff; first sentence is a clear title, second describes functionality, third provides usage direction. Excellent 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?
Despite lack of output schema, description details return fields and pagination. The tool's purpose and integration with sibling are fully covered 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%, so schema already documents params. Description adds context (limit up to 250, pagination, public URL) but does not significantly augment 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 the tool lists Shopify collections with pagination, and distinguishes from sibling hasdata_shopify_products_getProducts by mentioning returned handles as input to that 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?
Explicitly explains how to use the returned handles with the Shopify Products endpoint and provides use cases like mapping taxonomies. Lacks explicit when-not-to-use instructions but overall strong guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_shopify_products_getProductsshopify_products: GET /AInspect
Get Shopify Store Products
Pulls products from any public Shopify storefront URL, optionally filtered by a collection handle, with limit (up to 250) and page pagination. Returns product id, title, handle, vendor, product_type, tags, body_html, images, variants with prices/SKUs/inventory status, and timestamps. Use for competitive price monitoring, catalog mirroring, availability tracking, building product datasets for comparison shopping, or feeding structured SKU data into downstream analytics and dropshipping pipelines.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the Shopify store. For example, 'https://b2bdemoexperience.myshopify.com'. | |
| limit | No | The maximum number of products to retrieve. Must be between 1 and 250. | |
| page | No | The page number of the results to retrieve. Must be a positive integer. | |
| collection | No | The handle of the collection to filter the products. Provide the collection handle as a string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes read-only data pulling and pagination, but lacks details on rate limits, authentication requirements for public stores, or error handling. Annotations are absent so description carries full burden.
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?
Front-loaded with clear action and resource. Use cases are listed but in prose; could be more structured 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?
Covers purpose, parameters, and use cases, but omits details on pagination looping, error scenarios, and potential restrictions. Adequate but not fully comprehensive.
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, description adds context like 'public' URL and limit up to 250, reinforcing 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?
Clearly states it retrieves products from a Shopify store, listing specific return fields and distinguishing it from sibling collection 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?
Lists use cases but does not explicitly compare to alternatives or state when not to use this tool. Implicitly differentiated from collections tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_web_scraping_web_scraping_scrapeWebPageweb_scraping_web_scraping: POST /AInspect
Scrape Web Page
Universal web scraper that fetches any public URL through managed proxies (datacenter or residential, geo-targeted) with optional JS rendering, custom headers, wait conditions, jsScenario actions (click, scroll, fill, waitFor), screenshots, resource/ad/URL blocking, and extractRules/aiExtractRules for LLM-driven structured extraction. Returns HTML, text, markdown, and/or JSON along with status code, extracted emails and links, CSS-selector extractions, and AI-structured fields per schema. Use as a fallback/universal fetcher for sites without a dedicated API, for scraping JS-heavy SPAs, bypassing bot protections, capturing screenshots, or producing clean markdown/structured JSON to feed downstream parsers, RAG pipelines, or data warehouses.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the web page to scrape. | |
| headers | No | Optional custom headers to send with the request. | |
| proxyType | No | Type of proxy to use. | |
| proxyCountry | No | Optional proxy country code. | |
| blockResources | No | Whether to block loading of resources like images and stylesheets. | |
| blockAds | No | Whether to block ads. | |
| blockUrls | No | List of URLs to block. | |
| wait | No | Time in milliseconds to wait after the page load. | |
| waitFor | No | CSS selector to wait for before scraping. | |
| jsScenario | No | Enables custom JavaScript interactions on the target webpage during scraping. It's an array where each object defines a specific action or step. These actions can include clicking elements, waiting for elements, executing custom scripts, and more. Key actions within this field include: - `evaluate`: Run custom JavaScript code on the page. - `click`: Click on an element specified by a CSS selector. - `wait`: Pause for a set duration (in milliseconds). - `waitFor`: Delay until a specific element appears. - `waitForAndClick`: Combine waiting for an element and then clicking it. - `scrollX`, `scrollY`: Scroll to specified positions on the page. - `fill`: Enter values into input fields identified by CSS selectors. Actions are executed sequentially. | |
| extractRules | No | Rules for extracting specific data from the page. For example: `{ "title": "h1", "link_href": "a#link @href", "page_text": "body" }` | |
| screenshot | No | Whether to take a screenshot of the page. | |
| jsRendering | No | Enable JavaScript rendering. | |
| extractEmails | No | Extract emails from the page. | |
| extractLinks | No | Extract links from the page. | |
| includeOnlyTags | No | The `includeOnlyTags` parameter accepts an array of valid CSS selectors. When specified, only the elements matching these selectors will be included in the response content. Each value must be a valid `querySelectorAll` selector. Useful for extracting specific parts of the document. | |
| excludeTags | No | The `excludeTags` parameter accepts an array of valid CSS selectors. Elements matching these selectors will be removed from the final output. Each value must be a valid `querySelectorAll` selector. This can be used to remove ads, scripts, or other unwanted sections. | |
| removeBase64Images | No | If set to `true`, any images embedded as base64-encoded strings will be removed from the output. Useful for reducing response size or when base64 images are not needed. | |
| outputFormat | No | The outputFormat parameter specifies the desired response format: `html`, `text`, `markdown`, or `json`. If only one of `html`, `text`, or `markdown` is provided, the API returns the response in that format. If multiple formats are specified, the API returns a JSON response with keys for each requested format. If `json` is included with any other format, the API returns a JSON response with keys for the other specified formats. | |
| aiExtractRules | No | Defines custom rules for AI-based data extraction using LLMs. This enables the system to extract structured data directly from the HTML of the page. Each key in the object represents a desired output field name, and the value specifies its type and optional description to guide the AI. Supported types: - `string`: plain text value - `number`: numeric value - `boolean`: true/false - `list`: an array of values - `item`: a nested object with its own structure defined under `output` |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses many behavioral traits: proxy types, JS rendering, jsScenario actions, blocking options, output formats. However, lacks explicit mentions of rate limits, cost, or potential IP blocking. Without annotations, description mostly sufficient but could be slightly more 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 front-loaded with main purpose, then lists features, then returns, then use cases. Some redundancy in listing features again in the use case section, but overall well-structured 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?
Given 20 parameters and no output schema, the description covers major features, return types, and use cases. It could be more complete by mentioning pagination or error behavior, but adequate for a complex 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 detailed descriptions. The description adds high-level context but does not significantly improve parameter understanding beyond schema. 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 'Universal web scraper' and lists comprehensive capabilities. It explicitly distinguishes itself from sibling tools (site-specific APIs) by positioning as a fallback/universal fetcher. The verb 'scrape' and resource 'web page' are 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?
Explicitly states when to use: 'fallback/universal fetcher for sites without a dedicated API, for scraping JS-heavy SPAs, bypassing bot protections, ...'. Implies alternatives: sibling tools for specific sites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_yellowpages_place_getPlaceDetailsyellowpages_place: GET /AInspect
Get Yellow Pages Place Details
Scrapes a single YellowPages business listing URL and returns business name, full address, phone, website, categories, years in business, hours of operation, ratings, review counts, photos, and service descriptions. Use to hydrate a lead with verified NAP data, build a B2B contact database from YellowPages URLs collected via the Search endpoint, or validate business legitimacy and hours before outreach.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The YellowPages URL of the place. |
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 describes the tool as scraping a single listing (read operation) and lists returned data, but does not disclose potential rate limits, authentication needs, or behavior on invalid 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?
Three succinct sentences: first states action and output, second provides use cases. No redundant information. Front-loaded with key 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?
For a simple tool with one parameter and no output schema, the description covers purpose, data returned, and use cases. Lacks explanation of return format or error handling, but still adequate 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?
The single parameter 'url' is fully described in the schema (100% coverage). The description adds minimal extra meaning beyond schema, only implying the URL should be from YellowPages. 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 explicitly states it scrapes a single YellowPages business listing URL and returns specific data fields (NAP, hours, ratings, etc.). It clearly differentiates from sibling tools like search endpoints or other place details tools (e.g., Google Maps, Yelp).
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 concrete use cases: hydrating leads, building B2B databases from URLs collected via Search, validating business legitimacy. Implies prerequisite of having a YellowPages URL, but does not explicitly state when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_yellowpages_search_getSearchResultsyellowpages_search: GET /AInspect
Get YellowPages Search Results
Runs a YellowPages business search by keyword plus location with sort (default, distance, averageRating, name), country domain targeting, and page-based pagination. Returns each business with name, listing URL, phone, address, categories, rating, review count, and years in business. Use for B2B lead generation by niche and city, feeding the resulting URLs into the YellowPages Place endpoint for enrichment, or building geo-targeted prospect lists for sales outreach.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | The search term for which to get the search results. | |
| location | Yes | The location where to search for businesses with the given keyword. | |
| sort | No | The sorting option for the search results. | |
| domain | No | YellowPages domain to use. Default is `www.yellowpages.com`. | |
| page | No | The page number of the results to retrieve. |
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 that the tool returns businesses with specific fields and uses page-based pagination. However, it does not mention rate limits, authentication, or side effects.
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, each packed with useful information. No fluff, clearly structured from summary to use case to output 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?
For a tool with 5 parameters, 2 required, and no output schema, the description lists all return fields, explains pagination, and gives concrete usage scenarios. It is complete for the complexity level.
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 covers all parameters with descriptions (100% coverage). The description adds value by explaining the sort options, domain targeting, and pagination pattern, reinforcing the schema's meaning.
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 'Get YellowPages Search Results' and details the action: runs a business search by keyword and location with sort, domain, and page options. It distinguishes from sibling tools by mentioning the YellowPages Place endpoint for enrichment.
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 use cases: B2B lead generation by niche and city, feeding URLs into Place endpoint, or building prospect lists. It implies when to use but does not explicitly state when not to use or compare to other search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_yelp_place_getPlaceDetailsyelp_place: GET /AInspect
Get Yelp Place Details
Fetches a single Yelp business by Yelp ID or alias with domain targeting. Returns name, address, phone, website, price range, categories, overall rating, review count, hours, amenities, photos, and highlighted reviews. Use to enrich leads or listings with verified Yelp metadata, monitor a competitor's rating and review count over time, or validate hours/amenities before displaying venue details to end users.
| Name | Required | Description | Default |
|---|---|---|---|
| placeId | Yes | The Yelp ID or Yelp Alias of the place. For example, 'jPIZ3FR5LNcwPuUHi2Fe4g' or 'mcdonalds-new-york-386'. | |
| domain | No | Yelp domain to use. Default is `www.yelp.com`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden. It lists returned fields, which adds beyond the schema, but it does not disclose whether the operation is read-only, any required permissions, or potential side effects. The agent must infer safety from 'fetches'.
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 and concise, front-loading the purpose and then listing return fields and use cases. It is clear and efficient, though a slight structuring issue (e.g., bullet points) could improve readability.
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 should hint at the return structure. It lists fields but does not explain format (e.g., single JSON object, pagination). Edge cases like missing place ID are not addressed. Sibling differentiation from Google Maps place tool is absent.
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 in the schema. The description mentions 'domain targeting' but adds no additional semantic detail beyond what the schema already provides. The baseline 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 it 'Fetches a single Yelp business by Yelp ID or alias', which is a specific verb+resource. It lists the returned fields and provides three distinct use cases, distinguishing it from the sibling 'hasdata_yelp_search_getSearchResults' which returns multiple 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 lists use cases (enrich leads, monitor competitor, validate hours/amenities), giving clear context for when to use this tool. However, it does not mention when not to use it or explicitly compare it to alternatives like the Yelp search tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_yelp_search_getSearchResultsyelp_search: GET /AInspect
Get Yelp Search Results
Runs a Yelp business search by keyword and location with optional map-bounded radius via the l parameter (g:lon1,lat1,lon2,lat2), domain targeting, and offset-based pagination. Returns a ranked list of businesses with Yelp alias/ID, name, categories, rating, review count, price tier, neighborhood, and thumbnail. Use the returned aliases as input to the Yelp Place endpoint for full details, to power local-discovery UIs, or to build market-share/competitor datasets for a niche in a given geography.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | The search term for which to get the search results. | |
| location | Yes | The location where to search for businesses with the given keyword. | |
| l | No | Parameter defines the distance or map radius for the search results. For example: `g:-95.2486,29.8496,-95.4277,29.6324`. | |
| domain | No | Yelp domain to use. Default is `www.yelp.com`. | |
| start | No | Result offset for pagination (e.g., 0 for the first page, 10 for the 2nd page, etc.). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as rate limits, authentication requirements, or whether the operation is read-only. The description focuses on functionality but lacks transparency about side effects or constraints.
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 paragraph of five sentences, efficiently covering purpose, parameters, and output usage. It front-loads the main action and is free of redundant language, though it could be slightly more structured with bullet points.
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 the return fields (alias/ID, name, categories, rating, etc.) and explains how the output can be used. All five parameters are covered in context, making the tool understandable 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 clarifying the format of the `l` parameter (map-bounded radius example) and explaining offset-based pagination for `start`. This supplements the schema definitions meaningfully.
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 'Get Yelp Search Results' and explains it performs a business search by keyword and location with optional parameters. It distinguishes itself from the sibling `hasdata_yelp_place_getPlaceDetails` by explicitly mentioning that returned aliases can be used as input to that 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 use cases: 'to power local-discovery UIs, or to build market-share/competitor datasets', and directs users to the Yelp Place endpoint for full details. However, it does not explicitly state when not to use this tool or describe alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_zillow_listing_getRealEstateListingszillow_listing: GET /AInspect
Get Zillow Real Estate Listings
Searches Zillow for-sale, for-rent, and sold listings by keyword with rich filters (price, beds, baths, home type, year built, lot/square footage, HOA, listing status, amenities, views, pet policy, days on Zillow) and pagination. Returns each listing with address, Zillow URL/zpid, price, Zestimate, beds/baths, sqft, home type, status, days on Zillow, coordinates, thumbnail, and listing agent. Use for real-estate market dashboards, rental pricing analysis, agent lead lists, inventory tracking, and collecting URLs for the Zillow Property endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | The keyword used to search for listings. | |
| type | Yes | The type of listing. | |
| sort | No | The sorting option for the search results. | |
| price[min] | No | The minimum price of the listing. | |
| price[max] | No | The maximum price of the listing. | |
| beds[min] | No | The minimum number of bedrooms. | |
| beds[max] | No | The maximum number of bedrooms. | |
| baths[min] | No | The minimum number of bathrooms. | |
| baths[max] | No | The maximum number of bathrooms. | |
| yearBuilt[min] | No | The minimum year the property was built. | |
| yearBuilt[max] | No | The maximum year the property was built. | |
| lotSize[min] | No | The minimum lot size. | |
| lotSize[max] | No | The maximum lot size. | |
| squareFeet[min] | No | The minimum square footage. | |
| squareFeet[max] | No | The maximum square footage. | |
| homeTypes[] | No | An array of home types to filter the listings. | |
| listingType | No | The category of the listing. | |
| listingPublishOptions[] | No | An array of listing publish options. | |
| hoa | No | The Homeowners Association (HOA) fee. | |
| propertyStatus[] | No | An array of property statuses. | |
| tours[] | No | An array of tour options. | |
| otherAmenities[] | No | An array of other amenities. | |
| views[] | No | An array of views. | |
| pets[] | No | An array of pet options. | |
| basement[] | No | An array of basement options. | |
| singleStoryOnly | No | If set to true, only single-story properties will be included. | |
| hide55plusCommunities | No | If set to true, 55+ communities will be excluded. | |
| daysOnZillow | No | The number of days a listing has been on Zillow. | |
| moveInDate | No | The desired move-in date. | |
| mustHaveGarage | No | If set to true, only listings with a garage will be included. | |
| parkingSpotsMin | No | The minimum number of parking spots. | |
| keywords | No | Additional keywords to refine the search. | |
| page | No | The page number of the results to retrieve. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It mentions pagination but does not explain how page parameter works or clarify limits. For a read tool, it is adequate but missing details on result 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?
The description is concise, front-loads purpose, and uses bullet-point-like use cases. However, the return fields list could be structured more clearly.
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 (33 params), the description covers purpose and return fields but lacks details on pagination behavior, default sorting, and any limitations. It is adequate but not fully 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 baseline is 3. The description adds value by listing the return fields (address, Zestimate, etc.), which are not in the schema. However, the filter listing is redundant with 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 Zillow real estate listings by keyword with rich filters and pagination. It distinguishes from the sibling tool hasdata_zillow_property_getPropertyDetails by mentioning it collects URLs for that 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 lists specific use cases such as market dashboards and rental analysis, and implies workflow with property endpoint. However, it does not explicitly compare with other real estate siblings like Redfin listing tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hasdata_zillow_property_getPropertyDetailszillow_property: GET /AInspect
Get Zillow Property Details
Fetches the full Zillow property page by URL/zpid, with optional agent email extraction. Returns address, list price, Zestimate and Rent Zestimate, price and tax history, beds/baths, living area, lot size, year built, home type, HOA, days on Zillow, listing description, features/amenities, photos, school assignments, walk/transit scores, and listing agent/broker (plus email when enabled). Use for valuation models, CMA generation, investor underwriting, rental yield analysis, and enriching buyer/seller agent assistants with authoritative property data.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL of the property on Zillow. Must be a valid Zillow property URL. | |
| extractAgentEmails | No | If enabled, attempts to extract agent email addresses from the property details. Increases the cost of the request. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses optional email extraction and cost increase. Without annotations, describes returned data but not side effects, errors, or rate limits. 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?
Title and three sentences: action, data list, use cases. No wasted words, front-loaded with key 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?
Lists extensive data fields (price history, Zestimate, etc.) despite no output schema. Sufficient for agent to decide to call. Lacks error or pagination details but acceptable.
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 both parameters with descriptions. Description adds context for email extraction ('plus email when enabled') but does not significantly enhance beyond schema. Schema coverage is 100%.
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 action (Get Zillow Property Details) and resource (property by URL/zpid). Lists returned data and use cases, distinguishing it from sibling listing 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?
Explicitly lists use cases (valuation models, CMA generation, etc.), implying when to use. Does not explicitly mention alternatives or when not to use, but siblings like getRealEstateListings provide implicit contrast.
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.
7 tool updates
v1.0.1- Added
hasdata_amazon_search_getSearchResults - Added
hasdata_google_serp_product_getProductInformation - Added
hasdata_google_serp_serp_getSearchResults - Added
hasdata_google_travel_flights_getGoogleFlights - Added
hasdata_shopify_collections_getCollections - Added
hasdata_yelp_search_getSearchResults - Added
hasdata_zillow_listing_getRealEstateListings
35 tool updates
v1.0.0- Added
hasdata_airbnb_listing_getAirbnbListings - Added
hasdata_airbnb_property_getAirbnbPropertyDetails - Added
hasdata_amazon_product_getProductDetails - Added
hasdata_amazon_reviews_getProductReviews - Added
hasdata_amazon_seller_getSellerDetails - Added
hasdata_amazon_seller_products_getSellerProducts - Added
hasdata_bing_serp_getSearchResults - Added
hasdata_glassdoor_job_getJobDetails - Added
hasdata_glassdoor_listing_getJobListings - Added
hasdata_google_images_images_getImageSearchResults - Added
hasdata_google_maps_contributor_reviews_getMapReviews - Added
hasdata_google_maps_photos_getMapPhotos - Added
hasdata_google_maps_place_getPlaceDetails - Added
hasdata_google_maps_reviews_getMapReviews - Added
hasdata_google_maps_search_performMapSearch - Added
hasdata_google_serp_ai_mode_getAiModeResponse - Added
hasdata_google_serp_ai_overview_getAiOverviewResponse - Added
hasdata_google_serp_events_getEventInformation - Added
hasdata_google_serp_immersive_product_getImmersive_e29f691177 - Added
hasdata_google_serp_news_getGoogleNews - Added
hasdata_google_serp_serp_light_getSearchResults - Added
hasdata_google_serp_shopping_getSearchResults - Added
hasdata_google_serp_short_videos_getShortVideosSearchResults - Added
hasdata_google_trends_search_getTrendsData - Added
hasdata_indeed_job_getJobDetails - Added
hasdata_indeed_listing_getJobListings - Added
hasdata_instagram_profile_getInstagramProfile - Added
hasdata_redfin_listing_getRealEstateListings - Added
hasdata_redfin_property_getPropertyDetails - Added
hasdata_shopify_products_getProducts - Added
hasdata_web_scraping_web_scraping_scrapeWebPage - Added
hasdata_yellowpages_place_getPlaceDetails - Added
hasdata_yellowpages_search_getSearchResults - Added
hasdata_yelp_place_getPlaceDetails - Added
hasdata_zillow_property_getPropertyDetails
TDQS
Most tools have distinct purposes across different domains (Amazon, Google Maps, etc.), but the large number of Google-related tools (e.g., multiple 'getMapReviews' variants and various SERP tools) can cause some confusion due to similar naming and overlapping functionality.
Tools generally follow a `source_category_action` snake_case pattern, but there are inconsistencies such as the odd `getImmersive_e29f691177` suffix, double underscores, and occasional mixing of depth levels (e.g., `hasdata_google_serp_ai_mode_getAiModeResponse`).
35 tools is quite high for a single server, covering many different data sources. This broad scope may be overwhelming and suggests the server might benefit from splitting into domain-specific servers, but each tool individually seems purposeful.
Coverage is broad across multiple domains, but depth varies. Some domains like Amazon and Google Maps have decent coverage, while others have gaps (e.g., no LinkedIn, Twitter, or full Google SERP organic results). The generic web scraper helps fill some gaps but not all.
Maintenance
Related MCP Connectors
Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.
Live web access for agents: scrape, SERP search, crawl/map, 74 collectors, datasets, proxies.
62 real-world tools for agents: search, scraping, social, enrichment, image, video, voice.
Web data tools for AI agents: pages as markdown, search, maps, commerce, jobs, AI answers.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI assistants to access real-time web data through search, markdown scraping, and browser automation while bypassing anti-bot protections. It provides tools for web research, e-commerce monitoring, and data extraction from across the globe.48,7545MIT
- AlicenseNot gradedqualityBmaintenanceThe web data platform for AI agents. Fetch, search, crawl, extract, monitor, and screenshot any URL. 55+ domain extractors, 65-98% token savings. 7 MCP tools included.33212AGPL 3.0
- AlicenseAqualityFmaintenanceEnables AI agents to crawl, scrape, search, and automate browsers with anti-bot bypass, providing fast web access via 22 tools.22503MIT
- AlicenseAqualityAmaintenanceProvides AI agents live web access through scraping, multi-engine search, site mapping, crawling, SEO audits, and 31 data collectors via natural language tool calls.9699MIT
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/HasData/hasdata-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server