Quickstart
Go from a fresh account to a root shell on a rented GPU in about five minutes.
This guide walks the whole path once. You create an account, load prepaid credits, register an SSH key, rent a GPU from the price-sorted feed, then poll until the box is connected and SSH straight in. Everything here can be done in the console or over the API with a bearer token. We show both.
API calls authenticate with a bearer token you create at Settings to API access (Settings). Pass it as Authorization: Bearer <token>. In the examples below it lives in the shell variable $IPX_TOKEN. All API requests go to https://gpu.ipxtechholding.com.
Steps
-
Create an account or sign in
Sign up at /sign_up, or sign in if you already have one. Once you are in, open Settings to API access and generate a token. Copy it now, it is shown once. Then export it in your shell so the rest of these examples work as written.
terminal# paste the token you copied from Settings to API access $ export IPX_TOKEN="ipx_live_..." -
Add prepaid credits
Billing is prepaid. Top up your balance with a card on the Billing page (Stripe handles the payment). Usage meters per second from tunnel-connect to teardown and draws down this balance, so you cannot be charged past what you have loaded. You can check your balance over the API at any time.
balance$ curl https://gpu.ipxtechholding.com/api/v1/credits \\ -H "Authorization: Bearer $IPX_TOKEN" # { "balance_micro_usd": 5000000 }Money is in micro-USD. 1 USD is 1,000,000 micro, so a
balance_micro_usdof5000000is $5.00 and a rate of680000is $0.68/hr. -
Add an SSH key
We inject your public key into the box at boot. There are no passwords, so you need a key on file before you rent. Add one in the console under SSH keys, or register it over the API with its name and the contents of your
.pubfile.request$ curl https://gpu.ipxtechholding.com/api/v1/ssh_keys \\ -H "Authorization: Bearer $IPX_TOKEN" \\ -H "Content-Type: application/json" \\ -d "{\\"name\\": \\"laptop\\", \\"public_key\\": \\"$(cat ~/.ssh/id_ed25519.pub)\\"}"response{ "id": 42, "name": "laptop", "fingerprint": "SHA256:Xy..." }Keep the returned
id. You pass it ascustomer_ssh_key_idwhen you rent. -
Browse and rent a GPU
Browse one price-sorted feed across every cloud in the console at /browse and rent with a click, or do it over the API. List available GPUs, pick one, then create a rental against its listing id. The listing feed is public, so the call below needs no token.
list GPUs# cheapest first, only GPUs with at least 24 GB of VRAM $ curl "https://gpu.ipxtechholding.com/api/v1/listings?min_vram_gb=24"response{ "listings": [ { "id": 1837, "gpu_name": "RTX 4090", "vram_gb": 24, "num_gpus": 1, "region": "us-east", "interruptible": false, "price_micro_usd_per_hour": 680000, "price_usd_per_hour": 0.68 } ] }Create the rental with the listing
id, your SSH key id, and an optional hard spend cap in micro-USD. We reclaim the box the moment the cap is hit, so overruns are impossible.rent it# max_cost_micro_usd is the hard cap. 5000000 = $5.00 $ curl https://gpu.ipxtechholding.com/api/v1/rentals \\ -H "Authorization: Bearer $IPX_TOKEN" \\ -H "Content-Type: application/json" \\ -d '{"gpu_listing_id": 1837, "customer_ssh_key_id": 42, "max_cost_micro_usd": 5000000}'response{ "id": 904, "state": "provisioning_requested", "gpu_name": "RTX 4090", "vram_gb": 24, "price_micro_usd_per_hour": 680000, "accumulated_cost_micro_usd": 0, "max_cost_micro_usd": 5000000, "connection_string": null, "created_at": "2026-06-24T17:00:00Z" } SHELL <div class="doc-tip"> <p>The cap is optional. Omit <code>max_cost_micro_usd</code> to run uncapped and rely on your prepaid balance as the ceiling instead.</p> </div> </li> <li> <div class="st">Poll until active, then SSH in</div> <p>A new rental starts at <code>provisioning_requested</code> and moves through provisioning to <code>active_connected</code>, at which point a <code>connection_string</code> appears. Poll the rental until the state is <code>active_connected</code>.</p> '.freeze; @output_buffer.append=( render "docs/shared/code", title: "poll", code: <<~SHELL ); @output_buffer.safe_append=' $ curl https://gpu.ipxtechholding.com/api/v1/rentals/904 \\ -H "Authorization: Bearer $IPX_TOKEN" # state climbs: provisioning_requested -> booting_instance -> awaiting_tunnel -> active_connected SHELL '.freeze; @output_buffer.append=( render "docs/shared/code", title: "ready", code: <<~JSON ); @output_buffer.safe_append=' { "id": 904, "state": "active_connected", "connection_string": "ssh -p 20137 root@gpu.ipxtechholding.com", "accumulated_cost_micro_usd": 0, "max_cost_micro_usd": 5000000 }Copy the
connection_stringand connect. It points only at our gateway, never at the underlying provider.connect$ ssh -p 20137 root@gpu.ipxtechholding.com root@gpu:~# nvidia-smi
You are on the box. The meter started when the tunnel connected. Bring any workload, and tear the rental down when you are finished to stop billing.
Tear it down
When you are done, terminate the rental to stop the meter. The state moves to terminated and the box is released. You are billed only for the seconds the tunnel was up.
$ curl -X DELETE https://gpu.ipxtechholding.com/api/v1/rentals/904 \\
-H "Authorization: Bearer $IPX_TOKEN"