Model
glm-5.3-flash
glm-5.3-flash is sold at a fixed price per token. A request names glm-5.3-flash and is charged the prices below for the tokens it uses.
Datasheet
| Field | Value |
|---|---|
| Model id | glm-5.3-flash |
| Also answers to | No other id |
| Context length | 262,144 tokens |
| Max output | 128,000 tokens |
| Pricing | Fixed price |
max_tokens above the max output is clamped down to it.
Backend unavailable
No machine is serving glm-5.3-flash right now, and orders queue until capacity returns.
Prices
What a request pays for each kind of token. GET /v1/models carries the current prices.
Per 1M tokens: $0.0200 cache-hit · $0.1000 cache-miss · $0.3000 output
Uptime, last 24 hours
Each check is a chat completion through the public API, run the way the models board describes.
Uptime
n/a
Checks
0
Failures
0
Latency
n/a
Queue wait
n/a
Not serving, so no checks are running.
The first call
Set OPENFILL_API_KEY to a key from API keys before running an example. A key starts with of_live_ and is shown once.
import osfrom openai import OpenAI client = OpenAI( base_url=( "https://api.openfill.ai/v1" ), api_key=os.environ[ "OPENFILL_API_KEY" ],) r = client.chat.completions.create( model="glm-5.3-flash", messages=[ {"role": "user", "content": "hi"} ],)print(r.choices[0].message.content)print(r.usage)import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://api.openfill.ai/v1", apiKey: process.env.OPENFILL_API_KEY,}); const r = await client.chat.completions.create({ model: "glm-5.3-flash", messages: [{ role: "user", content: "hi" }],});console.log(r.choices[0].message.content);console.log(r.usage);curl "https://api.openfill.ai/v1/chat/completions" \ -H "Authorization: Bearer $OPENFILL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "glm-5.3-flash", "messages": [ {"role": "user", "content": "hi"} ] }'# The base URL without /v1; Claude Code appends /v1/messagesexport ANTHROPIC_BASE_URL="https://api.openfill.ai"export ANTHROPIC_AUTH_TOKEN="$OPENFILL_API_KEY"export ANTHROPIC_API_KEY="" # Every model slot by hand: discovery keeps only ids that name Claudeexport ANTHROPIC_MODEL="glm-5.3-flash"export ANTHROPIC_DEFAULT_SONNET_MODEL="glm-5.3-flash"export ANTHROPIC_DEFAULT_HAIKU_MODEL="glm-5.3-flash"export CLAUDE_CODE_SUBAGENT_MODEL="glm-5.3-flash" # The wait, merged into every request bodyexport CLAUDE_CODE_EXTRA_BODY='{"max_wait": 600}'export CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1claude# ~/.codex/config.tomlmodel_provider = "openfill"model = "glm-5.3-flash"model_context_window = 262144web_search = "disabled"show_raw_agent_reasoning = true [model_providers.openfill]name = "OpenFill"base_url = "https://api.openfill.ai/v1"env_key = "OPENFILL_API_KEY"wire_api = "responses"// opencode.json{ "$schema": "https://opencode.ai/config.json", "provider": { "openfill": { "npm": "@ai-sdk/openai-compatible", "name": "OpenFill", "options": { "baseURL": "https://api.openfill.ai/v1", "apiKey": "{env:OPENFILL_API_KEY}" }, "models": { "glm-5.3-flash": { "name": "glm-5.3-flash" } } } }}# Cline, Roo Code and Kilo Code# Settings > API Provider: OpenAI Compatible Base URL https://api.openfill.ai/v1API Key (your OPENFILL_API_KEY)Model ID glm-5.3-flash# A key from API keys, shown once when madeexport OPENFILL_API_KEY="of_live_..." # Any tool that reads the OpenAI variablesexport OPENAI_BASE_URL="https://api.openfill.ai/v1"export OPENAI_API_KEY="$OPENFILL_API_KEY" curl -s "$OPENAI_BASE_URL/models" \ -H "Authorization: Bearer $OPENAI_API_KEY"import { createOpenAICompatible } from "@ai-sdk/openai-compatible";import { generateText } from "ai"; const openfill = createOpenAICompatible({ name: "openfill", baseURL: "https://api.openfill.ai/v1", apiKey: process.env.OPENFILL_API_KEY,}); const { text } = await generateText({ model: openfill.chatModel("glm-5.3-flash"), prompt: "hi",});console.log(text);import osfrom langchain_openai import ChatOpenAI llm = ChatOpenAI( model="glm-5.3-flash", base_url="https://api.openfill.ai/v1", api_key=os.environ["OPENFILL_API_KEY"],)print(llm.invoke("hi").content)import osfrom litellm import completion r = completion( model="openai/glm-5.3-flash", api_base="https://api.openfill.ai/v1", api_key=os.environ["OPENFILL_API_KEY"], messages=[ {"role": "user", "content": "hi"} ],)print(r.choices[0].message.content)import osfrom openai import AsyncOpenAIfrom agents import ( Agent, Runner, set_default_openai_api, set_default_openai_client, set_tracing_disabled,) set_default_openai_client(AsyncOpenAI( base_url="https://api.openfill.ai/v1", api_key=os.environ["OPENFILL_API_KEY"],))set_default_openai_api("chat_completions")set_tracing_disabled(True) agent = Agent(name="assistant", model="glm-5.3-flash")print(Runner.run_sync(agent, "hi").final_output)Questions
What does glm-5.3-flash cost on OpenFill?
Each request is charged for the tokens it uses: $0.0200 per 1M cache-hit tokens, $0.1000 per 1M cache-miss tokens and $0.3000 per 1M output tokens.
What happens when glm-5.3-flash is at capacity?
The request waits for a free slot, taking turns with other accounts, for up to max_wait (10 seconds to 30 days). Past that it ends with 429 and no charge.
Does a price limit or price lock apply?
glm-5.3-flash ignores both, so a tool that sends one X-Price-Limit for every model can keep it.
What are the rate limits?
1,200 inference requests a minute per key, 2,000 queued orders per account, and a request body of up to 8 MB. Every rate limit is on GET /v1/rate-limits.
What is stored?
Storage is off by default: a prompt and its response exist only while the request runs. With it on, results are kept up to 30 days; store: false keeps less.