Universal web scraper API — extract structured data from any website. Headlines, prices, links, tables, and custom selectors.
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. Tool names follow verb_noun convention (scrape_website, extract_text, batch_scrape), which is good. However, descriptions lack depth on WHEN to use each tool vs. alternatives, and parameter descriptions are minimal. No output schemas documented. Error handling is present but generic ('Error: {message}'). The batch_scrape tool lacks a description for the 'mode' parameter entirely.
Scrape multiple URLs at once and return metadata for each (max 10)
Extract clean text content from a webpage (removes scripts, styles, navigation)
Scrape a website and extract structured data (metadata, links, headlines, images, tables, or full page)
Output schemas not documented. LLMs cannot plan downstream operations or extract structured data without knowing what fields to expect from each tool.
Parameter descriptions incomplete or missing. 'mode' in batch_scrape has no description; 'selector' in scrape_website lacks guidance on when/how to use it; 'urls' in batch_scrape lacks format/constraint details.
Tool descriptions lack WHEN/WHY guidance. 'Scrape a website and extract structured data' does not explain when to use scrape_website vs. extract_text vs. batch_scrape, forcing LLM to guess.
Error responses are generic text ('Error: {message}') rather than structured with recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
No input validation or constraint documentation. 'url' parameter lacks format validation (must be valid HTTP/HTTPS URL); 'urls' array lacks min/max length constraints (max 10 mentioned in description but not enforced in schema).