One approved Mac, one customer, 30 days of managed catalog-model inference. No per-token billing; model, context, output and request limits apply.
Choose a model Your deployments
Early access. Check current eligible stock before adding funds. Supplying a Mac? Start with the Mac owner and AI-assistant guide.
| Tier | Memory minimum | Live default / 30 days |
|---|---|---|
| Starter | 24 GB | Check live quote |
| Pro | 48 GB | Check live quote |
| Max | 96 GB | Check live quote |
Admin controls the tier defaults and any node-specific price. Review the selected machine's effective quote before purchase or renewal. A default is not a binding node quote.
Check the marketplace for current rentable capacity.
Rentable stock requires a current supplier agreement, measured tier, admin admission, listing, a ready model and a free node. Pending/running benchmarks temporarily exclude a machine. Aggregate registered or online node counts do not mean those nodes are rentable.
The catalog pins exact model revisions. Choose a model first at Customer Models, then an available compatible machine.
| Model ID | RAM minimum | Context cap | Approximate weights |
|---|---|---|---|
| qwen3.8-27b-4bit | 24 GB | 16,384 tokens | 16 GB |
| qwen3.8-27b-8bit | 48 GB | 32,768 tokens | 30 GB |
| qwen3.8-27b-bf16 | 96 GB | 32,768 tokens | 55 GB |
The public catalog is authoritative for IDs, immutable repositories/revisions and limits. No arbitrary model imports, multi-Mac clusters, training, fine-tuning or customer containers are available.
Programmatic checkout is POST /v1/peer/compute/rentals with {nodeDeviceId,model,expectedPriceUsd,pricingVersion}, scope compute:purchase and an Idempotency-Key. Renewal uses POST /v1/peer/compute/rentals/:rentalId/renew, a current reviewed quote and the same purchase scope.
After a timeout or operation_pending, retry with the original key and identical body. A terminal price_changed requires a refreshed reviewed quote and a new intent key. A failed allocation is reversed to account balance; completed rental purchases are non-refundable.
Renewal is manual for another 30 days at current terms. Admin price changes do not rewrite an accepted purchase. Cancellation retains access through the term. Compute has no x402 checkout or per-token charge.
Use the actual rental ID and model shown in Deployments. Both Authorization: Bearer psx_… and X-API-Key: psx_… are accepted. The OpenAI SDK's api_key/apiKey option sends the Bearer header; the supported API surface is text Chat Completions.
Keep the full key in a private secret store or an interactive non-echoing prompt. Never commit it, paste it into chat, or enable header/body logging for real customer requests.
POST https://api.proxies.sx/v1/peer/compute/rentals/<rentalId>/chat/completions
Authorization: Bearer <private compute:infer key>
Content-Type: application/json
{
"model": "qwen3.8-27b-4bit",
"messages": [{"role": "user", "content": "Explain how an aqueduct works."}],
"max_tokens": 256,
"stream": false
}
from getpass import getpass
from openai import OpenAI
rental_id = input("Rental ID from Deployments: ").strip()
client = OpenAI(
base_url=f"https://api.proxies.sx/v1/peer/compute/rentals/{rental_id}",
api_key=getpass("Compute inference key: "),
)
stream = client.chat.completions.create(
model="qwen3.8-27b-4bit", # use your rental's current model
messages=[{"role": "user", "content": "Explain how an aqueduct works."}],
max_tokens=256,
stream=True,
)
for chunk in stream:
if chunk.choices:
print(chunk.choices[0].delta.content or "", end="", flush=True)
import OpenAI from "openai";
if (!process.env.COMPUTE_API_KEY || !process.env.COMPUTE_RENTAL_ID) {
throw new Error("Configure the rental ID and private inference key first.");
}
const client = new OpenAI({
baseURL: `https://api.proxies.sx/v1/peer/compute/rentals/${process.env.COMPUTE_RENTAL_ID}`,
apiKey: process.env.COMPUTE_API_KEY,
});
const response = await client.chat.completions.create({
model: "qwen3.8-27b-4bit", // use your rental's current model
messages: [{ role: "user", content: "Explain how an aqueduct works." }],
max_tokens: 256,
});
console.log(response.choices[0].message.content);
These examples use the openai client package already installed in your application environment. Configure secrets privately; do not paste an export containing a real key into shell history. Demonstration output is printed locally, so disable that logging for sensitive workloads.
Read owned rentals with GET /v1/peer/compute/rentals/mine and compute:read. Model changes and cancellation need compute:manage; use the portal when your inference key lacks that scope. Supplier keys and device JWTs are not renter keys.
| Capability | Current behavior |
|---|---|
| Input | Text system/user/assistant messages. Catalog context and a conservative input-byte budget apply. |
| Generation | 1–4,096 output tokens, default 1,024; temperature 0–2; optional SSE streaming. |
| Concurrency | One running job per node. Use bounded concurrency and handle queue_full. |
| Request throttle | 60 requests/minute on inference by client IP/endpoint handler; not separate capacity per key or rental. Additional per-key/account limits may apply. |
| Time | API default deadline 180 seconds; agent generation deadline 175 seconds and idle limit 60 seconds. |
| Unsupported | Tool calling, response_format, image/audio input, embeddings, Responses API and arbitrary generation options. |
A 401 indicates rejected authentication; 403 indicates scope/role denial. A 409 may indicate node_offline, model_not_ready, node_not_approved, rental_expired, queue_full or an allocation in progress. Respect 429 backoff. A 504, explicit SSE error or incomplete stream is not a successful complete answer. Unsupported generation options return 400.
For application-side retrieval, send selected text context with your prompt. The service does not supply a tool-execution loop or a document index.
You can request another catalog model that fits the rented tier. The supplier downloads/loads it and confirms readiness; wait through model_not_ready. Customer-requested model downloads consume rental time.
Recorded outages, missing machines, runtime failures and pauses pause the remaining term, including outages crossing the original expiry. Maintenance observes availability each minute with a three-minute heartbeat grace period. Cancellation and outage-paused rentals continue to hold the node; they do not make it free for another customer.
Supplier admission uses a current countersigned agreement and a passing benchmark within 24 hours with the measured model ready. Approved suppliers retain a seven-day maintenance cadence while free. Benchmarks do not run on occupied nodes. Early access has no availability SLA.
Your rental provides managed inference on an allocated Mac, not SSH, a file manager or confidential computing. Suppliers administer their operating systems and memory. Prompts pass through the platform and supplier runtime.
Completed prompts/results are normally scrubbed after one hour; job records expire after 24 hours, subject to cleanup timing. This is not zero retention. Avoid sensitive prompts unless this trust model meets your requirements.
Compare providers using the workload and deployment checklist. Check the current offer and test your required quality, context, latency and concurrency before expanding usage.
Check models and current stock Complete scope and route reference