OpenAI-compatible

Open models, on the API you already use.

Change the base URL and the key. Same SDK, same requests, same responses. Every call comes back with input, output and cached tokens counted separately.

Serving now
Modelqwen38-27b
Context262,144
Input$0.30$0.40
Cached$0.03$0.04
Output$2.25$3.00
per 1Melsewhere
~ · zsh
# Drop-in for the OpenAI API. Two lines change.
$ curl https://api.numn.ai/v1/chat/completions \
  -H "Authorization: Bearer $NUMN_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen38-27b",
    "messages": [{"role":"user","content":"hi"}]
  }'

✓ 200 OK   613ms
{
  "model": "qwen38-27b",
  "usage": {
    "prompt_tokens": 72,
    "completion_tokens": 24,
    "prompt_tokens_details": { "cached_tokens": 0 }
  }
}
Connect

Two settings, in whatever you already run.

Most people never write any code for this. You paste a base URL and a key into your agent settings, and that is the whole integration.

settings
Base URL   https://api.numn.ai/v1
API key    sk-numn-…
Model      qwen38-27b

# or as environment variables, which is what most
# agent runtimes read:
OPENAI_BASE_URL=https://api.numn.ai/v1
OPENAI_API_KEY=sk-numn-…
01

If it speaks OpenAI, it speaks to us

Agent runtimes, editor extensions, CLI tools, your own code. If it lets you set a custom OpenAI-compatible endpoint, it works. Requests and responses keep their shape, so nothing downstream has to know anything changed.

02

Streaming, tools and usage all behave

Server-sent events pass straight through. Tool calls come back in the shape your client already parses. And usage counts input, output and cached tokens separately on every response.

03

Using something that speaks a different API?

Some tools expect the Anthropic shape instead. Tell us which one you run and we will tell you straight whether it works today.

Model · live

Qwen3.8-27B

Built for code and long agent runs. 262k of context, and you decide how hard it thinks on every request.

Artificial Analysis Intelligence Index
Claude Opus 563
Claude Fable 562
GPT-5.6 Sol61
Qwen3.8-27B52

Scores from Artificial Analysis, out of 100, drawn from zero. The empty part of each bar is the rest of the scale.

Run the model
Intelligence
52 index
Agentic
51 index
Context
262,144
Output speed
55 tok/s p50
Input / 1M
$0.30$0.40
Cached / 1M
$0.03$0.04
Output / 1M
$2.25$3.00

Built for code

61.7% on SWE-bench Pro. 73.0% on Terminal Bench 2.1. 90.3% on LiveCodeBench v6. Those are Qwen’s own figures, from real repository work rather than isolated puzzles.

Holds a long task

262,144 tokens of context, and a release built around planning its own work and reacting to what comes back. It scores 51 on the Artificial Analysis agentic index, where the frontier sits at 57 to 59.

Reasoning you can dial

Thinking is on by default. Turn it off per request, or set reasoning_effort to low, medium or xhigh. Deeper reasoning costs tokens, so you only pay for it where a task earns it.

Point a client at it.

Two lines of config. If it does not work with the SDK you already use, that is a bug and we want to hear about it.