gpuai.shop
Documentation

API and platform reference

Everything the console does is a public API call. Base URL is https://api.gpuai.shop/v1, authentication is a bearer token from the console.

Authentication

Create a token in the console under Settings. Pass it as a bearer token on every request. Tokens are scoped per project and can be revoked without affecting running instances.

export GPUAI_TOKEN=sk_proj_xxxxxxxxxxxxxxxx
curl -H "Authorization: Bearer $GPUAI_TOKEN" https://api.gpuai.shop/v1/instances

Instances

MethodPathDescription
GET/v1/instancesList every instance on the project
POST/v1/instancesCreate an instance
GET/v1/instances/{id}Fetch one instance with current state
GET/v1/instances/{id}/logsProvisioning and console log
GET/v1/instances/{id}/metricsGPU utilisation, VRAM, temperature, power
POST/v1/instances/{id}/stopHalt, retaining the root volume
POST/v1/instances/{id}/startResume a stopped instance
DELETE/v1/instances/{id}Destroy and erase

Create an instance

curl -X POST https://api.gpuai.shop/v1/instances \
-H "Authorization: Bearer $GPUAI_TOKEN" \
-d gpu=h100-sxm \
-d region=us-east-1 \
-d image=ubuntu-22-cuda-12 \
-d name=training-run-4

Returns 201 with the instance object. The status field starts at queued; poll the instance or tail its logs until it reads running.

Volumes and snapshots

MethodPathDescription
GET/v1/volumesList persistent volumes
POST/v1/volumesCreate a volume (size_gb, region)
POST/v1/volumes/{id}/attachAttach to an instance
POST/v1/volumes/{id}/detachDetach from its instance
POST/v1/snapshotsSnapshot a volume

Stock images

Image IDContents
ubuntu-22-cuda-12Ubuntu 22.04 + CUDA 12.4 + PyTorch 2.4
ubuntu-22-cuda-11Ubuntu 22.04 + CUDA 11.8 + PyTorch 2.1
ubuntu-24-vanillaUbuntu 24.04 LTS (no ML stack)
nvidia-ngcNVIDIA NGC PyTorch 24.07
tensorflow-215Ubuntu 22.04 + TensorFlow 2.15

All images are Ubuntu-based, ship the 550.x driver branch, and disable password SSH. Your account's public keys are injected at boot through cloud-init.

Rate limits

60 requests per minute per token for read operations, 20 per minute for writes. Exceeding the limit returns 429 with a Retry-After header. Log tailing does not count against the limit.

Troubleshooting

Instance stuck in queued

The region is out of capacity for that card. Either wait — you are not billed while queued — or destroy the request and try another region. The catalogue marks cards as limited when this is likely.

CUDA out of memory

Almost always the KV cache or optimiser state rather than the weights. Reduce batch size first, then sequence length, then consider gradient checkpointing. The comparison page has the sizing arithmetic.

Slow first write

Expected. The host page cache is cold immediately after provisioning, so the first pass over a dataset runs at roughly a third of steady-state throughput.

Cannot connect over SSH

Check the instance has actually reached running, that you are using the key registered on the account, and that you are connecting to the public address shown in the console rather than the private one.