The Bare Metal GPU API lets you programmatically browse GPU offers, deploy bare metal instances, manage SSH keys, create persistent storage volumes, and monitor your wallet balance. All endpoints are authenticated via API key.
https://dash.packet.ai/api/v1/inventory
Authentication
All requests require a Packet.ai API key passed as a Bearer token in the Authorization header.
You can generate an API key from your Dashboard under Settings → API Keys.
curl https://dash.packet.ai/api/v1/inventory/offers \ -H "Authorization: Bearer pk_live_your_api_key_here"
API keys use the prefix pk_live_. Keep your key secret — it provides full access to your account.
Rate Limits
API requests are rate-limited per key. Limits vary by operation type:
| Operation | Limit |
|---|---|
| Read (GET) | 60 requests/minute |
| Write (POST/PATCH/DELETE) | 20 requests/minute |
| Deploy (launch instances) | 5 requests/minute |
Rate limit headers (X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset) are included in every response.
GPU Offers
Browse available GPU hardware with real-time pricing and availability.
Deployments
Create, monitor, and terminate GPU deployments. A $50 minimum wallet balance is required to deploy.
Deployments have a 25-minute minimum runtime. If you try to terminate before 25 minutes, the API will return an error with the remaining wait time. Early termination within the first hour receives a prorated refund.
SSH Keys
Manage SSH keys used for connecting to your deployments.
Storage Volumes
Create persistent storage volumes that survive deployment termination. Volumes can be attached and detached from active deployments.
Wallet
Check your wallet balance and active deployment costs.
Quick Start Example
Deploy a bare metal GPU instance in three steps:
1. Add your SSH key
curl -X POST https://dash.packet.ai/api/v1/inventory/ssh-keys \
-H "Authorization: Bearer pk_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"name": "my-laptop",
"publicKey": "ssh-ed25519 AAAA... user@machine"
}'2. Browse available GPUs
curl https://dash.packet.ai/api/v1/inventory/offers?search=b200 \ -H "Authorization: Bearer pk_live_your_key"
3. Deploy
curl -X POST https://dash.packet.ai/api/v1/inventory/deployments \
-H "Authorization: Bearer pk_live_your_key" \
-H "Content-Type: application/json" \
-d '{
"provider": "voltage-park",
"offerId": "off_abc123",
"gpuType": "NVIDIA B200",
"gpuCount": 8,
"region": "dallas-usa-5",
"operatingSystem": "Ubuntu 22.04",
"instanceType": "BARE_METAL",
"ssh_public_key": "ssh-ed25519 AAAA... user@machine",
"name": "my-training-run"
}'4. Connect via SSH
# Once status is "running", connect using the IP from the response: ssh root@203.0.113.42
Error Responses
All error responses follow a consistent format:
{
"success": false,
"error": {
"code": "INSUFFICIENT_BALANCE",
"message": "Insufficient balance. You need at least $50.00 to deploy."
}
}| HTTP Code | Meaning |
|---|---|
| 400 | Bad request — missing or invalid parameters |
| 401 | Unauthorized — invalid or missing API key |
| 402 | Payment required — insufficient wallet balance |
| 404 | Not found — resource doesn't exist or doesn't belong to you |
| 429 | Rate limited — too many requests |
| 500 | Internal server error |
| 503 | Service unavailable — GPU marketplace temporarily down |
