PACINFRAX · RESOURCES
One request. Clear boundaries.
Reference for the implemented local contract, with explicit credential scopes, response handling and compatibility limits.
Local mock only. This is not a public API availability announcement. No real GPU output, production rate or commercial price is established.
Draft catalog · web port3003
GET /api/catalog/preview returns anonymous versioned reference metadata only. It accepts no query parameters; other methods return405. The response is no-store and grants no model invocation, price approval or tenant authority.
Separate from gateway /v1/models. Prices remain non-billable draft data, not accounting configuration.
Gateway · port4100
GET /v1/models: project key withmodels:read.POST /v1/chat/completions: project key withinference:write.GET /healthz: public liveness, not readiness or available capacity.
Send a Bearer project key from a trusted backend. Never ship keys in browser JavaScript.
Control · port4000
Project reads, key metadata and audit are scoped by organization and project:
/v1/organizations/{organizationId}
/projects/{projectId}
/projects/{projectId}/api-keys
/projects/{projectId}/audit-eventsCombine the organization prefix with one project suffix. User tokens and workload keys follow distinct authentication paths; live membership and scopes remain authoritative.
Discover your workspace
GET /v1/console/workspaces uses a signed user access token and returns organizations and projects visible to that identity. Workload keys cannot discover user workspaces.
Choose an explicit organization/project pair from the response before reading project resources. An empty result means no visible workspace; an unavailable service does not. Discovery metadata is a snapshot, not permission to perform a later action. The control service checks authority on each request.
Use secure credential injection in a trusted terminal or backend. Never paste an access token into browser JavaScript, command arguments or shell history.
Completion request
{
"model": "pacinfrax/atlas-instruct-preview",
"messages": [
{
"role": "user",
"content": "Explain a project boundary."
}
],
"max_completion_tokens": 64,
"stream": false
}Supported message roles: system, developer, user, assistant. Messages contain text only. Unknown fields are rejected; tool calls, media and embeddings are not implemented in this contract.
Request bounds
- 1–256 messages; each text contains 1–32768 characters.
- Combined text at most131072 characters.
- Output limit1–4096; use either
max_tokensormax_completion_tokens, never both. - Temperature0–2; optional signed32-bit integer seed.
Model context limits add another check. Local token counting is approximate; do not treat it as a provider tokenizer guarantee.
Streaming safely
Set stream: true for SSE. Consume bounded chat chunks, terminal usage and the final [DONE] marker. EOF without a complete terminal sequence is not success.
Cancellation must close the response reader. It does not prove a remote GPU job was canceled or usage reconciled. Never automatically replay a POST after a timeout: a server-owned execution may already have occurred.
Diagnose without leaking
Gateway errors use an error object with type, code, message and request_id; HTTP status still matters. Store sanitized request IDs, not tokens, headers or prompts.
401 requires credential repair;403 requires permission review;429 requires admission/backoff handling. Unsupported models return404. Do not silently switch keys or models to bypass a denial.
The console includes connected key-management controls. Actual browser routes remain unavailable until approved identity, session custody and assurance are configured. When enabled, key creation returns a secret once; a lost response may still mean the key was created. Do not automatically retry creation. Revoking a key does not prove an already-running workload stopped.
Back to developer quickstart