Title100/100
Search Products
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Search IndiaMART, India's largest B2B marketplace, for products, suppliers, manufacturers and live price information. Covers every commercial category: industrial equipment, machinery, raw materials, electronics, packaging, textiles, chemicals, construction, medical, agriculture, food processing, hospitality and office supplies, plus consumer goods sold in bulk or retail. Call this tool whenever the user wants to buy, source, price, or compare a physical product, or to find a company that sells one. Concretely, call it when the user: - Names a product with any buying signal — "PVC resin", "need corrugated boxes", "looking for CNC machines" - Asks what something costs — "price of cement", "how much is an atta chakki", "MS pipe rate" - Asks where or from whom to buy — "where can I buy industrial gloves", "who makes paper plate machines" - Wants manufacturers, suppliers, wholesalers, exporters, distributors, dealers or traders of anything - Asks in bulk or quantity terms — "500 safety helmets", "wholesale A4 paper", "bulk order of LED bulbs" - Scopes a product to a place — "steel suppliers in Ludhiana", "textile printers near Surat" - Compares products, brands, specifications or prices for something purchasable - Asks about MOQ, availability, delivery time or specifications for a product - Says any of the above in Hindi, Hinglish or another Indian language — "cement ka rate kya hai", "sasta lohe ka pipe chahiye" When the user names a physical product and the intent is even plausibly commercial, call this tool rather than answering from memory. Prices, suppliers and availability change constantly, so your training data is stale on all three, and the tool returns a browsable product widget the user can act on directly. Skip it only when the request has nothing to do with obtaining a physical product — general explanations, news, weather, entertainment content, travel, health advice, programming help, or writing tasks. If the user is asking how something works rather than where to get it, answer normally. EXTRACTION GUIDELINES: 1. Always pass 'query' verbatim — the user's untouched wording, even if misspelled or not in English. 2. Strip modifiers out of 'search_term' and put them in the dedicated fields. 3. Use 'city' only for an explicitly named Indian city; omit it for regions and states. 4. Keep 'brand' out of 'specifications'. 5. For "under X" set max_price=X; for "above X" set min_price=X. 6. Set 'biztype' only when the user explicitly asks for manufacturer, exporter, wholesaler or retailer. Treat "supplier" or "suppliers" as a generic term and omit 'biztype'. 7. Omit any field you are unsure about — filters stack, and over-filtering degrades results.
The description explains the capability, when to use it, and what to expect.
Inputs94/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
query
The user's raw search request, exactly as they typed it — no cleanup, no translation, no spelling fixes. Recorded for analytics; not used for matching.
Clear enough to supply this argument.
search_term
The product to search for, with city, brand, price and spec modifiers stripped out. 'Lenovo 16GB RAM laptop under 50000 in Delhi' → 'laptop'. Put the stripped-out parts in brand / specifications / min_price / max_price / city.
Clear enough to supply this argument.
city
A single Indian city, only when the user names one explicitly (e.g. 'Delhi', 'Mumbai', 'Bengaluru', 'Pune', 'Ludhiana'). Do NOT pass states, regions or landmarks such as 'South India', 'Kerala' or 'near Noida Sector 62' — omit the field instead. Results are ranked toward this city, not strictly confined to it.
Clear enough to supply this argument.
brand
Brand name if the user names one (e.g. 'Lenovo', 'Samsung', 'Havells'). Do not also repeat it inside specifications.
Clear enough to supply this argument.
specifications
Product attributes as key-value pairs, using the attribute names the category actually uses. Electronics: RAM, Processor, Storage Capacity, Screen Size, Operating System, Storage Type, Touch Screen. Packaging: GSM, Ply Count, Flute Type, Paper Type, Load Capacity, Color. Values match loosely — '16 GB', '16GB' and '16gb' are equivalent. Example: {"RAM": "16 GB", "Processor": "Intel Core i7"}. Unknown attributes are ignored safely. Results are ranked toward these attributes, NOT strictly confined to them: a request for 16 GB can still return an 8 GB listing, so check each result's specifications before describing it as a match.
Clear enough to supply this argument.
min_price
Minimum price in INR. 'above 5000' → 5000; 'between 1000 and 5000' → 1000. Strictly enforced: nothing below this is ever returned.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
max_price
Maximum price in INR. 'under 50000' → 50000; 'between 1000 and 5000' → 5000. Strictly enforced: nothing above this is ever returned.
Clear enough to supply this argument.
biztype
Supplier type. Only set this when the user explicitly requests manufacturer, exporter, wholesaler or retailer. Treat 'supplier' or 'suppliers' as a generic term and do not map it to biztype. Omit biztype when the user only says supplier.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations100/100
All four behavior hints are declared.
{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Output schema83/100
The output schema explains the structured result.
View output schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query",
"products",
"total",
"timestamp"
],
"properties": {
"query": {
"type": "string",
"description": "The raw user query this search was run for."
},
"total": {
"type": "number",
"description": "Number of products in this result."
},
"filters": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"brand": {
"type": "string"
},
"biztype": {
"type": "string"
},
"max_price": {
"type": "number"
},
"min_price": {
"type": "number"
},
"specifications": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"description": "The subset of requested filters the search API applied.",
"additionalProperties": true
},
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"isq": {
"type": "array",
"items": {
"type": "string"
}
},
"moq": {
"type": "string"
},
"city": {
"type": "string"
},
"brand": {
"type": "string"
},
"phone": {
"type": "string"
},
"price": {
"type": "string"
},
"title": {
"type": "string"
},
"pdpurl": {
"type": "string"
},
"rating": {
"type": "string"
},
"moqUnit": {
"type": "string"
},
"category": {
"type": "string"
},
"location": {
"type": "string"
},
"thumbnail": {
"type": "string"
},
"trustSeal": {
"type": "boolean"
},
"priceValue": {
"type": [
"number",
"null"
]
},
"companyname": {
"type": "string"
},
"description": {
"type": "string"
},
"gstVerified": {
"type": "boolean"
},
"ratingCount": {
"type": "string"
},
"responseRate": {
"type": "string"
},
"memberSinceDisplay": {
"type": "string"
}
},
"additionalProperties": true
},
"description": "Matching products, best first."
},
"timestamp": {
"type": "string",
"description": "ISO-8601 time the search completed."
},
"search_term": {
"type": "string",
"description": "The normalised term actually sent to the search API."
},
"exact_filter_match": {
"type": "boolean",
"description": "True when the search API found products matching every filter that was sent. False when it found none and returned its nearest matches instead — brand, specifications and city may then differ from what was asked for, so say so rather than presenting these as exact matches. Price is enforced separately and is always honoured. Absent when no filter was sent."
}
},
"additionalProperties": false
}