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
.zip, folder, or single .html — 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 .urlpath: 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.