IntelliScrape Docs
Three ways to use IntelliScrape: the web interface for quick scrapes, the Python library for full power, and the CLI for terminal workflows.
Using the Web Interface
The fastest way to try IntelliScrape. Go to intelliscrape.dev, paste a URL into the scrape input on the homepage, and hit Enter. The cleaned content appears in the result panel on the right.
Step-by-step
Getting JSON & Downloadable Files
The web interface returns cleaned text by default. For JSON, raw HTML, or downloadable files, use the REST API directly.
The response is always JSON with url, content, and success fields.
curl -X POST https://intelliscrape.fastapicloud.dev/scrape \
-H "Content-Type: application/json" \
-d '{"{"}"url": "https://example.com"{"}"}'Pass "raw": true to get the full HTML instead of cleaned text.
curl -X POST https://intelliscrape.fastapicloud.dev/scrape \
-H "Content-Type: application/json" \
-d '{"{"}"url": "https://example.com", "raw": true{"}"}'Pipe the JSON response to a file and extract content with jq.
curl -s -X POST https://intelliscrape.fastapicloud.dev/scrape \
-H "Content-Type: application/json" \
-d '{"{"}"url": "https://example.com"{"}"}' \
| jq -r '.content' > output.txtPass "render": true for JavaScript-heavy sites (React, Angular, Vue SPAs). Uses Playwright headless browser.
curl -X POST https://intelliscrape.fastapicloud.dev/scrape \
-H "Content-Type: application/json" \
-d '{"{"}"url": "https://spa-site.com", "render": true{"}"}'The hosted API returns text only. For structured export to CSV, JSON (line-delimited), Excel, or SQLite, install the Python library. It includes a DataExporter that handles format conversion.
REST API
Base URL:
Scrape a URL and return cleaned text. Uses curl_cffi with TLS impersonation by default. Set render=true for JavaScript-heavy sites (SPAs, React, Angular, Vue).
urlstring (required)rawboolean (optional)renderboolean (optional){"{"}
"url": "https://example.com",
"content": "Title: Example...\n\nBody text...",
"success": true
{"}"}400Invalid URL, connection failed, or timeout.422Missing url field in request body.Health check. Returns server status and version.
{"{"} "status": "ok", "version": "2.2.0" {"}"}Web Interface Limitations
The web interface is designed for quick, lightweight scraping. It cannot:
The web interface won't cut it. Install the Python library — it has a 4-tier engine that escalates from fast HTTP requests to full browser automation, handling anti-bot challenges, JavaScript rendering, and structured data extraction.
Installation
Requires Python 3.10+. Install from PyPI:
This installs the CLI, Python API, and all engine dependencies (curl_cffi, playwright-stealth, nodriver, camoufox).
Quick Start
The engine is auto-selected. It starts with the fastest method (curl_cffi) and escalates only when the target pushes back.
Python API Reference
Main scraper class. Manages engine selection, retries, and session state.
Scrape a single URL. Returns a result object with .content, .status_code, and .engine_used.
Crawl a site. Follows internal links, respects robots.txt, applies rate limiting.
Authenticate on a site. Cookies and session state are preserved for subsequent requests.
Export scrape results. See Export Formats below.
Engine Tiers
IntelliScrape escalates through 4 tiers. Each request starts at tier 1 and moves up only when the target blocks it.
Export Formats
Use DataExporter.export() to save results in any format:
Proxy Configuration
IntelliScrape supports HTTP, HTTPS, and SOCKS5 proxies. Pass them per-request:
CLI Reference
The CLI is installed automatically with the Python library.
Basic Usage
All Commands
CLI Examples
$ intelliscrape https://news.ycombinator.com --export csv -o hn.csv
→ engine: curl_cffi [tier 1/4]
→ cleared in 0.8s
→ hn.csv · 30 rows · 5 fields$ intelliscrape https://docs.python.org --crawl --max-pages 20 --export json -o docs.json
→ engine: curl_cffi [tier 1/4]
→ crawling 20 pages...
→ docs.json · 20 records$ intelliscrape https://protected-site.com --engine playwright --export sqlite -o data.db
→ engine: playwright-stealth [tier 2/4]
→ challenge cleared in 2.3s
→ data.db · 148 records


