Docs.
1 · WHAT YOU GET
Whole bare-metal servers — 8× B300 per node, NVLink inside the node, a 400G InfiniBand (NDR) fabric between your nodes, 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. Exact hardware: node spec.
2 · CONNECT
Add your SSH public key in Settings 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 and, for on-demand once it opens, auto-termination at zero balance). 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 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 | on-demand needs balance cover; reserved terms — 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 (1 month / 3 months / 6 months / 1 year / 24 months): a 30% prepayment on acceptance of the quote (wire or USDC), 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.
(b) Self-serve term contracts ordered in the console after on-demand opens: prepaid in full at order time at the discounted rate. On-demand itself (planned, date TBA) will bill per minute of RUNNING from a prepaid balance with no minimum order size; at zero balance on-demand instances are terminated immediately and drives are wiped — no grace period — with warnings at ~24h and ~4h of remaining runway and a live runway indicator in the console.
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 inter-node over InfiniBand NDR against bandwidth thresholds, DCGM diagnostics at level 3, and a burn-in run. The first invoice follows a passed acceptance run, never the calendar.
7 · SUPPORT
cloud@theai.com — quotes, capacity, wire/USDC onboarding, incidents. Or the support form; we reply within a few hours.