Scrape
One URL in; clean Markdown, extracted JSON or a screenshot out. This is every control on the Scrape screen and what each one does.
On this page
Command bar
Paste a URL — a bare host like example.com is accepted and upgraded to https:// — and press Enter or Scrape. While the run is live the button becomes Cancel.
The Scrape · Crawl · Watch switch left of the field carries the URL to the other two screens. Copy as… prints the run as CLI, MCP or Go. The cost hint beside the buttons prices any LLM calls before you spend anything, and says when the selector cache makes them free.
Render
| Mode | What it does |
|---|---|
| Auto (default) | Static fetch first; escalates to a real browser only when the page needs JavaScript |
| Browser | Always render in a browser |
| Static | Never launch a browser — you want the raw server response |
The browser is an installed Chrome, Chromium or Edge; with none, Magpie offers a one-time pinned Chromium download (~150 MB).
Extractor chips
One extractor per run: off, auto (dispatch by URL pattern), schema, or a vertical. The verticals are zero-LLM — GitHub repos, Hacker News, YouTube, arXiv, PyPI, npm, crates.io, Docker Hub, Hugging Face, Stack Overflow, Substack, Dev.to, Reddit, RSS, Trustpilot, Upwork jobs, Amazon, eBay, Etsy, Shopify, WooCommerce and generic e-commerce products, plus article, event, job-posting and local-business pages. Twenty-seven in all; hover a chip for its patterns.
schema opens the panel: describe what you want (“book title, price, stock availability and UPC”), press Draft schema, and an LLM drafts it fitted to the page you scraped — the badge names the provider, tokens and cost. Edit the JSON or YAML, then Save as a name; saved schemas are plain files in the schemas folder, and appear in the Crawl screen’s picker. The full authoring guide is on Schemas.
Advanced
The drawer carries the full option surface. Everything empties to a sensible default; Settings → Network can prefill proxy, fingerprint and language.
| Option | Default | What it does |
|---|---|---|
| Include (CSS) | empty | One selector per line kept in the cleaned output |
| Exclude (CSS) | empty | One selector per line dropped — wins over include |
| Bypass selector cache | off | Skips the learned selectors for this run |
| Capture XHR | empty | Comma-separated regexps; records matching background responses (Browser render only) |
| Actions | empty | One browser action per line: click, type, scroll, wait, wait-for, eval-js |
| Language | Settings default | Accept-Language override |
| TLS fingerprint | Settings default | Browser TLS handshake: chrome, firefox, safari, edge, ios, chrome_android |
| Header profile | default | Header bundle: default, chrome, firefox, safari, edge, ios, chrome_android |
| Cookies | empty | Sent with the request, a=b; c=d |
| Viewport | empty | Screenshot size, WxH |
| CDP endpoint | empty | Drive your already-running browser, ws://127.0.0.1:9222 |
| Proxy | Settings default | Per-run egress, http://user:pass@host:port or a pool line; invalid values fail before any request |
| Provider override | Settings default | LLM provider for this run |
| Model override | empty | LLM model for this run |
| API key (this run) | empty | Applies to this run only, never stored |
| Max cost USD | 0 = off | Hard ceiling on this run’s LLM spend |
The result workstation
Tabs: Markdown Render, one per picked format, Extracted JSON when a record exists, XHR (URL, status, MIME, body per captured call), Brand, and Viewport. On a format tab, Re-extract reruns the schema over the tab’s content without refetching; with a vertical picked it is disabled — verticals fetch the URL themselves.
Tools: Summarize (1–20 sentences, no refetch), Brand (palette, fonts, logo, favicon — zero LLM), Wrap, Copy and Save as file (the visible tab, under its own name), Discard result.
Error paths and their exact wording are covered in First scrape. For pages behind a login, capture a session first — see Sessions.