Core APIs
Scrape
Fetch one URL, render it, and return clean output in the format your agent or pipeline wants. The most common endpoint — it's what most users call first.
Endpoint
POST https://api.ilmenite.dev/v1/scrapeRequest body
url(string, required) — absolute URL to fetch.format(string, optional) — one ofmarkdown,html,json,text. Defaults tomarkdown.wait_for_selector(string, optional) — CSS selector to wait for before extracting.wait_for_ms(number, optional) — fixed delay after navigation, in milliseconds.timeout_secs(number, optional) — max fetch time in seconds.engine(string, optional) —chrome(default, full JS) orstatic(fast, no JS).only_main_content(boolean, optional) — strip nav, header, footer, aside, scripts, ads.include_tags/exclude_tags(string[], optional) — CSS selectors to keep or remove.proxy(string, optional) — your own proxy URL (BYOP), formathttp://user:pass@host:port.stealth(boolean, optional) — route through ilmenite's residential pool for IP reputation. Works on ~90–95% of sites with anti-bot. Cost: 5× base rate. Respects a caller-suppliedproxy.unlock(boolean, optional) — route through ilmenite's full anti-bot solver (bypasses Cloudflare Turnstile, DataDome, PerimeterX). Cost: 15× base rate. Overridesproxybecause the unlocker runs its own browser internally.
Example — basic
curl -X POST https://api.ilmenite.dev/v1/scrape \
-H "Authorization: Bearer $ILMENITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://news.ycombinator.com",
"format": "markdown",
"wait_for_selector": "tr.athing"
}'Example — stealth mode (5× cost, residential proxy)
Use stealth: truefor sites that block datacenter IPs but don't enforce behavioural anti-bot. Most e-commerce, news, and business sites with basic blocking fall here.
curl -X POST https://api.ilmenite.dev/v1/scrape \
-H "Authorization: Bearer $ILMENITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://some-blocked-site.com",
"stealth": true
}'Example — unlock mode (15× cost, full anti-bot solve)
Use unlock: true only for sites behind full behavioural anti-bot (Cloudflare Turnstile, DataDome, PerimeterX, Kasada, Akamai Bot Manager). Charged only when the unlock succeeds — failed attempts are free.
curl -X POST https://api.ilmenite.dev/v1/scrape \
-H "Authorization: Bearer $ILMENITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://turnstile-protected-site.com",
"unlock": true
}'Response
{
"url": "https://news.ycombinator.com",
"status": 200,
"title": "Hacker News",
"markdown": "# Hacker News\n\n1. ...",
"links": ["https://ycombinator.com", "..."],
"metadata": {
"lang": "en",
"description": "...",
"published_at": null
},
"latency_ms": 412,
"render_time_ms": 0.19
}Errors
400 invalid_url— URL failed parsing or scheme is unsupported.402 payment_required— insufficient balance for the requested tier. Top up at/dashboard/billing.408 timeout— page did not finish withintimeout_secs.422 wait_for_not_found— selector never appeared.502 upstream_error— origin returned 5xx or refused connection.503 service_unavailable— requestedstealthorunlockbut the feature is not enabled on this deployment.