GLM-5.3 API

Model ID: glm-5.3

Z.ai’s text reasoning model for complex software engineering, long-running agents, and tool-driven workflows.

Coding · Reasoning ·

Capabilities

Context length
1000000 tokens
Max output
131072 tokens
Reasoning
Always on
  • Complex debugging and refactoring
  • Repository-scale coding agents
  • Long-running engineering workflows
  • Code review and authorized security analysis
  • reasoning
  • streaming
  • function_calling
  • caching
  • structured_output

API pricing

Input
$1.1199999999999999 USD per 1M tokens
Output
$3.5200000000000005 USD per 1M tokens
Cached input
$0.20800000000000002 USD per 1M tokens

Model introduction

GLM-5.3 builds on the GLM-5.2 base model with further post-training for coding and long-horizon tasks. It provides a 1M-token context window, up to 131,072 output tokens, function calling, prompt caching, and structured output.

Core strengths

Repository-scale context

Work across large repositories and connected engineering evidence.

Always-on reasoning

Use always-on reasoning for multi-step planning, implementation, and verification.

Structured tool workflows

Return structured data or tool calls for application workflows.

Use cases

Complex debugging and refactoring

Reason through difficult failures and plan coordinated code changes.

Repository-scale coding agents

Keep related source files, constraints, and tool results in context.

Long-running engineering workflows

Support iterative planning, implementation, and verification across multiple steps.

Code review and authorized security analysis

Review changes against design constraints and analyze code you are authorized to assess.

Specifications and limits

Input and generated output share the available context. Maximum output is a ceiling, not a recommended request size. Use retrieval and relevant source material to keep requests focused. GLM-5.3 always uses reasoning; reasoning tokens contribute to output usage.

Getting started

Create a BulkToken API key

Sign in to BulkToken and open API Keys to create a key. Store it in the BULKTOKEN_API_KEY environment variable on your server.

Configure the API client

Use https://bulktoken.ai/v1 as the OpenAI SDK base URL and set model to glm-5.3. Authenticate with your BulkToken API key.

Send a request and inspect usage

Call POST /v1/chat/completions. Use stream: true for incremental output, then review the request and token usage in Usage Logs. Your key must have access to the selected model.

FAQ

Can I turn off reasoning?

No. GLM-5.3 always reasons. The official API supports low, high, and max reasoning effort, with max as the default. Requests that disable thinking are unsupported.

Does GLM-5.3 support images?

No. This GLM-5.3 model supports text input and text output. The separate Flash variants have different capabilities.

How is usage priced?

BulkToken charges 80% of the official reference rates (20% off). See the model pricing for applicable token categories. See the Pricing section for current rates.

What changes when moving from GLM-5.2?

Use model ID glm-5.3 and remove any setting that disables thinking. Recheck tool loops and output budgets before moving an existing workflow.

Can I use the OpenAI SDK?

Yes. Set base_url to https://bulktoken.ai/v1, use your BulkToken API key, and select glm-5.3.

Does function calling run tools automatically?

No. Your application executes the requested tool and sends its result back with the matching tool-call ID. Model-generated tool calls are instructions for your application, not completed actions.

Code examples

See [the GLM-5.3 integration guide](/docs/glm-5.3) for Python, Node.js, and cURL examples. Install openai for the Python example.

Python

import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["BULKTOKEN_API_KEY"], base_url="https://bulktoken.ai/v1")
stream = client.chat.completions.create(
    model="glm-5.3",
    messages=[{"role": "user", "content": "Explain a hash table in one sentence."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

cURL

curl https://bulktoken.ai/v1/chat/completions \
  -H "Authorization: Bearer $BULKTOKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "glm-5.3", "messages": [{"role": "user", "content": "Hello!"}], "stream": true}'