glm-4.7 — price, context and performance
glm-4.7 is a Z.AI model with a 204.8K context window supporting Reasoning, Tools, Open Weights. Input $0.60, output $2.20 per 1M tokens.
Overview
| Vendor | Z.AI |
|---|---|
| Context | 204.8K |
| Capabilities | Reasoning, Tools, Open Weights |
| API formats | openai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search |
| Billing formula | p * 0.6 + cr * 0.11 + cc * 0 + c * 2.2 |
Mature GLM model for dependable coding, reasoning, and structured agent tasksPricing
| Plan | Multiplier | Input | Output | Cached input | Note |
|---|---|---|---|---|---|
| Base price | 1× | $0.60 | $2.20 | $0.11 | |
| Pro | 2× | $1.20 | $4.40 | $0.22 | Enterprise — full reasoning, high stability. |
| Max | 4× | $2.40 | $8.80 | $0.44 | Premium — max reasoning & stability. |
Only groups enabled for this model are listed.
Performance
| API endpoint | https://api.airai.cc/v1 |
|---|---|
| OpenAI-compatible | OpenAI-compatible |
FAQ
How much does glm-4.7 cost?
Input $0.60, output $2.20 per 1M tokens.
What is the context window of glm-4.7?
glm-4.7 has a 204.8K context window: the combined token limit for input and output in a single request.
How do I call glm-4.7 from code?
Point base_url to https://api.airai.cc/v1 and set model to glm-4.7. The API is fully OpenAI compatible.
Why does glm-4.7 return error 429?
429 is a rate limit response. Lower your concurrency, retry with backoff, or switch to a plan with a larger quota.
Model comparison
| Model | Vendor | Input | Output | Context |
|---|---|---|---|---|
| glm-4.7 | Z.AI | $0.60 | $2.20 | 204.8K |
| glm-5.1 | Z.AI | $1.40 | $4.40 | 200K |
| glm-4.5 | Z.AI | $0.60 | $2.20 | 131.1K |
| glm-5.3 | Z.AI | $1.40 | $4.40 | 1M |
| glm-5.3-flash | Z.AI | $0.15 | $0.50 | 1M |
| glm-4.5-air | Z.AI | $0.20 | $1.10 | 131.1K |
| glm-5.2 | Z.AI | $1.40 | $4.40 | 1M |
| glm-5 | Z.AI | $1.00 | $3.20 | 204.8K |
| glm-4.6 | Z.AI | $0.60 | $2.20 | 204.8K |
Troubleshooting
429 is a rate limit response. Lower your concurrency, retry with backoff, or switch to a plan with a larger quota.
Common causes
- Too many concurrent requests
- Quota of the current plan exhausted
- Retrying immediately without backoff
How to fix
- Limit concurrency and retry with exponential backoff
- Switch to a plan with a larger quota
- Cache repeated requests
How to connect
curl https://api.airai.cc/v1/chat/completions \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-4.7",
"messages": [{"role": "user", "content": "Hello"}]
}'from openai import OpenAI
client = OpenAI(
api_key="<YOUR_API_KEY>",
base_url="https://api.airai.cc/v1"
)
response = client.chat.completions.create(
model="glm-4.7",
messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
apiKey: "<YOUR_API_KEY>",
baseURL: "https://api.airai.cc/v1"
});
const response = await client.chat.completions.create({
model: "glm-4.7",
messages: [{ role: "user", content: "Hello" }]
});
console.log(response.choices[0].message.content);const OpenAI = require("openai");
const client = new OpenAI({
apiKey: "<YOUR_API_KEY>",
baseURL: "https://api.airai.cc/v1"
});
client.chat.completions.create({
model: "glm-4.7",
messages: [{ role: "user", content: "Hello" }]
}).then((r) => console.log(r.choices[0].message.content));Replace <YOUR_API_KEY> with the API Key from your token settings.
Compatible endpoints
openaiopenai-responseopenai-response-compactanthropicgeminiopenai-alpha-search
Gemini SDK · TypeScript
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("<YOUR_API_KEY>");
const model = genAI.getGenerativeModel({ model: "glm-4.7" });
const result = await model.generateContent(
"Explain quantum entanglement in one paragraph."
);
console.log(result.response.text());Authentication
All requests must include the Authorization: Bearer <TOKEN> header. Anthropic-format endpoints also accept the x-api-key header. Generate your API Key on the Tokens page, where you can scope access by model, group, IP, and rate limits.
Supported parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
temperature | float | 1 | 0–2 | Sampling temperature; lower is more stable |
top_p | float | 1 | 0–1 | Nucleus sampling cumulative probability |
max_tokens | integer | — | — | Maximum tokens in the response |
frequency_penalty | float | 0 | −2–2 | Penalizes repeated high-frequency tokens |
presence_penalty | float | 0 | −2–2 | Encourages introducing new topics |
stop | string[] | null | ≤ 4 | Up to 4 strings that stop generation |
seed | integer | null | — | Seed for more reproducible sampling |
n | integer | 1 | — | Number of candidate completions |
stream | boolean | false | — | Stream tokens via SSE |
response_format | object | — | — | Force JSON output or schema-conformant results |
tools | array | — | — | Function/tool declarations the model can call |
tool_choice | string | object | auto | — | Tool selection strategy or specific tool name |
logprobs | boolean | false | — | Return log probabilities for each token |
top_logprobs | integer | null | 0–20 | Number of top probabilities returned per token |
logit_bias | map | — | — | Logit bias mapping per token |
user | string | — | — | End-user identifier for risk auditing |
Rate limits
| Tier | RPM | TPM | RPD |
|---|---|---|---|
| Eco | 990 | 398K | 20K |
| Test | 980 | 393K | 20K |
Data updated: 2026-10-10 15:40