docs

create Anything reverse-engineers websites into structured markdown. use it from the web ui, the http api, or let your agents call it.

http api

no auth needed. start a scan, then poll for the result.

start a scan

curl -X POST https://createanything.fun/api/run \
  -H "Content-Type: application/json" \
  -d '{"url":"https://stripe.com","scope":"full","depth":"standard"}'

# → { "runId": "abc123", "status": "queued" }

poll for result

curl "https://createanything.fun/api/getRun?id=abc123"

# status: queued → running → complete | error
# when complete, "result" contains the full markdown

list recent scans

curl "https://createanything.fun/api/runs?limit=20"

parameters

fieldvaluesdefault
urlany public http(s) urlrequired
scopefull, api, ui, bundlefull
depthsurface, standard, deepstandard
  • surface: html only, no bundle or css fetching
  • standard: html + first 8 scripts + 4 stylesheets
  • deep: html + up to 25 scripts + 10 stylesheets, bigger trees

agent usage

any agent with http access can call create Anything directly.

const res = await fetch("https://createanything.fun/api/run", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ url: "https://linear.app", scope: "ui" }),
});
const { runId } = await res.json();

let run;
do {
  await new Promise((r) => setTimeout(r, 2000));
  run = await fetch(`https://createanything.fun/api/getRun?id=${runId}`).then((r) => r.json());
} while (run.status === "queued" || run.status === "running");

console.log(run.result);
import requests, time

r = requests.post("https://createanything.fun/api/run", json={"url": "https://vercel.com"})
run_id = r.json()["runId"]

while True:
    time.sleep(2)
    run = requests.get(f"https://createanything.fun/api/getRun?id={run_id}").json()
    if run["status"] in ("complete", "error"):
        break

print(run["result"])

rate limits

  • 3 scans per 10 minutes per IP
  • 10 scans per hour per IP
  • private / internal urls (localhost, 10.x, 192.168.x, etc) are blocked
  • html capped at 4 MB, each asset at 2 MB

output format

every scan returns one markdown file with these sections (filtered by scope):

# Reconstruction: example.com
## Overview          title, meta, status, timing
## Tech stack        frameworks, libraries, hosting, analytics
## DOM tree          node counts + outline
## Accessibility     landmarks, roles, headings, issues
## Design system     palette, fonts, css variables, breakpoints
## Screenshots       og image + favicon
## Scripts + deps    bundles, sizes, sourcemaps
## API routes        endpoints, fetch calls, forms
## Network           third-party hosts, headers
## Storage           cookies, local/session storage
## How to rebuild it