API429 / Z.ai / GLM

Z.ai GLM API: comparing GLM IDs and connecting via API429

Evaluate the literal glm-5.2, glm-5.3 and glm-5.3-flash identifiers on your own benchmark tasks, confirm key access via GET /v1/models, and start with a small Chat Completions request. Keep API429 per-token billing completely separate from upstream Z.ai GLM Coding Plan subscriptions.

Models and current API429 rates

These are exact text model IDs for this family. The public catalog and GET /v1/models for your key answer different questions: a published entry does not prove account access. Preserve hyphens, dots and versions exactly.

Model / exact IDAPI429: USD and billing units
Glm 5.2glm-5.2
$0.4200 / 1,000,000 cache-write input tokens
$0.0780 / 1,000,000 cached input tokens
$0.4200 / 1,000,000 input tokens
$1.3200 / 1,000,000 output tokens
Glm 5.3glm-5.3
$0.4200 / 1,000,000 cache-write input tokens
$0.0780 / 1,000,000 cached input tokens
$0.4200 / 1,000,000 input tokens
$1.3200 / 1,000,000 output tokens
Glm 5.3 Flashglm-5.3-flash
$0.0450 / 1,000,000 cache-write input tokens
$0.0090 / 1,000,000 cached input tokens
$0.0450 / 1,000,000 input tokens
$0.1500 / 1,000,000 output tokens

Catalog data date: . Rates retain their catalog conditions; an absent row does not mean a free request.

Example budget for glm-5.2: 1,000 requests with 2,000 ordinary input and 500 output tokens each cost approximately $1.500000. This ordinary text token estimate excludes cache, tools, retries and additional fees. It is not a complete bill or evidence of accepted requests.

Selected model rates in the catalog · Full catalog

Compare glm-5.2, glm-5.3 and glm-5.3-flash on one task set

This guide covers exactly three published identifiers: glm-5.2, glm-5.3 and glm-5.3-flash. Sharing the GLM family name does not make these versions drop-in replacements, and the Flash suffix alone is not a guarantee of lower latency or lower total cost on your workload. Prepare a consistent evaluation set covering ticket classification, fact extraction from a short paragraph and explaining a defect in a code snippet. Score each response against written acceptance rules and log the exact model ID alongside every test run.

Keep API429 billing separate from Z.ai GLM Coding Plans

Upstream Z.ai documentation describes the manufacturer’s native platform as well as GLM Coding Plan subscriptions. A Z.ai Coding Plan is a separate manufacturer product and does not fund, authenticate or govern requests sent to API429. Likewise, native Z.ai rate limits, tool extensions and multimodal endpoints do not transfer automatically to the Chat Completions contract shown here. To run glm-5.2, glm-5.3 or glm-5.3-flash through API429, use a server-side API429 key, an active API429 balance and the documented gateway request shape.

Re-validate outputs when switching between GLM versions

Whenever you test a change from glm-5.2 to glm-5.3 or glm-5.3-flash, re-run your full verification suite before updating production config. Check that classification labels belong to your allowed enum, extracted facts match the source passage without invented details, and generated code passes local unit tests. Inspect HTTP status, finish_reason and non-empty message content on every call. If a response stops with finish_reason set to length, narrow the prompt or adjust max_tokens before deciding whether to issue a paid retry.

Verify account access in GET /v1/models before paid calls

Create your key in the API429 dashboard and query GET /v1/models with that key to confirm which GLM identifiers are enabled for your account. A public catalog listing helps you review published inventory, but it does not prove key-level entitlement or a successful completion. Preserve lowercase letters, hyphens and dots in glm-5.2, glm-5.3 and glm-5.3-flash. Keep credentials in server environment variables and out of client-side code or shared logs, and start with a synthetic prompt that contains no private data.

Read live catalog rates and preserve condition boundaries

The pricing table displays fresh, unambiguous rates from the API429 public catalog. Every billing unit and condition string is part of the quotation; never copy a number from one row into a different prompt size range or metric. When a cell is hidden, the rate is unconfirmed rather than free. Track the exact model ID, prompt size, output tokens and retry count in your application logs, because retrying a failed or timed-out request can generate a new billable operation.

Choose your next connection step

  • API429 model catalog

    Review exact GLM model identifiers, published capabilities and live token billing units in the catalog.

  • API429 quickstart

    Set up your API429 key, check GET /v1/models and validate a basic Chat Completions request.

First text request: curl, Python, JavaScript

  1. Create a key in your API429 account and add balance by Russian bank card, a business invoice, USDT or TON. A $10 test balance is available for subscribing to the Telegram channel through the bonus bot.
  2. Use the same key to verify glm-5.2 in GET https://gateway.api429.com/v1/models.
  3. Set API429_API_KEY on the server and send a small paid request. The example does not retry automatically.
  4. Inspect HTTP status, finish_reason, text and actual usage. A timeout does not prove that the operation was unbilled.

