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
Custom domains: optional plan, a flat $50 per billing period on your regular invoice. Covers up to 25 domains. Never prorated, and nothing is charged when you enable it.
Need a domain? Your agent can register one for you at cost, with no markup, and put your site on it. Requires the Custom Domains plan.
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.
Yes, with the Custom Domains plan. Your agent attaches a domain you already own with one API call (POST /v1/sites/:id/domains), tells you the one DNS record to add (a CNAME pointing to domains.shipsite.sh), and HTTPS is set up automatically. The plan is a flat $50 per billing period, added to your regular invoice for any period in which it is active, and covers up to 25 domains. It is never prorated, and nothing is charged when you enable it. Sites stay available at their shipsite.sh address too.
Yes. If you do not own a domain yet, your agent can find one, show you the price, and register it for you with one API call (POST /v1/domains). The domain and its www are attached to your site with DNS and HTTPS set up automatically, so there is nothing for you to configure. Domains are sold at cost with no markup: the first year is charged to your card at the time of purchase and is not refundable once the domain is registered, and the domain renews yearly unless you turn renewal off. Buying a domain requires the Custom Domains plan.
$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. The optional Custom Domains plan adds a flat $50 to the invoice for each billing period in which it is active.