Blue Lobster API
Programmatically create, manage, and delete GPU and CPU instances.
Base URL: https://api.bluelobster.ai/api/v1
All endpoints require authentication via X-API-Key header. Log in to create API keys.
API Endpoints
Instances
Backups
Tasks
Endpoint Reference
List all active instances for your account.
{
"uuid": "vm-abc123",
"name": "my-instance",
"ip_address": "192.168.1.100",
"cpu_cores": 8,
"memory": 32,
"storage": 100,
"gpu_count": 1,
"gpu_model": "RTX A4000",
"power_status": "running",
"created_at": "2024-01-15T10:30:00Z"
}
Create a new instance using a standard configuration.
Parameters
| Name | Type | Description |
|---|---|---|
| region required | body | Region to deploy in (e.g., 'us-east-1') |
| instance_type required | body | Instance type (e.g., 'gpu_1x_a4000') |
| ssh_key required | body | SSH public key for access |
| name | body | Custom instance name |
| username | body | Login username (default: ubuntu) |
| metadata | body | Key-value pairs for organization |
{
"region": "us-east-1",
"instance_type": "gpu_1x_a4000",
"ssh_key": "ssh-rsa AAAA...",
"name": "my-gpu-instance",
"username": "ubuntu",
"metadata": {
"project": "ml-training"
}
}
{
"task_id": "task_abc123",
"vm_uuid": "vm_xyz789",
"assigned_ip": "192.168.1.100",
"status": "PENDING"
}
Get details for a specific instance.
Parameters
| Name | Type | Description |
|---|---|---|
| id required | path | Instance UUID |
{
"uuid": "vm-abc123",
"name": "my-instance",
"ip_address": "192.168.1.100",
"cpu_cores": 8,
"memory": 32,
"storage": 100,
"gpu_count": 1,
"gpu_model": "RTX A4000",
"power_status": "running",
"region": "us-east-1",
"created_at": "2024-01-15T10:30:00Z"
}
Permanently delete an instance. **This action is irreversible.**
Parameters
| Name | Type | Description |
|---|---|---|
| id required | path | Instance UUID |
{
"task_id": "task_abc123",
"status": "PENDING",
"message": "Instance deletion queued"
}
Perform a hard reboot of the specified instance.
Parameters
| Name | Type | Description |
|---|---|---|
| id required | path | Instance UUID |
{
"task_id": "task_abc123",
"status": "PENDING",
"message": "VM reboot queued",
"instance_id": "vm-abc123"
}
List all available instance types with current capacity by region.
{
"data": [
{
"id": "gpu_1x_a4000",
"instance_type": {
"name": "gpu_1x_a4000",
"description": "Single GPU Instance",
"price_cents_per_hour": 45,
"specs": {
"vcpus": 8,
"memory_gib": 32,
"storage_gib": 250,
"gpus": 1,
"gpu_model": "A4000"
}
},
"regions_with_capacity_available": [...]
}
]
}
Update the display name of an existing instance.
Parameters
| Name | Type | Description |
|---|---|---|
| id required | path | Instance UUID |
| name required | body | New name (3-64 chars, alphanumeric with hyphens/underscores) |
{
"name": "my-production-server"
}
{
"message": "Instance renamed successfully",
"instance_id": "vm-abc123",
"new_name": "my-production-server"
}
Get real-time CPU, memory, disk I/O, and network statistics.
Parameters
| Name | Type | Description |
|---|---|---|
| id required | path | Instance UUID |
{
"instance_id": "vm-abc123",
"status": "running",
"cpu": {"usage_percent": 25.5, "cores": 8},
"memory": {
"used_bytes": 8589934592,
"total_bytes": 17179869184,
"usage_percent": 50.0
},
"disk": {"read_bytes_sec": 1048576, "write_bytes_sec": 524288},
"network": {"in_bytes_sec": 102400, "out_bytes_sec": 51200},
"uptime_seconds": 86400
}
Get a VNC proxy ticket for remote console access.
Parameters
| Name | Type | Description |
|---|---|---|
| id required | path | Instance UUID |
{
"instance_id": "vm-abc123",
"ticket": "PVEVNC:...",
"port": 5900,
"host": "phl-gpu-01.bluelobster.ai"
}
Create a backup of the instance. The instance continues running during backup.
Parameters
| Name | Type | Description |
|---|---|---|
| id required | path | Instance UUID |
{
"message": "Backup started",
"task_id": "task_abc123",
"instance_id": "vm-abc123"
}
List all available backups for an instance.
Parameters
| Name | Type | Description |
|---|---|---|
| id required | path | Instance UUID |
{
"instance_id": "vm-abc123",
"storage": "wil-pbs-01",
"backups": [
{
"volid": "wil-pbs-01:backup/vm/100/2024-01-15T10:30:00Z",
"size_bytes": 48530000000,
"size_human": "45.2 GB",
"created_at": "2024-01-15T10:30:00Z",
"format": "pbs-vm"
}
],
"total": 1,
"backup_in_progress": null,
"restore_in_progress": null
}
Restore an instance from a backup. **WARNING: This overwrites all current data.**
Parameters
| Name | Type | Description |
|---|---|---|
| id required | path | Instance UUID |
| backup_volid required | body | Volume ID of backup to restore (from list backups) |
{
"backup_volid": "wil-pbs-01:backup/vm/100/2024-01-15T10:30:00Z"
}
{
"message": "Restore started",
"task_id": "task_abc123",
"instance_id": "vm-abc123",
"backup_volid": "wil-pbs-01:backup/vm/100/2024-01-15T10:30:00Z"
}
List recent tasks for your account.
Parameters
| Name | Type | Description |
|---|---|---|
| limit | query | Max results (default: 50, max: 100) |
| days | query | Days to look back (default: 1, max: 7) |
| status | query | Filter: PENDING, PROCESSING, COMPLETED, FAILED |
{
"tasks": [
{
"task_id": "task_abc123",
"status": "COMPLETED",
"operation": "create_instance",
"created_at": "2024-01-15T10:30:00Z"
}
],
"total": 1,
"limit": 50
}
Get status of an async task (instance creation, deletion, etc.).
Parameters
| Name | Type | Description |
|---|---|---|
| id required | path | Task ID |
{
"task_id": "task_abc123",
"status": "COMPLETED",
"operation": "create_instance",
"vm_uuid": "vm_xyz789",
"ip_address": "192.168.1.100",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:32:00Z"
}
Check API and service health status.
{
"status": "healthy",
"timestamp": "2024-01-15T10:30:00Z"
}
Reference
Task States
Async operations return a task_id. Poll the task endpoint to check status:
| PENDING | Task queued for processing |
| PROCESSING | Task actively executing |
| COMPLETED | Task finished successfully |
| FAILED | Task encountered an error |
Recommended polling interval: 2-5 seconds
Error Handling
All errors return JSON with error and message fields:
{"error": "unauthorized", "message": "Invalid or missing API key"}
Status Codes
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing API key |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Resource doesn't exist |
| 409 | Conflict - Resource unavailable |
| 500 | Server Error |