# boomurl.com > Publish a static website (HTML/CSS/JS/images) and get an instant public URL — no build step, no account. Ideal for AI coding agents: generate files, publish in one authenticated HTTP call, get a live HTTPS URL. Published sites are served at https://boomurl.site//. A free site shows a small ad banner. Static files only; nothing executes server-side. Limits: 50 MB and 500 files per site. ## Quickstart for agents (HTTP API) Auth is a bearer API key (`boom_sk_...`). Mint one once (proves email ownership), then reuse it. 1. Request a code (emails a 6-digit code to you): `POST https://boomurl.com/api/v1/keys/request` body: `{"email":"you@example.com"}` 2. Mint the key (returns the secret ONCE): `POST https://boomurl.com/api/v1/keys` body: `{"email":"you@example.com","code":"123456","label":"my-agent"}` -> `{"key":"boom_sk_..."}` 3. Publish or update a site (idempotent by name): `PUT https://boomurl.com/api/v1/sites/` header: `Authorization: Bearer boom_sk_...` body: `{"files":{"index.html":"

hi

","style.css":"..."}}` -> `{"url":"https://boomurl.site//"}` (Binary files: set `"base64":true` and base64-encode the values.) Other endpoints: - `GET /api/v1/sites` — list your sites - `GET /api/v1/sites/` — status (exists / owned / url) - `DELETE /api/v1/sites/` — delete your site - `GET /api/v1/keys` / `DELETE /api/v1/keys/` — manage keys ## Use your own domain (apex or subdomain) Point a domain you own at your site. boomurl sets up Cloudflare + HTTPS; the user just changes their domain's nameservers once. 1. Attach (returns the two nameservers to set): `POST https://boomurl.com/api/v1/sites//domains` header: `Authorization: Bearer boom_sk_...` body: `{"domain":"example.com"}` (apex or `blog.example.com`) -> `{"nameservers":["x.ns.cloudflare.com","y.ns.cloudflare.com"],"instructions":"..."}` 2. Tell the user: at their registrar, set the domain's **nameservers** to those two. 3. Poll until live (HTTPS issues automatically): `GET https://boomurl.com/api/v1/sites//domains` -> each domain has `nsDelegated`, `tlsReady`, `live`. - `GET /api/v1/sites//domains/` — status of one domain - `DELETE /api/v1/sites//domains/` — disconnect a domain Notes: you must own the site (key's email). A domain can only attach to one site. Until the user changes nameservers, the domain stays `pending` (and is released after 48h). Rules: a key only acts on sites owned by its email. Names are first-come; `index.html` at the top level is required. Errors are JSON `{ "error", "code" }`. ## Docs - OpenAPI spec: https://boomurl.com/openapi.json (usable directly as a ChatGPT Action) - Agent guide: https://boomurl.com/docs/agents - Terms of Use: https://boomurl.com/terms