API Overview
The Dublyo REST API will let you manage servers, deployments, templates, and billing programmatically. Build custom workflows, integrate with CI/CD pipelines, or create your own deployment tools.
https://api.dublyo.com/v1JSONHTTPS only100 req/minAuthentication
All API requests require a Bearer token in the Authorization header. You can generate API keys from your dashboard settings.
Authorization: Bearer your_api_key_here
# List your servers curl https://api.dublyo.com/v1/servers \ -H "Authorization: Bearer dbl_sk_abc123..."
Servers
Create, list, and manage your cloud servers.
/v1/serversSoonReturns a list of all servers in your account.
{
"servers": [
{
"id": "srv_a1b2c3",
"name": "my-server",
"type": "cx22",
"type_label": "Starter",
"status": "running",
"ip": "168.119.xx.xx",
"region": "nbg1",
"region_label": "Nuremberg, Germany",
"created_at": "2026-01-15T10:30:00Z"
}
]
}/v1/serversSoonCreate a new server.
namestringrequiredA name for the server (e.g., "production-1").
typestringrequiredServer type. One of: cx22, cx32, cx42.
regionstringoptionalData center region. One of: nbg1 (Nuremberg), fsn1 (Falkenstein), hel1 (Helsinki). Default: nbg1.
curl -X POST https://api.dublyo.com/v1/servers \ -H "Authorization: Bearer dbl_sk_abc123..." \ -H "Content-Type: application/json" \ -d '{ "name": "production-1", "type": "cx22", "region": "nbg1" }'
{
"server": {
"id": "srv_x9y8z7",
"name": "production-1",
"type": "cx22",
"status": "provisioning",
"region": "nbg1",
"created_at": "2026-02-07T14:00:00Z"
}
}/v1/servers/:idSoonDelete a server and all its deployments. This action is irreversible.
# Empty response bodyDeployments
Deploy apps, check status, and manage running deployments.
/v1/deploymentsSoonList all deployments across your servers.
{
"deployments": [
{
"id": "dep_m4n5o6",
"name": "my-blog",
"status": "running",
"domain": "my-blog.dublyo.co",
"server_id": "srv_a1b2c3",
"template": "wordpress",
"created_at": "2026-01-20T09:15:00Z"
}
]
}/v1/deploymentsSoonDeploy an app from a template or GitHub repository.
server_idstringrequiredThe server to deploy to.
templatestringoptionalTemplate slug (e.g., "wordpress", "n8n", "postgresql"). Required if github_repo is not set.
github_repostringoptionalGitHub repository in owner/repo format. Required if template is not set.
namestringoptionalApp name. Auto-generated if not provided.
envobjectoptionalEnvironment variables as key-value pairs.
curl -X POST https://api.dublyo.com/v1/deployments \ -H "Authorization: Bearer dbl_sk_abc123..." \ -H "Content-Type: application/json" \ -d '{ "server_id": "srv_a1b2c3", "template": "wordpress", "name": "my-blog", "env": { "WORDPRESS_ADMIN_EMAIL": "me@example.com" } }'
curl -X POST https://api.dublyo.com/v1/deployments \ -H "Authorization: Bearer dbl_sk_abc123..." \ -H "Content-Type: application/json" \ -d '{ "server_id": "srv_a1b2c3", "github_repo": "acme/my-app", "name": "my-app" }'
/v1/deployments/:id/actionsSoonPerform an action on a deployment.
actionstringrequiredOne of: "restart", "stop", "start", "redeploy".
curl -X POST https://api.dublyo.com/v1/deployments/dep_m4n5o6/actions \ -H "Authorization: Bearer dbl_sk_abc123..." \ -H "Content-Type: application/json" \ -d '{ "action": "restart" }'
/v1/deployments/:idSoonDelete a deployment permanently. All app data will be removed.
Templates
Browse available app templates.
/v1/templatesSoonList all available templates.
categorystringoptionalFilter by category (e.g., "database", "cms", "analytics").
searchstringoptionalSearch templates by name or description.
{
"templates": [
{
"slug": "wordpress",
"name": "WordPress",
"description": "The world's most popular CMS",
"categories": ["cms"],
"min_memory_mb": 512,
"min_cpu_cores": 1,
"env_vars": [
{
"key": "WORDPRESS_ADMIN_EMAIL",
"label": "Admin Email",
"required": true
}
]
}
]
}Billing
Check your credit balance and usage.
/v1/billing/creditsSoonGet your current credit balance.
{
"credits": 1250,
"credits_usd": "$12.50",
"estimated_days_remaining": 45
}/v1/billing/usageSoonGet your current month's usage breakdown.
{
"usage": {
"servers": 380,
"builds": 12,
"storage": 5,
"total": 397
},
"period": "2026-02"
}Webhooks
Receive real-time notifications when events happen in your account.
/v1/webhooksSoonRegister a webhook URL to receive event notifications.
server.readyServer finished provisioning and is ready.
deployment.startedA deployment has started building.
deployment.liveA deployment is live and accessible.
deployment.failedA deployment failed to start.
credits.lowCredit balance dropped below 50 credits.
{
"event": "deployment.live",
"timestamp": "2026-02-07T14:32:00Z",
"data": {
"deployment_id": "dep_m4n5o6",
"name": "my-blog",
"domain": "my-blog.dublyo.co",
"server_id": "srv_a1b2c3"
}
}Errors
The API uses standard HTTP status codes. Error responses include a JSON body with details.
{
"error": {
"code": "insufficient_credits",
"message": "Your account does not have enough credits for this action."
}
}| Status | Meaning |
|---|---|
200 | Success |
201 | Resource created |
204 | Deleted (no content) |
400 | Bad request — check your parameters |
401 | Unauthorized — invalid or missing API key |
403 | Forbidden — you don't have access to this resource |
404 | Not found — the resource doesn't exist |
422 | Validation error — check the error message for details |
429 | Rate limited — slow down, try again in a few seconds |
500 | Server error — something went wrong on our side |
Get Early Access
The API is currently in development. Want to be the first to use it?