ShipStatic Docs llms.txt llms-full.txt

Deployments

A deployment is an immutable snapshot of static files. Once created, its contents never change.

Every deployment gets a unique name (e.g. happy-cat-abc1234) and an instant preview URL. On every response the deployment field carries the full hostname — happy-cat-abc1234.shipstatic.com — which is the form every interface shows and accepts.

Available via Web, CLI, SDK, MCP, Action, and API.

Properties

Property Description
deployment Unique identifier — the deployment's hostname
url Preview URL, immediately accessible
files Number of files
size Total size in bytes
status Lifecycle state (see below)
labels Mutable tags for organization
password true if the deployment is password-protected
via Origin tag — see Origin tags below
created Creation timestamp
claim Claim URL — present only on response of public (unauthenticated) deploys
expires Expiry as a unix timestamp in seconds. Set for deploys made without an account (3 days from creation) and for any deployment given a ttl

Status

pending → success → deleting
        → failed  → deleting

A deployment starts as pending during upload. On success, the preview URL goes live. Deletion is asynchronous from any terminal state — the status transitions to deleting while files are cleaned up.

Behaviors

Immutable. After creation, only labels can be modified. To change content, create a new deployment.

Path optimization. When all files share a common root directory (e.g. dist/), the platform flattens it automatically — dist/index.html becomes index.html.

SPA detection. The platform analyzes your index.html for single-page app patterns (React Router, Vue Router, etc.) and configures client-side routing fallbacks automatically.

Limits

What one deployment may carry. These bound a single publish — they are not account totals — and the API enforces them on every deploy, whichever interface you use.

Free Pro Team
Largest single file 20 MB 50 MB 50 MB
Files per deployment 500 1,000 1,000
Total deployment size 50 MB 200 MB 200 MB

Deploys made without an account use the Free limits. Scale is arranged directly and its limits are higher.

Your own current limits are always available from GET /limits (API), ship.getLimits() (SDK), and the Plan page in the console (Web). That answer reflects your plan and any adjustment made on your account, so prefer it to this table whenever the two could differ.

Public Deployments

Deploys without authentication go to the public account and expire 3 days from creation. The response includes a claim URL — visit it while signed in at my.shipstatic.com to transfer the deployment to your account.

$ npx -y @shipstatic/ship ./dist --json
{
  "deployment": "happy-cat-abc1234.shipstatic.com",
  "url": "https://happy-cat-abc1234.shipstatic.com",
  "claim": "https://my.shipstatic.com/claim/...",
  "expires": 1755302400
}

Once claimed, the deployment is yours, never expires, and the claim URL stops working.

Until then, the claim URL is what transfers ownership, so anyone holding it can claim the deployment — share it the way you would a one-time invite rather than posting it somewhere public. Worth knowing if an agent prints one into a chat you keep around: the link stays usable for the same 3 days the deployment does. Claiming it yourself is what closes it.

Custom domains, password rotation, and listing/management operations require an API Key. The deploy itself doesn't.

Password Protection

Deployments can be locked behind a password set at upload time. Visitors see an unlock page until they enter the correct value. Passwords are stored securely — ShipStatic cannot reveal or recover one, so keep it somewhere safe.

Length: 6 to 128 characters. There is no edit-in-place — to change or remove a password, redeploy.

ship ./dist --password 'hunter2!'

Labels

Labels organize and filter deployments. Each label is 3–63 lowercase alphanumeric characters with ., -, or _ separators. Maximum 10 per deployment.

production
v1.0.3
staging.preview

Origin tags

The via field records which interface created the deployment, useful for filtering listings by origin.

Value Origin
web Web console (drag-drop or upload)
cli CLI
sdk SDK used directly
mcp MCP server (AI agents)
git Action (GitHub Actions)
n8n n8n community node
gpt GPT Action (custom GPT integration)
vsc VS Code extension
api A call straight to the API that named no origin

Operations

Operation Description
Upload Create a new deployment from files
List All deployments on your account
Get Details of a specific deployment
Set Update labels
Delete Delete a deployment and its files