snakereach

Start

First call in two minutes.

You need a key. Request one. They are issued by hand, usually within a day. To try the API without one, use the playground.

1. Check the service

/v1/health needs no key, so it also confirms your network can reach the API before authentication is in the picture.

curl
curl https://api.snakereach.com/v1/health

2. Scrape something

curl
export SNAKEREACH_API_KEY="your key"

curl https://api.snakereach.com/v1/scrape \
  -H "X-API-Key: $SNAKEREACH_API_KEY" \
  -H "content-type: application/json" \
  -d '{"url": "https://example.com"}'
python
import os, httpx

response = httpx.post(
    "https://api.snakereach.com/v1/scrape",
    headers={"X-API-Key": os.environ["SNAKEREACH_API_KEY"]},
    json={"url": "https://example.com"},
    timeout=60,
)
response.raise_for_status()
doc = response.json()

print(doc["title"])
print(doc["markdown"])
javascript
const response = await fetch("https://api.snakereach.com/v1/scrape", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.SNAKEREACH_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({ url: "https://example.com" }),
});

if (!response.ok) throw new Error(await response.text());
const doc = await response.json();

console.log(doc.title, doc.markdown);

3. Read the trace

Every response carries a trace of where the time went. It is the fastest way to understand why one page takes 40 ms and another takes four seconds.

python
for stage in doc["trace"]["stages"]:
    print(f"{stage['name']:<10} {stage['elapsed_ms']:>7.1f} ms")

Set a generous timeout

A scrape does real network work on your behalf, and a JavaScript page that needs rendering can take several seconds. Most client libraries default to something far shorter than that. Sixty seconds is a sane starting point.

Next

The Document schema for every field you get back · Crawl for whole sites · Python SDK to skip HTTP entirely.