Documentation

OpenAI-compatible API reference

Introduction

Noxery is an OpenAI-compatible inference API. It exposes a single endpoint for chat completions and a model listing endpoint, with per-model token limits and streaming support. Use any OpenAI SDK or a plain HTTP client.

Base URL: https://noxery.tr/v1

Quick Start

1. Create an account and generate an API key on the API Keys page.

2. Send a chat completion request:

bash
curl https://noxery.tr/v1/chat/completions \
  -H "Authorization: Bearer nox-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-sol",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

Authentication

Authenticate with an API key sent as a Bearer token. Keys are created in the dashboard and are shown only once.

http
Authorization: Bearer nox-YOUR_API_KEY

Models

List all available models with GET /v1/models. Pass the returned id as the model value in chat requests.

bash
curl https://noxery.tr/v1/models \
  -H "Authorization: Bearer nox-YOUR_KEY"

A few available model IDs (see the Models page for the full list):

  • gpt-5.6-sol
  • openai/gpt-oss-20b
  • openai/gpt-oss-120b
  • qwen/qwen3.6-27b
  • qwen/qwen3.8-27b
  • qwen-max
  • qwen-plus
  • qwen-turbo
  • qwen-flash
  • qwen-plus-latest
  • qwen3-max
  • qwen3.8-max

Chat Completions

POST /v1/chat/completions accepts the standard OpenAI request shape:

json
{
  "model": "gpt-5.6-sol",
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Hello!"}
  ],
  "max_completion_tokens": 1024,
  "temperature": 0.7
}

Roles supported: system, user, assistant. Vision models also accept image content parts.

Streaming

Set "stream": true to receive server-sent events (SSE). Each chunk is a data: line with a chat.completion.chunk object, ending with data: [DONE].

bash
curl -N https://noxery.tr/v1/chat/completions \
  -H "Authorization: Bearer nox-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-5.6-sol", "stream": true, "messages": [{"role": "user", "content": "hi"}]}'

Rate & Token Limits

Each model has daily, weekly, and monthly token limits. When a limit is reached, the API returns 429 with rate_limit_exceeded. Limits are shown in your dashboard and on the Models page.

Requests are also subject to a per-key rate limit (requests per minute).

Errors

Errors use a normalized JSON shape:

json
{
  "error": {
    "message": "Rate limit exceeded.",
    "type": "rate_limit_exceeded",
    "code": 429
  }
}

Common codes: 400 invalid request, 401 invalid key, 403 no permission, 404 model not found, 429 rate/token limit.

cURL

bash
# List models
curl https://noxery.tr/v1/models -H "Authorization: Bearer nox-YOUR_KEY"

# Chat completion
curl https://noxery.tr/v1/chat/completions \
  -H "Authorization: Bearer nox-YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-5.6-sol", "messages": [{"role": "user", "content": "Hello"}]}'

Python

python
from openai import OpenAI

client = OpenAI(
    api_key="nox-YOUR_KEY",
    base_url="https://noxery.tr/v1",
)

resp = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)

JavaScript / Node.js

javascript
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "nox-YOUR_KEY",
  baseURL: "https://noxery.tr/v1",
});

const resp = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "Hello" }],
});
console.log(resp.choices[0].message.content);

OpenAI SDK compatibility

Noxery is compatible with the OpenAI SDKs. Set base_url (Python) or baseURL (JS) to https://noxery.tr/v1 and use your Noxery key as the API key. Works with the official openai Python/Node packages and most OpenAI-compatible clients.

Agents

Noxery works as a custom OpenAI-compatible provider for these agents.

OpenCode

Add a custom provider to opencode.json using the OpenAI-compatible adapter. Keep the key in an environment variable.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "noxery": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Noxery",
      "options": {
        "baseURL": "https://noxery.tr/v1",
        "apiKey": "{env:NOXERY_API_KEY}"
      },
      "models": {
        "gpt-5.6-sol": { "name": "gpt-5.6-sol" }
      }
    }
  }
}

Export NOXERY_API_KEY, then select the noxery/<model> model. Model IDs must match GET /v1/models. For the newer config format, use providers with package: "@opencode-ai/ai/providers/openai-compatible" and settings.baseURL.

Hermes Agent

Configure a custom OpenAI-compatible endpoint in ~/.hermes/config.yaml:

config.yaml
model:
  default: gpt-5.6-sol
  provider: custom
  base_url: https://noxery.tr/v1
  api_key: nox-YOUR_KEY

Alternatively run hermes model and choose "Custom endpoint", or set OPENAI_BASE_URL + OPENAI_API_KEY for a custom endpoint.

OpenClaw

Define a custom provider in ~/.openclaw/openclaw.json and allowlist the model:

openclaw.json
{
  "models": {
    "mode": "merge",
    "providers": {
      "noxery": {
        "baseUrl": "https://noxery.tr/v1",
        "apiKey": "${NOXERY_API_KEY}",
        "api": "openai-completions",
        "models": [
          { "id": "gpt-5.6-sol", "name": "gpt-5.6-sol" }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "models": {
        "noxery/gpt-5.6-sol": { "alias": "gpt-5.6-sol" }
      }
    }
  }
}

Use api: "openai-completions", include /v1 in baseUrl, and add the fully-qualified noxery/<model> entry to the allowlist.

Configuration examples

Environment variables:

bash
export NOXERY_API_KEY="nox-..."
export NOXERY_BASE_URL="https://noxery.tr/v1"

Typical OpenAI SDK pattern with a custom base URL and API key. Replace the model ID with any model from GET /v1/models.

FAQ

How do I get an API key?
Create an account, then generate a key from the API Keys page. Keys are shown only once.
Which models are available?
See the Models page or call GET /v1/models.
Is it OpenAI SDK compatible?
Yes — point the base URL at https://noxery.tr/v1 and pass your key.
How are limits enforced?
Per-model daily/weekly/monthly token limits plus a per-key request rate limit.
Does it support vision models?
Yes, vision models accept image content in the standard OpenAI format.