free · no signup · 7-day retention
drop an html file.
get a public url.
html · htm · 10mb max · live in < 1s
/01 — what people use this for
three jobs we see every day.
/01 · sharesend an ai-agent-generated artifact to a teammate without zipping a folder.
/02 · previewspin up a public preview of an html email or one-pager before it ships.
/03 · hoststand up a landing page, demo, or pitch link in under a second — without a dashboard.
/02 — api
or skip the page entirely. one post, one url back — works from claude, chatgpt, your shell, your code.
mcp · claude
~/Library/Application Support/Claude/claude_desktop_config.json
{"mcpServers": {"htmlshare": {"url": "https://api.htmlshare.net/v1/mcp"}}}
then ask claude: “publish this as an htmlshare link” — it just works. (restart claude desktop once after adding the config.) chatgpt works too, and an api key makes connector publishes permanent — see the docs for setup.
curl
terminal
# publish from the terminalcurl -X POST https://api.htmlshare.net/v1/publish \-H "content-type: application/json" \-d '{"html":"<!doctype html><h1>hello</h1>"}'# → { "url": "https://htmlshare.net/p/k9m2qa42", "expiresAt": "..." }
accepts application/json (html field) or multipart/form-data with a file. 10mb max.
node.js
publish.mjs
import { readFile } from 'node:fs/promises';const html = await readFile('./report.html', 'utf-8');const { url } = await fetch('https://api.htmlshare.net/v1/publish', {method: 'POST',headers: { 'content-type': 'application/json' },body: JSON.stringify({ html }),}).then((r) => r.json());console.log(url); // → https://htmlshare.net/p/k9m2qa42
works anywhere with fetch — node ≥ 18, bun, deno, browsers.
full reference — endpoints, api keys, mcp setup for every client, errors, limits — in the api docs.
/03 — limits
boring details, on purpose.
max size10 mb
retention7 days
acceptshtml only
costfree