Skip to content

Upload a zip, get a URL — that's the whole API

Every hosting flow on this site boils down to one move: a zip of your folder, POSTed to /deploy. The response is a live URL on its own subdomain. That's the whole API.

Drop your Zip upload report here — get a live link

free, no account, live for 7 days.

The artifact dead-end

'Static hosting' products keep accreting ceremony: accounts, projects, Git permissions, build pipelines — to serve files that were already built.

Sometimes you just have a folder — an export, a build, a thing someone sent you — and you want a link.

Two lines to a live link

Build your output like you already do, then hand the folder to the action:

Zip the folder

cd dist && zip -qr ../site.zip .

.github/workflows/ci.yml

- uses: bitgate/ship-page-action@v1
  if: always()
  with:
    path: dist/

Or with plain curl — no account needed

curl -fsS -X POST https://ship.page/deploy \
  -H "Content-Type: application/zip" \
  --data-binary @site.zip | jq -r .url

path: dist/ deploys exactly what the tool wrote — no detection to configure. The link goes in the job summary — add comment: true and it lands on the pull request too.

What you get

  • One POST, no account: anonymous drops live for 7 days on an unguessable subdomain
  • The zip is unpacked at the drop root — index.html opens on the URL and every relative link resolves
  • Scriptable by design: pipe zip -qr - . straight into curl --data-binary @- and never touch a temp file

Questions

What can be in the zip?

Any static files: HTML, CSS, JS, images, fonts, PDFs. An index.html at the zip root becomes the landing page. Server-side code won't run — drops are pure static.

What are the size limits?

Anonymous zips up to 25MB and 500 files; an API key raises the file cap, subscribers get 100MB zips, and chunked uploads reach 10,000 files.

Can I update a zip I already deployed?

Anonymous drops are immutable — deploy a new one. With an API key and a name, the same URL redeploys in place every time.

Try it on your next run

Anonymous deploys need no account and no key — paste the step, get a link. When you want stable URLs that redeploy in place, an API key and a name are all it takes.

Need to share the report with someone outside GitHub? How to share a GitHub Actions artifact without a login.