Docs.
1 · WHAT YOU GET
Whole bare-metal servers — 8× B300 per node, NVLink inside the node, NVIDIA ConnectX-8 networking between your nodes (per-GPU bandwidth is named in your quote), no virtualization and no neighbors. You get root over SSH. The base image is Ubuntu LTS with the NVIDIA driver, CUDA toolkit, Docker and the NVIDIA Container Toolkit preinstalled; exact versions are pinned per cluster and shown at delivery. OS selection and one-click reinstall are available on request. The node configuration (dual Intel Xeon 6, 2 TB DDR5, 30 TB enterprise NVMe) is fixed in your capacity agreement.
2 · CONNECT
Add your SSH public key in Settings (sign in) before delivery — every key of your organization is injected into root on every node at provisioning.
ssh root@<node-ip> # the IP appears on the Instances tab
nvidia-smi # all 8 GPUs present
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi3 · STARTUP SCRIPT
Optional. Paste a script in the order ticket (or pass initScript via API) — it runs once as root on every node of the instance right after provisioning. Output goes to /root/init.log. Keep it idempotent.
#!/bin/bash
pip install uv && uv pip install --system vllm
huggingface-cli download meta-llama/Llama-3.3-70B-Instruct4 · MOVING DATA
Local NVMe is fast scratch, not durable storage: drives are wiped at termination (including term end). Pull data in at start, push checkpoints out continuously — egress is free, there are no per-GB transfer charges:
# в одну сторону
aws s3 sync s3://my-datasets/imagenet /data/imagenet
# в обратную — чекпоинты каждые N шагов
aws s3 sync /data/checkpoints s3://my-bucket/run-42/5 · API
Create a token in Settings → API tokens (sign in) and send it asAuthorization: Bearer theai_…. A token carries full org access — store it like a password.
| Endpoint | What it does |
|---|---|
GET /api/nodes | rack: SKUs, per-GPU-hour prices, node availability, contract ladder |
POST /api/orders | launch: {skuId, nodeIds[], contract, name?, initScript?} — one GPU model per order |
GET /api/instances | your instances with status, IP, nodes |
POST /api/instances | {id, action: "terminate"} — access revoked, nodes wiped and returned |
GET /api/billing | balance, burn per hour, ledger history |
GET · POST /api/keys | list / add org SSH keys: {label, publicKey} — handy for CI before delivery |
export T=theai_xxxxxxxxxxxx
curl -s https://cloud.theai.com/api/nodes | jq '.skus[].nodes[] | {id, status}'
curl -s -X POST https://cloud.theai.com/api/orders \
-H "Authorization: Bearer $T" -H "Content-Type: application/json" \
-d '{"skuId":"B300","nodeIds":["N01","N02"],"contract":"M1"}'
curl -s -X POST https://cloud.theai.com/api/instances \
-H "Authorization: Bearer $T" -H "Content-Type: application/json" \
-d '{"id":"<instance-id>","action":"terminate"}'| Error | Meaning |
|---|---|
400 no_ssh_keys | add an SSH key first — nodes are unreachable without it |
402 insufficient_balance | reserved terms are invoiced per agreement |
403 verification_required | export-control screening is completed during quote acceptance |
409 nodes_taken | someone grabbed the nodes first — re-read /api/nodes |
429 rate_limited | orders 10/min, instance actions 30/min per org |
Building a price comparison or marketplace listing? There's a public, unauthenticated JSON feed of our rate card — no token needed: GET /api/v1/pricing.
6 · BILLING MODEL
(a) Reserved capacity agreements (36 months / 60 months, B300 in Iowa): a 30% prepayment on acceptance of the quote (wire transfer), take-or-pay; the remainder is invoiced per the agreement — monthly is standard. Billing starts after acceptance testing (below). The 30% prepayment is credited to your term and is not refunded if you cancel; until you accept a quote, nothing is owed. For other lots (the B300 block in Kuala Lumpur, B200 in Los Angeles), payment terms are set in the written quote and the agreement.
Delivery window: written into your agreement. If it is missed, you choose a rate reduction for the delay, or a full refund of the prepayment if the delay is material. Billing never starts before acceptance, and your rate does not move. Details: Terms · Refund Policy · Pricing.
ACCEPTANCE TESTING
Acceptance criteria are written into your agreement before delivery. If the cluster doesn't pass them, the prepayment is refunded in full. The criteria are spec-based until first delivery: nccl-tests all_reduce intra-node over NVLink and across nodes over the cluster fabric against the bandwidth thresholds in the agreement, DCGM diagnostics at level 3, and a burn-in run. Billing starts after a passed acceptance run, never on the calendar.
7 · SUPPORT
cloud@theai.com — quotes, capacity, wire onboarding, incidents. Or the support form; we reply within a few hours.