Build on private inference
One API for chat, images, agents, and the node network — every request routed through encrypted compute that never sees your plaintext. Start in under five minutes.
Introduction
The Nox Compute API is a single, OpenAI-compatible surface over a decentralized network of confidential GPUs. Where most providers decrypt your prompt to run it, Nox keeps every request sealed inside trusted execution environments — operators run the model, but never see your data.
Base URL
All endpoints live under a single host. Versioning is path-based, so upgrades never break existing integrations.
1https://api.noxcompute.ai/v1What you can build
Four product surfaces sit on the same auth and the same private network: /chat for completions, /images for generation, /agents for tool-using runs, and /nodes to inspect the compute you are routed across.
Quickstart
Install nothing or install the SDK — both work. The example below sends your first private completion. Swap NOX_API_KEY for a key from the console.
1curl https://api.noxcompute.ai/v1/chat \2 -H "Authorization: Bearer $NOX_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{5 "model": "nox-1",6 "messages": [7 { "role": "user", "content": "Explain confidential computing." }8 ]9 }'NOX_API_KEY as an environment variable rather than hard-coding it. The SDK reads it automatically when you omit api_key.Authentication
Every request is authenticated with a bearer token in the Authorization header. Keys are scoped per project and can be rotated instantly from the console without downtime.
1# Pass your key as a bearer token on every request2export NOX_API_KEY="nox_sk_live_•••••••••••••"3curl https://api.noxcompute.ai/v1/chat \4 -H "Authorization: Bearer $NOX_API_KEY"nox_sk_) carry full account access. Never expose them in client-side code or commit them to version control. Use a publishable key (nox_pk_) in browsers.Key types
nox_sk_*secretrequiredServer-side key with full scope. Store in your backend environment only.
nox_pk_*publishableRestricted browser-safe key for client SDKs. Cannot list or rotate keys.
Chat completions
POST /v1/chat generates a model response for a conversation. It is fully streaming-capable and OpenAI-compatible, so most existing clients work by changing only the base URL.
Request parameters
modelstringrequiredModel id, e.g. nox-1 or nox-1-mini. Determines context window and price.
messagesarrayrequiredOrdered conversation turns with role (system | user | assistant) and content.
streambooleanWhen true, partial tokens are sent as server-sent events.
temperaturenumberSampling temperature between 0 and 2. Defaults to 0.7.
Example response
1{2 "id": "cmpl_9aF2k7Qx",3 "object": "chat.completion",4 "model": "nox-1",5 "enclave": "tee-sev-snp",6 "choices": [7 {8 "index": 0,9 "message": {10 "role": "assistant",11 "content": "Confidential computing keeps data encrypted in use..."12 },13 "finish_reason": "stop"14 }15 ],16 "usage": { "input_tokens": 14, "output_tokens": 96 }17}enclave field reports the attested execution environment that served the request, so you can verify privacy guarantees per call.Image generation
POST /v1/images renders images from a text prompt inside the same confidential network. Upload references are encrypted before they leave your machine.
1curl https://api.noxcompute.ai/v1/images \2 -H "Authorization: Bearer $NOX_API_KEY" \3 -H "Content-Type: application/json" \4 -d '{5 "model": "nox-image-1",6 "prompt": "isometric data center, violet rim light",7 "size": "1024x1024",8 "n": 19 }'promptstringrequiredText description of the desired image. Encrypted in transit and at rest.
sizestringOne of 512x512, 1024x1024, or 1024x1792. Defaults to 1024x1024.
nintegerNumber of images to generate, 1–4. Each counts toward your quota.
Agents
Agents wrap a model with tools and a run loop. POST /v1/agents/runs starts an autonomous run; tool calls execute inside the enclave so intermediate state stays private.
1from nox import Nox2 3client = Nox(api_key="NOX_API_KEY")4 5run = client.agents.runs.create(6 agent="research-agent",7 input="Summarize today's network throughput.",8 tools=["web_search", "node_metrics"],9)10 11for event in run.stream():12 print(event.type, event.data)tools as an allow-list. The agent can only call tools you explicitly grant, and every call is logged to your private audit trail.Nodes
The node API exposes the live compute network. Use GET /v1/nodes to inspect which attested machines are eligible to serve your traffic and their current health.
1{2 "object": "list",3 "data": [4 {5 "id": "node_fra_07",6 "region": "eu-central",7 "attestation": "verified",8 "gpus": "8x H100",9 "load": 0.4210 },11 {12 "id": "node_sjc_03",13 "region": "us-west",14 "attestation": "verified",15 "gpus": "8x H100",16 "load": 0.7117 }18 ]19}verified attestation receive decryptable traffic. Unverified nodes are automatically routed around.Errors
Nox uses conventional HTTP status codes. Failures return a JSON body with a stable type and a human-readable message you can surface to users.
1{2 "error": {3 "type": "authentication_error",4 "code": "invalid_api_key",5 "message": "The API key provided is invalid or revoked."6 }7}400bad_requestMalformed request — check parameters and JSON shape.
401authentication_errorMissing, invalid, or revoked API key.
429rate_limit_errorToo many requests. Back off and retry with jitter.
503no_nodes_availableNo attested node could serve the request. Retry shortly.
Rate limits
Limits are enforced per project and returned on every response in the X-RateLimit-* headers. When you exceed a limit you receive a 429 with a Retry-After hint.
1X-RateLimit-Limit: 6002X-RateLimit-Remaining: 5833X-RateLimit-Reset: 414Retry-After: 2