The example uses only ordinary text Chat Completions with max_tokens=512. It does not verify native manufacturer methods, tools, reasoning, vision or manufacturer limits through API429. Python and JavaScript check key access before generation; check the model list separately for curl.

curl

curl --fail-with-body https://gateway.api429.com/v1/chat/completions \
  -H "Authorization: Bearer $API429_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"glm-5.2","messages":[{"role":"user","content":"Explain how to verify the output of a small task before using it in production."}],"max_tokens":512,"stream":false}'

Python 3

import json
import os
import urllib.request

key = os.environ["API429_API_KEY"]
base = "https://gateway.api429.com/v1"
headers = {"Authorization": "Bearer " + key, "Content-Type": "application/json"}
models_request = urllib.request.Request(base + "/models", headers=headers)
with urllib.request.urlopen(models_request, timeout=30) as response:
    available = {item["id"] for item in json.load(response)["data"]}
model = "glm-5.2"
if model not in available:
    raise ValueError("Model is unavailable to this key")
payload = json.loads("{\"model\":\"glm-5.2\",\"messages\":[{\"role\":\"user\",\"content\":\"Explain how to verify the output of a small task before using it in production.\"}],\"max_tokens\":512,\"stream\":false}")
request = urllib.request.Request(base + "/chat/completions",
    data=json.dumps(payload).encode("utf-8"), headers=headers, method="POST")
with urllib.request.urlopen(request, timeout=60) as response:
    result = json.load(response)
choice = result["choices"][0]
if choice.get("finish_reason") != "stop" or not choice.get("message", {}).get("content"):
    raise ValueError("Incomplete or empty response")
print(choice["message"]["content"])
print(result.get("usage"))

JavaScript: Node.js 18+

const key = process.env.API429_API_KEY;
if (!key) throw new Error("Set API429_API_KEY");
const base = "https://gateway.api429.com/v1";
const headers = { Authorization: "Bearer " + key, "Content-Type": "application/json" };
const model = "glm-5.2";
const available = await fetch(base + "/models", { headers, signal: AbortSignal.timeout(30000) });
if (!available.ok) throw new Error("Models HTTP " + available.status);
if (!(await available.json()).data.some(item => item.id === model)) throw new Error("Model unavailable to this key");
const response = await fetch(base + "/chat/completions", {
  method: "POST", headers, signal: AbortSignal.timeout(60000),
  body: JSON.stringify({"model":"glm-5.2","messages":[{"role":"user","content":"Explain how to verify the output of a small task before using it in production."}],"max_tokens":512,"stream":false})
});
if (!response.ok) throw new Error("Generation HTTP " + response.status);
const result = await response.json();
const choice = result.choices?.[0];
if (choice?.finish_reason !== "stop" || !choice?.message?.content) throw new Error("Incomplete or empty response");
console.log(choice.message.content);
console.log(result.usage);

These examples do not prove access for your key; verify the exact ID before a paid request. API contract · Configure your client · Questions and support

Payment and a $10 test

  • Russian bank card. Top up your balance in the account.
  • Invoice for companies. Bank transfer with closing documents.
  • USDT and TON. Top up in crypto.

$10 test credit. Subscribe to our Telegram channel through the bot and get $10 on your balance for the first requests. Get $10 in the bot

Frequently asked questions

Which GLM model IDs are covered on this page?

Only the literal identifiers glm-5.2, glm-5.3 and glm-5.3-flash are covered here. Confirm that your chosen ID appears in GET /v1/models for your API429 key before sending requests.

Can I use a Z.ai GLM Coding Plan subscription with API429?

No. Z.ai Coding Plan subscriptions and native Z.ai keys are separate from API429. Calls to API429 require an API429 API key and use your API429 account balance and published catalog rates.

Do native Z.ai context limits or tool features apply automatically?

No. Upstream Z.ai docs describe the manufacturer service. Start with the documented ordinary Chat Completions request and test any required prompt size or parameter on your API429 connection.

How should I choose between glm-5.2, glm-5.3 and glm-5.3-flash?

Run all three models on the same representative tasks from your application and compare acceptance pass rates, formatting errors, retry counts and total token cost.

Sources and editorial review

Manufacturer documentation describes its family and its own API rules. API429 IDs, rates and request contracts require separate catalog and documentation checks. The original source-review date below is retained; English publication does not renew the source review.

Source review: . To connect, create an API429 account and follow the quickstart instructions.

Telegram