One API.
Every shape of web data.
The complete web-data platform for AI agents. Scrape any url to clean markdown or typed json. Crawl whole sites. Discover the hidden json api behind any page. Run persistent browser agents. Extract to a schema. Handle pdfs. Search the web. Dual engine — pure rust for static pages, real chromium when it gets hard. $0.001 per request. mcp native.
$ curl -X POST https://api.ilmenite.dev/v1/discover \
-H "authorization: bearer $ILMENITE_KEY" \
-d '{"url":"https://news.ycombinator.com"}'{
"url": "https://news.ycombinator.com",
"total_requests": 14,
"discovered": [
{
"method": "GET",
"url": "https://hn.algolia.com/api/v1/search_by_date",
"status": 200,
"mime_type": "application/json",
"probe": { "recommended": "direct-http" }
}
],
"elapsed_ms": 3421
}Dual-engine by design. You don't have to choose.
Static HTML? Skip the browser — we handle the GET, parse the main content, strip the nav, and return clean markdown in one hop. JavaScript-heavy site? Chrome spins up on demand. You call the same endpoint either way.
POST /v1/scrape
│
▼
┌─────────────────────────────────────────────┐
│ url + options │
└──────┬──────────────────────────────────────┘
│
┌────┴────┐ needs actions? waits? persistent?
│ │
no yes
│ │
▼ ▼
┌──────┐ ┌──────────────┐
│ http │ │ chrome │ ◄ only when needed
│ pool │ │ session │ /v1/browser · /v1/discover
└──┬───┘ └──────┬───────┘ js-heavy scrape · multi-step
│ │
pure rust chrome session
~15-50ms 500-2000ms · full js
│ │
└──────┬──────┘
│
▼
┌────────────────┐
│ html → markdown │
│ main-content │
│ nav stripping │
│ link extract │
└──────┬─────────┘
│
▼
clean data
(markdown · json · typed · urls · discovered apis)
Rest endpoints. Json in, json out. Usd per request.
Everything ilmenite does in seven calls. No sdks required. Curl-friendly.
One column you can check every box in.
The dimensions developers actually evaluate scrapers on. Playwright is included as a reference point for the automation space.
| ilmenite | firecrawl | browserbase | scrapingbee | playwright | |
|---|---|---|---|---|---|
| markdown output | ✓ | ✓ | — | — | — |
| json + typed schemas | ✓ | ✓ | — | — | — |
| llm extraction (byo key) | ✓ | ✓ | — | — | — |
| persistent browser sessions | ✓ | — | ✓ | — | ✓ |
| api discovery (find hidden endpoints) | ✓ | — | — | — | — |
| pdf extraction chain | ✓ | ~ | — | — | — |
| main content + nav stripping | ✓ | ✓ | — | — | — |
| mcp native (claude, ai agents) | ✓ | — | — | — | — |
| byo proxy | ✓ | ~ | ~ | ✓ | ✓ |
| built-in residential stealth | ✓ | ✓ | — | ✓ | — |
| built-in anti-bot unlock (turnstile, datadome) | ✓ | ✓ | — | ~ | — |
| per-call pricing (no subscription) | ✓ | — | — | ✓ | n/a |
| no browser-hour metering | ✓ | ✓ | — | ✓ | n/a |
✓ supported · ~ partial · — not supported · n/a = not applicable
$0.001
per request · usd · balance never expires
| endpoint | per call | $5 | $25 | $50+10% | $200+25% |
|---|---|---|---|---|---|
| scrape | $0.001 | 5,000 | 25,000 | 55,000 | 250,000 |
| map | $0.001 | 5,000 | 25,000 | 55,000 | 250,000 |
| search | $0.002 | 2,500 | 12,500 | 27,500 | 125,000 |
| $0.002 | 2,500 | 12,500 | 27,500 | 125,000 | |
| browser session | $0.005 | 1,000 | 5,000 | 11,000 | 50,000 |
| extract (llm) | $0.005 | 1,000 | 5,000 | 11,000 | 50,000 |
| discover apis | $0.010 | 500 | 2,500 | 5,500 | 25,000 |
| total balance credited | — | $5 | $25 | $55 | $250 |
hover a row or column to trace the math. failed requests (status ≥ 400) are free.
| mode | ×cost | scrape cost | coverage | what it solves |
|---|---|---|---|---|
| direct | 1× | $0.001 | 70-80% | no proxy, our Chrome. works on sites with no anti-bot. |
| stealth | 5× | $0.005 | 90-95% | residential IPs + our Chrome. beats basic Cloudflare / IP blocks. |
| unlock | 15× | $0.015 | ~99% | full anti-bot solve. Turnstile, DataDome, PerimeterX, Akamai. |
pass "stealth": true or "unlock": true in your request body. failed unlocks cost nothing. cost multiplier applies to any endpoint you call.
Seven endpoints.
One bill.
$5 in free credit every month. No credit card. Balance never expires.