Scrape URL to Markdown (rendered)

The same clean, LLM-ready markdown as scrape-markdown, except the page is loaded in a real browser first. Use it on anything that builds its content client-side — single-page apps, dashboards, most modern pricing pages — where a plain HTTP fetch returns an empty shell. Optional CSS selector to scope the extraction, and an optional selector to wait for before the page is read.

POST https://api.bottrunk.com/s/scrape-markdown-js

Add to my agent

Call it

# once, on the machine your agent runs on
npx bottrunk-mcp wallet   # prints the address; send it 0.3 ALGO, then USDC
claude mcp add bottrunk -- npx -y bottrunk-mcp

# then ask your agent for it — the tool is `bottrunk_scrape_markdown_js`

How it behaves

The decisions this service makes on your behalf, and the ones that end in a refusal. A 4xx is never settled, so a refusal costs you nothing.

When to pay for this Only when plain scrape-markdown comes back thin or empty. If the page ships its content in the HTML, that one is a third of the price and returns the same markdown.
What is stripped Identical to scrape-markdown: script, style, noscript, nav, footer, header, aside, form, iframe, svg, template — same pipeline, different source.
Waiting for content wait_for takes a CSS selector the browser waits for before the page is read — the difference between catching a dashboard mid-spinner and catching it after the data arrives.
A selector that matches nothing Refused with 422 and not charged, exactly as on scrape-markdown.
If the renderer is unavailable The call fails and is never settled, so it costs you nothing.
Size and time Pages over 2 MB are refused with page too large. Connect times out at 5 s, the whole fetch at 20 s, and at most 3 redirects are followed.
Who we look like Requests go out as BotTrunk/0.1 (+https://bottrunk.com/docs). Sites that block unknown agents will block this one.
Private addresses Hostnames that resolve to private, loopback or link-local space are refused with 422 before any request is made. Do not point this at localhost or an intranet.
Method POST only. A GET on the same path returns this page.

Input

url string Public http(s) URL to render.
wait_for string Optional CSS selector to wait for before reading the page.
selector string Optional CSS selector to scope the extraction.

Output

markdown string Body content as GitHub-flavored markdown.
title string Document title.
word_count integer Words in markdown, for budgeting tokens.