Quick Start
Publish a site with a single HTTP request. No account or API key required.
The response includes a live URL, an edit key for updates, and a claim URL to keep the site permanently.
Authentication
YeetIt supports two authentication methods depending on your use case.
Edit Key
Pass via the X-Edit-Key header. A unique per-site key returned in the publish response.
Use it to update or delete that specific site. Anyone with the edit key can modify the site.
API Key
Pass via the X-API-Key header. An account-wide key available from your dashboard after
claiming a site. Works for all sites owned by your account.
Endpoints
POST /v1/publish
Create a new site. No authentication required.
Request body
| Field | Type | Description |
|---|---|---|
html required | string | The HTML content of your site |
title optional | string | Page title (extracted from HTML if omitted) |
assets optional | object | Map of filename to content (CSS, JS, images) |
Response
| Field | Description |
|---|---|
url | Live URL of the published site |
slug | Unique identifier for the site |
edit_key | Key for updating or deleting this site |
claim_url | URL to claim ownership of the site |
expires_at | ISO 8601 expiration timestamp |
assets_published | Number of assets stored |
PUT /v1/publish/:slug
Update an existing site. Requires X-Edit-Key or X-API-Key header.
Request body
| Field | Type | Description |
|---|---|---|
html required | string | Updated HTML content |
title optional | string | Updated page title |
assets optional | object | Updated assets map |
Response
| Field | Description |
|---|---|
url | Live URL of the site |
slug | Site identifier |
updated | true |
assets_published | Number of assets stored |
DELETE /v1/publish/:slug
Delete a site. Requires X-Edit-Key or X-API-Key header.
Response
| Field | Description |
|---|---|
slug | Site identifier |
deleted | true |
GET /v1/publish/:slug/status
Get information about a site. No authentication required.
Response
| Field | Description |
|---|---|
slug | Site identifier |
title | Page title |
tier | Account tier (free, pro, business) |
views | Total page views |
html_size | Size of the HTML content in bytes |
asset_count | Number of assets |
total_size | Total size including assets in bytes |
created_at | ISO 8601 creation timestamp |
expires_at | ISO 8601 expiration timestamp (null if permanent) |
claimed | Whether the site has been claimed |
active | Whether the site is currently live |
Assets
Include CSS, JavaScript, images, and other files alongside your HTML using the assets object.
Text assets
Pass CSS, JS, or any text file as a plain string value in the assets object.
Binary assets
Upload images and other binary files using data URIs.
Multi-page sites
Include additional HTML pages as assets. Reference them with relative paths.
Limits
- Free tier: 10 assets per site, 5.0MB total (HTML + all assets combined)
- Pro / Business: 50 assets per site, 10 MB total (HTML + all assets combined)
- Individual assets are capped at 5 MB each
Reference all assets using relative paths: ./style.css, ./images/logo.png
MCP Integration
YeetIt supports the Model Context Protocol for seamless AI agent integration.
Endpoint
Send JSON-RPC 2.0 requests to:
Discovery
MCP-compatible agents can auto-discover available tools at:
Available tools
publish_website— Create a new site from HTMLupdate_website— Update an existing sitedelete_website— Remove a siteget_website_status— Get site info and metrics
Configuration
Add to your Claude Desktop or Cursor MCP config:
Limits
| Free | Pro ($8/mo) | Business ($25/mo) | |
|---|---|---|---|
| Max size | 5.0MB | 10 MB | 10 MB |
| Assets | 10 | 50 | 50 |
| Expiry | 24 hours (7 days after claim) | Permanent | Permanent |
| Active sites | 5 | 25 | Unlimited |
| Footer badge | Yes | No | No |
| Custom slugs | No | Yes | Yes |
Error Codes
All error responses include a JSON body with an error field describing the issue.
| Status | Meaning |
|---|---|
400 | Invalid request — missing or malformed fields |
401 | Invalid API key |
403 | Invalid edit key for this site |
404 | Site not found |
409 | Slug already taken |
413 | Content too large |
422 | Content policy violation |
429 | Rate limit exceeded |
500 | Internal server error |