openai SDK at it. Priced in USD - no GPU-hour meter, no network token.Browse machines Create account
Have a Mac to lend instead? Node owners accrue their admin-approved share of paid rentals - see /compute/.
Default prices below are a snapshot from 11 September 2026. Admin controls prices and can approve per-node overrides. Confirm the current quote at checkout and renewal.
Check the marketplace for live availability.
| Tier | Price / 30 days | Unified memory | What it honestly serves | Hardware class |
|---|---|---|---|---|
| Starter | $249 | 24 GB+ | 27B-class models at 4-bit (16K context) | M4 Pro, 24-36 GB |
| Pro | $449 | 48 GB+ | Qwen 27B at 8-bit (32K context) | M4 Pro/Max, 48-64 GB |
| Max | $799 | 96 GB+ | Qwen 27B at BF16 (32K context) | M4 Max, 128 GB |
The tier is decided by a benchmark we run on the node (the largest catalog model it actually served at acceptable speed, re-run when the node is free after seven days), followed by admin review of the current supplier agreement and measured tier. Renewal is +30 days at the current admin-approved price; cancellation takes effect at period end and access continues until expiresAt. Live list: GET /v1/peer/compute/tiers.
Curated and pinned to exact mlx-community repos so you get precisely the weights you paid for. Live version: GET /v1/peer/compute/catalog.
| Model id | Repo served | Quant | Served context | Memory needed | Disk | Tier |
|---|---|---|---|---|---|---|
qwen3.8-27b-4bit | mlx-community/Qwen3.8-27B-4bit | 4-bit | 16,384 | 24 GB | ~16 GB | Starter+ |
qwen3.8-27b-8bit | mlx-community/Qwen3.8-27B-8bit | 8-bit | 32,768 | 48 GB | ~30 GB | Pro+ |
qwen3.8-27b-bf16 | mlx-community/Qwen3.8-27B-bf16 | bf16 | 32,768 | 96 GB | ~55 GB | Max+ |
The catalog is deliberately small: pinned models are what make node-side verification (reproducible benchmark probes) possible. More entries are added as they pass verification; the tier table above describes the class of model each tier can hold, the catalog lists what is served today.
POST /v1/peer/compute/rentals; the confirmed node price is debited from your Proxies.sx balance and the node is yours for 30 days. If someone took it a second earlier you get 409 node_taken and the payment is reversed.https://api.proxies.sx/v1/peer/compute/rentals/<rentalId>/chat/completions - authenticated with a key granting compute:infer. stream: true returns SSE deltas exactly like OpenAI.Checkout and renewal require a compute:purchase key and an Idempotency-Key. Include expectedPriceUsd and pricingVersion from the marketplace quote; a changed quote returns 409 price_changed before charging. Reuse the same key and body after a timeout or operation_pending. Read/inference keys created in the compute portal cannot spend your balance. Completed rental purchases are non-refundable; failed allocations are reversed automatically.
Switch models with POST .../rentals/<rentalId>/model, list rentals with GET /v1/peer/compute/rentals/mine, renew or cancel with .../renew and .../cancel.
curl https://api.proxies.sx/v1/peer/compute/rentals/<rentalId>/chat/completions \
-H "Authorization: Bearer psx_<key>" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen3.8-27b-4bit",
"messages": [{"role": "user", "content": "Summarise the x402 protocol in two sentences."}],
"stream": false
}'
# pip install openai
from openai import OpenAI
client = OpenAI(
base_url="https://api.proxies.sx/v1/peer/compute/rentals/<rentalId>", # the SDK appends /chat/completions
api_key="psx_<key>",
)
stream = client.chat.completions.create(
model="qwen3.8-27b-4bit",
messages=[{"role": "user", "content": "Summarise the x402 protocol in two sentences."}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)
// npm i openai
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.proxies.sx/v1/peer/compute/rentals/<rentalId>", // the SDK appends /chat/completions
apiKey: "psx_<key>",
});
const res = await client.chat.completions.create({
model: "qwen3.8-27b-4bit",
messages: [{ role: "user", content: "Summarise the x402 protocol in two sentences." }],
});
console.log(res.choices[0].message.content);
Errors you can get: 409 rental_expired, 409 node_offline, 409 model_not_ready (still downloading after a model switch), 504 timeout. Rate limit: 60 requests/min per key on this route.
| Whole machine, one tenant | Priced in | Unlimited tokens for the term | OpenAI-compatible endpoint | Network token | |
|---|---|---|---|---|---|
| Proxies.sx Mac Compute | Yes - one Mac, one customer, 30 days | USD, flat per 30 days | Yes - no per-token meter | Yes - /chat/completions, streaming | None |
| Nosana | GPU jobs; check the chosen host and deployment isolation | Per GPU-hour | Your own serving stack | Your own serving stack | NOS |
| io.net | GPU capacity; check deployment isolation | Not stated on homepage | Your own serving stack | Your own serving stack | IO |
| Akash | Provider container leases; check isolation terms | Per hour, reverse auction | Your own serving stack | Your own serving stack | AKT |
Competitor rows describe what each product publicly is (GPU capacity you rent by the hour and deploy your own container onto). "Your own serving stack" means the platform hands you compute, not a model endpoint; token limits and API shape are whatever you run on it. Figures are quoted as published on each domain on 2026-09-11 - see the full comparison.
Not for: training, multi-GPU jobs, or workloads that need CUDA. That is what GPU-hour clouds are for.
One Apple Silicon Mac, exclusively yours for 30 days, running one catalog model from unified memory under MLX, reachable at an OpenAI-compatible chat/completions endpoint with streaming. Tokens are not metered - the flat tier price is the whole cost.
From your Proxies.sx balance: sign up at client.proxies.sx, top up (card or crypto), pick a machine at compute.proxies.sx/market and check out. Renewal is another 30 days at the tier price; cancel at period end at any time.
Yes, to any catalog model that fits the tier's memory: POST /v1/peer/compute/rentals/<rentalId>/model. The node downloads the pinned mlx-community repo and reports model_not_ready until it is served.