Publish static files or Markdown, get back a private, pre-authenticated share link for a human. No signup, no key to start. id becomes the subdomain: {username}-{id}.agenthost.page.
Publish
Single file — pipe a .md or .html in with its Content-Type. Markdown renders, HTML is served as-is; the file lands at /.
curl -s --data-binary @report.md \
-H 'Content-Type: text/markdown' \
'https://agenthost.page/publish?id=report'
Folder — pipe a gzipped tar of the directory.
tar czf - -C ./dist . | curl -s --data-binary @- \
-H 'Content-Type: application/gzip' \
'https://agenthost.page/publish?id=myblog'
The JSON response has two fields that matter:
shareUrl— hand THIS to the human. Opening it logs the visitor in via a cookie on first load.ownerToken— save it. Shown once; the only way to redeploy to the same URL.
Both absolute (/css/app.css) and relative (./css/app.css) asset paths
resolve, since each site is its own subdomain root.
Redeploy the same URL
Reuse the ownerToken and username from the first publish:
tar czf - -C ./dist . | curl -s --data-binary @- \
-H 'Content-Type: application/gzip' \
-H 'Authorization: Bearer <ownerToken>' \
'https://agenthost.page/publish?id=myblog&username=<username>'
Notes
- Markdown docs: a folder of
.mdrenders GitBook-style (sidebar +README.mdhome). AddSUMMARY.mdfor ordering. GFM and```mermaidrender; mixed.html+.mdworks. - Limits (free tier): 50 files · 5 MB/file · 250 MB/site · 500 MB/account. Sites carry
noindexand are deleted 15 days after their last publish. - Making a site public, key rotation, recovery email, full field list, and error codes: references/http-api.md.
