The Dublyo API is coming soon.

The endpoints below show what's planned. Want early access? Contact us.

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.

Base URL
https://api.dublyo.com/v1
Format
JSON
Protocol
HTTPS only
Rate Limit
100 req/min

Authentication

All API requests require a Bearer token in the Authorization header. You can generate API keys from your dashboard settings.

Request Header
Authorization: Bearer your_api_key_here
Example Request
# List your servers
curl https://api.dublyo.com/v1/servers \
  -H "Authorization: Bearer dbl_sk_abc123..."

Servers

Create, list, and manage your cloud servers.

GET/v1/serversSoon

Returns a list of all servers in your account.

Response200 OK
{
  "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"
    }
  ]
}
POST/v1/serversSoon

Create a new server.

Body Parameters
namestringrequired

A name for the server (e.g., "production-1").

typestringrequired

Server type. One of: cx22, cx32, cx42.

regionstringoptional

Data center region. One of: nbg1 (Nuremberg), fsn1 (Falkenstein), hel1 (Helsinki). Default: nbg1.

Request
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"
  }'
Response201 Created
{
  "server": {
    "id": "srv_x9y8z7",
    "name": "production-1",
    "type": "cx22",
    "status": "provisioning",
    "region": "nbg1",
    "created_at": "2026-02-07T14:00:00Z"
  }
}
DELETE/v1/servers/:idSoon

Delete a server and all its deployments. This action is irreversible.

Response204 No Content
# Empty response body

Deployments

Deploy apps, check status, and manage running deployments.

GET/v1/deploymentsSoon

List all deployments across your servers.

Response200 OK
{
  "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"
    }
  ]
}
POST/v1/deploymentsSoon

Deploy an app from a template or GitHub repository.

Body Parameters
server_idstringrequired

The server to deploy to.

templatestringoptional

Template slug (e.g., "wordpress", "n8n", "postgresql"). Required if github_repo is not set.

github_repostringoptional

GitHub repository in owner/repo format. Required if template is not set.

namestringoptional

App name. Auto-generated if not provided.

envobjectoptional

Environment variables as key-value pairs.

Example — Deploy from template
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"
    }
  }'
Example — Deploy from GitHub
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"
  }'
POST/v1/deployments/:id/actionsSoon

Perform an action on a deployment.

Body Parameters
actionstringrequired

One of: "restart", "stop", "start", "redeploy".

Example
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" }'
DELETE/v1/deployments/:idSoon

Delete a deployment permanently. All app data will be removed.

Templates

Browse available app templates.

GET/v1/templatesSoon

List all available templates.

Query Parameters
categorystringoptional

Filter by category (e.g., "database", "cms", "analytics").

searchstringoptional

Search templates by name or description.

Response200 OK
{
  "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.

GET/v1/billing/creditsSoon

Get your current credit balance.

Response200 OK
{
  "credits": 1250,
  "credits_usd": "$12.50",
  "estimated_days_remaining": 45
}
GET/v1/billing/usageSoon

Get your current month's usage breakdown.

Response200 OK
{
  "usage": {
    "servers": 380,
    "builds": 12,
    "storage": 5,
    "total": 397
  },
  "period": "2026-02"
}

Webhooks

Receive real-time notifications when events happen in your account.

POST/v1/webhooksSoon

Register a webhook URL to receive event notifications.

Available Events
server.ready

Server finished provisioning and is ready.

deployment.started

A deployment has started building.

deployment.live

A deployment is live and accessible.

deployment.failed

A deployment failed to start.

credits.low

Credit balance dropped below 50 credits.

Webhook Payload Example
{
  "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 Response Format
{
  "error": {
    "code": "insufficient_credits",
    "message": "Your account does not have enough credits for this action."
  }
}
StatusMeaning
200Success
201Resource created
204Deleted (no content)
400Bad request — check your parameters
401Unauthorized — invalid or missing API key
403Forbidden — you don't have access to this resource
404Not found — the resource doesn't exist
422Validation error — check the error message for details
429Rate limited — slow down, try again in a few seconds
500Server error — something went wrong on our side

Get Early Access

The API is currently in development. Want to be the first to use it?