# Arrakis > Arrakis is a GPU rental service by Good AI Labs that finds the lowest live price across independent GPU markets and rents machines on one prepaid balance, with spend caps and automatic shutdown so AI agents can rent safely. Arrakis (https://arrakis.goodailabs.com) is in early access and is built by Good AI Labs (https://goodailabs.com). Every page on this site has a Markdown twin: `/` is `/index.html.md`, `/gpus/h100` is `/gpus/h100.html.md`, and so on. Agents connect over MCP at `/mcp` (streamable HTTP, `Authorization: Bearer ark_...`) or over the REST API described by `/openapi.json`. The live market summary at `/v1/market/summary` needs no token. ## Key facts - What it is: A GPU rental service that finds the lowest live price across independent GPU markets and rents machines on one prepaid balance. - Who it is for: AI engineers, researchers and the coding agents they work with. - GPUs: H100, H200, B200, B300, A100, RTX PRO 6000, RTX 5090, RTX 4090, L40S, RTX 6000 Ada, RTX A6000, RTX 3090 and more, depending on live supply. - How you rent: Web console, CLI, REST API, or MCP for agents at /mcp. - Pricing: Pay the hourly price shown when you rent, from a prepaid balance, an hour at a time. No subscription and no minimum. - Agent safety: Spend-capped tokens, a required removal time on every rental, and retry-safe rentals with idempotency keys. - Access: SSH as root into machines running any Docker image. Volumes for data and checkpoints. - Live market: 134 GPUs on 45 machines, H100 from $1.77 per GPU-hour (13 Oct 2026, 17:52 UTC). - Billing: From start to removal at the price shown when you rent. A started hour counts as a full hour. - MCP endpoint: https://arrakis.goodailabs.com/mcp, streamable HTTP with a bearer token. - Status: Early access. Built by Good AI Labs (goodailabs.com). ## Live GPU prices Updated 13 Oct 2026, 17:52 UTC. Lowest price per GPU-hour, cheapest machine of each GPU, in US dollars. CSV: [/gpus.csv](/gpus.csv). - H100 80GB HBM3: from $1.77 per GPU-hour, 27 GPUs on 4 machines ([details](/gpus/h100.html.md)) - H200: from $4.50 per GPU-hour, 14 GPUs on 3 machines ([details](/gpus/h200.html.md)) - B200: from $5.60 per GPU-hour, 18 GPUs on 4 machines ([details](/gpus/b200.html.md)) - B300 SXM6 AC: from $8.00 per GPU-hour, 22 GPUs on 3 machines ([details](/gpus/b300.html.md)) - A100 80GB PCIe: from $0.65 per GPU-hour, 21 GPUs on 7 machines ([details](/gpus/a100.html.md)) - RTX PRO 6000 Blackwell Server Edition: from $1.77 per GPU-hour, 2 GPUs on 2 machines ([details](/gpus/rtx-pro-6000.html.md)) - RTX 5090: from $0.75 per GPU-hour, 3 GPUs on 3 machines ([details](/gpus/rtx-5090.html.md)) - RTX 4090: from $0.45 per GPU-hour, 9 GPUs on 8 machines ([details](/gpus/rtx-4090.html.md)) - RTX A6000: from $0.42 per GPU-hour, 5 GPUs on 4 machines ([details](/gpus/rtx-a6000.html.md)) - RTX 6000 Ada: from $0.70 per GPU-hour, 5 GPUs on 5 machines ([details](/gpus/rtx-6000-ada.html.md)) - RTX 3090: from $0.22 per GPU-hour, 8 GPUs on 2 machines ([details](/gpus/rtx-3090.html.md)) ## Start here - [Agent guide](/agents.html.md): connect over MCP, the eight tools, and the rules that keep unattended spend safe - [Live market summary](/v1/market/summary): lowest price and supply per GPU family, public JSON - [GPU prices](/gpus.html.md): every GPU family Arrakis can rent - [MCP endpoint and tools](/docs/mcp.md): Claude Code, Cursor, any client, and local stdio - [OpenAPI 3.1 spec](/openapi.json): the complete machine-readable API - [Interactive API reference](/docs) ## GPUs - [NVIDIA H100](/gpus/h100.html.md): The standard GPU for training and serving large language models - [NVIDIA H200](/gpus/h200.html.md): The H100's compute with far more memory and bandwidth - [NVIDIA B200](/gpus/b200.html.md): Blackwell-generation performance with FP4 and FP8 - [NVIDIA B300](/gpus/b300.html.md): Blackwell Ultra, with the most memory per GPU of any GPU on Arrakis - [NVIDIA A100](/gpus/a100.html.md): A proven workhorse with the widest software support - [NVIDIA RTX PRO 6000](/gpus/rtx-pro-6000.html.md): 96 GB of memory on a single GPU - [NVIDIA GeForce RTX 5090](/gpus/rtx-5090.html.md): The fastest consumer GPU, with FP4 support - [NVIDIA GeForce RTX 4090](/gpus/rtx-4090.html.md): The most widely available low-cost GPU for AI work - [NVIDIA L40S](/gpus/l40s.html.md): A data-center GPU tuned for inference and graphics - [NVIDIA RTX 6000 Ada Generation](/gpus/rtx-6000-ada.html.md): 48 GB of memory, a generation newer than the RTX A6000 - [NVIDIA RTX A6000](/gpus/rtx-a6000.html.md): 48 GB of memory for less than a data-center GPU - [NVIDIA GeForce RTX 3090](/gpus/rtx-3090.html.md): Often the cheapest 24 GB GPU you can rent ## Guides - [How much GPU memory does your model need?](/guides/gpu-memory.html.md): serving and fine-tuning 8B to 405B models, and the GPUs that fit at live prices ## Docs - [Agent walkthrough](/docs/agent-walkthrough.md): create an account, get a bounded token, search, rent, stop - [API guide](/docs/api-reference.md): authentication, scopes, spend caps, rentals, billing - [Security and spending boundaries](/docs/security.md) - [How Arrakis fits together](/docs/architecture.md) - [Capabilities and limits](/docs/provider-capabilities.md) ## Pages - [Home](/index.html.md): what Arrakis is, pricing, security, FAQ - [Careers](/careers.html.md): open roles and the Spice Test, an interview you take by calling the API ## Optional - [Everything in one file](/llms-full.txt) - [Console](/console/): sign in to rent, manage tokens and add funds - [Sitemap](/sitemap.xml) --- # Arrakis: the GPU market, made safe for agents Arrakis finds the lowest live price for H100s, RTX 4090s and more across independent GPU markets. Rent from the console, the CLI or your coding agent, on one prepaid balance with spend caps and automatic shutdown. - Start renting: [/console/](/console/) - Live GPU prices: [/gpus](/gpus.html.md) - Connect your agent: [/agents](/agents.html.md) - Early access. Look around before you add funds. ## Arrakis at a glance - **What it is:** A GPU rental service that finds the lowest live price across independent GPU markets and rents machines on one prepaid balance. - **Who it is for:** AI engineers, researchers and the coding agents they work with. - **GPUs:** H100, H200, B200, B300, A100, RTX PRO 6000, RTX 5090, RTX 4090, L40S, RTX 6000 Ada, RTX A6000, RTX 3090 and more, depending on live supply. - **How you rent:** Web console, CLI, REST API, or MCP for agents at /mcp. - **Pricing:** Pay the hourly price shown when you rent, from a prepaid balance, an hour at a time. No subscription and no minimum. - **Agent safety:** Spend-capped tokens, a required removal time on every rental, and retry-safe rentals with idempotency keys. - **Access:** SSH as root into machines running any Docker image. Volumes for data and checkpoints. - **Live market:** 134 GPUs on 45 machines, H100 from $1.77 per GPU-hour (13 Oct 2026, 17:52 UTC). - **Billing:** From start to removal at the price shown when you rent. A started hour counts as a full hour. - **MCP endpoint:** https://arrakis.goodailabs.com/mcp, streamable HTTP with a bearer token. - **Status:** Early access. Built by Good AI Labs (goodailabs.com). ## Hand it to your agent. Keep the budget. - **A token with a ceiling.** Give your agent a token that can search and rent, with a spend cap it cannot pass: `arrakis tokens create --name eval-agent --scope read --scope rent --spend-limit 50`. - **Every machine shuts itself down.** Rentals carry a removal time (`"termination_hours": 6`). A capped token cannot rent without one. - **Retries never rent twice.** The same `idempotency_key` returns the same machine, not a second bill. Connect over MCP (`$ARRAKIS_URL` is this site's address): `claude mcp add --transport http arrakis $ARRAKIS_URL/mcp --header "Authorization: Bearer ark_..."`. ## From sign-in to SSH in three steps 1. **Sign in and add funds.** Use your email, then request a bank transfer. Your balance grows when it arrives. 2. **Pick a GPU.** Cheapest first, filtered by memory, count, price and country. 3. **SSH in as root.** Your Docker image, your keys. The machine removes itself on schedule. ## Why Arrakis exists Compute is the scarcest input in AI. It should flow to whoever needs it, person or agent. ## Pricing Prepaid, an hour at a time: a rental pays its first hour up front and each later hour as it begins. No subscription, no seats, no minimum. When the balance cannot pay a machine's next hour, the machine stops, so you never owe more than you added. Pay by bank transfer while in early access. ## Security Hashed, scoped, revocable tokens; no scope escalation; single-use bootstrap secrets; tenant isolation; balances that only grow on confirmed payments; spend caps for agents. Machines run with independent hosts, so keep regulated data off them. ## Questions **What is Arrakis?** Arrakis is a GPU rental service that finds the lowest live price across independent GPU markets and rents machines on one prepaid balance. People rent from a web console or CLI, and AI agents rent over MCP or the REST API with spend-capped tokens. **Can my agent overspend?** Not past what you allow. Give it a token with a spend cap. Every rental it makes must carry a removal time, and a rental that would pass the cap is refused before it starts. **How much does it cost to rent a GPU?** Prices change with the market and are shown live per GPU-hour on the GPU prices page and in the console. Right now (as of 13 Oct 2026, 17:52 UTC), 134 GPUs are available on Arrakis across 45 machines. The lowest H100 price is $1.77 per GPU-hour and the lowest RTX 4090 price is $0.45 per GPU-hour. You pay the hourly price shown when you rent, from a prepaid balance, with no subscription. A machine bills from start to removal, and a started hour counts as a full hour. **What is the cheapest way to rent an H100?** Search every market at once. Arrakis lists every available H100 across independent GPU markets, cheapest first, and rents it on one prepaid balance. As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA H100 on Arrakis is $1.77 per GPU-hour, with 27 GPUs available on 4 machines. **Who makes Arrakis?** Good AI Labs builds and runs Arrakis. It is in early access. **How do I pay?** Request a bank transfer in the console, and your balance grows when the payment arrives. Card payments, with automatic top-ups from a saved card, are next. **Where do the machines run?** With independent GPU hosts in many countries. Search shows each machine's country and region, so you can choose. **What if a machine fails?** Each machine shows a reliability score. Terminate it and rent another, and keep checkpoints on a volume so nothing is lost. **Can I bring my own image?** Yes. Any Docker image works, saved as a template with its environment, entrypoint and ports. You SSH in as root. **Is there an SLA?** No. Arrakis is in early access and the hosts are independent. Don't run anything on it that needs one. **How do I get an API token?** Sign in to the console and create one under API & agents, or bootstrap your first one from the CLI with your account's one-time secret. **What happens when my balance runs out?** Each machine pays for one hour at a time from your balance, as the hour begins. When the balance cannot pay a machine's next hour, Arrakis stops that machine and pauses new rentals, and your other machines stop when the hour they already paid for ends, so you never owe more than you added. The console warns you before that happens, adding funds opens rentals again, and volumes are kept. Hiring: take the Spice Test at [/careers](/careers.html.md). Arrakis is built by [Good AI Labs](https://goodailabs.com). --- # GPU rental prices, live The lowest price per GPU-hour for every GPU you can rent on Arrakis right now, across independent GPU markets. Right now (as of 13 Oct 2026, 17:52 UTC), 134 GPUs are available on Arrakis across 45 machines. The lowest H100 price is $1.77 per GPU-hour and the lowest RTX 4090 price is $0.45 per GPU-hour. | GPU | Lowest price per GPU-hour | GPUs available | Machines | |---|---|---|---| | [H100 80GB HBM3](/gpus/h100.html.md) | $1.77 | 27 | 4 | | [H200](/gpus/h200.html.md) | $4.50 | 14 | 3 | | [B200](/gpus/b200.html.md) | $5.60 | 18 | 4 | | [B300 SXM6 AC](/gpus/b300.html.md) | $8.00 | 22 | 3 | | [A100 80GB PCIe](/gpus/a100.html.md) | $0.65 | 21 | 7 | | [RTX PRO 6000 Blackwell Server Edition](/gpus/rtx-pro-6000.html.md) | $1.77 | 2 | 2 | | [RTX 5090](/gpus/rtx-5090.html.md) | $0.75 | 3 | 3 | | [RTX 4090](/gpus/rtx-4090.html.md) | $0.45 | 9 | 8 | | [RTX A6000](/gpus/rtx-a6000.html.md) | $0.42 | 5 | 4 | | [RTX 6000 Ada](/gpus/rtx-6000-ada.html.md) | $0.70 | 5 | 5 | | [RTX 3090](/gpus/rtx-3090.html.md) | $0.22 | 8 | 2 | ## How these prices work - **Where they come from:** Arrakis reads the GPU markets it connects and refreshes the result every minute while people are looking. A machine counts only when it is free to rent right now and its market reports a verified price. - **What the price is:** What Arrakis charges per GPU-hour, in US dollars: a machine's hourly price divided by its GPUs. Each row shows the cheapest machine of that GPU. - **Whole machines:** A listing with eight GPUs rents as eight GPUs, so its hourly cost is eight times its price per GPU-hour. - **Billing:** From start to removal at the price shown when you rent. A started hour counts as a full hour. - **Freshness:** Updated 13 Oct 2026, 17:52 UTC. The console always shows the exact price before you rent. ## Use the data - CSV, one row per GPU model: [/gpus.csv](/gpus.csv) - JSON, refreshed every minute, no token needed: [/v1/market/summary](/v1/market/summary) - Free to use. When you publish the numbers, link to https://arrakis.goodailabs.com/gpus. ## Every GPU you can rent - [NVIDIA H100](/gpus/h100.html.md): The standard GPU for training and serving large language models. Memory: 80 GB HBM3 (SXM) or HBM2e (PCIe). - [NVIDIA H200](/gpus/h200.html.md): The H100's compute with far more memory and bandwidth. Memory: 141 GB HBM3e. - [NVIDIA B200](/gpus/b200.html.md): Blackwell-generation performance with FP4 and FP8. Memory: 180 to 192 GB HBM3e, depending on the system. - [NVIDIA B300](/gpus/b300.html.md): Blackwell Ultra, with the most memory per GPU of any GPU on Arrakis. Memory: HBM3e, 2.1 TB across the eight GPUs of a DGX B300. - [NVIDIA A100](/gpus/a100.html.md): A proven workhorse with the widest software support. Memory: 40 GB or 80 GB of HBM. - [NVIDIA RTX PRO 6000](/gpus/rtx-pro-6000.html.md): 96 GB of memory on a single GPU. Memory: 96 GB GDDR7. - [NVIDIA GeForce RTX 5090](/gpus/rtx-5090.html.md): The fastest consumer GPU, with FP4 support. Memory: 32 GB GDDR7. - [NVIDIA GeForce RTX 4090](/gpus/rtx-4090.html.md): The most widely available low-cost GPU for AI work. Memory: 24 GB GDDR6X. - [NVIDIA L40S](/gpus/l40s.html.md): A data-center GPU tuned for inference and graphics. Memory: 48 GB GDDR6 with ECC. - [NVIDIA RTX 6000 Ada Generation](/gpus/rtx-6000-ada.html.md): 48 GB of memory, a generation newer than the RTX A6000. Memory: 48 GB GDDR6 with ECC. - [NVIDIA RTX A6000](/gpus/rtx-a6000.html.md): 48 GB of memory for less than a data-center GPU. Memory: 48 GB GDDR6 with ECC. - [NVIDIA GeForce RTX 3090](/gpus/rtx-3090.html.md): Often the cheapest 24 GB GPU you can rent. Memory: 24 GB GDDR6X. Which one fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # How much GPU memory does your model need? Count bytes per parameter. Serving needs 2 bytes per parameter in 16-bit, 1 in 8-bit and half a byte in 4-bit, plus about 20% for the KV cache and activations. Fine-tuning needs far more: about 16 bytes per parameter with Adam, unless LoRA or QLoRA freezes the base model. ## Serving a model | Model size | 16-bit | 8-bit | 4-bit | |---|---|---|---| | 8B (Llama 3.1 8B) | 19 GB: one [RTX 4090](/gpus/rtx-4090.html.md) or [RTX 3090](/gpus/rtx-3090.html.md), RTX 3090 from $0.22 per GPU-hour | 9.6 GB: one [RTX 4090](/gpus/rtx-4090.html.md) or [RTX 3090](/gpus/rtx-3090.html.md), RTX 3090 from $0.22 per GPU-hour | 4.8 GB: one [RTX 4090](/gpus/rtx-4090.html.md) or [RTX 3090](/gpus/rtx-3090.html.md), RTX 3090 from $0.22 per GPU-hour | | 14B (Qwen2.5 14B) | 34 GB: one [L40S](/gpus/l40s.html.md), [RTX 6000 Ada](/gpus/rtx-6000-ada.html.md) or [RTX A6000](/gpus/rtx-a6000.html.md), RTX A6000 from $0.42 per GPU-hour | 17 GB: one [RTX 4090](/gpus/rtx-4090.html.md) or [RTX 3090](/gpus/rtx-3090.html.md), RTX 3090 from $0.22 per GPU-hour | 8.4 GB: one [RTX 4090](/gpus/rtx-4090.html.md) or [RTX 3090](/gpus/rtx-3090.html.md), RTX 3090 from $0.22 per GPU-hour | | 32B (Qwen2.5 32B) | 77 GB: one [H100](/gpus/h100.html.md) or [A100](/gpus/a100.html.md), A100 from $0.65 per GPU-hour | 38 GB: one [L40S](/gpus/l40s.html.md), [RTX 6000 Ada](/gpus/rtx-6000-ada.html.md) or [RTX A6000](/gpus/rtx-a6000.html.md), RTX A6000 from $0.42 per GPU-hour | 19 GB: one [RTX 4090](/gpus/rtx-4090.html.md) or [RTX 3090](/gpus/rtx-3090.html.md), RTX 3090 from $0.22 per GPU-hour | | 70B (Llama 3.3 70B) | 168 GB: one [B200](/gpus/b200.html.md), from $5.60 per GPU-hour | 84 GB: one [RTX PRO 6000](/gpus/rtx-pro-6000.html.md), from $1.77 per GPU-hour | 42 GB: one [L40S](/gpus/l40s.html.md), [RTX 6000 Ada](/gpus/rtx-6000-ada.html.md) or [RTX A6000](/gpus/rtx-a6000.html.md), RTX A6000 from $0.42 per GPU-hour | | 405B (Llama 3.1 405B) | 972 GB: 4 × [B300](/gpus/b300.html.md), from $8.00 per GPU-hour | 486 GB: 2 × [B300](/gpus/b300.html.md), from $8.00 per GPU-hour | 243 GB: one [B300](/gpus/b300.html.md), from $8.00 per GPU-hour | ## Fine-tuning a model Figures are before activations. | Model size | QLoRA | LoRA | Full fine-tuning | |---|---|---|---| | 8B (Llama 3.1 8B) | 5.6 GB: one [RTX 4090](/gpus/rtx-4090.html.md) or [RTX 3090](/gpus/rtx-3090.html.md), RTX 3090 from $0.22 per GPU-hour | 19 GB: one [RTX 4090](/gpus/rtx-4090.html.md) or [RTX 3090](/gpus/rtx-3090.html.md), RTX 3090 from $0.22 per GPU-hour | 128 GB: one [H200](/gpus/h200.html.md), from $4.50 per GPU-hour | | 14B (Qwen2.5 14B) | 9.8 GB: one [RTX 4090](/gpus/rtx-4090.html.md) or [RTX 3090](/gpus/rtx-3090.html.md), RTX 3090 from $0.22 per GPU-hour | 34 GB: one [L40S](/gpus/l40s.html.md), [RTX 6000 Ada](/gpus/rtx-6000-ada.html.md) or [RTX A6000](/gpus/rtx-a6000.html.md), RTX A6000 from $0.42 per GPU-hour | 224 GB: one [B300](/gpus/b300.html.md), from $8.00 per GPU-hour | | 32B (Qwen2.5 32B) | 22 GB: one [RTX 4090](/gpus/rtx-4090.html.md) or [RTX 3090](/gpus/rtx-3090.html.md), RTX 3090 from $0.22 per GPU-hour | 77 GB: one [H100](/gpus/h100.html.md) or [A100](/gpus/a100.html.md), A100 from $0.65 per GPU-hour | 512 GB: 2 × [B300](/gpus/b300.html.md), from $8.00 per GPU-hour | | 70B (Llama 3.3 70B) | 49 GB: one [H100](/gpus/h100.html.md) or [A100](/gpus/a100.html.md), A100 from $0.65 per GPU-hour | 168 GB: one [B200](/gpus/b200.html.md), from $5.60 per GPU-hour | 1,120 GB: 8 × [H200](/gpus/h200.html.md), from $4.50 per GPU-hour | | 405B (Llama 3.1 405B) | 284 GB: 4 × [H100](/gpus/h100.html.md), from $1.77 per GPU-hour | 972 GB: 4 × [B300](/gpus/b300.html.md), from $8.00 per GPU-hour | 6,480 GB: more than one 8-GPU machine | ## The rules behind the numbers - Weights: parameters times bytes per parameter: 2 in 16-bit, 1 in 8-bit, 0.5 in 4-bit. - Serving headroom: about 20% more for the KV cache and activations at moderate context and batch. - Full fine-tuning: about 16 bytes per parameter with mixed-precision Adam ([ZeRO, arXiv:1910.02054](https://arxiv.org/abs/1910.02054)). - LoRA: the 16-bit base model stays frozen; plan for the weights plus about 20%. - QLoRA: a 4-bit frozen base; its authors fine-tuned a 65B model on one 48 GB GPU ([arXiv:2305.14314](https://arxiv.org/abs/2305.14314)), about 0.7 bytes per parameter. ## Questions **How much GPU memory does a 70B model need?** To serve it, about 168 GB in 16-bit, 84 GB in 8-bit, 42 GB in 4-bit, including about 20% for the KV cache and activations. To fine-tune it, about 49 GB with QLoRA, 168 GB with LoRA and 1,120 GB for full fine-tuning with Adam, before activations. **Can I run a 70B model on a single GPU?** Yes. It needs about 168 GB in 16-bit, which fits on one B200; about 84 GB in 8-bit, which fits on one RTX PRO 6000; about 42 GB in 4-bit, which fits on one L40S, RTX 6000 Ada or RTX A6000. **Can I fine-tune an 8B model on an RTX 4090?** Yes, with LoRA (about 19 GB) or QLoRA (about 6 GB), which fit in the RTX 4090's 24 GB. Full fine-tuning needs about 128 GB before activations, so one H200. **Why does fine-tuning need so much more memory than serving?** Full fine-tuning keeps 16-bit weights and gradients plus 32-bit Adam optimizer states and a 32-bit master copy of the weights, about 16 bytes per parameter (Rajbhandari et al., ZeRO, arXiv:1910.02054). LoRA freezes the base weights and trains small adapters; QLoRA also stores the frozen weights in 4-bit, which let its authors fine-tune a 65B model on one 48 GB GPU (Dettmers et al., arXiv:2305.14314). **How much does it cost to rent the GPUs in these tables?** Each suggestion shows the lowest price per GPU-hour on Arrakis right now. Right now (as of 13 Oct 2026, 17:52 UTC), 134 GPUs are available on Arrakis across 45 machines. The lowest H100 price is $1.77 per GPU-hour and the lowest RTX 4090 price is $0.45 per GPU-hour. You pay the hourly price shown when you rent, from a prepaid balance. Live prices for every GPU: [/gpus](/gpus.html.md). --- # Arrakis for agents Your agent can search the market, rent a GPU, run its job and shut the machine down. You decide the budget before it starts, and it cannot spend past it. Arrakis serves MCP over streamable HTTP from the same address as this site, at `/mcp`. There is nothing to install. Below, `$ARRAKIS_URL` is this site's address and `ark_...` is an API token. ## Connect in three steps 1. **Create a token for your agent.** In the console, open API & agents and choose a token for an agent: read and rent scopes, a spend cap and a maximum rental length. From the CLI: ```sh arrakis tokens create --name eval-agent \ --scope read --scope rent \ --spend-limit 50 --max-rental-hours 6 --expires-in 7d ``` 2. **Add the MCP endpoint.** Use the token as a bearer header. Claude Code: ```sh claude mcp add --transport http arrakis $ARRAKIS_URL/mcp \ --header "Authorization: Bearer ark_..." ``` Cursor (`~/.cursor/mcp.json`): ```json { "mcpServers": { "arrakis": { "url": "$ARRAKIS_URL/mcp", "headers": { "Authorization": "Bearer ark_..." } } } } ``` Any client: transport streamable HTTP, URL `$ARRAKIS_URL/mcp`, header `Authorization: Bearer ark_...`. Local, over stdio: `ARRAKIS_TOKEN=ark_... ARRAKIS_BASE_URL=$ARRAKIS_URL arrakis mcp`. 3. **Give it a job.** Say how long the machine may live; your agent passes that as the removal time. For example: "Run my eval suite on an H100: rent one for 3 hours, run python eval.py, copy results/ back, then terminate it." ## What your agent cannot do - Spend past its token's cap. - Rent a machine without a removal time. - Rent longer than the token's maximum rental length. - Create a token with more power than its own. - See or touch another account's machines. - Add funds. Only confirmed payments do that. ## Eight tools | Tool | What it does | Cost | |---|---|---| | `search_gpus` | Lists available machines, cheapest first, filtered by GPU, count, price per GPU-hour and country. | Free | | `get_market_summary` | The lowest price and the supply of each GPU family right now. | Free | | `get_balance` | The account's balance, what the running machines cost per hour, when the money runs out, and the token's cap. | Free | | `rent_gpu` | Rents a machine for at most `termination_hours` and returns its SSH command. Creates an idempotency key if none is passed and returns it. | The hourly price, an hour at a time, until removal | | `list_instances` | The machines the account is running. | Free | | `get_instance` | One machine's state, SSH command and removal time. | Free | | `terminate_instance` | Stops a machine now. Billing stops with it. | Ends charges | | `schedule_removal` | Moves a machine's removal time. | Changes the maximum cost | ## What keeps unattended spend safe These rules live in the API, so they hold for MCP, the CLI and plain HTTP alike. - **Spend caps.** A capped token counts each rental at its worst case, hourly price times removal hours, and refuses the one that would pass the cap. - **Required removal.** A capped token cannot rent without `termination_hours`, or past its maximum rental length. - **Retry safety.** The same `idempotency_key` always returns the same machine. A retry never rents twice. - **Scoped tokens.** Read, rent, manage and billing are separate. A token cannot mint one with scopes it lacks. - **Prepaid by the hour.** A rental pays its first hour up front and each later hour as it begins. When the balance cannot pay, the machine stops, so a runaway agent cannot run up a bill. - **Expiry.** Agent tokens can expire on a date you choose. ## Machine-readable entry points - [/llms.txt](/llms.txt): the index for language models - [/llms-full.txt](/llms-full.txt): everything on this site in one file - [/openapi.json](/openapi.json): OpenAPI 3.1 spec - [/docs](/docs): interactive API reference - [/docs/mcp.md](/docs/mcp.md): the MCP endpoint and tools - [/docs/agent-walkthrough.md](/docs/agent-walkthrough.md): search, rent and stop, step by step - [/v1/market/summary](/v1/market/summary): live market summary, no token needed - [/sitemap.xml](/sitemap.xml) Every page on this site has a Markdown twin: `/` is `/index.html.md`, `/agents` is `/agents.html.md`, `/careers` is `/careers.html.md`. ## Things to ask - "Find the cheapest GPU with at least 48 GB of memory, rent it for 2 hours, and tell me how to SSH in." - "Fine-tune with train.py on 4 RTX 4090s for up to 6 hours, keep checkpoints on my volume, and stop the machine when the run ends." - "Check whether an H200 is available under $2.50 per GPU-hour. If it is, tell me the price and the country." ## Questions about agents and GPUs **Is there an MCP server for renting GPUs?** Yes. Arrakis runs a remote MCP server at https://arrakis.goodailabs.com/mcp over streamable HTTP with a bearer token. Its eight tools search the live GPU market, rent a machine with a removal time, check the balance and shut machines down. **How do I let Claude Code rent a GPU?** Create an agent token with a spend cap in the console, then run claude mcp add --transport http arrakis https://arrakis.goodailabs.com/mcp --header "Authorization: Bearer ark_...". Claude Code can then search, rent and shut down GPUs, and it cannot spend past the cap. **Can Cursor and other agents use Arrakis?** Yes. Any MCP client that connects to remote servers over streamable HTTP can use /mcp with a bearer token. A client that only runs local servers can use arrakis mcp, which serves the same tools over stdio. Anything that calls a REST API can use the endpoints in /openapi.json. **How do I stop an AI agent from overspending on GPUs?** Give it its own token with a spend cap and a longest rental. Arrakis refuses any rental whose worst-case cost would pass the cap, every rental the token makes must carry a removal time, and a retry with the same idempotency key never rents twice. **What happens if my agent crashes while a GPU is running?** The machine still removes itself at its removal time, so a crashed agent cannot leave a GPU billing. Every machine is also in the console, where you can stop it. **Does an agent need its own account?** No. An agent works under your account with a token you create. The token's permissions, spend cap and expiry are its whole budget, and you can revoke it at any time. --- # Careers at Arrakis: build where compute flows We're a small team at Good AI Labs building the market layer for GPU compute: the part that finds supply, prices it and lets agents spend safely. We hire people who enjoy hard infrastructure and care how it feels to use. ## The Spice Test Our first interview is an API call. Its answer moves with the GPU market, so nobody can share it. 1. Call the public market summary. No token needed: `GET $ARRAKIS_URL/v1/market/summary` (`$ARRAKIS_URL` is this site's address). 2. Using `min_price_per_gpu_hour` and `max_vram_gb`, find the GPU family with the lowest price per GB of memory right now. 3. Send us the family, its price per GB-hour to four decimal places, the `updated_at` you used, and the exact request you made. 4. Agents may take the test for you. If one did, tell us which one and how you set it up. ```sh curl -s $ARRAKIS_URL/v1/market/summary \ | jq '.updated_at, (.families[] | {gpu_type, min_price_per_gpu_hour, max_vram_gb})' ``` We check every answer against the market at the moment you name. ## Open roles All roles are remote and full-time. Apply with your Spice Test answer and links to work you're proud of. ### Founding infrastructure engineer What you'll do: - Own how Arrakis talks to GPU markets: adapters, pricing, provisioning and failure handling. - Make state durable and fast, from DynamoDB to whatever comes next. - Build the guardrails that let agents spend money safely. What you'll bring: - Years of production Python or Go on distributed systems. - Comfort with Linux, containers, networking and GPUs. - A taste for small, tested, well-named code. ### Founding product engineer What you'll do: - Own the console end to end, from React and TypeScript to the API it calls. - Turn a GPU market into screens people trust with their money. - Ship the agent experience: tokens, MCP and the first five minutes. What you'll bring: - A portfolio of interfaces you built and shipped. - Deep TypeScript and React, and opinions about type, spacing and copy. - Comfort reading a FastAPI route when the interface needs it. ### Developer advocate for agents What you'll do: - Make Arrakis the easiest GPU cloud for an agent to use: docs, examples and MCP recipes. - Run the Spice Test and the community around it. - Turn what users struggle with into product changes. What you'll bring: - Code and prose that people read. - Real time with Claude Code, Codex or Cursor, and a sense of where agents break. - Public work we can read: posts, repositories, talks. ## How we hire 1. **The Spice Test.** Send your answer with links to work you're proud of. 2. **A working session.** We work through a real problem from our backlog together. 3. **A conversation.** About the role, the team and the offer. ## Apply Send your answer to careers@goodailabs.com with the role and "Spice Test" in the subject line. --- # Rent the NVIDIA H100 by the hour The standard GPU for training and serving large language models. Arrakis lists every available H100 across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA H100 on Arrakis is $1.77 per GPU-hour, with 27 GPUs available on 4 machines. ## Specifications - Architecture: NVIDIA Hopper - Memory: 80 GB HBM3 (SXM) or HBM2e (PCIe) - Memory bandwidth: Up to 3.35 TB/s on SXM - Source: [NVIDIA's H100 page](https://www.nvidia.com/en-us/data-center/h100/) ## How the H100 compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | H100 | 80 GB | Up to 3.35 TB/s on SXM | $1.77 | | [H200](/gpus/h200.html.md) | 141 GB | 4.8 TB/s | $4.50 | | [B200](/gpus/b200.html.md) | 180 to 192 GB | Up to 8 TB/s | $5.60 | | [A100](/gpus/a100.html.md) | 40 or 80 GB | Up to 2 TB/s on the 80 GB model | $0.65 | ## What people run on it - Training and fine-tuning large language models - High-throughput inference in FP8 with the Transformer Engine - Multi-GPU jobs on NVLink-connected SXM machines ## Questions **How much does it cost to rent an H100?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA H100 on Arrakis is $1.77 per GPU-hour, with 27 GPUs available on 4 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the H100 on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for an H100, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which H100 configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_type=H100), or `arrakis gpus search --gpu-type "H100"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA H200 by the hour The H100's compute with far more memory and bandwidth. Arrakis lists every available H200 across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA H200 on Arrakis is $4.50 per GPU-hour, with 14 GPUs available on 3 machines. ## Specifications - Architecture: NVIDIA Hopper - Memory: 141 GB HBM3e - Memory bandwidth: 4.8 TB/s - Source: [NVIDIA's H200 page](https://www.nvidia.com/en-us/data-center/h200/) ## How the H200 compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | H200 | 141 GB | 4.8 TB/s | $4.50 | | [H100](/gpus/h100.html.md) | 80 GB | Up to 3.35 TB/s on SXM | $1.77 | | [B200](/gpus/b200.html.md) | 180 to 192 GB | Up to 8 TB/s | $5.60 | ## What people run on it - Inference on large models that do not fit in 80 GB - Long-context serving - Training with larger batches per GPU ## Questions **How much does it cost to rent an H200?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA H200 on Arrakis is $4.50 per GPU-hour, with 14 GPUs available on 3 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the H200 on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for an H200, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which H200 configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_type=H200), or `arrakis gpus search --gpu-type "H200"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA B200 by the hour Blackwell-generation performance with FP4 and FP8. Arrakis lists every available B200 across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA B200 on Arrakis is $5.60 per GPU-hour, with 18 GPUs available on 4 machines. ## Specifications - Architecture: NVIDIA Blackwell - Memory: 180 to 192 GB HBM3e, depending on the system - Memory bandwidth: Up to 8 TB/s - Source: [NVIDIA's B200 page](https://www.nvidia.com/en-us/data-center/dgx-b200/) ## How the B200 compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | B200 | 180 to 192 GB | Up to 8 TB/s | $5.60 | | [H200](/gpus/h200.html.md) | 141 GB | 4.8 TB/s | $4.50 | | [B300](/gpus/b300.html.md) | About 262 GB | Not published per GPU | $8.00 | ## What people run on it - Frontier-scale training - Fast large-model inference per GPU - FP4 serving with the second-generation Transformer Engine ## Questions **How much does it cost to rent a B200?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA B200 on Arrakis is $5.60 per GPU-hour, with 18 GPUs available on 4 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the B200 on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for a B200, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which B200 configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_type=B200), or `arrakis gpus search --gpu-type "B200"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA B300 by the hour Blackwell Ultra, with the most memory per GPU of any GPU on Arrakis. Arrakis lists every available B300 across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA B300 on Arrakis is $8.00 per GPU-hour, with 22 GPUs available on 3 machines. ## Specifications - Architecture: NVIDIA Blackwell Ultra - Memory: HBM3e, 2.1 TB across the eight GPUs of a DGX B300 - Source: [NVIDIA's B300 page](https://www.nvidia.com/en-us/data-center/dgx-b300/) ## How the B300 compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | B300 | About 262 GB | Not published per GPU | $8.00 | | [B200](/gpus/b200.html.md) | 180 to 192 GB | Up to 8 TB/s | $5.60 | | [H200](/gpus/h200.html.md) | 141 GB | 4.8 TB/s | $4.50 | ## What people run on it - Training and serving the largest models - Long-context inference with more memory per GPU than the B200 - FP4 and FP8 inference with the second-generation Transformer Engine ## Questions **How much does it cost to rent a B300?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA B300 on Arrakis is $8.00 per GPU-hour, with 22 GPUs available on 3 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the B300 on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for a B300, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which B300 configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_type=B300), or `arrakis gpus search --gpu-type "B300"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA A100 by the hour A proven workhorse with the widest software support. Arrakis lists every available A100 across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA A100 on Arrakis is $0.65 per GPU-hour, with 21 GPUs available on 7 machines. ## Specifications - Architecture: NVIDIA Ampere - Memory: 40 GB or 80 GB of HBM - Memory bandwidth: Up to 2 TB/s on the 80 GB model - Source: [NVIDIA's A100 page](https://www.nvidia.com/en-us/data-center/a100/) ## How the A100 compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | A100 | 40 or 80 GB | Up to 2 TB/s on the 80 GB model | $0.65 | | [H100](/gpus/h100.html.md) | 80 GB | Up to 3.35 TB/s on SXM | $1.77 | | [L40S](/gpus/l40s.html.md) | 48 GB | 864 GB/s | None available now | ## What people run on it - Fine-tuning and training mid-size models - Cost-efficient inference - Workloads that rely on a mature CUDA stack ## Questions **How much does it cost to rent an A100?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA A100 on Arrakis is $0.65 per GPU-hour, with 21 GPUs available on 7 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the A100 on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for an A100, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which A100 configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_type=A100), or `arrakis gpus search --gpu-type "A100"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA RTX PRO 6000 by the hour 96 GB of memory on a single GPU. Arrakis lists every available RTX PRO 6000 across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA RTX PRO 6000 on Arrakis is $1.77 per GPU-hour, with 2 GPUs available on 2 machines. ## Specifications - Architecture: NVIDIA Blackwell - Memory: 96 GB GDDR7 - Memory bandwidth: About 1.8 TB/s - Source: [NVIDIA's RTX PRO 6000 page](https://www.nvidia.com/en-us/products/workstations/professional-desktop-gpus/rtx-pro-6000/) ## How the RTX PRO 6000 compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | RTX PRO 6000 | 96 GB | About 1.8 TB/s | $1.77 | | [RTX 6000 Ada](/gpus/rtx-6000-ada.html.md) | 48 GB | 960 GB/s | $0.70 | | [RTX 5090](/gpus/rtx-5090.html.md) | 32 GB | About 1.8 TB/s | $0.75 | | [H100](/gpus/h100.html.md) | 80 GB | Up to 3.35 TB/s on SXM | $1.77 | ## What people run on it - Running 70B-class models on one GPU with 8-bit weights - Fine-tuning with large batches - Rendering and simulation ## Questions **How much does it cost to rent an RTX PRO 6000?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA RTX PRO 6000 on Arrakis is $1.77 per GPU-hour, with 2 GPUs available on 2 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the RTX PRO 6000 on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for an RTX PRO 6000, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which RTX PRO 6000 configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_type=RTX%20PRO%206000), or `arrakis gpus search --gpu-type "RTX PRO 6000"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA GeForce RTX 5090 by the hour The fastest consumer GPU, with FP4 support. Arrakis lists every available RTX 5090 across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA GeForce RTX 5090 on Arrakis is $0.75 per GPU-hour, with 3 GPUs available on 3 machines. ## Specifications - Architecture: NVIDIA Blackwell - Memory: 32 GB GDDR7 - Memory bandwidth: About 1.8 TB/s - Source: [NVIDIA's RTX 5090 page](https://www.nvidia.com/en-us/geforce/graphics-cards/50-series/rtx-5090/) ## How the RTX 5090 compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | RTX 5090 | 32 GB | About 1.8 TB/s | $0.75 | | [RTX 4090](/gpus/rtx-4090.html.md) | 24 GB | About 1 TB/s | $0.45 | | [RTX PRO 6000](/gpus/rtx-pro-6000.html.md) | 96 GB | About 1.8 TB/s | $1.77 | ## What people run on it - Inference for 7B to 30B models - Diffusion and image generation - LoRA fine-tuning ## Questions **How much does it cost to rent an RTX 5090?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA GeForce RTX 5090 on Arrakis is $0.75 per GPU-hour, with 3 GPUs available on 3 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the RTX 5090 on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for an RTX 5090, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which RTX 5090 configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_type=RTX%205090), or `arrakis gpus search --gpu-type "RTX 5090"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA GeForce RTX 4090 by the hour The most widely available low-cost GPU for AI work. Arrakis lists every available RTX 4090 across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA GeForce RTX 4090 on Arrakis is $0.45 per GPU-hour, with 9 GPUs available on 8 machines. ## Specifications - Architecture: NVIDIA Ada Lovelace - Memory: 24 GB GDDR6X - Memory bandwidth: About 1 TB/s - Source: [NVIDIA's RTX 4090 page](https://www.nvidia.com/en-us/geforce/graphics-cards/40-series/rtx-4090/) ## How the RTX 4090 compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | RTX 4090 | 24 GB | About 1 TB/s | $0.45 | | [RTX 5090](/gpus/rtx-5090.html.md) | 32 GB | About 1.8 TB/s | $0.75 | | [RTX 3090](/gpus/rtx-3090.html.md) | 24 GB | 936 GB/s | $0.22 | ## What people run on it - Inference for 7B to 13B models - Stable Diffusion and other image models - Experiments and LoRA fine-tuning on a budget ## Questions **How much does it cost to rent an RTX 4090?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA GeForce RTX 4090 on Arrakis is $0.45 per GPU-hour, with 9 GPUs available on 8 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the RTX 4090 on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for an RTX 4090, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which RTX 4090 configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_type=RTX%204090), or `arrakis gpus search --gpu-type "RTX 4090"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA L40S by the hour A data-center GPU tuned for inference and graphics. Arrakis lists every available L40S across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** No NVIDIA L40S is available on Arrakis right now (checked 13 Oct 2026, 17:52 UTC). Supply changes by the minute, and the console lists new machines as they appear. ## Specifications - Architecture: NVIDIA Ada Lovelace - Memory: 48 GB GDDR6 with ECC - Memory bandwidth: 864 GB/s - Source: [NVIDIA's L40S page](https://www.nvidia.com/en-us/data-center/l40s/) ## How the L40S compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | L40S | 48 GB | 864 GB/s | None available now | | [RTX 6000 Ada](/gpus/rtx-6000-ada.html.md) | 48 GB | 960 GB/s | $0.70 | | [A100](/gpus/a100.html.md) | 40 or 80 GB | Up to 2 TB/s on the 80 GB model | $0.65 | ## What people run on it - Inference with 48 GB of memory - Fine-tuning mid-size models - Rendering and video workloads ## Questions **How much does it cost to rent an L40S?** No NVIDIA L40S is available on Arrakis right now (checked 13 Oct 2026, 17:52 UTC). Supply changes by the minute, and the console lists new machines as they appear. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the L40S on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for an L40S, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which L40S configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_type=L40S), or `arrakis gpus search --gpu-type "L40S"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA RTX 6000 Ada Generation by the hour 48 GB of memory, a generation newer than the RTX A6000. Arrakis lists every available RTX 6000 Ada across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA RTX 6000 Ada Generation on Arrakis is $0.70 per GPU-hour, with 5 GPUs available on 5 machines. ## Specifications - Architecture: NVIDIA Ada Lovelace - Memory: 48 GB GDDR6 with ECC - Memory bandwidth: 960 GB/s - Source: [NVIDIA's RTX 6000 Ada page](https://www.nvidia.com/en-us/design-visualization/rtx-6000/) ## How the RTX 6000 Ada compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | RTX 6000 Ada | 48 GB | 960 GB/s | $0.70 | | [RTX A6000](/gpus/rtx-a6000.html.md) | 48 GB | 768 GB/s | $0.42 | | [L40S](/gpus/l40s.html.md) | 48 GB | 864 GB/s | None available now | | [RTX PRO 6000](/gpus/rtx-pro-6000.html.md) | 96 GB | About 1.8 TB/s | $1.77 | ## What people run on it - Inference for models up to about 30B parameters in 8-bit - LoRA and QLoRA fine-tuning - Rendering, simulation and video ## Questions **How much does it cost to rent an RTX 6000 Ada?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA RTX 6000 Ada Generation on Arrakis is $0.70 per GPU-hour, with 5 GPUs available on 5 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the RTX 6000 Ada on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for an RTX 6000 Ada, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which RTX 6000 Ada configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_model=6000%20Ada), or `arrakis gpus search --gpu-type "RTX 6000 Ada"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA RTX A6000 by the hour 48 GB of memory for less than a data-center GPU. Arrakis lists every available RTX A6000 across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA RTX A6000 on Arrakis is $0.42 per GPU-hour, with 5 GPUs available on 4 machines. ## Specifications - Architecture: NVIDIA Ampere - Memory: 48 GB GDDR6 with ECC - Memory bandwidth: 768 GB/s - Source: [NVIDIA's RTX A6000 page](https://www.nvidia.com/en-us/design-visualization/rtx-a6000/) ## How the RTX A6000 compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | RTX A6000 | 48 GB | 768 GB/s | $0.42 | | [RTX 6000 Ada](/gpus/rtx-6000-ada.html.md) | 48 GB | 960 GB/s | $0.70 | | [RTX 3090](/gpus/rtx-3090.html.md) | 24 GB | 936 GB/s | $0.22 | ## What people run on it - Fine-tuning with 48 GB of memory - Inference for mid-size models - Rendering ## Questions **How much does it cost to rent an RTX A6000?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA RTX A6000 on Arrakis is $0.42 per GPU-hour, with 5 GPUs available on 4 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the RTX A6000 on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for an RTX A6000, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which RTX A6000 configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_model=A6000), or `arrakis gpus search --gpu-type "RTX A6000"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Rent the NVIDIA GeForce RTX 3090 by the hour Often the cheapest 24 GB GPU you can rent. Arrakis lists every available RTX 3090 across independent GPU markets, cheapest first, and rents it on one prepaid balance with automatic shutdown. **Price right now:** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA GeForce RTX 3090 on Arrakis is $0.22 per GPU-hour, with 8 GPUs available on 2 machines. ## Specifications - Architecture: NVIDIA Ampere - Memory: 24 GB GDDR6X - Memory bandwidth: 936 GB/s - Source: [NVIDIA's RTX 3090 page](https://www.nvidia.com/en-us/geforce/graphics-cards/30-series/rtx-3090-3090ti/) ## How the RTX 3090 compares | GPU | Memory | Memory bandwidth | Lowest price per GPU-hour on Arrakis | |---|---|---|---| | RTX 3090 | 24 GB | 936 GB/s | $0.22 | | [RTX 4090](/gpus/rtx-4090.html.md) | 24 GB | About 1 TB/s | $0.45 | | [RTX A6000](/gpus/rtx-a6000.html.md) | 48 GB | 768 GB/s | $0.42 | ## What people run on it - Low-cost inference and experiments - Small fine-tunes - Learning and prototyping ## Questions **How much does it cost to rent an RTX 3090?** As of 13 Oct 2026, 17:52 UTC, the lowest price for an NVIDIA GeForce RTX 3090 on Arrakis is $0.22 per GPU-hour, with 8 GPUs available on 2 machines. You pay the hourly price shown when you rent, from a prepaid balance. A machine bills from start to removal, and a started hour counts as a full hour. **Can an AI agent rent the RTX 3090 on Arrakis?** Yes. Give the agent a spend-capped token and connect it over MCP or the REST API. It can search for an RTX 3090, rent it for a set number of hours, and shut it down, and it cannot spend past its cap. **Which RTX 3090 configurations can I rent?** It depends on live supply. Each listing shows the exact model, memory, GPU count, CPU and RAM, country and region, and a reliability score, so you can choose the machine that fits. **Do I get root access?** Yes. You SSH in as root and can run any Docker image, with your own SSH keys and optional volumes for data. Rent it: [console](/console/#/gpus?gpu_model=RTX%203090), or `arrakis gpus search --gpu-type "RTX 3090"` (cheapest first). Which GPU fits your model: [How much GPU memory you need](/guides/gpu-memory.html.md). --- # Agent walkthrough: a bounded GPU rental These are request examples, not an executed rental transcript. Any response described here is a shape, not evidence of a live machine or price. `$ARRAKIS_URL` is your Arrakis API origin without a trailing slash. See the current [OpenAPI document](/openapi.json) for complete schemas. ## 1. Create your account and credential The simplest route is to sign in at [/console/](/console/). For API-only setup: ```sh curl -X POST "$ARRAKIS_URL/v1/tenants" \ -H 'Content-Type: application/json' -d '{"name":"Eval lab"}' ``` The response shape contains `id`, `name`, `created_at` and `bootstrap_secret`. Save the secret privately when it is returned: it is single-use and expires after 24 hours. Exchange it at `POST /v1/tokens` with `tenant_id`, `bootstrap_secret`, a token name and your chosen scopes. The bootstrap request has no bearer header. Default scopes are `read`. An authenticated token-creation request requires `manage` and can grant only scopes the caller already holds. Keep account-management credentials separate from your agent. For the agent, create a token with `read` and `rent`, `spend_limit_usd`, `max_rental_hours` and a future `expires_at`. A child cannot escape its parent's remaining cap or maximum duration. Token secrets are returned once, stored hashed and revocable. Store the agent token privately in `ARRAKIS_TOKEN`; never print it in logs or commit it. See [security](/docs/security.md) for the full boundaries. ## 2. Request funds Request funds in the console. During early access our team confirms balances by hand. A deposit request is pending and does not increase your balance until an operator confirms it. Agents cannot credit themselves. There is no promised confirmation time. ## 3. Connect your agent or search directly Connect Claude Code, Cursor or another MCP client to `$ARRAKIS_URL/mcp` with your bearer header. The [MCP guide](/docs/mcp.md) lists all eight tools and the local `arrakis mcp` alternative. Direct API search requires `read`: ```sh curl -H "Authorization: Bearer $ARRAKIS_TOKEN" \ "$ARRAKIS_URL/v1/gpus?gpu_type=H100&max_price_per_gpu_hour=2" ``` Inspect current availability and the full machine price before renting. The search ceiling is per GPU-hour; a multi-GPU machine may cost more per hour. Use the returned opaque node id rather than guessing one. Public aggregate prices are available at `GET /v1/market/summary` without a token. ## 4. Rent with a deadline and a stable retry key This request shape requires `rent`, confirmed funds, a valid node id and your actual SSH public key. It creates a billable rental if you execute it. Replace the placeholders first. ```sh curl -X POST "$ARRAKIS_URL/v1/instances" \ -H "Authorization: Bearer $ARRAKIS_TOKEN" \ -H 'Content-Type: application/json' \ -d '{"name":"eval-01","node_id":"","gpu_count":1,"ssh_public_key":"","termination_hours":3,"idempotency_key":"eval-run-01"}' ``` The response shape includes `id`, `state` and `ssh_command` (which may be null while the machine starts). Capped tokens must set `termination_hours`, within their maximum rental duration. The machine's hourly price multiplied by this window reserves committed spend against the cap. A request exceeding the remaining cap is rejected with 402. If the response is lost, retry with the same `idempotency_key`, not a new one. Keep a distinct key per intended rental. The same key returns the same machine rather than creating another. ## 5. Connect, save results and terminate Read `GET /v1/instances/` until connection information is available. Use the returned SSH command from your terminal. The MCP tools manage compute; running an experiment and copying its results require your agent's own terminal tools. Copy important results to storage you control, then terminate explicitly: ```sh curl -X POST "$ARRAKIS_URL/v1/instances/$INSTANCE_ID/terminate" \ -H "Authorization: Bearer $ARRAKIS_TOKEN" ``` For a removal schedule, `POST /v1/instances/$INSTANCE_ID/schedule-removal` takes `{"removal_scheduled_at":""}`. Do not extend a job beyond its authorized budget. Do not rely on a zero account balance to stop an existing machine; retain its shutdown deadline and terminate it when done. Independent hosts run these machines. There is no SLA. Keep regulated data off them and use volumes for checkpoints only where supported. --- # Connect an agent to Arrakis Arrakis exposes eight compute tools through MCP. Connect your client to `$ARRAKIS_URL/mcp` with your own bearer token; `$ARRAKIS_URL` is the origin of your Arrakis deployment, with no trailing slash. The console is at [/console/](/console/). ## Create a bounded credential In the console's API & agents page, create a token with `read` and `rent` scopes, a spend cap, a maximum rental duration and an expiry. Copy the token once and keep it in your client's secret storage. Do not commit it to a repository. A caller creating another token needs `manage`; a child can never gain scopes or exceed its parent's remaining spend cap or maximum rental duration. ## Claude Code Replace the placeholder token before running this command: ```sh claude mcp add --transport http arrakis $ARRAKIS_URL/mcp --header "Authorization: Bearer ark_…" ``` ## Cursor Add an entry to your MCP configuration. This is a configuration shape, not an executed connection; substitute your actual origin and token. Cursor does not expand `$ARRAKIS_URL` in this JSON. ```json { "mcpServers": { "arrakis": { "url": "$ARRAKIS_URL/mcp", "headers": {"Authorization": "Bearer ark_…"} } } } ``` ## Other clients Use MCP streamable HTTP at `$ARRAKIS_URL/mcp` with `Authorization: Bearer `. The endpoint uses stateless JSON responses, not SSE or persistent server sessions. Use a client that supports this transport. For a local stdio connection, use an installed Arrakis CLI: ```sh export ARRAKIS_BASE_URL="$ARRAKIS_URL" # Set ARRAKIS_TOKEN through your secret manager. arrakis mcp ``` The local command requires `ARRAKIS_TOKEN`. The remote endpoint does not require a local CLI installation. ## Tools | Tool | Arguments | Cost or change | |---|---|---| | `search_gpus` | Optional `gpu_type`, `min_gpus`, `max_price_per_gpu_hour`, `country`; `limit` defaults to 10 | Reads available machines, cheapest first. Does not rent. | | `get_market_summary` | None | Reads live aggregate prices and availability. No charge. | | `get_balance` | None | Reads your prepaid balance. No charge. | | `rent_gpu` | `node_id`, `name`, `termination_hours`; optional `gpu_count`, `template_id`, `ssh_key_id`, `idempotency_key` | Creates a billable rental. Returns the instance, state, SSH command and idempotency key. Generates a key if absent. | | `list_instances` | None | Reads your instances. No new rental. | | `get_instance` | `instance_id` | Reads one of your instances. No new rental. | | `terminate_instance` | `instance_id` | Removes the machine; save your results first. | | `schedule_removal` | `instance_id`, `at` | Sets the machine's removal time. Use an ISO 8601 timestamp. | ## Safety boundaries - MCP calls use your token against the same API as the console. Scopes, tenant isolation, expiry and spend caps still apply. API failures are tool errors containing the API's `detail`. - Capped tokens must set `termination_hours`. A rental reserves its worst-case cost: machine price per hour multiplied by the rental duration. Committed spend cannot exceed the token's cap; a rejected rental returns 402. Committed spend is not a live balance that resets when a machine stops. - A token's maximum rental duration is enforced independently of its spend cap. - Reuse the same `idempotency_key` when retrying a rental. If the initial response is lost, a new key is a new request; supply a stable key before the first call when automatic retries matter. - A deposit request is pending, not spendable money. Only operator confirmation credits the balance. - Token secrets are shown once, stored hashed and revocable. Never give an agent the operator credential or your bootstrap secret. - Independent hosts run the machines. Keep regulated data off them and copy results to storage you control. Example prompt (not an executed rental): > Rent the cheapest H100 under $2 per hour for 3 hours, run `python eval.py`, copy results back, then shut it down. The price in this prompt is a search ceiling, not a market quote. SSH and running the command require your agent's own terminal tools; the MCP tools above manage compute. See [agent walkthrough](/docs/agent-walkthrough.md), [security](/docs/security.md), [API reference](/docs), [OpenAPI](/openapi.json) and [/llms.txt](/llms.txt). --- # Arrakis API guide The live [OpenAPI document](/openapi.json) is the authoritative schema; [/docs](/docs) is the interactive reference. This guide is an overview, not a generated endpoint inventory or an executed response transcript. The console is at [/console/](/console/). ## Authentication `POST /v1/tenants` creates a tenant and returns a single-use `bootstrap_secret` alongside its id, name and creation time. The secret is returned once, stored hashed and expires after 24 hours. Without a bearer, `POST /v1/tokens` requires `tenant_id` and `bootstrap_secret`. Missing, incorrect, expired and used secrets all fail with 401. Success consumes the secret. With a bearer, token issuance requires `manage`. Requested scopes must be a subset of the caller's scopes; the default is `read`. Identity linking to an existing tenant also requires `manage`. Use `Authorization: Bearer $ARRAKIS_TOKEN` on protected requests. The API derives the tenant from the credential. Tokens can carry `spend_limit_usd` (positive), `max_rental_hours` (integer at least one), and a future `expires_at`. An expired token receives 401. Child tokens cannot exceed a parent's remaining spend cap or maximum rental duration. Keep account-management credentials separate from agent tokens. ## Main routes | Method | Path | Purpose | |---|---|---| | GET | `/healthz` | Public liveness | | GET | `/v1/market/summary` | Public live price and availability summary | | POST | `/v1/tenants` | Create a tenant and obtain its bootstrap secret | | POST | `/v1/tokens` | Exchange bootstrap secret, or mint with a manage-scoped bearer | | GET / DELETE | `/v1/tokens`, `/v1/tokens/{id}` | List or revoke credentials; see live schema for required scopes | | GET | `/v1/gpus` | Search capacity | | POST | `/v1/instances` | Create a billable rental; requires rent scope | | GET | `/v1/instances`, `/v1/instances/{id}` | Read your instances | | POST | `/v1/instances/{id}/terminate` | Terminate your rental | | POST | `/v1/instances/{id}/schedule-removal` | Set `removal_scheduled_at` | | GET | `/v1/billing/balance`, `/v1/billing/ledger` | Inspect funds and ledger | | POST | `/v1/billing/deposits` | Request a deposit; does not credit funds | | GET | `/v1/metering/usage` | Inspect recorded usage | | POST | `/mcp` | Remote MCP using the caller's bearer credential | Templates, SSH keys, volumes and other operations are documented in the live OpenAPI schema. Capabilities depend on the chosen host; unsupported operations fail explicitly. ## Search and prices `GET /v1/gpus` supports GPU type and count, memory, price, country and other filters documented in OpenAPI. `max_price_per_gpu_hour` is a per-GPU ceiling, not a whole-machine price. Inspect the returned machine's price before renting. The public summary shape is `{updated_at, stale, gpus_available, machines, families}`. Each family contains `gpu_type`, `gpu_model`, `min_price_per_gpu_hour`, `available_gpus`, `machines` and `max_vram_gb`. This is a response shape, not a captured response. Unverified and zero prices are excluded. The summary is cached for 60 seconds; on market failure a last-good snapshot can be served for up to ten minutes with `stale: true`. Without a usable snapshot it returns 503. ## Rental safety Use a returned node id, your public SSH key, a stable `idempotency_key` and `termination_hours` on creation. Capped tokens must provide a shutdown window within their maximum duration. A rental commits the machine's hourly price multiplied by that duration against the token's cap. A cap-exceeding request receives 402; missing a required shutdown window receives 422. Reusing the same retry key returns the same machine rather than another rental. Pending deposit requests do not change the spendable balance. Only an operator-confirmed deposit credits funds. Tenant credentials cannot write arbitrary billing charges. Do not rely on an empty balance to terminate an existing machine. ## Agent and CLI access [Connect through MCP](/docs/mcp.md) or follow the [agent walkthrough](/docs/agent-walkthrough.md). The CLI is generated from the same OpenAPI contract as the console. Run it from an Arrakis checkout with `uv run arrakis --help`; a public package-install workflow is not promised here. --- # Security and spending boundaries Arrakis credentials authorize paid operations. Keep secrets in a secret manager, not in source control, logs or agent prompts. This document describes the API contract, not an independent security certification. The console is at [/console/](/console/); current schemas are at [/openapi.json](/openapi.json). ## Credentials - Token plaintext is returned once and stored hashed. Tokens are scoped and revocable; an expired token is rejected with 401. - Available scopes are `read`, `rent`, `manage` and `billing`. Issuance defaults to `read`. Creating a token with a bearer requires `manage`, and requested scopes must be a subset of the caller's scopes. - API-only setup creates a tenant and returns one `bootstrap_secret`. This secret is single-use, stored hashed and expires after 24 hours. A token request without a bearer needs both `tenant_id` and `bootstrap_secret`. Unknown tenants and wrong, expired or consumed secrets share the same 401 response. Do not hand this secret to a workload agent. - Linking a social identity to an existing tenant requires a manage-scoped bearer. A read-only token cannot be used to gain account-management access. ## Bound unattended spending Give each workload a `read` + `rent` token with a positive `spend_limit_usd`, a `max_rental_hours` limit and an expiry. Retain account-management access separately. A capped token must supply `termination_hours` when renting. The window cannot exceed its maximum duration. The API reserves the full machine price per hour multiplied by that window against the cap, and rejects a request exceeding the remaining cap with 402. Committed spend is not a balance that automatically resets when a machine stops. Child tokens cannot be uncapped or exceed their parent's remaining cap or maximum rental duration. Use a stable `idempotency_key` for each intended rental. Retrying the same request with the same key returns the same machine. A different key represents a new request. Set a shutdown deadline on every machine, save results and explicitly terminate when finished. Do not rely on a zero account balance to stop running machines. ## Tenant and money isolation The API derives the tenant from the authenticated token. Instance lists contain only that tenant's recorded instances, not other tenants' or unrelated host-account machines. Cross-tenant instance operations are denied. During early access a deposit request remains pending until our team confirms it. Only operator confirmation credits the prepaid balance. Ordinary tenant credentials cannot confirm deposits or create arbitrary charges. Never share an operator credential with a client or an agent. ## MCP uses the same boundaries The remote endpoint is `$ARRAKIS_URL/mcp`. Each call uses the caller's own bearer token against the same API, retaining scope checks, spend caps, expiry and tenant isolation. MCP does not give a client extra authority. See [client setup and all eight tools](/docs/mcp.md). ## Host risk remains Machines run with independent hosts; keep regulated data off them. Arrakis offers no SLA. Hosts and machines can fail. Use volumes for checkpoints where supported and keep a separate copy of important results on storage you control. A spend cap is not a guarantee about workload completion or availability. ## Credential rotation 1. Create a replacement token with only the scopes, budget and duration the job needs. 2. Store it in the client's secret storage and update the client. 3. Revoke the old token. 4. Review running instances separately and terminate any that should no longer incur costs. --- # How Arrakis fits together ```text Console /console/ ─┐ Generated CLI ─────┼──▶ token-authenticated API ──▶ independent GPU markets Agent /mcp ────────┘ │ tenant state and prepaid ledger ``` Arrakis searches independent GPU markets through one API. The console, CLI and MCP tools use the same authorization and rental rules. ## Discover, then rent The public `GET /v1/market/summary` returns aggregate availability and verified positive prices. It has no machine identifiers. A snapshot is cached for 60 seconds; when discovery fails, the last good snapshot can be returned for up to ten minutes with `stale: true`. Without a usable snapshot the endpoint returns 503. Prices and availability can change before a rental is accepted. Detailed search at `GET /v1/gpus` needs a token with `read` scope. Rent using an opaque `node_id` from search; there is no need to choose a market yourself. Use the same `idempotency_key` when retrying a rental. ## Credentials and tenant boundaries Create a tenant to receive a single-use bootstrap secret, or sign in at [/console/](/console/). The bootstrap secret expires after 24 hours and is needed to create the first API token without an existing bearer. Both token and bootstrap credentials are stored hashed. Keep their plaintext in a secret store; they are shown only at creation. Further token issuance requires `manage` scope and cannot grant scopes the caller does not hold. Scoped, revocable tokens identify a tenant on every protected operation. An instance belonging to another tenant is not accessible. ## Budgeted execution Give each agent its own `read` + `rent` token with a spend cap. Capped tokens must specify `termination_hours` for each rental. The cap reserves the worst-case rental cost, not just the usage charged so far. Child credentials cannot remove or increase the parent's remaining cap or rental-duration limit. A funding request creates a pending deposit. Only operator confirmation credits the prepaid balance; a tenant cannot credit itself or post arbitrary charges. ## Clients and contracts The current [/openapi.json](/openapi.json) describes the API. The CLI client is generated from that contract; [/docs](/docs) is the interactive reference. Remote MCP is available at `/mcp`, with the same bearer token and authorization rules. See [MCP setup](/docs/mcp.md), [security](/docs/security.md) and [capability limits](/docs/provider-capabilities.md). --- # Capabilities and limits Arrakis connects independent GPU markets. Availability, hardware and supported operations vary by machine. A capability listed here does not mean it is supported on every host. | Capability | What to check | |---|---| | GPU discovery | Use `/v1/gpus` for current models, memory, GPU count, location and prices. | | Public prices | `/v1/market/summary` excludes unverified and zero prices; a failed request is not a zero-price offer. | | Rental and SSH | Rent an available node, then inspect the instance until it supplies an SSH command. | | Docker templates | Choose a template for your image; image and host compatibility still apply. | | SSH keys | Register your public key; keep the private key off the API. | | Volumes | Use supported storage for checkpoints; attachment and storage semantics depend on the selected capacity. | | Removal schedules | Set `termination_hours` at rental creation. Capped tokens require it. | | Usage and billing | Inspect recorded usage and the prepaid ledger; new funds remain pending until confirmed. | Unsupported operations fail explicitly with `CapabilityNotSupported`; they are not simulated successes. Consult the API error's `detail` before choosing an alternative. Do not assume a missing hardware value is zero or a missing price means free compute. ## Host reliability Machines run with independent hosts; keep regulated data off them. There is no SLA. Check any reported reliability information and copy important results off the machine. A volume is not a promise of automatic backup or failover. ## Safe automation Use a scoped, spend-capped token and an automatic removal deadline. Preserve an `idempotency_key` across retries of the same rental. A prepaid balance does not replace an explicit shutdown schedule. See [security](/docs/security.md), the [agent walkthrough](/docs/agent-walkthrough.md) and the current [API schema](/openapi.json).