Skip to main content

Documentation Index

Fetch the complete documentation index at: https://hubify.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Pods API

Shipped today: GET /v1/pods (list), POST /v1/pods/{id}/start, POST /v1/pods/{id}/stop. Lab cost summary lives at GET /v1/costs. Per-pod sub-routes documented below (GET /v1/pods/{id}, /restart, /ssh, /terminate, /pods/costs) are planned, not yet live. Use the web app’s Pods view for SSH and termination today.
Pods are GPU compute instances provisioned on RunPod. They boot with your lab’s environment, run experiments, and tear down when finished. The Pods API gives you full control over the lifecycle, SSH access, and cost monitoring.

Pod Status

StatusDescription
creatingPod is being provisioned on RunPod
runningPod is online and executing or idle
stoppedPod has been stopped (can be restarted)
terminatedPod has been permanently terminated

Create a Pod

Provision a new GPU pod.
labId
string
required
Lab this pod belongs to.
gpuType
string
required
GPU type: H200, H100, A100.
gpuCount
number
default:1
Number of GPUs. Multi-GPU pods available for H100 and A100.
maxHours
number
Maximum runtime in hours. Pod auto-terminates after this limit. Omit for no limit (controlled by budget).
image
string
default:"hubify/base:latest"
Docker image for the pod environment.
env
object
Environment variables to set on the pod.
volumeSize
number
default:50
Persistent volume size in GB.
curl -X POST https://www.hubify.com/api/v1/pods \
  -H "Authorization: Bearer $HUBIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "labId": "j57a8k9m2n3p4q5r",
    "gpuType": "H200",
    "maxHours": 8,
    "env": {
      "COBAYA_PACKAGES": "/workspace/packages",
      "EXPERIMENT_ID": "EXP-054"
    },
    "volumeSize": 100
  }'
data
object

List Pods

labId
string
required
Lab ID.
status
string
Filter by status: creating, running, stopped, terminated.
curl "https://www.hubify.com/api/v1/pods?labId=j57a8k9m2n3p4q5r&status=running" \
  -H "Authorization: Bearer $HUBIFY_TOKEN"

Get Pod Status

Detailed status including GPU utilization, memory, and idle time.
curl https://www.hubify.com/api/v1/pods/pod_abc123 \
  -H "Authorization: Bearer $HUBIFY_TOKEN"
data
object

SSH Configuration

Once a pod is running, SSH credentials are available in the pod details.
curl https://www.hubify.com/api/v1/pods/pod_abc123/ssh \
  -H "Authorization: Bearer $HUBIFY_TOKEN"
# Connect via SSH
ssh root@205.196.19.52 -p 11452

Stop a Pod

Stop a running pod. The persistent volume is preserved. The pod can be restarted later.
curl -X POST https://www.hubify.com/api/v1/pods/pod_abc123/stop \
  -H "Authorization: Bearer $HUBIFY_TOKEN"

Restart a Pod

Restart a stopped pod with the same configuration.
curl -X POST https://www.hubify.com/api/v1/pods/pod_abc123/restart \
  -H "Authorization: Bearer $HUBIFY_TOKEN"

Terminate a Pod

Permanently terminate a pod. The persistent volume is retained for 7 days, then deleted.
Termination is irreversible. Make sure experiment results have been synced back to the lab before terminating.
curl -X POST https://www.hubify.com/api/v1/pods/pod_abc123/terminate \
  -H "Authorization: Bearer $HUBIFY_TOKEN"

GPU Types and Pricing

GPUVRAMCost/hr (approx.)Best For
H200141 GB$4.00Large MCMC, foundation models, multi-survey sweeps
H10080 GB$2.50Training runs, medium MCMC, anomaly detection
A10080 GB$1.50General GPU compute, smaller models
Prices are approximate and depend on RunPod availability. Actual costs are tracked in the cost_tracking table and visible via the cost endpoints.

Cost Tracking

Get Current Month Costs

curl "https://www.hubify.com/api/v1/pods/costs?labId=j57a8k9m2n3p4q5r&month=current" \
  -H "Authorization: Bearer $HUBIFY_TOKEN"
data
object

Idle Detection

Hubify monitors GPU utilization and alerts you when pods are sitting idle. This is accessible through the pod status endpoint (the idleMinutes field) and triggers notifications when a configurable threshold is exceeded.
An idle GPU is a violation of the Hubify Labs philosophy. The system will suggest queued experiments to deploy on idle pods, and auto-deploy if you have auto-schedule enabled.

Configure Idle Threshold

PATCH /api/v1/labs/{slug}/settings is planned — not yet shipped. Configure idle thresholds via Settings in the web app. The auto-stop cron (shipped in v1.3.1) uses a default 6-hour threshold.
curl -X PATCH https://www.hubify.com/api/v1/labs/dark-energy/settings \
  -H "Authorization: Bearer $HUBIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"idleAlertMinutes": 15, "autoScheduleEnabled": true}'