API Changelog
A record of breaking changes, deprecations, and new additions to the Huddle01 Cloud API.
All notable changes to the Cloud API are documented here. Dates follow YYYY-MM-DD format.
2026-04-22
Breaking changes
GET /instances · GET /instances/{id} — flavor_id field renamed to flavor
The instance object previously returned flavor_id (an opaque OpenStack UUID). It now returns flavor — the human-readable flavor name (e.g. "anton-2").
{
"id": "abc123",
"name": "my-vm",
- "flavor_id": "c1f52b0a-4a3d-4b2e-9d1e-8f3a2c6e7d4f",
+ "flavor": "anton-2",
"vcpus": 2,
"ram": 4096,
...
}Migration: Update any code that reads instance.flavor_id to read instance.flavor instead.
New features
POST /instances — accept flavor and image by name
The create endpoint now accepts human-readable names in addition to raw OpenStack IDs. Using names is the recommended approach going forward.
| Field | Status | Description |
|---|---|---|
flavor_name | New (preferred) | Flavor name, e.g. "anton-2", "anton-4" |
image_name | New (preferred) | Image name, e.g. "ubuntu-22.04" |
flavor_id | Deprecated | Raw OpenStack flavor UUID — still accepted, see deprecations below |
image_id | Deprecated | Raw OpenStack image UUID — still accepted, see deprecations below |
At least one of flavor_name / flavor_id is required, and at least one of image_name / image_id is required. If both are provided, the name field takes priority.
Example request using names:
curl -X POST "https://cloud.huddleapis.com/api/v1/instances" \
-H "x-api-key: $HUDDLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "my-vm",
"flavor_name": "anton-2",
"image_name": "ubuntu-22.04",
"boot_disk_size": 30,
"key_name": ["my-key"],
"sg_names": ["default"],
"region": "eu2"
}'POST /instances — deprecation_notices in response
When a deprecated field (flavor_id or image_id) is used in a create request, the response now includes a deprecation_notices array with migration guidance. The field is omitted when no deprecated fields are used.
{
"id": "abc123",
"name": "my-vm",
...
"deprecation_notices": [
"The 'flavor_id' field is deprecated and will be removed in a future version. Please use 'flavor_name' instead (e.g. \"anton-2\")."
]
}GET /instances · GET /instances/{id} — private IPs included in networks.v4
The networks.v4 array now contains both private ("fixed") and public ("floating") IPv4 addresses. Previously only floating (public) IPs were returned.
Each entry has a type field ("fixed" or "floating") to distinguish them:
{
"networks": {
"v4": [
{ "ip_address": "10.10.1.70", "type": "fixed" },
{ "ip_address": "148.113.4.91", "type": "floating" }
],
"v6": []
}
}Check your IP filtering logic
If your code accesses networks.v4[0] to get the public IP, it may now get the private IP instead.
Filter by type === "floating" to reliably select the public address.
Deprecations
The following fields are deprecated and will be removed in a future version. They continue to work today but emit a deprecation_notices entry in the response.
| Deprecated field | Replacement | Endpoint |
|---|---|---|
flavor_id (request) | flavor_name | POST /instances |
image_id (request) | image_name | POST /instances |