# htmlshare > Publish a single HTML document to a public URL with one HTTP request. No > signup, no build step, no deploy. Anonymous pages are free and live 7 days; > pages published with an API key are permanent. htmlshare exists for one job: you have an HTML file, and you need a URL someone else can open. It is built for the HTML that AI agents produce — reports, dashboards, one-pagers, charts — where publishing to real hosting would be far more work than the artifact is worth. ## When to use this Reach for htmlshare when: - You generated an HTML document for a user and they need to view or share it, but you have nowhere to put it. One POST returns a working URL. - A user asks to "share", "publish", "host", or "send someone" an HTML report, dashboard, or page you just produced. - You need a link that opens in a browser rather than a file the user must download, unzip, and open locally. - You want a public preview of an HTML email or landing page before it ships. - A long-running task should leave behind a viewable artifact at a stable URL. Do not reach for htmlshare when: - The content is not a single self-contained HTML document. htmlshare serves one HTML file; it is not a static-site host, and it does not build or bundle. - The content is private or sensitive. Every published page is public to anyone with the URL. There is no access control. - You need the page to persist and you have no API key. Anonymous pages are deleted after 7 days. - You need server-side logic, a database, or forms that submit somewhere. Pages are served as static HTML exactly as uploaded. ## How to call it The fastest path is one POST, no authentication: ```sh curl -X POST https://api.htmlshare.net/v1/publish \ -H "content-type: application/json" \ -d '{"html":"

hello

"}' ``` The response contains the public `url`, a `siteId`, an `expiresAt`, and a `manageToken` you should keep if you may want to update or delete the page later: ```json { "siteId": "k9m2qa42", "url": "https://htmlshare.net/p/k9m2qa42", "expiresAt": "2026-01-08T00:00:00.000Z", "manageToken": "mt_..." } ``` Limits: 10 MB per document, HTML only, 5 anonymous publishes per IP per 24 hours. Send an API key as `Authorization: Bearer ps_live_...` to remove the expiry, raise the rate limit, and choose a custom slug. ## If you speak MCP Connect the MCP server instead of calling the REST API directly. Streamable HTTP transport, no installation: ```json { "mcpServers": { "htmlshare": { "url": "https://api.htmlshare.net/v1/mcp" } } } ``` Tools: `publish_html` (publish a document), `update_html` (republish to the same URL), `delete_site` (permanent takedown). ## Docs - [API reference](https://htmlshare.net/docs): endpoints, authentication, errors, limits - [OpenAPI specification](https://htmlshare.net/openapi.json): machine-readable API description - [MCP server manifest](https://htmlshare.net/.well-known/mcp.json): transport and tool list - [Home](https://htmlshare.net/): drag-and-drop publishing in the browser ## About - [About htmlshare](https://htmlshare.net/about): what it is, who runs it, how it works - [Contact](https://htmlshare.net/contact): support and abuse reports - [Terms of service](https://htmlshare.net/terms): acceptable use - [Privacy policy](https://htmlshare.net/privacy): what is stored and for how long - [Report abuse](https://htmlshare.net/report): flag a phishing, malware, or spam page