5 models servingone OpenAI-compatible endpointZ.ai · DeepSeek · Moonshot

Open-weight models, billed by a formula you can check.

An OpenAI-compatible endpoint for open-weight models, served through named providers. The weighting formula is public, every response carries the arithmetic behind its own charge, and every limit is published before you pay for it.

100K weighted tokens free. 200K with an invite.

Roughly 2M input tokens on GLM-5.3 Flash. A one-time credit on every new account. No card. Sign in with GitHub and the balance is there when your key is.

Held back on GitHub accounts younger than 14 days, which is an anti-abuse measure.

Connect

Point your agent at it.

The endpoint speaks the OpenAI chat-completions API, so anything that takes a base URL and a key already works. This is the configuration, not a simplified version of it. The snippets lead with GLM-5.3 Flash because it is the cheapest model in the catalog; any slug below drops into the same field.

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "tium": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Tium",
      "options": {
        "baseURL": "https://api.tium.ai/v1"
      },
      "models": {
        "glm-5.3-flash": {
          "name": "GLM-5.3 Flash",
          "limit": {
            "context": 1000000,
            "output": 32768
          }
        }
      }
    }
  }
}
Add this to opencode.json, then run /connect, choose tium, and paste your key. The key is stored separately in ~/.local/share/opencode/auth.json; it never goes in this file.

Each of these has a setup page, with the gotchas that tool actually has: all 15 guides.

Models

What is being served.

One key and one base URL reach every model below; switching is the model field in your request. Each carries its own multiplier, so what you pay follows which model you picked rather than a flat house rate.

glm-5.3-flash

GLM-5.3 Flash · Z.ai

×0.05
serving
Multiplier
×0.05
Context served
1.00M tokens
Max output
32.8K tokens
in ×1.0 · cached ×0.2 · out ×3.333333

deepseek-v4-flash

DeepSeek V4 Flash · DeepSeek

×0.31
serving
Multiplier
×0.31
Context served
1.00M tokens
Max output
32.8K tokens
in ×1.0 · cached ×0.031818 · out ×3

deepseek-v4-pro

DeepSeek V4 Pro · DeepSeek

×0.94
serving
Multiplier
×0.94
Context served
1.00M tokens
Max output
32.8K tokens
in ×1.0 · cached ×0.033333 · out ×3

glm-5.3

GLM-5.3 · Z.ai

×1.0
serving
Multiplier
×1.0 (reference)
Context served
1.00M tokens
Max output
32.8K tokens
in ×1.0 · cached ×0.185714 · out ×3.142857

kimi-k3

Kimi K3 · Moonshot

×2.1
serving
Multiplier
×2.1
Context served
1.00M tokens
Max output
32.8K tokens
in ×1.0 · cached ×0.1 · out ×5

Every performance figure on a model card carries the date it was measured, and the ones that have not been measured say so. The full catalog, with each model’s multiplier and published weights, is on /models.

Mechanism

Transparency, stated as a mechanism.

Three things make the claim checkable rather than rhetorical.

The formula is public

How a request turns into a charge is written down and published, not folded into a headline price. If the weighting changes, it changes in public and only for requests made after it.

Headers you can read

Every response carries what it cost, what remains, and what the concurrency limit is. You do not have to take the number on this page on trust.

The upstream is named

Each model says who serves it. Where that is a third-party provider, the model card says so plainly rather than implying capacity Tium does not own.

response headers
X-Tium-Request-Id:            req_8f2c1a94e7
X-Tium-Tokens-In:             12400
X-Tium-Tokens-Cached:         3180
X-Tium-Tokens-Out:            8920
X-Tium-Weighted-Tokens:       48875
X-Tium-Model-Multiplier:      1.0
X-Tium-Balance-Remaining:     1243908
X-Tium-Concurrency-Limit:     8
X-Tium-Concurrency-Remaining: 5
Illustrative values. The header set is fixed; the numbers in it are whatever your request actually cost.
Measurement

How usage is counted, published before launch.

Input and output tokens have very different costs to serve. Counting them as one number either overcharges long-context work or undercharges generation loops, so they are weighted, and the weights are published rather than folded into a price.

weighted tokens
WT = (in × W_IN + cached × W_CACHED + out × W_OUT) × M_model

W_IN      = 1.0    # definitional anchor: one input token on glm-5.3
W_CACHED  = 0.1857 # what a cache hit costs against a miss
W_OUT     = 3.1429 # the provider's output ÷ input price ratio
M_model   = 1.0    # glm-5.3 is the reference; others convert to it
These are glm-5.3’s weights. W_OUT is per model, 3.0 to 5.0 across the catalog, because each provider prices output against input differently. It is read off their published rates, not chosen by us and not estimated. Every model’s weights are on /models.

Every request you make will show this arithmetic for itself: the token counts, the weights applied, and the multiplier, adding up to the number you were charged.

Pricing

Pricing

Tiers are a monthly allotment of weighted tokens and a published concurrency limit. The figures follow from what these models cost to serve rather than being chosen, and every one of them is on the pricing page.

introductory pricing100K weighted tokens free at signupno overage billing

Every tier, allotment and concurrency limit is on /pricing.

Start

Get a key.

Sign in with GitHub and your key is issued on the next screen. It is shown once, at creation, and it works against the endpoint immediately.