Short answer: Structured extraction with an LLM is the technique of giving the model a JSON Schema and forcing its output to validate against that schema, so the result is machine-readable on the first try. Combined with a web scraper, it turns any page — contact page, product card, job listing — into a typed JSON object via one HTTP call.
The server fetches and renders the page, converts the rendered DOM to markdown or plain text, and hands that text plus your JSON Schema to an LLM. The model is constrained by one of three mechanisms: OpenAI-style tool calling with the schema as the tool definition, JSON-mode with grammar-guided sampling, or post-validation with retry. The schema acts as both prompt scaffolding and output contract; the caller never has to write a regex, an XPath, or a BeautifulSoup selector.
Structured extraction is the right tool whenever the target page is unstable, varies in layout across the site, or carries information you want typed rather than free-form. Concrete use cases:
{email, phone, address} regardless of markup.{title, price, currency, in_stock, sku} across thousands of listings.{title, company, location, salary_range, remote} from ATS pages with no shared template.When the page is rigid and well-templated, a selector-based scrape is faster and cheaper. When you don't know the layout in advance, LLM extraction wins.
POST a JSON body with url, a schema (any valid JSON Schema), and an optional prompt for natural-language hints to /v1/extract. Both fields can coexist — the prompt steers and the schema constrains. BYOK is supported via llmApiKey, llmProvider, and llmModel, so your billing relationship is with the LLM vendor directly. See the extract guide for end-to-end examples.