One API call. Send files, get a live URL. Built for LLMs — no git, no build steps, no dashboards.
A sample conversation between a developer and Claude Code.
solar-system/index.html in your browser.From idea to shareable URL — without leaving the conversation.
From zero to live URL in three steps.
Your LLM calls POST /v1/accounts with an email. Gets back an API key and a Stripe checkout link. You click the link to activate.
Send your files as JSON to POST /v1/sites. Text files as strings, binary files with a base64: prefix. That's it.
Your site is live instantly on a global edge network. Pin it to keep it forever, or let it auto-expire in 24 hours.
Everything an LLM needs, nothing it doesn't.
Single POST request creates a live site. No multi-step workflows or build pipelines.
No manifests, project files, or setup. Send files, get a URL.
Sites are live on 300+ edge locations worldwide before the API response lands.
Works as a tool in Claude Code, Cursor, Windsurf, and any MCP-compatible agent.
No injected banners, badges, or tracking. Your sites are served exactly as deployed.
Every error says what went wrong, why, and how to fix it. Agents can self-correct.
This is the entire deploy flow.
POST https://api.shipsite.sh/v1/sites Authorization: Bearer sk_live_... { "files": { "index.html": "<html>Hello, world</html>", "style.css": "body { color: #333 }" } }
{
"id": "site_a7x9k2",
"url": "https://a7x9k2.shipsite.sh",
"expires_at": "2026-02-21T12:00:00Z"
}
Simple, usage-based. Pay for what you use.
Prorated daily, billed monthly via Stripe
Examples: 1 site for a month = $3 · 10 sites for a month = $30 · 1 site for 2 hours = $0.10
Base URL: https://api.shipsite.sh
All requests (except account creation) require an API key in the Authorization header.
Authorization: Bearer sk_live_...
POST /v1/accounts
Create account (no auth needed)
POST /v1/sites
Create a site
GET /v1/sites
List your sites
GET /v1/sites/:id
Get site details
PUT /v1/sites/:id
Update files, name, or metadata
DELETE /v1/sites/:id
Delete a site
POST /v1/sites/:id/pin
Pin site (no auto-expire)
POST /v1/sites/:id/unpin
Unpin site (re-enable 24h TTL)
GET /v1/accounts/me
Get account status
GET /v1/accounts/me/keys
List API keys
POST /v1/accounts/me/keys
Create new API key
POST /v1/accounts/me/keys/rotate
Rotate key (create + revoke)
DELETE /v1/accounts/me/keys/:id
Revoke an API key
POST https://api.shipsite.sh/v1/accounts { "email": "you@example.com" } # Response: { "id": "acc_x8k2m", "api_key": "sk_live_a1b2c3d4...", "setup_url": "https://checkout.stripe.com/...", "status": "pending" } # Save the api_key now — it is shown only once and cannot be retrieved later # Open setup_url to activate your key
POST https://api.shipsite.sh/v1/sites Authorization: Bearer sk_live_a1b2c3d4... { "files": { "index.html": "<!DOCTYPE html>\n<html>...", "style.css": "body { font-family: sans-serif }", "logo.png": "base64:iVBORw0KGgo..." }, "name": "my-project" } # Response: { "id": "site_a7x9k2", "url": "https://my-project.shipsite.sh", "expires_at": "2026-02-21T12:00:00Z" }
Use shipsite.sh as a tool in Claude Code, Cursor, or any MCP-compatible agent.
{
"mcpServers": {
"shipsite": {
"command": "npx",
"args": ["@shipsite/mcp"],
"env": {
"SHIPSITE_API_KEY": "sk_live_..."
}
}
}
}
Text files (.html, .css, .js, .svg, .json, .txt, .xml, .md) — send as plain strings.
Binary files (.png, .jpg, .gif, .webp, .ico, .woff2, .pdf) — prefix with base64: followed by base64-encoded content.
Common questions about shipsite.sh
We treat LLMs as the primary interface for static site deploys. Instead of the usual rigamarole of provisioning tokens, configuring access, and wiring credentials into your agentic setup, your LLM can request a token and hand you a simple Stripe checkout link. Once you pay and activate, your LLM handles everything else — from idea to live URL with minimal friction.
Add the shipsite.sh MCP server to your AI tool (Claude Code, Cursor, Windsurf) and your agent can deploy sites directly. Or use the REST API — your agent POSTs files as JSON to POST /v1/sites and gets back a live URL in under a second.
Any static site — HTML, CSS, JavaScript, images, fonts, PDFs. Single-page apps work too (index.html is served as a fallback). No server-side code, no databases, no build steps. You send ready-to-serve files.
No. All accounts require payment setup via Stripe before any deploys work. This keeps the platform abuse-free and the service reliable. At $0.10/day per site, a quick deploy costs a dime.
Sites auto-expire after 24 hours by default. Pin a site to keep it live indefinitely — it stays up until you delete it. Billing runs either way at $0.10/day.
MCP (Model Context Protocol) lets AI agents use external tools natively. The @shipsite/mcp package exposes shipsite.sh as a set of tools — deploy, list, delete, pin, rename — that agents in Claude Code, Cursor, and Windsurf can call directly.
Not yet. Sites are served at {id}.shipsite.sh (or {name}.shipsite.sh if you set a vanity slug). You can add or change the slug anytime via PUT /v1/sites/:id. Custom domains may come in a future version.
$0.10 per site per day, prorated. If a site exists for any part of a day, that's one site-day. Usage is metered daily and billed monthly through Stripe. Deleting a site stops billing immediately. No egress fees, no hidden costs.