Routing note
The model ID z-ai/glm-5.2 does not reach that model today. Requests for it are answered by a default Llama model instead, because we do not route its provider yet, and the reply still shows the ID you asked for. We are fixing this. Until then the free IDs under meta/, mistralai/ and nvidia/ on the models page do reach the model they name.
GLM-5.2 is one of the strongest open-weight general models available right now, and you can call it through InferAll on an OpenAI-compatible endpoint at $0 input / $0 output, within the free-plan daily request limits. No credit card to start.
Every snippet below was run against the live gateway before publishing.
The 20-second version
curl https://api.inferall.ai/v1/chat/completions \
-H "Authorization: Bearer $INFERALL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "z-ai/glm-5.2",
"messages": [{"role": "user", "content": "Explain MoE routing in two sentences."}]
}'
Get an ifu_... key at inferall.ai/keys. New accounts get a free
no-card trial on the open models, so you can check the output quality before deciding anything.
With the OpenAI SDK — change one line
You do not need a new client library. Point the official openai SDK at InferAll and pass the
model id:
from openai import OpenAI
client = OpenAI(
base_url="https://api.inferall.ai/v1",
api_key="ifu_your_key_here",
)
resp = client.chat.completions.create(
model="z-ai/glm-5.2",
messages=[{"role": "user", "content": "Refactor this function for readability."}],
)
print(resp.choices[0].message.content)
TypeScript is the same shape:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.inferall.ai/v1",
apiKey: process.env.INFERALL_API_KEY,
});
const r = await client.chat.completions.create({
model: "z-ai/glm-5.2",
messages: [{ role: "user", content: "Write a SQL query for monthly active users." }],
});
Already have OpenAI SDK code in a repo? One command rewrites the client for you:
npx @inferall/cli init
It detects your project, writes INFERALL_API_KEY into .env (and gitignores it), and repoints
your existing OpenAI(...) constructors. npx @inferall/cli chat "hello" gives you a response
immediately so you can confirm it works.
Why route GLM-5.2 through a gateway at all
The practical reason is that you rarely want only one model. With one ifu_ key you can send
the cheap, high-volume turns to GLM-5.2 and other open models at $0, and route the few calls that
genuinely need a frontier model to OpenAI, Anthropic, or Google — at the provider's published
per-token price, with zero markup. Same key, same endpoint, one bill.
# same client, different model — that's the whole switch
cheap = client.chat.completions.create(model="z-ai/glm-5.2", messages=msgs)
hard = client.chat.completions.create(model="anthropic/claude-sonnet-4-6", messages=msgs)
Other free models worth trying alongside it
All $0 input/output on the same key:
| Model id | Good for |
|---|---|
z-ai/glm-5.2 |
General reasoning, coding, long-form |
nvidia/nemotron-3-super-120b-a12b |
Opus-class reasoning at $0 |
meta/llama-3.1-70b-instruct |
Reliable general-purpose workhorse |
mistralai/mistral-medium-3.5-128b |
Fast MoE, cheap latency |
npx @inferall/cli models --free prints the whole current list with live prices — 80+ models at
$0 as of today.
The honest part: the open models are $0 in and $0 out, capped by free-plan daily request limits. Premium providers bill at their published rate with no markup added. Start at inferall.ai/keys — no card needed to try it.