publish from an agent_
boomurl is built for coding agents: generate static files, publish in one authenticated HTTP call, get a live HTTPS URL — no build step, no browser. Auth is a bearer API key (boom_sk_…); mint it once, reuse it.
1Request a code
curl -X POST https://boomurl.com/api/v1/keys/request \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com"}'2Mint your API key (secret shown once)
curl -X POST https://boomurl.com/api/v1/keys \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","code":"123456","label":"my-agent"}'
# -> {"key":"boom_sk_..."}3Publish or update a site (idempotent by name)
curl -X PUT https://boomurl.com/api/v1/sites/my-demo \
-H "Authorization: Bearer boom_sk_..." \
-H "Content-Type: application/json" \
-d '{"files":{"index.html":"<h1>hi</h1>","style.css":"body{font-family:system-ui}"}}'
# -> {"url":"https://boomurl.me/my-demo/","created":true}More endpoints
- GET /api/v1/sites
- List your sites.
- GET /api/v1/sites/{name}
- Status: exists / owned / live URL.
- DELETE /api/v1/sites/{name}
- Delete a site you own.
- POST /api/v1/sites/{name}/domains
- Attach your own domain — subdomains need just a CNAME; apex returns nameservers.
- GET /api/v1/sites/{name}/domains
- List the site's custom domains + live status.
- DELETE /api/v1/sites/{name}/domains/{domain}
- Disconnect a custom domain.
- GET /api/v1/keys
- List your keys (no secrets).
- DELETE /api/v1/keys/{id}
- Revoke a key.
🥪 Use it inside Claude
boomurl ships a hosted MCP connector — add it once and just ask Claude to publish a site.
claude.ai (Connectors)
Settings → Connectors → Add custom connector, paste:
https://boomurl.com/api/mcp
No install, no API key to paste. The first time you ask Claude to publish, it emails you a 6-digit code, you tell Claude the code, and it mints a key and publishes — all in the chat. Then: “publish this as my-site”.
Claude Desktop / Claude Code (local MCP)
Prefer a local server with a fixed key? Add the boomurl-mcp package:
{
"mcpServers": {
"boomurl": {
"command": "npx",
"args": ["-y", "boomurl-mcp"],
"env": { "BOOMURL_KEY": "boom_sk_..." }
}
}
}💬 Use it inside ChatGPT
A plain ChatGPT chat can't reach the network from its sandbox, so it can't publish on its own. Pick one of these — the first two let you publish by just asking, the last needs zero setup.
1 · Add the connector (publish from any chat)
ChatGPT → Settings → Apps & Connectors → turn on Developer Mode (Advanced) → Add custom connector, paste:
https://boomurl.com/api/mcp
No login — it mints your own key in the chat (emails you a 6-digit code). After that, any chat: “publish this as my-site”. Same hosted server Claude uses; the tools run on boomurl, so the sandbox limit doesn't apply.
2 · Or use the official GPT
No setup beyond opening it — it runs the same publish flow conversationally.
Open the boomurl GPT →3 · Or paste it yourself (zero setup)
Have ChatGPT write one self-contained index.html, then paste it at boomurl.com/paste (the box opens focused) — live in seconds.
Notes
- Binary files: set
"base64":trueand base64-encode the values. - No
index.htmlrequired — a lone.md/.txt/.pdf(or any folder) becomes a real page. Limits: 50 MB / 500 files. Free sites show a small ad. - A key only acts on sites owned by its email. Errors are JSON
{ error, code }. - No network access?ChatGPT's code sandbox can't make outbound requests (curl fails with DNS errors). Most reliable: hand the user a single self-contained
index.html(or.md) and tell them to paste it at boomurl.com/paste (the paste box opens focused) — live in seconds. Or use the boomurl GPT to publish without leaving the chat. Any Custom GPT with Actions can use /openapi.json. - Custom domains:
POST /api/v1/sites/{name}/domainswith{"domain":"example.com"}returns two nameservers — have the user set them at their registrar; HTTPS is automatic. Poll theGETuntillive:true. - Machine-readable spec: /openapi.json (drop-in ChatGPT Action) · agent index: /llms.txt