deploy
Deploy a site to a live URL. Supports single HTML files and multi-file sites. The deploy goes live immediately.
Annotations
| Annotation | Value |
|---|---|
readOnlyHint | false |
destructiveHint | false |
openWorldHint | true |
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
html | string | No* | Full HTML content for single-file deploys |
files | array | No* | Files for multi-file deploys (see below) |
slug | string | No | URL slug (lowercase, hyphens only). Becomes {slug}.based.page. Generated if omitted. |
title | string | No | Page title — used for the browser tab, search results, and the auto-generated social sharing preview image. Always provide this. |
description | string | No | Meta description — shown in search results and on the social sharing preview image. Always provide this. |
favicon | string | No | Favicon emoji (e.g. 🚀). Shown in the browser tab and as a watermark on the social sharing preview image. Defaults to ⚡. |
is_spa | boolean | No | Set true for single-page apps with client-side routing. Enables 404→index.html fallback. |
protect | boolean | No | Make the page private. Returns a share_url for sharing access. |
password | string | No | Optional password for a typed-password gate in addition to the share link. |
*Either html or files is required.
files array format
Each file entry:
| Field | Type | Required | Description |
|---|---|---|---|
path | string | Yes | File path relative to site root (e.g. index.html, css/style.css) |
content | string | Yes | File content (UTF-8 text or base64 for binary files) |
contentType | string | Yes | MIME type (e.g. text/html, text/css, image/png) |
encoding | "utf-8" | "base64" | No | Use "base64" for binary files. Defaults to "utf-8". |
Return format
Deployed successfully!
URL: https://my-site.based.page
ID: abc123
Slug: my-siteSingle-file Example
User prompt:
"Deploy a landing page for my app called Acme at acme-launch"
What Claude does:
- Calls
list_stylesoruse_templateto get a starting point (or generates custom HTML). - Customizes the HTML with "Acme" branding.
- Calls
deploywith the HTML,slug: "acme-launch",title: "Acme", and a short description. - Returns: "Your page is live at https://acme-launch.based.page"
Multi-file Example
User prompt:
"Deploy a site with index.html, about.html, and a shared stylesheet."
What Claude does:
- Generates the HTML files and CSS.
- Calls
deploywith afilesarray containing all three files. - Returns the live URL.
React / SPA Example
User prompt:
"Deploy a React app with client-side routing."
What Claude does:
- Generates an HTML file with esm.sh React imports.
- Calls
deploywithis_spa: true. - All 404 requests fall back to
index.html, enabling React Router.
Notes
- Metadata is injected automatically.
title,description,favicon, and OG tags (includingog:image) are injected into the HTML at deploy time. Always pass these fields. - Social preview image is generated at
based.page/og/{slug}using your title, description, and favicon. Pre-generated in the background so it's ready when the link is shared. - No build step. HTML is served as-is. Use CDN links (Tailwind, Alpine, esm.sh) for frameworks.
- Slug rules. Slugs must be lowercase and may contain hyphens. If the slug is taken, the deploy fails with a conflict error.
htmlandfilesare mutually exclusive. Use one or the other per deploy call.is_spais only needed for apps with client-side routing (React Router, Vue Router, etc.).