GPU.ai has a new look. The compute is the same.Read about the redesign  ↗

developers: one key, every way in

One key. Every way in.●

The gpu CLI, official Python and TypeScript SDKs, REST API, MCP server, and OpenAI-compatible inference — one API key unlocks all of it. Pick a tool below and make your first call in minutes.

$curl -fsSL https://gpu.ai/install | sh

gpu cli

The whole platform, one verb at a time●

One binary, no config file. Install it, log in once, and launching a GPU is a command in the shell you already have open.

Install

$curl -fsSL https://gpu.ai/install | sh

First call

$gpu gpu-types list
zsh · gpulive
$

sdks

Typed clients in Python and TypeScript●

Both are generated from the same OpenAPI spec the API serves, so the client can't drift from the endpoint it calls.

PYTHON
# pip install gpuai-sdk
import gpuai_sdk

cfg = gpuai_sdk.Configuration(host="https://api.gpu.ai/v1")

with gpuai_sdk.ApiClient(cfg) as client:
    types_page = gpuai_sdk.GpuTypesApi(client).list_gpu_types(limit=5)
    for t in types_page.data:
        print(f"{t.gpu_type:<12} vram={t.vram_gb}GB")
TYPESCRIPT
// npm install @gpuai/sdk
const { Configuration, GpuTypesApi } = require('@gpuai/sdk');

async function main() {
  const cfg = new Configuration({ basePath: 'https://api.gpu.ai/v1' });
  const types = await new GpuTypesApi(cfg).listGpuTypes({ limit: 5 });
  for (const t of types.data) {
    console.log(`${t.gpuType.padEnd(12)} vram=${t.vramGb}GB`);
  }
}
main();

rest api

No SDK required●

Plain HTTPS and JSON, with cursor pagination and idempotency keys on every mutation. The catalog is public, so your first call needs no key at all.

CURL
curl https://api.gpu.ai/v1/gpu-types

inference

Change the base URL. Keep the code.●

Chat, images, and video speak the OpenAI wire format, so the client library you already import keeps working — swap two lines and you're billed per token instead of per hour.

PYTHON
import os

from openai import OpenAI

client = OpenAI(
    base_url="https://api.gpu.ai/v1",
    api_key=os.environ["GPUAI_API_KEY"],  # never a literal key
)

stream = client.chat.completions.create(
    model="gpuai/qwen2.5-7b-instruct",
    messages=[{"role": "user", "content": "Explain WireGuard in one sentence"}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

mcp

Hand your coding agent the keys●

Drop this into .mcp.json and your agent can read the catalog, launch instances, and run inference — 35 tools in three tiers.

.MCP.JSON
{
  "mcpServers": {
    "gpuai": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@gpuai/mcp@latest"],
      "env": {
        "GPUAI_API_KEY": "${GPUAI_API_KEY}"
      }
    }
  }
}

An agent can't spend money behind your back

Reads are free and unconfirmed. Writes take a single confirmation. Anything that costs money quotes the price first and refuses to run until you confirm it. The server enforces that, not the agent's good manners — and it holds on every base URL, staging included.

webhooks

Find out the moment a job lands●

Subscribe an HTTPS endpoint to the event types you care about. Every delivery is HMAC-signed and carries a stable event id you can dedupe on.

Subscribe

CURL
curl -X POST https://api.gpu.ai/v1/webhook-endpoints \
  -H "Authorization: Bearer $GPUAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/hooks/gpuai",
       "event_types":["video.completed","video.failed"]}'

What you receive

JSON
{
  "id": "dc062a1e…",
  "type": "video.completed",
  "created_at": "2026-08-07T02:39:11Z",
  "data": {
    "video": {
      "id": "41ca1150…",
      "object": "video",
      "model": "gpuai/wan-2.2-t2v",
      "status": "completed"
    }
  }
}

All six event types are delivered today, including instance lifecycle events (instance.*). Instance payloads carry the resource directly in data (data.id, data.status) rather than nested the way data.video is; instances that come up outside the standard provisioning path may skip the creating/running events.

From your first API key to production, in one page

$curl -fsSL https://gpu.ai/install | sh