Base URL: https://dcdncloud.com/api/v1/compute
All endpoints require Authorization: Bearer YOUR_TOKEN unless noted.
| Method | Endpoint | Description |
|---|---|---|
| GET | /plans | List available plans |
| GET | /images | List OS images |
| GET | /regions | List regions with node counts |
| GET | /templates | List deploy templates |
| GET | /instances | List your instances |
| POST | /instances | Create instance |
| GET | /instances/{id} | Get instance details |
| POST | /instances/{id}/start | Start stopped instance |
| POST | /instances/{id}/stop | Stop running instance |
| POST | /instances/{id}/restart | Restart instance |
| POST | /instances/{id}/reset-password | Reset root password |
| POST | /instances/{id}/ssh-key | Add SSH key to instance |
| DELETE | /instances/{id} | Destroy instance |
Returns all available VPS plans (shared and dedicated).
curl https://dcdncloud.com/api/v1/compute/plans \ -H "Authorization: Bearer TOKEN"
Response:
{
"plans": [
{
"id": "nano",
"vcpus": 1,
"ram_mb": 512,
"disk_gb": 10,
"bandwidth_tb": 0.5,
"price_usd": 2.0,
"cpu_type": "shared",
"dedicated_ip": false
}
]
}
Returns available OS images (15 images).
curl https://dcdncloud.com/api/v1/compute/images \ -H "Authorization: Bearer TOKEN"
Response:
{
"images": [
{"id": "ubuntu-22.04", "name": "Ubuntu 22.04 LTS"},
{"id": "debian-12", "name": "Debian 12 (Bookworm)"},
...
]
}
Returns available regions and node count per region.
curl https://dcdncloud.com/api/v1/compute/regions \ -H "Authorization: Bearer TOKEN"
Response:
{
"regions": [
{"id": "eu-central", "nodes": 2},
{"id": "eu-west", "nodes": 1},
{"id": "us-east", "nodes": 1},
{"id": "us-west", "nodes": 1},
{"id": "sa-east", "nodes": 3}
]
}
Create a new VPS instance.
Request body:
{
"name": "my-server", // required, unique per user
"plan": "s-small", // required (see /plans)
"image": "ubuntu-22.04", // required (see /images)
"region": "eu-central", // required (see /regions)
"cpu_type": "shared", // optional: "shared" (default) or "dedicated"
"ssh_keys": ["ssh-ed25519 AAAA..."], // optional
"redundant": false // optional: deploy on 2 nodes
}
Response:
{
"id": "274e036b-7f26-49db-947e-1f81e67d2630",
"name": "my-server",
"status": "creating",
"plan": "s-small",
"image": "ubuntu-22.04",
"region": "eu-central",
"node": "node-eu-west-2",
"ip_address": "31.97.109.213",
"ssh_port": 22001,
"ssh_command": "ssh root@31.97.109.213 -p 22001",
"root_password": "E7b4NVJ69sORhs-vfPRZ4A",
"hostname": "my-server.compute.dcdncloud.com",
"monthly_cost_usd": 5.0,
"message": "Instance is being created. SSH will be available in ~30 seconds."
}
⚠️ The root_password is shown only once. Save it immediately.
List all your instances.
curl https://dcdncloud.com/api/v1/compute/instances \ -H "Authorization: Bearer TOKEN"
Get details of a specific instance including status, SSH info, and resource usage.
Start a stopped instance.
curl -X POST https://dcdncloud.com/api/v1/compute/instances/{id}/start \
-H "Authorization: Bearer TOKEN"
Stop a running instance. Storage is retained, no compute charges while stopped.
Restart (stop + start) a running instance.
Generate a new root password. The old password is invalidated.
Response:
{"root_password": "newRandomPassword123"}
Add an SSH public key to an existing instance.
{
"public_key": "ssh-ed25519 AAAAC3Nza..."
}
Permanently destroy an instance and all its data. This action cannot be undone.
curl -X DELETE https://dcdncloud.com/api/v1/compute/instances/{id} \
-H "Authorization: Bearer TOKEN"
Response:
{"status": "destroyed", "message": "Instance has been permanently destroyed"}
| Method | Endpoint | Description |
|---|---|---|
| GET | /earnings/node/{node_id} | View earnings for a node |
| GET | /earnings/summary | Earnings summary across all nodes |
| POST | /earnings/payout | Request earnings payout |
| GET | /earnings/token-info | DCDN token distribution info |
| Code | Meaning |
|---|---|
401 | Unauthorized — invalid or missing token |
400 | Bad request — invalid plan, image, or region |
402 | Insufficient credits |
404 | Instance not found |
409 | Name already in use |
API calls are rate-limited to 60 requests/minute per user. Exceeding the limit returns 429 Too Many Requests.