Capability: parallel runs +
output_schema
TinyAgent opens Best Buy’s search results for the Logitech MX Master 3S and returns the lowest-priced listing as JSON.
Steps
- Start each run on the site’s search results. Put the search in the URL — e.g.
bestbuy.com/site/searchpage.jsp?st=logitech+mx+master+3s— so the agent lands on the listings, not the homepage. Fewer steps means a faster run that’s less likely to time out. - Use one schema for every site. Same field names everywhere, with
nullable: trueon anything a site might not show. - Run them all at once. One run per site, started together, each with a time limit.
- Sort what came back. Skip sites that failed or found nothing, then sort by price.
- Python
- TypeScript
Get a Quote From a Form
Some prices only appear after you fill in a form — shipping, insurance, a moving quote. Start the run on the quote page, put every input in the goal, and say where to stop:output_schema with a services array if you need the same fields every time.
Tip — from ChatGPT or Claude: name the product and every site in one message, e.g. “Compare the price of the Logitech MX Master 3S on Best Buy and Newegg.” Connect once with Run TinyAgent From ChatGPT or Claude.
Common Mistakes
One run asked to visit every site
One run asked to visit every site
A single goal like “check Best Buy, then Newegg, then Amazon” makes one long run that can time out before it finishes. Give each site its own run, as above, and cap each with
max_duration_seconds so one slow site can’t hold up the rest.A marketplace seller's price instead of the store's
A marketplace seller's price instead of the store's
“The first listing” is often a sponsored result or a third-party seller with a marked-up price. Ask for the lowest price among the first few listings, and say what doesn’t count — accessories, bundles, refurbished units.
output_schema rejected with "type arrays are not supported"
output_schema rejected with "type arrays are not supported"
Writing
"type": ["number", "null"] returns 400. Use "type": "number", "nullable": true instead — full rules in the Structured Output Reference.Prices that aren't really comparable
Prices that aren't really comparable
The same product can show a different price, currency, or tax by country. Pin the location with
proxy_config.country_code, keep a currency field in the schema, and say which price you want — e.g. “price before tax and shipping”.A retailer blocks the run
A retailer blocks the run
Large retailers often block standard browsers. Use
browser_profile: "stealth" with a proxy, as in the sample — see the Anti-Bot Guide.Related
Run TinyAgent Across Multiple URLs
Run the same goal on many pages at once
Get a TinyAgent Run as Structured JSON
Pin down an exact result shape
Structured Output Reference
Supported types,
nullable, and limitsAnti-Bot Guide
Stealth browser and proxy settings