Nox ComputeNOX COMPUTEThe Private Inference Network
Developer documentation

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.

Get started · 01

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.

Private by default.Prompts, completions, and uploaded images are encrypted client-side and only decrypted inside attested enclaves. We retain nothing after the response is returned.

Base URL

All endpoints live under a single host. Versioning is path-based, so upgrades never break existing integrations.

1https://api.noxcompute.ai/v1

What 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.

Get started · 02

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 }'
Returns a JSON completion. Latency is typically 240–500ms to first token.
Tip.Set NOX_API_KEY as an environment variable rather than hard-coding it. The SDK reads it automatically when you omit api_key.
Get started · 03

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"
Heads up.Secret keys (prefix 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_*secretrequired

Server-side key with full scope. Store in your backend environment only.

nox_pk_*publishable

Restricted browser-safe key for client SDKs. Cannot list or rotate keys.

Endpoints · Chat

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

modelstringrequired

Model id, e.g. nox-1 or nox-1-mini. Determines context window and price.

messagesarrayrequired

Ordered conversation turns with role (system | user | assistant) and content.

streamboolean

When true, partial tokens are sent as server-sent events.

temperaturenumber

Sampling 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}
Note.The enclave field reports the attested execution environment that served the request, so you can verify privacy guarantees per call.
Endpoints · Images

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 }'
promptstringrequired

Text description of the desired image. Encrypted in transit and at rest.

sizestring

One of 512x512, 1024x1024, or 1024x1792. Defaults to 1024x1024.

ninteger

Number of images to generate, 1–4. Each counts toward your quota.

Endpoints · Agents

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)
Tip.Pass tools as an allow-list. The agent can only call tools you explicitly grant, and every call is logged to your private audit trail.
Endpoints · Nodes

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}
Private by default.Only nodes with a current verified attestation receive decryptable traffic. Unverified nodes are automatically routed around.
Reference · Errors

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_request

Malformed request — check parameters and JSON shape.

401authentication_error

Missing, invalid, or revoked API key.

429rate_limit_error

Too many requests. Back off and retry with jitter.

503no_nodes_available

No attested node could serve the request. Retry shortly.

Reference · Limits

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
Note.Default limits are 600 requests / minute on the free tier. Need more? Limits scale automatically with usage on paid plans.