fetching with intent since 2025

Your data
goes fetch.

A web scraping API for developers who have better things to do than manage proxies, CAPTCHAs, and headless browsers.

4
endpoints
15m
cache TTL
~30s
setup time
terminal
# Quick start, fetch any webpage
$ curl -X POST \
  https://api.denkbot.dog/scrape \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com"}'
# Response
{
  "url": "https://example.com",
  "title": "Example Domain",
  "html": "<!doctype html>...",
  "statusCode": 200,
  "cached": false
}

Live demo, no signup needed

Paste a URL. See what comes back.

Real response from the API. No account, no key, no strings attached.

Try:

The API

Three endpoints.
That's it.

POST/scrape

Fetch any page.

Raw HTML, parsed JSON, or both. JS rendering included. Playwright under the hood, React, Vue, Angular? It just works.

POST/sitemap

Sniff out every URL.

Returns the full sitemap in structured JSON. Great for SEO audits, content migrations, and general sniffing around.

POST/crawl

Explore the whole site.

Get a nested URL tree up to 500 pages deep. The dog fetches. You stay home on the couch.

POST / GET/screenshotbonus

Point and shoot.

Returns a real PNG file. No base64 nonsense, no "data:image/png" strings to decode. Just an image you can actually use. Full-page or viewport, your call.

Integrations

Works with
everything.

No SDK required. No npm install. No pip install. Just HTTP. If your language can make a POST request, it can use denkbot.dog. Yes, even bash.

No SDK, just REST
Bearer token auth
JSON in, JSON out
15-minute response cache
curl -X POST https://api.denkbot.dog/scrape \  -H "amberAuthorization: Bearer YOUR_API_KEY" \  -H "amberContent-Type: application/json" \  -d '{    "amberurl": "greenhttps://example.com",    "amberrenderJs": false,    "amberformat": "amberjson"  }'

Features

Why denkbot?

JS Rendering

Playwright-powered Chromium. React, Vue, Angular, it doesn't care. If the browser renders it, we fetch it.

🛡️

SSRF Protected

We checked. Localhost isn't a valid URL. Neither is your AWS metadata endpoint. Sleep tight.

📦

15-Min Cache

Same URL twice? We got you. First request pays, the rest are free. Your wallet thanks you.

🔑

API Key Auth

Simple Bearer token. No OAuth dance, no SDK required, no 47-step setup guide. Just copy, paste, go.

🐾

Dog Mascot

Okay this one isn't a feature. But look at him. He's got a bone. He's so dedicated.

📊

Request Logs

Every request logged. Format, duration, status code, cache hit. No surprises on your dashboard.

Output

What you actually
get back.

Request
POST /scrape HTTP/1.1
Host: api.denkbot.dog
Authorization: Bearer dk_...
Content-Type: application/json

{
  "url": "https://news.ycombinator.com",
  "renderJs": true,
  "format": "json"
}
Response
{
  "url": "https://news.ycombinator.com",
  "title": "Hacker News",
  "statusCode": 200,
  "html": "<html>...",
  "text": "Hacker News\n1. ...",
  "metadata": {
    "description": "Links for the intellectually curious",
    "ogTitle": "Hacker News"
  },
  "links": [247 items],
  "cached": false,
  "durationMs": 1842
}

Start fetching.
€19/year.

Get an API key in 30 seconds. €19/year, unlimited requests. Just good bot energy.

good bot 🐾