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
| field | values | default |
|---|---|---|
| url | any public http(s) url | required |
| scope | full, api, ui, bundle | full |
| depth | surface, standard, deep | standard |
- 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