Deploy in 3 Steps
From zero to live website in under a minute.
Get Your API Key
Go to Settings → API Keys and create a new key. Copy the key — it's shown only once.
dpk_live_aBcDeFgHiJkLmNoPqRsTuVwXDeploy Your Site
Send your HTML to the deploy endpoint. Optionally include CSS and JS as separate strings.
curl -X POST https://api.dplooy.com/api/v1/deploy \
-H "Authorization: Bearer dpk_live_..." \
-H "Content-Type: application/json" \
-d '{"html":"<h1>Hello</h1>","name":"demo"}'It's Live!
The API responds with your live URL. That's it — your site is deployed with SSL.
{
"success": true,
"url": "https://my-site.dplooy.com",
"projectId": "a1b2c3d4-...",
"plan": "pro",
"expiresAt": null
}Authentication
All API requests require a valid API key sent as a Bearer token in the Authorization header.
Authorization: Bearer dpk_live_your_key_hereGetting a Key
- Sign in to Dplooy and go to Settings
- Open the API Keys tab
- Click Create API Key, give it a name, and copy the key
Hashed Storage
Keys are SHA-256 hashed, never stored in plain text
Rate Limited
30 requests per minute per IP address
Revocable
Revoke any key instantly from the dashboard
API Reference
Six endpoints to deploy, manage, and inspect your hosted projects.
/deployDeploy an HTML website from code strings. Optionally include separate CSS and JS — they'll be auto-injected into the HTML as linked files.
Request Body (JSON)
| Parameter | Type | Status | Description |
|---|---|---|---|
html | string | Required | HTML content for the page |
css | string | Optional | CSS styles — saved as style.css and linked in <head> |
js | string | Optional | JavaScript — saved as script.js and linked before </body> |
name | string | Optional | Project name for the URL (e.g. 'my-site' → my-site.dplooy.com) |
Response — 201 Created
{
"success": true,
"url": "https://my-site.dplooy.com",
"projectId": "a1b2c3d4-e5f6-...",
"plan": "pro",
"expiresAt": null
}Example
curl -X POST https://api.dplooy.com/api/v1/deploy \
-H "Authorization: Bearer dpk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"html": "<!DOCTYPE html><html><head><title>My Site</title></head><body><h1>Hello World</h1></body></html>",
"css": "h1 { color: teal; font-family: sans-serif; }",
"name": "my-site"
}'/deploy/zipDeploy a complete website from a ZIP archive. The ZIP must contain an index.html at the root. Subdirectories, CSS, JS, images, and fonts are all preserved.
Request Body (multipart/form-data)
| Parameter | Type | Status | Description |
|---|---|---|---|
file | file | Required | ZIP file containing the website (max 500 MB) |
name | string | Optional | Display name for the project |
projectName | string | Optional | URL slug (e.g. 'my-site' → my-site.dplooy.com) |
Response — 201 Created
{
"success": true,
"url": "https://my-site.dplooy.com",
"projectId": "a1b2c3d4-e5f6-...",
"plan": "pro",
"expiresAt": null,
"fileCount": 12,
"warnings": []
}Example
curl -X POST https://api.dplooy.com/api/v1/deploy/zip \
-H "Authorization: Bearer dpk_live_your_key_here" \
-F "file=@website.zip" \
-F "name=my-website" \
-F "projectName=my-website"Code Examples
Copy-paste examples to get started in your language of choice.
Deploy HTML + CSS
curl -X POST https://api.dplooy.com/api/v1/deploy \
-H "Authorization: Bearer dpk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"html": "<!DOCTYPE html><html><head><title>My Site</title></head><body><h1>Hello World</h1></body></html>",
"css": "h1 { color: teal; font-family: sans-serif; }",
"name": "my-site"
}'Deploy ZIP
curl -X POST https://api.dplooy.com/api/v1/deploy/zip \
-H "Authorization: Bearer dpk_live_your_key_here" \
-F "file=@website.zip" \
-F "name=my-website" \
-F "projectName=my-website"List Projects
curl https://api.dplooy.com/api/v1/projects \
-H "Authorization: Bearer dpk_live_your_key_here"Rate Limits & Plans
API limits are based on your plan. Upgrade anytime for higher limits.
| Limit | Free | Plus$4.99/mo | Pro$12.99/mo |
|---|---|---|---|
| Projects | 3 | 25 | Unlimited |
| Max File Size | 5 MB | 50 MB | 100 MB |
| Total Storage | 50 MB | 500 MB | 5 GB |
| Project Expiry | 5 days | Never | Never |
| Rate Limit | 30 req/min | 30 req/min | 30 req/min |
| API Access | ✓ | ✓ | ✓ |
429 Too Many Requests. Wait 60 seconds and retry.Error Handling
All errors return JSON with an error message and a machine-readable code.
{
"error": "Invalid or revoked API key",
"code": "INVALID_API_KEY"
}| Status | Code | Description |
|---|---|---|
| 400 | VALIDATION_FAILED | Missing or invalid request parameters |
| 400 | PROJECT_LIMIT_REACHED | You've hit your plan's project limit |
| 400 | FILE_TOO_LARGE | Content exceeds your plan's file size limit |
| 400 | SECURITY_THREAT_DETECTED | Malicious content detected in HTML |
| 400 | NO_INDEX_HTML | ZIP file must contain an index.html at root |
| 400 | INVALID_FILE_TYPE | Only ZIP files are accepted for /deploy/zip |
| 401 | INVALID_API_KEY | Missing, invalid, or revoked API key |
| 404 | NOT_FOUND | Project does not exist or isn't yours |
| 429 | RATE_LIMITED | Too many requests — wait 60 seconds |
| 500 | DEPLOY_FAILED | Internal error during deployment |