Volt API Reference
Manage GPU pods, fine-tuning jobs, SSH keys, templates, and more via REST API. Supports Lium standard and Targon confidential compute.
Quick Start
Everything you need to make your first API call in under a minute.
Base URL & Authentication
All Volt API endpoints live under a single base URL. Every request must include your API key in the X-API-Key header.
Base URL
https://api.voltagegpu.com/api/voltAuthentication Header
X-API-Key: volt_xxxExample: List Your Pods
curl -X GET \
https://api.voltagegpu.com/api/volt/pods \
-H "X-API-Key: volt_xxx"Response Format
All responses are JSON. Successful requests return 2xx status codes. Errors include a message field describing what went wrong.
Authentication
Secure API key authentication with scoped permissions and rate limiting.
API Key Setup
Generate an API key from the VoltageGPU dashboard. Navigate to Dashboard → API Keys → Generate. Your key is shown once — store it securely.
Header Format
X-API-Key: <your-key>Rate Limits
The API enforces a rate limit of 1,000 requests per hour per API key. Exceeding this limit returns 429 Too Many Requests. The response includes Retry-After header with seconds until the window resets.
Key Permissions
Each API key has access to the following resource scopes:
- pods — Create, read, start, stop, delete GPU pods
- templates — Manage Docker image templates
- ssh-keys — Add and remove SSH public keys
- docker-credentials — Store private registry credentials
- machines — Browse available GPU inventory and pricing
Keep Your Key Secret
Never expose your API key in client-side code, public repositories, or logs. If compromised, revoke it immediately from the dashboard and generate a new one.
Pods API
Create, manage, and control GPU pods across Lium standard and Targon confidential compute providers.
List & Manage Pods
/api/volt/podsList all user pods (Lium + Targon combined)
curl -X GET \
https://api.voltagegpu.com/api/volt/pods \
-H "X-API-Key: volt_xxx"// Response 200
{
"pods": [
{
"id": "pod_abc123",
"name": "training-run-7",
"status": "running",
"provider": "lium",
"gpu_type": "RTX 4090",
"gpu_count": 1,
"cost_per_hour": 0.39,
"created_at": "2026-03-15T10:30:00Z",
"ip": "203.0.113.42",
"ssh_port": 22
}
],
"total": 1
}/api/volt/podsCreate a new Lium standard GPU pod
curl -X POST \
https://api.voltagegpu.com/api/volt/pods \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"machine_id": "mach_rtx4090_01",
"name": "my-training-pod",
"template_id": "tpl_pytorch21",
"ssh_key_ids": ["key_abc123"],
"gpu_count": 1,
"volume_size_gb": 50
}'// Response 201
{
"id": "pod_def456",
"name": "my-training-pod",
"status": "deploying",
"provider": "lium",
"gpu_type": "RTX 4090",
"gpu_count": 1,
"cost_per_hour": 0.39,
"ip": null,
"ssh_port": null,
"template": "pytorch/pytorch:2.1.0-cuda12.1-cudnn8-devel",
"volume_size_gb": 50,
"created_at": "2026-03-28T14:00:00Z"
}/api/volt/podsCreate a Targon confidential compute pod (Intel TDX hardware attestation)
curl -X POST \
https://api.voltagegpu.com/api/volt/pods \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"provider": "targon",
"name": "my-training-server",
"resource_name": "h200-small",
"image": "pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel",
"cost_per_hour": 2.40
}'// Response 201
{
"id": "pod_targon_789",
"name": "my-training-server",
"status": "deploying",
"provider": "targon",
"resource_name": "h200-small",
"gpu_type": "H200",
"cost_per_hour": 2.40,
"image": "pytorch/pytorch:2.5.1-cuda12.4-cudnn9-devel",
"confidential": true,
"attestation": "intel_tdx",
"created_at": "2026-03-28T14:05:00Z"
}Targon Confidential Compute
Targon pods run on Intel TDX hardware with encrypted memory. Data is protected even from the host operator. Available resource names: h200-small, h200-large, b200-small, b200-large.
/api/volt/pods/:idGet full details for a specific pod including IP, ports, and resource usage
curl -X GET \
https://api.voltagegpu.com/api/volt/pods/pod_def456 \
-H "X-API-Key: volt_xxx"// Response 200
{
"id": "pod_def456",
"name": "my-training-pod",
"status": "running",
"provider": "lium",
"gpu_type": "RTX 4090",
"gpu_count": 1,
"cpu_cores": 8,
"ram_gb": 32,
"cost_per_hour": 0.39,
"ip": "203.0.113.42",
"ssh_port": 22,
"template": "pytorch/pytorch:2.1.0-cuda12.1-cudnn8-devel",
"volume_size_gb": 50,
"ssh_keys": ["key_abc123"],
"uptime_hours": 12.5,
"total_cost": 4.88,
"created_at": "2026-03-28T14:00:00Z"
}/api/volt/pods/:id/startStart a stopped pod. Billing resumes when the pod reaches "running" state.
curl -X POST \
https://api.voltagegpu.com/api/volt/pods/pod_def456/start \
-H "X-API-Key: volt_xxx"// Response 200
{
"id": "pod_def456",
"status": "starting",
"message": "Pod is starting. This typically takes 15-30 seconds."
}/api/volt/pods/:id/stopStop a running pod. GPU billing pauses; storage is retained.
curl -X POST \
https://api.voltagegpu.com/api/volt/pods/pod_def456/stop \
-H "X-API-Key: volt_xxx"// Response 200
{
"id": "pod_def456",
"status": "stopping",
"message": "Pod is stopping. Data on /root volume is preserved."
}/api/volt/pods/:idUpdate a pod's name, SSH keys, or volume configuration. Pod must be stopped to change hardware settings.
curl -X PUT \
https://api.voltagegpu.com/api/volt/pods/pod_def456 \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "training-run-v2",
"ssh_key_ids": ["key_abc123", "key_def456"]
}'// Response 200
{
"id": "pod_def456",
"name": "training-run-v2",
"status": "running",
"ssh_keys": ["key_abc123", "key_def456"],
"message": "Pod updated successfully."
}/api/volt/pods/:idPermanently delete a pod and release all resources. This action cannot be undone.
curl -X DELETE \
https://api.voltagegpu.com/api/volt/pods/pod_def456 \
-H "X-API-Key: volt_xxx"// Response 200
{
"id": "pod_def456",
"status": "deleted",
"message": "Pod and all associated resources have been deleted."
}Deletion is Permanent
Deleting a pod destroys the local volume (/root). External volumes mounted at /mnt are preserved. Back up important data before deleting.
Machines
Query available GPU inventory with real-time pricing and hardware specifications.
Available Machines
/api/volt/machinesList all available GPU machines with live pricing, specs, and availability
curl -X GET \
https://api.voltagegpu.com/api/volt/machines \
-H "X-API-Key: volt_xxx"// Response 200
{
"machines": [
{
"id": "mach_rtx4090_01",
"gpu_type": "RTX 4090",
"gpu_count": 4,
"gpu_vram_gb": 24,
"cpu_cores": 32,
"ram_gb": 128,
"storage_gb": 2000,
"cost_per_gpu_hour": 0.39,
"available_gpus": 3,
"location": "US-East",
"provider": "lium"
},
{
"id": "mach_h100_02",
"gpu_type": "H100 80GB",
"gpu_count": 8,
"gpu_vram_gb": 80,
"cpu_cores": 128,
"ram_gb": 512,
"storage_gb": 8000,
"cost_per_gpu_hour": 2.69,
"available_gpus": 4,
"location": "EU-West",
"provider": "lium"
},
{
"id": "mach_h200_targon_01",
"gpu_type": "H200",
"gpu_count": 8,
"gpu_vram_gb": 141,
"cpu_cores": 128,
"ram_gb": 1024,
"storage_gb": 8000,
"cost_per_gpu_hour": 2.40,
"available_gpus": 8,
"location": "US-Central",
"provider": "targon",
"confidential": true
}
],
"total": 3
}Live Pricing
Prices update in real time based on supply and demand. Use this endpoint to find the best deal before deploying a pod. Filter by GPU type in your application logic.
SSH Keys
Manage SSH public keys used for secure shell access to your GPU pods.
SSH Key Management
/api/volt/ssh-keysList all SSH public keys associated with your account
curl -X GET \
https://api.voltagegpu.com/api/volt/ssh-keys \
-H "X-API-Key: volt_xxx"// Response 200
{
"ssh_keys": [
{
"id": "key_abc123",
"name": "work-laptop",
"public_key": "ssh-ed25519 AAAAC3Nz...truncated",
"fingerprint": "SHA256:xR3j8K...",
"created_at": "2026-01-10T08:00:00Z"
}
],
"total": 1
}/api/volt/ssh-keysAdd a new SSH public key to your account
curl -X POST \
https://api.voltagegpu.com/api/volt/ssh-keys \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "ci-server",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG..."
}'// Response 201
{
"id": "key_def456",
"name": "ci-server",
"public_key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG...",
"fingerprint": "SHA256:mK8p2Q...",
"created_at": "2026-03-28T15:00:00Z"
}/api/volt/ssh-keys/:idRemove an SSH key from your account. Running pods keep existing authorized keys until redeployed.
curl -X DELETE \
https://api.voltagegpu.com/api/volt/ssh-keys/key_def456 \
-H "X-API-Key: volt_xxx"// Response 200
{
"id": "key_def456",
"deleted": true,
"message": "SSH key removed from account."
}Templates
Pre-configured Docker image templates for rapid pod deployment.
Template Management
/api/volt/templatesList all templates (system defaults + your custom templates)
curl -X GET \
https://api.voltagegpu.com/api/volt/templates \
-H "X-API-Key: volt_xxx"// Response 200
{
"templates": [
{
"id": "tpl_pytorch21",
"name": "PyTorch 2.1 CUDA 12.1",
"image": "pytorch/pytorch:2.1.0-cuda12.1-cudnn8-devel",
"category": "machine-learning",
"is_system": true,
"description": "Official PyTorch image with CUDA 12.1 and cuDNN 8",
"created_at": "2025-12-01T00:00:00Z"
},
{
"id": "tpl_custom_01",
"name": "My Fine-Tune Image",
"image": "registry.example.com/ml-team/finetune:latest",
"category": "custom",
"is_system": false,
"description": "Custom image for LoRA fine-tuning workflows",
"created_at": "2026-03-20T09:00:00Z"
}
],
"total": 2
}/api/volt/templatesCreate a custom template from any Docker image
curl -X POST \
https://api.voltagegpu.com/api/volt/templates \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Stable Diffusion XL",
"image": "ghcr.io/my-org/sdxl-server:v2.0",
"category": "image-generation",
"description": "SDXL with ComfyUI and all LoRA adapters",
"docker_credential_id": "cred_abc123",
"ports": [8188, 22],
"env_vars": {
"MODEL_DIR": "/workspace/models",
"COMFY_ARGS": "--listen 0.0.0.0"
}
}'// Response 201
{
"id": "tpl_sdxl_02",
"name": "Stable Diffusion XL",
"image": "ghcr.io/my-org/sdxl-server:v2.0",
"category": "image-generation",
"is_system": false,
"ports": [8188, 22],
"created_at": "2026-03-28T15:30:00Z"
}/api/volt/templates/:idGet full details for a specific template including env vars and port mappings
curl -X GET \
https://api.voltagegpu.com/api/volt/templates/tpl_sdxl_02 \
-H "X-API-Key: volt_xxx"// Response 200
{
"id": "tpl_sdxl_02",
"name": "Stable Diffusion XL",
"image": "ghcr.io/my-org/sdxl-server:v2.0",
"category": "image-generation",
"is_system": false,
"description": "SDXL with ComfyUI and all LoRA adapters",
"docker_credential_id": "cred_abc123",
"ports": [8188, 22],
"env_vars": {
"MODEL_DIR": "/workspace/models",
"COMFY_ARGS": "--listen 0.0.0.0"
},
"created_at": "2026-03-28T15:30:00Z"
}/api/volt/templates/:idUpdate a custom template's name, image, ports, or environment variables
curl -X PUT \
https://api.voltagegpu.com/api/volt/templates/tpl_sdxl_02 \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Stable Diffusion XL v2.1",
"image": "ghcr.io/my-org/sdxl-server:v2.1",
"env_vars": {
"MODEL_DIR": "/workspace/models",
"COMFY_ARGS": "--listen 0.0.0.0 --preview-method auto"
}
}'// Response 200
{
"id": "tpl_sdxl_02",
"name": "Stable Diffusion XL v2.1",
"image": "ghcr.io/my-org/sdxl-server:v2.1",
"category": "image-generation",
"is_system": false,
"message": "Template updated. Existing pods are not affected."
}/api/volt/templates/:idDelete a custom template. System templates cannot be deleted.
curl -X DELETE \
https://api.voltagegpu.com/api/volt/templates/tpl_sdxl_02 \
-H "X-API-Key: volt_xxx"// Response 200
{
"id": "tpl_sdxl_02",
"deleted": true,
"message": "Template deleted. Existing pods using this template are not affected."
}Fine-Tuning New
Train any HuggingFace model with your data on decentralized GPUs. Managed infrastructure powered by Bittensor Subnet 56 (Gradients). Pay per hour, results in hours.
Fine-Tuning Jobs
Task Types
text — Supervised fine-tuning on instruction/output pairs. chat — Multi-turn conversation training with chat templates. dpo — Direct Preference Optimization for human-aligned outputs. image — LoRA adaptation for Flux and SDXL diffusion models.
Pricing (per hour of training)
≤1B params: $18.50/hr · ~7B: $27.75/hr · 8-40B: $46.25/hr · 40B+: $92.50/hr · Image LoRA: $9.25/hr. Your account is debited upfront. Full refund if cancelled before training starts.
/api/volt/fine-tuningList all fine-tuning jobs for your account. Optionally filter by status.
curl https://api.voltagegpu.com/api/volt/fine-tuning?status=training \
-H "X-API-Key: volt_xxx"// Response 200
{
"success": true,
"jobs": [
{
"id": "clxyz123...",
"gradientsTaskId": "abc-def-ghi",
"name": "my-llama-finetune",
"baseModel": "meta-llama/Llama-3.1-8B-Instruct",
"taskType": "text",
"status": "training",
"hoursRequested": 2,
"costPerHour": 27.75,
"totalCost": 55.50,
"datasetRepo": "myorg/support-qa",
"outputModelRepo": null,
"createdAt": "2026-03-28T10:00:00Z",
"startedAt": "2026-03-28T10:02:30Z",
"completedAt": null
}
]
}/api/volt/fine-tuningCreate a new fine-tuning job. Your balance is debited immediately.
Text SFT example — instruction/output pairs:
curl -X POST https://api.voltagegpu.com/api/volt/fine-tuning \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "my-llama-finetune",
"taskType": "text",
"model": "meta-llama/Llama-3.1-8B-Instruct",
"dsRepo": "myorg/support-qa",
"hours": 2,
"fieldInstruction": "instruction",
"fieldOutput": "output"
}'Chat SFT example — multi-turn conversation:
curl -X POST https://api.voltagegpu.com/api/volt/fine-tuning \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "my-chat-finetune",
"taskType": "chat",
"model": "meta-llama/Llama-3.1-8B-Instruct",
"dsRepo": "myorg/chat-dataset",
"hours": 3,
"chatTemplate": "llama3",
"fieldConversation": "conversations"
}'DPO Alignment example:
curl -X POST https://api.voltagegpu.com/api/volt/fine-tuning \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "my-dpo-alignment",
"taskType": "dpo",
"model": "meta-llama/Llama-3.1-8B-Instruct",
"dsRepo": "myorg/preference-pairs",
"hours": 4,
"chatTemplate": "llama3",
"fieldPrompt": "prompt",
"fieldChosen": "chosen",
"fieldRejected": "rejected"
}'GRPO example:
curl -X POST https://api.voltagegpu.com/api/volt/fine-tuning \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "my-grpo-alignment",
"taskType": "grpo",
"model": "meta-llama/Llama-3.1-8B-Instruct",
"dsRepo": "myorg/prompts",
"hours": 3,
"chatTemplate": "llama3"
}'Custom Dataset example:
curl -X POST https://api.voltagegpu.com/api/volt/fine-tuning \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "custom-data-train",
"taskType": "custom_chat",
"model": "Qwen/Qwen2.5-7B-Instruct",
"datasetUrl": "https://my-server.com/data.jsonl",
"hours": 2
}'Image LoRA example:
curl -X POST https://api.voltagegpu.com/api/volt/fine-tuning \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "my-flux-lora",
"taskType": "image",
"model": "black-forest-labs/FLUX.1-dev",
"dsRepo": "myorg/product-photos",
"hours": 1,
"imageModelType": "flux"
}'// Response 201
{
"success": true,
"job": {
"id": "clxyz456...",
"gradientsTaskId": "abc-def-ghi",
"name": "my-llama-finetune",
"baseModel": "meta-llama/Llama-3.1-8B-Instruct",
"taskType": "text",
"status": "pending",
"hoursRequested": 2,
"costPerHour": 27.75,
"totalCost": 55.50,
"createdAt": "2026-03-28T16:00:00Z"
}
}Chat Templates
Supported values for chatTemplate: alpaca, chatml, deepseek_v3, gemma3, llama3, llama4, mistral_v3_tekken, phi_4, qwen_25, qwen3.
/api/volt/fine-tuning/:idGet current status of a fine-tuning job. Status is synced live from the training network.
curl https://api.voltagegpu.com/api/volt/fine-tuning/clxyz456 \
-H "X-API-Key: volt_xxx"// Response 200
{
"success": true,
"job": {
"id": "clxyz456...",
"gradientsTaskId": "abc-def-ghi",
"name": "my-llama-finetune",
"baseModel": "meta-llama/Llama-3.1-8B-Instruct",
"taskType": "text",
"status": "training",
"hoursRequested": 2,
"costPerHour": 27.75,
"totalCost": 55.50,
"datasetRepo": "myorg/support-qa",
"outputModelRepo": null,
"createdAt": "2026-03-28T16:00:00Z",
"startedAt": "2026-03-28T16:03:12Z",
"completedAt": null
}
}Job Status Flow
pending → preparing_data → looking_for_nodes → ready → training → evaluating → success. On failure: failure, failure_finding_nodes, node_training_failure. Completed jobs have outputModelRepo set to the HuggingFace repo with your fine-tuned model.
/api/volt/fine-tuning/:idCancel a job. Full refund if training has not started yet (status is pending, preparing_data, idle, or looking_for_nodes).
curl -X DELETE https://api.voltagegpu.com/api/volt/fine-tuning/clxyz456 \
-H "X-API-Key: volt_xxx"// Response 200
{
"success": true,
"message": "Job cancelled and $55.50 refunded to your account",
"job": {
"id": "clxyz456...",
"status": "cancelled"
}
}Refund Policy
Jobs cancelled before training starts receive a full refund. Once training begins, the full cost is committed (the GPU nodes are reserved for your job). Completed jobs push the fine-tuned model to a HuggingFace repository that you can deploy via the VoltageGPU inference API.
Webhooks
Pass a webhookUrl when creating a job to receive a POST notification when the job reaches a terminal state (success, failure, cancelled).
// Include in your POST /api/volt/fine-tuning body:
{
"name": "my-finetune",
"taskType": "text",
"model": "meta-llama/Llama-3.1-8B-Instruct",
"dsRepo": "myorg/dataset",
"hours": 2,
"webhookUrl": "https://your-server.com/webhook/voltagegpu"
}When the job completes, we send a POST to your URL:
// Webhook POST payload
{
"event": "fine_tuning.job.completed",
"jobId": "clxyz456...",
"gradientsTaskId": "abc-def-ghi",
"status": "success",
"baseModel": "meta-llama/Llama-3.1-8B-Instruct",
"outputModelRepo": "voltagegpu/my-finetune-abc123",
"totalCost": 55.50,
"completedAt": "2026-03-28T18:30:00Z"
}Webhook Details
Webhooks are fired once when the job reaches a terminal state (success, failure, cancelled). Your endpoint must respond with a 2xx status within 10 seconds. Webhooks are best-effort — use polling as a fallback for critical workflows. The User-Agent header is set to VoltageGPU-Webhook/1.0.
Docker Credentials
Store private Docker registry credentials so pods can pull custom images.
Registry Credentials
/api/volt/docker-credentialsList all stored Docker registry credentials (passwords are redacted)
curl -X GET \
https://api.voltagegpu.com/api/volt/docker-credentials \
-H "X-API-Key: volt_xxx"// Response 200
{
"credentials": [
{
"id": "cred_abc123",
"name": "GitHub Container Registry",
"registry": "ghcr.io",
"username": "my-org",
"created_at": "2026-02-15T12:00:00Z"
}
],
"total": 1
}/api/volt/docker-credentialsAdd credentials for a private Docker registry
curl -X POST \
https://api.voltagegpu.com/api/volt/docker-credentials \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "AWS ECR Production",
"registry": "123456789.dkr.ecr.us-east-1.amazonaws.com",
"username": "AWS",
"password": "eyJwYXlsb2FkIjoiNGZ..."
}'// Response 201
{
"id": "cred_def456",
"name": "AWS ECR Production",
"registry": "123456789.dkr.ecr.us-east-1.amazonaws.com",
"username": "AWS",
"created_at": "2026-03-28T16:30:00Z"
}/api/volt/docker-credentials/:idGet details for a specific credential (password is always redacted)
curl -X GET \
https://api.voltagegpu.com/api/volt/docker-credentials/cred_abc123 \
-H "X-API-Key: volt_xxx"// Response 200
{
"id": "cred_abc123",
"name": "GitHub Container Registry",
"registry": "ghcr.io",
"username": "my-org",
"created_at": "2026-02-15T12:00:00Z"
}/api/volt/docker-credentials/:idDelete a stored credential. Templates referencing it will fail to pull on next deploy.
curl -X DELETE \
https://api.voltagegpu.com/api/volt/docker-credentials/cred_def456 \
-H "X-API-Key: volt_xxx"// Response 200
{
"id": "cred_def456",
"deleted": true,
"message": "Docker credential removed."
}API Keys
Programmatically manage your Volt API keys. List, create, and revoke keys without leaving the terminal.
API Key Management
/api/volt/api-keysList all API keys for your account (key values are partially redacted)
curl -X GET \
https://api.voltagegpu.com/api/volt/api-keys \
-H "X-API-Key: volt_xxx"// Response 200
{
"api_keys": [
{
"id": "ak_001",
"name": "Production Key",
"key_preview": "volt_...x7f2",
"last_used": "2026-03-28T12:00:00Z",
"created_at": "2026-01-05T08:00:00Z"
}
],
"total": 1
}/api/volt/api-keysGenerate a new API key. The full key is returned only once in this response.
curl -X POST \
https://api.voltagegpu.com/api/volt/api-keys \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"name": "CI/CD Pipeline"
}'// Response 201
{
"id": "ak_002",
"name": "CI/CD Pipeline",
"key": "volt_sk_live_a1b2c3d4e5f6g7h8i9j0...",
"created_at": "2026-03-28T17:00:00Z",
"message": "Store this key securely. It will not be shown again."
}Save Your Key Immediately
The full API key is only returned in the creation response. Store it in a secrets manager or environment variable. If lost, delete the key and create a new one.
/api/volt/api-keysRevoke an API key by ID. Pass the key ID in the request body. Takes effect immediately.
curl -X DELETE \
https://api.voltagegpu.com/api/volt/api-keys \
-H "X-API-Key: volt_xxx" \
-H "Content-Type: application/json" \
-d '{
"key_id": "ak_002"
}'// Response 200
{
"id": "ak_002",
"deleted": true,
"message": "API key revoked. Any requests using this key will now return 401."
}Error Codes
Standard HTTP status codes returned by the Volt API with their meanings.
HTTP Status Reference
| Code | Status | Description |
|---|---|---|
| 200 | OK | Request succeeded. Response body contains the requested data. |
| 201 | Created | Resource created successfully (pods, keys, templates, jobs). |
| 400 | Bad Request | Invalid request body or missing required fields. Check the message field for details. |
| 401 | Unauthorized | Missing or invalid API key. Ensure the X-API-Key header is set correctly. |
| 402 | Payment Required | Insufficient account balance to perform the action. Add funds via the billing page. |
| 404 | Not Found | The requested resource does not exist or does not belong to your account. |
| 429 | Too Many Requests | Rate limit exceeded (1,000 req/hour). Wait for the Retry-After period. |
| 500 | Internal Server Error | Unexpected server error. Retry with exponential backoff. Contact support if persistent. |
| 502 | Bad Gateway | Upstream provider (Lium/Targon) temporarily unavailable. Retry after a few seconds. |
Error Response Format
// All errors follow this structure
{
"error": true,
"status": 401,
"message": "Invalid API key. Generate a new key at Dashboard > API Keys.",
"code": "INVALID_API_KEY"
}Retry Strategy
For 429, 500, and 502 errors, implement exponential backoff starting at 1 second with a maximum of 5 retries. The Retry-After header is included on rate-limited responses.
Ready to Build with the Volt API?
Generate your API key and deploy your first pod in under 60 seconds.