From 64ac319fde43f84182fae170d760032ff70aea7e Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 05:03:53 +0700
Subject: [PATCH 01/11] Add TopUpSaja provider
---
providers/topupsaja/logo.svg | 3 +++
.../topupsaja/models/ts/claude-opus-4.7.toml | 12 ++++++++++
.../topupsaja/models/ts/claude-opus-4.8.toml | 12 ++++++++++
.../topupsaja/models/ts/claude-sonnet-5.toml | 12 ++++++++++
.../models/ts/claude-sonnet-latest.toml | 12 ++++++++++
.../topupsaja/models/ts/deepseek-chat.toml | 10 ++++++++
.../topupsaja/models/ts/deepseek-r1.toml | 12 ++++++++++
.../ts/deepseek-v4-flash-0731-batch.toml | 23 +++++++++++++++++++
.../models/ts/deepseek-v4-flash-0731.toml | 12 ++++++++++
.../models/ts/deepseek-v4-flash-latest.toml | 12 ++++++++++
.../deepseek-v4-flash-vision-exp-batch.toml | 23 +++++++++++++++++++
.../ts/deepseek-v4-flash-vision-exp.toml | 12 ++++++++++
.../models/ts/deepseek-v4-pro-0813-batch.toml | 23 +++++++++++++++++++
.../models/ts/deepseek-v4-pro-0813.toml | 12 ++++++++++
.../topupsaja/models/ts/deepseek-v4-pro.toml | 12 ++++++++++
.../models/ts/deepseek-v4.1-flash.toml | 12 ++++++++++
.../models/ts/gemini-3.5-flash-lite.toml | 12 ++++++++++
.../topupsaja/models/ts/gemini-3.5-flash.toml | 12 ++++++++++
.../models/ts/gemini-3.6-flash-batch.toml | 23 +++++++++++++++++++
.../models/ts/gemini-3.7-flash-batch.toml | 23 +++++++++++++++++++
.../topupsaja/models/ts/gemini-3.7-flash.toml | 12 ++++++++++
.../models/ts/gemini-3.8-flash-batch.toml | 23 +++++++++++++++++++
.../topupsaja/models/ts/gemini-3.8-flash.toml | 12 ++++++++++
.../models/ts/gemini-flash-latest.toml | 12 ++++++++++
.../models/ts/gemini-pro-latest.toml | 12 ++++++++++
providers/topupsaja/models/ts/glm-4.6.toml | 12 ++++++++++
.../models/ts/glm-5.3-flash-batch.toml | 12 ++++++++++
.../topupsaja/models/ts/glm-flash-latest.toml | 12 ++++++++++
.../topupsaja/models/ts/gpt-4.1-mini.toml | 10 ++++++++
.../topupsaja/models/ts/gpt-4.1-nano.toml | 10 ++++++++
providers/topupsaja/models/ts/gpt-4.1.toml | 10 ++++++++
.../topupsaja/models/ts/gpt-4o-mini.toml | 10 ++++++++
providers/topupsaja/models/ts/gpt-4o.toml | 10 ++++++++
.../models/ts/gpt-5.6-terra-pro.toml | 12 ++++++++++
.../topupsaja/models/ts/gpt-5.6-terra.toml | 12 ++++++++++
.../topupsaja/models/ts/gpt-sol-latest.toml | 12 ++++++++++
.../topupsaja/models/ts/gpt-terra-latest.toml | 12 ++++++++++
providers/topupsaja/models/ts/grok-4.5.toml | 12 ++++++++++
providers/topupsaja/models/ts/grok-4.6.toml | 12 ++++++++++
.../topupsaja/models/ts/grok-build-0.1.toml | 12 ++++++++++
.../topupsaja/models/ts/grok-latest.toml | 12 ++++++++++
.../topupsaja/models/ts/hy4-preview.toml | 12 ++++++++++
providers/topupsaja/models/ts/kimi-k2.5.toml | 12 ++++++++++
providers/topupsaja/models/ts/kimi-k2.6.toml | 12 ++++++++++
.../topupsaja/models/ts/kimi-k2.7-code.toml | 12 ++++++++++
providers/topupsaja/models/ts/kimi-k2.toml | 22 ++++++++++++++++++
.../topupsaja/models/ts/kimi-k3-batch.toml | 23 +++++++++++++++++++
providers/topupsaja/models/ts/kimi-k3.toml | 12 ++++++++++
.../topupsaja/models/ts/kimi-latest.toml | 12 ++++++++++
.../models/ts/llama-3.1-70b-instruct.toml | 10 ++++++++
.../models/ts/llama-3.3-70b-instruct.toml | 10 ++++++++
.../topupsaja/models/ts/longcat-2.0.toml | 12 ++++++++++
.../topupsaja/models/ts/mimo-v2.5-pro.toml | 12 ++++++++++
providers/topupsaja/models/ts/mimo-v2.5.toml | 12 ++++++++++
.../topupsaja/models/ts/minimax-m3-batch.toml | 23 +++++++++++++++++++
providers/topupsaja/models/ts/minimax-m3.toml | 12 ++++++++++
.../models/ts/mistral-large-2407.toml | 10 ++++++++
.../models/ts/mistral-large-2512.toml | 10 ++++++++
.../models/ts/mistral-medium-3-5-batch.toml | 23 +++++++++++++++++++
.../models/ts/mistral-medium-3-5.toml | 23 +++++++++++++++++++
.../models/ts/mistral-medium-3.1.toml | 10 ++++++++
.../topupsaja/models/ts/mistral-medium-3.toml | 10 ++++++++
.../ts/mistral-small-3.1-24b-instruct.toml | 10 ++++++++
.../ts/mistral-small-3.2-24b-instruct.toml | 10 ++++++++
.../models/ts/muse-spark-1.3-contributor.toml | 23 +++++++++++++++++++
.../topupsaja/models/ts/muse-spark-1.3.toml | 12 ++++++++++
.../models/ts/qwen-2.5-72b-instruct.toml | 22 ++++++++++++++++++
.../topupsaja/models/ts/qwen3.6-plus.toml | 12 ++++++++++
.../topupsaja/models/ts/qwen3.7-flash.toml | 12 ++++++++++
.../topupsaja/models/ts/qwen3.7-max.toml | 12 ++++++++++
.../topupsaja/models/ts/qwen3.7-plus.toml | 12 ++++++++++
.../models/ts/qwen3.8-2.4t-a95b-batch.toml | 23 +++++++++++++++++++
.../models/ts/qwen3.8-2.4t-a95b.toml | 12 ++++++++++
.../topupsaja/models/ts/qwen3.8-27b.toml | 12 ++++++++++
.../topupsaja/models/ts/qwen3.8-flash.toml | 12 ++++++++++
.../topupsaja/models/ts/qwen3.8-max-0902.toml | 12 ++++++++++
.../models/ts/voxtral-small-24b-2507.toml | 10 ++++++++
providers/topupsaja/provider.toml | 5 ++++
78 files changed, 1042 insertions(+)
create mode 100644 providers/topupsaja/logo.svg
create mode 100644 providers/topupsaja/models/ts/claude-opus-4.7.toml
create mode 100644 providers/topupsaja/models/ts/claude-opus-4.8.toml
create mode 100644 providers/topupsaja/models/ts/claude-sonnet-5.toml
create mode 100644 providers/topupsaja/models/ts/claude-sonnet-latest.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-chat.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-r1.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-v4-pro.toml
create mode 100644 providers/topupsaja/models/ts/deepseek-v4.1-flash.toml
create mode 100644 providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml
create mode 100644 providers/topupsaja/models/ts/gemini-3.5-flash.toml
create mode 100644 providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml
create mode 100644 providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml
create mode 100644 providers/topupsaja/models/ts/gemini-3.7-flash.toml
create mode 100644 providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml
create mode 100644 providers/topupsaja/models/ts/gemini-3.8-flash.toml
create mode 100644 providers/topupsaja/models/ts/gemini-flash-latest.toml
create mode 100644 providers/topupsaja/models/ts/gemini-pro-latest.toml
create mode 100644 providers/topupsaja/models/ts/glm-4.6.toml
create mode 100644 providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
create mode 100644 providers/topupsaja/models/ts/glm-flash-latest.toml
create mode 100644 providers/topupsaja/models/ts/gpt-4.1-mini.toml
create mode 100644 providers/topupsaja/models/ts/gpt-4.1-nano.toml
create mode 100644 providers/topupsaja/models/ts/gpt-4.1.toml
create mode 100644 providers/topupsaja/models/ts/gpt-4o-mini.toml
create mode 100644 providers/topupsaja/models/ts/gpt-4o.toml
create mode 100644 providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
create mode 100644 providers/topupsaja/models/ts/gpt-5.6-terra.toml
create mode 100644 providers/topupsaja/models/ts/gpt-sol-latest.toml
create mode 100644 providers/topupsaja/models/ts/gpt-terra-latest.toml
create mode 100644 providers/topupsaja/models/ts/grok-4.5.toml
create mode 100644 providers/topupsaja/models/ts/grok-4.6.toml
create mode 100644 providers/topupsaja/models/ts/grok-build-0.1.toml
create mode 100644 providers/topupsaja/models/ts/grok-latest.toml
create mode 100644 providers/topupsaja/models/ts/hy4-preview.toml
create mode 100644 providers/topupsaja/models/ts/kimi-k2.5.toml
create mode 100644 providers/topupsaja/models/ts/kimi-k2.6.toml
create mode 100644 providers/topupsaja/models/ts/kimi-k2.7-code.toml
create mode 100644 providers/topupsaja/models/ts/kimi-k2.toml
create mode 100644 providers/topupsaja/models/ts/kimi-k3-batch.toml
create mode 100644 providers/topupsaja/models/ts/kimi-k3.toml
create mode 100644 providers/topupsaja/models/ts/kimi-latest.toml
create mode 100644 providers/topupsaja/models/ts/llama-3.1-70b-instruct.toml
create mode 100644 providers/topupsaja/models/ts/llama-3.3-70b-instruct.toml
create mode 100644 providers/topupsaja/models/ts/longcat-2.0.toml
create mode 100644 providers/topupsaja/models/ts/mimo-v2.5-pro.toml
create mode 100644 providers/topupsaja/models/ts/mimo-v2.5.toml
create mode 100644 providers/topupsaja/models/ts/minimax-m3-batch.toml
create mode 100644 providers/topupsaja/models/ts/minimax-m3.toml
create mode 100644 providers/topupsaja/models/ts/mistral-large-2407.toml
create mode 100644 providers/topupsaja/models/ts/mistral-large-2512.toml
create mode 100644 providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
create mode 100644 providers/topupsaja/models/ts/mistral-medium-3-5.toml
create mode 100644 providers/topupsaja/models/ts/mistral-medium-3.1.toml
create mode 100644 providers/topupsaja/models/ts/mistral-medium-3.toml
create mode 100644 providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml
create mode 100644 providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml
create mode 100644 providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
create mode 100644 providers/topupsaja/models/ts/muse-spark-1.3.toml
create mode 100644 providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml
create mode 100644 providers/topupsaja/models/ts/qwen3.6-plus.toml
create mode 100644 providers/topupsaja/models/ts/qwen3.7-flash.toml
create mode 100644 providers/topupsaja/models/ts/qwen3.7-max.toml
create mode 100644 providers/topupsaja/models/ts/qwen3.7-plus.toml
create mode 100644 providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml
create mode 100644 providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml
create mode 100644 providers/topupsaja/models/ts/qwen3.8-27b.toml
create mode 100644 providers/topupsaja/models/ts/qwen3.8-flash.toml
create mode 100644 providers/topupsaja/models/ts/qwen3.8-max-0902.toml
create mode 100644 providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
create mode 100644 providers/topupsaja/provider.toml
diff --git a/providers/topupsaja/logo.svg b/providers/topupsaja/logo.svg
new file mode 100644
index 00000000000..3af86891b18
--- /dev/null
+++ b/providers/topupsaja/logo.svg
@@ -0,0 +1,3 @@
+
diff --git a/providers/topupsaja/models/ts/claude-opus-4.7.toml b/providers/topupsaja/models/ts/claude-opus-4.7.toml
new file mode 100644
index 00000000000..28b1eff8903
--- /dev/null
+++ b/providers/topupsaja/models/ts/claude-opus-4.7.toml
@@ -0,0 +1,12 @@
+base_model = "anthropic/claude-opus-4-7"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 25
+output = 125
+cache_read = 2.5
+
+[limit]
+context = 1000000
+output = 128000
diff --git a/providers/topupsaja/models/ts/claude-opus-4.8.toml b/providers/topupsaja/models/ts/claude-opus-4.8.toml
new file mode 100644
index 00000000000..d2839016e20
--- /dev/null
+++ b/providers/topupsaja/models/ts/claude-opus-4.8.toml
@@ -0,0 +1,12 @@
+base_model = "anthropic/claude-opus-4-8"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 25
+output = 125
+cache_read = 2.5
+
+[limit]
+context = 1000000
+output = 128000
diff --git a/providers/topupsaja/models/ts/claude-sonnet-5.toml b/providers/topupsaja/models/ts/claude-sonnet-5.toml
new file mode 100644
index 00000000000..7dc7394988d
--- /dev/null
+++ b/providers/topupsaja/models/ts/claude-sonnet-5.toml
@@ -0,0 +1,12 @@
+base_model = "anthropic/claude-sonnet-5"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 60
+cache_read = 1.2
+
+[limit]
+context = 1000000
+output = 128000
diff --git a/providers/topupsaja/models/ts/claude-sonnet-latest.toml b/providers/topupsaja/models/ts/claude-sonnet-latest.toml
new file mode 100644
index 00000000000..7dc7394988d
--- /dev/null
+++ b/providers/topupsaja/models/ts/claude-sonnet-latest.toml
@@ -0,0 +1,12 @@
+base_model = "anthropic/claude-sonnet-5"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 60
+cache_read = 1.2
+
+[limit]
+context = 1000000
+output = 128000
diff --git a/providers/topupsaja/models/ts/deepseek-chat.toml b/providers/topupsaja/models/ts/deepseek-chat.toml
new file mode 100644
index 00000000000..8e50347df57
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-chat.toml
@@ -0,0 +1,10 @@
+base_model = "deepseek/deepseek-chat"
+
+[cost]
+input = 1.92
+output = 5.34
+cache_read = 0.96
+
+[limit]
+context = 163840
+output = 16384
diff --git a/providers/topupsaja/models/ts/deepseek-r1.toml b/providers/topupsaja/models/ts/deepseek-r1.toml
new file mode 100644
index 00000000000..82184e62a8c
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-r1.toml
@@ -0,0 +1,12 @@
+base_model = "deepseek/deepseek-r1"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 4.2
+output = 15
+cache_read = 2.1
+
+[limit]
+context = 64000
+output = 16000
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml
new file mode 100644
index 00000000000..07420fbdb7b
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml
@@ -0,0 +1,23 @@
+name = "DeepSeek: DeepSeek V4 Flash 0731 (batch)"
+description = "DeepSeek: DeepSeek V4 Flash 0731 (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = false
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = true
+[modalities]
+input = ["text"]
+output = ["text"]
+
+[cost]
+input = 0.77
+output = 2.31
+cache_read = 0.025
+
+[limit]
+context = 1048576
+output = 943718
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml
new file mode 100644
index 00000000000..38c630d4721
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml
@@ -0,0 +1,12 @@
+base_model = "deepseek/deepseek-v4-flash-0731"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 0.42
+output = 0.84
+cache_read = 0.084
+
+[limit]
+context = 1310720
+output = 943718
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
new file mode 100644
index 00000000000..382c61fde37
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
@@ -0,0 +1,12 @@
+base_model = "deepseek/deepseek-v4-flash-0731"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 0.379
+output = 1.137
+cache_read = 0.012
+
+[limit]
+context = 1310720
+output = 384000
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml
new file mode 100644
index 00000000000..5828b01ea61
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml
@@ -0,0 +1,23 @@
+name = "DeepSeek: DeepSeek V4 Flash Vision Exp (batch)"
+description = "DeepSeek: DeepSeek V4 Flash Vision Exp (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = true
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = true
+[modalities]
+input = ["text", "image"]
+output = ["text"]
+
+[cost]
+input = 0.77
+output = 2.31
+cache_read = 0.025
+
+[limit]
+context = 1048576
+output = 943718
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml
new file mode 100644
index 00000000000..a70e3ceba49
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml
@@ -0,0 +1,12 @@
+base_model = "deepseek/deepseek-v4-flash-vision-exp"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 1.509
+output = 4.528
+cache_read = 0.048
+
+[limit]
+context = 1048576
+output = 262144
diff --git a/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml b/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml
new file mode 100644
index 00000000000..33e9beecfcf
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml
@@ -0,0 +1,23 @@
+name = "DeepSeek: DeepSeek V4 Pro 0813 (batch)"
+description = "DeepSeek: DeepSeek V4 Pro 0813 (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = false
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = true
+[modalities]
+input = ["text"]
+output = ["text"]
+
+[cost]
+input = 3.96
+output = 11.88
+cache_read = 0.132
+
+[limit]
+context = 1048576
+output = 943718
diff --git a/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml b/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml
new file mode 100644
index 00000000000..1c539efdd26
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml
@@ -0,0 +1,12 @@
+base_model = "deepseek/deepseek-v4-pro-0813"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 3.469
+output = 10.407
+cache_read = 0.11
+
+[limit]
+context = 1048576
+output = 393216
diff --git a/providers/topupsaja/models/ts/deepseek-v4-pro.toml b/providers/topupsaja/models/ts/deepseek-v4-pro.toml
new file mode 100644
index 00000000000..f6280abe6e7
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-v4-pro.toml
@@ -0,0 +1,12 @@
+base_model = "deepseek/deepseek-v4-pro"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 9.6
+output = 19.2
+cache_read = 0.81
+
+[limit]
+context = 1048576
+output = 393216
diff --git a/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml b/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml
new file mode 100644
index 00000000000..de06641a2a2
--- /dev/null
+++ b/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml
@@ -0,0 +1,12 @@
+base_model = "deepseek/deepseek-v4.1-flash"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 1.05
+output = 4.2
+cache_read = 0.021
+
+[limit]
+context = 1048576
+output = 384000
diff --git a/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml b/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml
new file mode 100644
index 00000000000..a131540bd9e
--- /dev/null
+++ b/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml
@@ -0,0 +1,12 @@
+base_model = "google/gemini-3.5-flash-lite"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 2.1
+output = 17.5
+cache_read = 0.21
+
+[limit]
+context = 1048576
+output = 65536
diff --git a/providers/topupsaja/models/ts/gemini-3.5-flash.toml b/providers/topupsaja/models/ts/gemini-3.5-flash.toml
new file mode 100644
index 00000000000..9964ea3a3b2
--- /dev/null
+++ b/providers/topupsaja/models/ts/gemini-3.5-flash.toml
@@ -0,0 +1,12 @@
+base_model = "google/gemini-3.5-flash"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 9
+output = 54
+cache_read = 0.9
+
+[limit]
+context = 1048576
+output = 65536
diff --git a/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml b/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml
new file mode 100644
index 00000000000..cec616b337a
--- /dev/null
+++ b/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml
@@ -0,0 +1,23 @@
+name = "Google: Gemini 3.6 Flash (batch)"
+description = "Google: Gemini 3.6 Flash (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = true
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = false
+[modalities]
+input = ["text", "image", "video", "audio"]
+output = ["text"]
+
+[cost]
+input = 2.25
+output = 11.25
+cache_read = 0.225
+
+[limit]
+context = 1048576
+output = 65536
diff --git a/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml b/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml
new file mode 100644
index 00000000000..665bfb98316
--- /dev/null
+++ b/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml
@@ -0,0 +1,23 @@
+name = "Google: Gemini 3.7 Flash (batch)"
+description = "Google: Gemini 3.7 Flash (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = true
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = false
+[modalities]
+input = ["text", "image", "video", "audio"]
+output = ["text"]
+
+[cost]
+input = 2.25
+output = 11.25
+cache_read = 0.225
+
+[limit]
+context = 1048576
+output = 65536
diff --git a/providers/topupsaja/models/ts/gemini-3.7-flash.toml b/providers/topupsaja/models/ts/gemini-3.7-flash.toml
new file mode 100644
index 00000000000..0907dba602e
--- /dev/null
+++ b/providers/topupsaja/models/ts/gemini-3.7-flash.toml
@@ -0,0 +1,12 @@
+base_model = "google/gemini-3.7-flash"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 4.5
+output = 22.5
+cache_read = 0.45
+
+[limit]
+context = 1048576
+output = 65536
diff --git a/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml b/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml
new file mode 100644
index 00000000000..c1cbbc8bb91
--- /dev/null
+++ b/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml
@@ -0,0 +1,23 @@
+name = "Google: Gemini 3.8 Flash (batch)"
+description = "Google: Gemini 3.8 Flash (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = true
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = false
+[modalities]
+input = ["text", "image", "video", "audio"]
+output = ["text"]
+
+[cost]
+input = 2.25
+output = 11.25
+cache_read = 0.225
+
+[limit]
+context = 1048576
+output = 65536
diff --git a/providers/topupsaja/models/ts/gemini-3.8-flash.toml b/providers/topupsaja/models/ts/gemini-3.8-flash.toml
new file mode 100644
index 00000000000..19089494e2d
--- /dev/null
+++ b/providers/topupsaja/models/ts/gemini-3.8-flash.toml
@@ -0,0 +1,12 @@
+base_model = "google/gemini-3.8-flash"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 4.5
+output = 22.5
+cache_read = 0.45
+
+[limit]
+context = 1048576
+output = 65536
diff --git a/providers/topupsaja/models/ts/gemini-flash-latest.toml b/providers/topupsaja/models/ts/gemini-flash-latest.toml
new file mode 100644
index 00000000000..19089494e2d
--- /dev/null
+++ b/providers/topupsaja/models/ts/gemini-flash-latest.toml
@@ -0,0 +1,12 @@
+base_model = "google/gemini-3.8-flash"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 4.5
+output = 22.5
+cache_read = 0.45
+
+[limit]
+context = 1048576
+output = 65536
diff --git a/providers/topupsaja/models/ts/gemini-pro-latest.toml b/providers/topupsaja/models/ts/gemini-pro-latest.toml
new file mode 100644
index 00000000000..4c9db33284d
--- /dev/null
+++ b/providers/topupsaja/models/ts/gemini-pro-latest.toml
@@ -0,0 +1,12 @@
+base_model = "google/gemini-3-pro-preview"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 72
+cache_read = 1.2
+
+[limit]
+context = 1048576
+output = 65536
diff --git a/providers/topupsaja/models/ts/glm-4.6.toml b/providers/topupsaja/models/ts/glm-4.6.toml
new file mode 100644
index 00000000000..5ac7759007d
--- /dev/null
+++ b/providers/topupsaja/models/ts/glm-4.6.toml
@@ -0,0 +1,12 @@
+base_model = "zhipuai/glm-4.6"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 2.58
+output = 10.5
+cache_read = 0.48
+
+[limit]
+context = 204800
+output = 16384
diff --git a/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml b/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
new file mode 100644
index 00000000000..ef023e46f4d
--- /dev/null
+++ b/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
@@ -0,0 +1,12 @@
+base_model = "zhipuai/glm-5.3-flash"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 0.525
+output = 1.75
+cache_read = 0.105
+
+[limit]
+context = 1048576
+output = 943718
diff --git a/providers/topupsaja/models/ts/glm-flash-latest.toml b/providers/topupsaja/models/ts/glm-flash-latest.toml
new file mode 100644
index 00000000000..90a4dd726fc
--- /dev/null
+++ b/providers/topupsaja/models/ts/glm-flash-latest.toml
@@ -0,0 +1,12 @@
+base_model = "zhipuai/glm-5.3-flash"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 0.525
+output = 1.75
+cache_read = 0.105
+
+[limit]
+context = 1310720
+output = 131072
diff --git a/providers/topupsaja/models/ts/gpt-4.1-mini.toml b/providers/topupsaja/models/ts/gpt-4.1-mini.toml
new file mode 100644
index 00000000000..f3cd5f5fae2
--- /dev/null
+++ b/providers/topupsaja/models/ts/gpt-4.1-mini.toml
@@ -0,0 +1,10 @@
+base_model = "openai/gpt-4.1-mini"
+
+[cost]
+input = 2.4
+output = 9.6
+cache_read = 0.6
+
+[limit]
+context = 1047576
+output = 32768
diff --git a/providers/topupsaja/models/ts/gpt-4.1-nano.toml b/providers/topupsaja/models/ts/gpt-4.1-nano.toml
new file mode 100644
index 00000000000..78da773c67f
--- /dev/null
+++ b/providers/topupsaja/models/ts/gpt-4.1-nano.toml
@@ -0,0 +1,10 @@
+base_model = "openai/gpt-4.1-nano"
+
+[cost]
+input = 0.7
+output = 2.8
+cache_read = 0.175
+
+[limit]
+context = 1047576
+output = 32768
diff --git a/providers/topupsaja/models/ts/gpt-4.1.toml b/providers/topupsaja/models/ts/gpt-4.1.toml
new file mode 100644
index 00000000000..7035d99c67a
--- /dev/null
+++ b/providers/topupsaja/models/ts/gpt-4.1.toml
@@ -0,0 +1,10 @@
+base_model = "openai/gpt-4.1"
+
+[cost]
+input = 12
+output = 48
+cache_read = 3
+
+[limit]
+context = 1047576
+output = 32768
diff --git a/providers/topupsaja/models/ts/gpt-4o-mini.toml b/providers/topupsaja/models/ts/gpt-4o-mini.toml
new file mode 100644
index 00000000000..d05ab0ad00e
--- /dev/null
+++ b/providers/topupsaja/models/ts/gpt-4o-mini.toml
@@ -0,0 +1,10 @@
+base_model = "openai/gpt-4o-mini"
+
+[cost]
+input = 1.05
+output = 4.2
+cache_read = 0.525
+
+[limit]
+context = 128000
+output = 16384
diff --git a/providers/topupsaja/models/ts/gpt-4o.toml b/providers/topupsaja/models/ts/gpt-4o.toml
new file mode 100644
index 00000000000..7213742a547
--- /dev/null
+++ b/providers/topupsaja/models/ts/gpt-4o.toml
@@ -0,0 +1,10 @@
+base_model = "openai/gpt-4o"
+
+[cost]
+input = 15
+output = 60
+cache_read = 7.5
+
+[limit]
+context = 128000
+output = 16384
diff --git a/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml b/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
new file mode 100644
index 00000000000..fe5ad82e50c
--- /dev/null
+++ b/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
@@ -0,0 +1,12 @@
+base_model = "openai/gpt-5.6-terra"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 72
+cache_read = 1.2
+
+[limit]
+context = 1050000
+output = 128000
diff --git a/providers/topupsaja/models/ts/gpt-5.6-terra.toml b/providers/topupsaja/models/ts/gpt-5.6-terra.toml
new file mode 100644
index 00000000000..fe5ad82e50c
--- /dev/null
+++ b/providers/topupsaja/models/ts/gpt-5.6-terra.toml
@@ -0,0 +1,12 @@
+base_model = "openai/gpt-5.6-terra"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 72
+cache_read = 1.2
+
+[limit]
+context = 1050000
+output = 128000
diff --git a/providers/topupsaja/models/ts/gpt-sol-latest.toml b/providers/topupsaja/models/ts/gpt-sol-latest.toml
new file mode 100644
index 00000000000..1503c88068f
--- /dev/null
+++ b/providers/topupsaja/models/ts/gpt-sol-latest.toml
@@ -0,0 +1,12 @@
+base_model = "openai/gpt-5.6-sol"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 60
+cache_read = 1.2
+
+[limit]
+context = 1050000
+output = 128000
diff --git a/providers/topupsaja/models/ts/gpt-terra-latest.toml b/providers/topupsaja/models/ts/gpt-terra-latest.toml
new file mode 100644
index 00000000000..fe5ad82e50c
--- /dev/null
+++ b/providers/topupsaja/models/ts/gpt-terra-latest.toml
@@ -0,0 +1,12 @@
+base_model = "openai/gpt-5.6-terra"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 72
+cache_read = 1.2
+
+[limit]
+context = 1050000
+output = 128000
diff --git a/providers/topupsaja/models/ts/grok-4.5.toml b/providers/topupsaja/models/ts/grok-4.5.toml
new file mode 100644
index 00000000000..50b0371b734
--- /dev/null
+++ b/providers/topupsaja/models/ts/grok-4.5.toml
@@ -0,0 +1,12 @@
+base_model = "xai/grok-4.5"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 36
+cache_read = 1.8
+
+[limit]
+context = 500000
+output = 450000
diff --git a/providers/topupsaja/models/ts/grok-4.6.toml b/providers/topupsaja/models/ts/grok-4.6.toml
new file mode 100644
index 00000000000..39d672863d2
--- /dev/null
+++ b/providers/topupsaja/models/ts/grok-4.6.toml
@@ -0,0 +1,12 @@
+base_model = "xai/grok-4.6"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 36
+cache_read = 3
+
+[limit]
+context = 500000
+output = 450000
diff --git a/providers/topupsaja/models/ts/grok-build-0.1.toml b/providers/topupsaja/models/ts/grok-build-0.1.toml
new file mode 100644
index 00000000000..2981ce8b446
--- /dev/null
+++ b/providers/topupsaja/models/ts/grok-build-0.1.toml
@@ -0,0 +1,12 @@
+base_model = "xai/grok-build-0.1"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 6
+output = 12
+cache_read = 1.2
+
+[limit]
+context = 256000
+output = 230400
diff --git a/providers/topupsaja/models/ts/grok-latest.toml b/providers/topupsaja/models/ts/grok-latest.toml
new file mode 100644
index 00000000000..39d672863d2
--- /dev/null
+++ b/providers/topupsaja/models/ts/grok-latest.toml
@@ -0,0 +1,12 @@
+base_model = "xai/grok-4.6"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 36
+cache_read = 3
+
+[limit]
+context = 500000
+output = 450000
diff --git a/providers/topupsaja/models/ts/hy4-preview.toml b/providers/topupsaja/models/ts/hy4-preview.toml
new file mode 100644
index 00000000000..a939a33c7b3
--- /dev/null
+++ b/providers/topupsaja/models/ts/hy4-preview.toml
@@ -0,0 +1,12 @@
+base_model = "tencent/hy4-preview"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 5.004
+output = 15.006
+cache_read = 0.252
+
+[limit]
+context = 1048576
+output = 64000
diff --git a/providers/topupsaja/models/ts/kimi-k2.5.toml b/providers/topupsaja/models/ts/kimi-k2.5.toml
new file mode 100644
index 00000000000..533295208f3
--- /dev/null
+++ b/providers/topupsaja/models/ts/kimi-k2.5.toml
@@ -0,0 +1,12 @@
+base_model = "moonshotai/kimi-k2.5"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 2.7
+output = 13.5
+cache_read = 0.42
+
+[limit]
+context = 262144
+output = 235929
diff --git a/providers/topupsaja/models/ts/kimi-k2.6.toml b/providers/topupsaja/models/ts/kimi-k2.6.toml
new file mode 100644
index 00000000000..842abda449c
--- /dev/null
+++ b/providers/topupsaja/models/ts/kimi-k2.6.toml
@@ -0,0 +1,12 @@
+base_model = "moonshotai/kimi-k2.6"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 5.7
+output = 24
+cache_read = 0.96
+
+[limit]
+context = 262144
+output = 235929
diff --git a/providers/topupsaja/models/ts/kimi-k2.7-code.toml b/providers/topupsaja/models/ts/kimi-k2.7-code.toml
new file mode 100644
index 00000000000..001164aaeab
--- /dev/null
+++ b/providers/topupsaja/models/ts/kimi-k2.7-code.toml
@@ -0,0 +1,12 @@
+base_model = "moonshotai/kimi-k2.7-code"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 4.237
+output = 19.26
+cache_read = 1.08
+
+[limit]
+context = 262144
+output = 235929
diff --git a/providers/topupsaja/models/ts/kimi-k2.toml b/providers/topupsaja/models/ts/kimi-k2.toml
new file mode 100644
index 00000000000..de6d9d4e12d
--- /dev/null
+++ b/providers/topupsaja/models/ts/kimi-k2.toml
@@ -0,0 +1,22 @@
+name = "MoonshotAI: Kimi K2 0711"
+description = "MoonshotAI: Kimi K2 0711 served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = false
+reasoning = false
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = true
+[modalities]
+input = ["text"]
+output = ["text"]
+
+[cost]
+input = 3.42
+output = 13.8
+cache_read = 1.71
+
+[limit]
+context = 131072
+output = 98304
diff --git a/providers/topupsaja/models/ts/kimi-k3-batch.toml b/providers/topupsaja/models/ts/kimi-k3-batch.toml
new file mode 100644
index 00000000000..84998e8716f
--- /dev/null
+++ b/providers/topupsaja/models/ts/kimi-k3-batch.toml
@@ -0,0 +1,23 @@
+name = "MoonshotAI: Kimi K3 (batch)"
+description = "MoonshotAI: Kimi K3 (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = true
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = true
+[modalities]
+input = ["text", "image", "video"]
+output = ["text"]
+
+[cost]
+input = 18
+output = 90
+cache_read = 1.8
+
+[limit]
+context = 1048576
+output = 943718
diff --git a/providers/topupsaja/models/ts/kimi-k3.toml b/providers/topupsaja/models/ts/kimi-k3.toml
new file mode 100644
index 00000000000..652bfcf1686
--- /dev/null
+++ b/providers/topupsaja/models/ts/kimi-k3.toml
@@ -0,0 +1,12 @@
+base_model = "moonshotai/kimi-k3"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 11.7
+output = 65.52
+cache_read = 1.357
+
+[limit]
+context = 1048576
+output = 943718
diff --git a/providers/topupsaja/models/ts/kimi-latest.toml b/providers/topupsaja/models/ts/kimi-latest.toml
new file mode 100644
index 00000000000..27cea40a2bc
--- /dev/null
+++ b/providers/topupsaja/models/ts/kimi-latest.toml
@@ -0,0 +1,12 @@
+base_model = "moonshotai/kimi-k2.5"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 11.7
+output = 65.52
+cache_read = 1.357
+
+[limit]
+context = 1048576
+output = 943718
diff --git a/providers/topupsaja/models/ts/llama-3.1-70b-instruct.toml b/providers/topupsaja/models/ts/llama-3.1-70b-instruct.toml
new file mode 100644
index 00000000000..3e25e529bb7
--- /dev/null
+++ b/providers/topupsaja/models/ts/llama-3.1-70b-instruct.toml
@@ -0,0 +1,10 @@
+base_model = "meta/llama-3.1-70b-instruct"
+
+[cost]
+input = 2.4
+output = 2.4
+cache_read = 1.2
+
+[limit]
+context = 131072
+output = 16384
diff --git a/providers/topupsaja/models/ts/llama-3.3-70b-instruct.toml b/providers/topupsaja/models/ts/llama-3.3-70b-instruct.toml
new file mode 100644
index 00000000000..6e317ab1d4a
--- /dev/null
+++ b/providers/topupsaja/models/ts/llama-3.3-70b-instruct.toml
@@ -0,0 +1,10 @@
+base_model = "meta/llama-3.3-70b-instruct"
+
+[cost]
+input = 0.7
+output = 2.24
+cache_read = 0.35
+
+[limit]
+context = 131072
+output = 16384
diff --git a/providers/topupsaja/models/ts/longcat-2.0.toml b/providers/topupsaja/models/ts/longcat-2.0.toml
new file mode 100644
index 00000000000..ad11e25c176
--- /dev/null
+++ b/providers/topupsaja/models/ts/longcat-2.0.toml
@@ -0,0 +1,12 @@
+base_model = "meituan/longcat-2.0"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 2.1
+output = 8.4
+cache_read = 0.042
+
+[limit]
+context = 1048756
+output = 262144
diff --git a/providers/topupsaja/models/ts/mimo-v2.5-pro.toml b/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
new file mode 100644
index 00000000000..52635982d70
--- /dev/null
+++ b/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
@@ -0,0 +1,12 @@
+base_model = "xiaomi/mimo-v2.5-pro"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 2.61
+output = 5.22
+cache_read = 0.022
+
+[limit]
+context = 1050000
+output = 131072
diff --git a/providers/topupsaja/models/ts/mimo-v2.5.toml b/providers/topupsaja/models/ts/mimo-v2.5.toml
new file mode 100644
index 00000000000..6e0e207f0e2
--- /dev/null
+++ b/providers/topupsaja/models/ts/mimo-v2.5.toml
@@ -0,0 +1,12 @@
+base_model = "xiaomi/mimo-v2.5"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 0.98
+output = 1.96
+cache_read = 0.02
+
+[limit]
+context = 1050000
+output = 131072
diff --git a/providers/topupsaja/models/ts/minimax-m3-batch.toml b/providers/topupsaja/models/ts/minimax-m3-batch.toml
new file mode 100644
index 00000000000..326434d73a2
--- /dev/null
+++ b/providers/topupsaja/models/ts/minimax-m3-batch.toml
@@ -0,0 +1,23 @@
+name = "MiniMax: MiniMax M3 (batch)"
+description = "MiniMax: MiniMax M3 (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = true
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = true
+[modalities]
+input = ["text", "image", "video"]
+output = ["text"]
+
+[cost]
+input = 2.1
+output = 8.4
+cache_read = 0.42
+
+[limit]
+context = 524288
+output = 471859
diff --git a/providers/topupsaja/models/ts/minimax-m3.toml b/providers/topupsaja/models/ts/minimax-m3.toml
new file mode 100644
index 00000000000..364205de4e7
--- /dev/null
+++ b/providers/topupsaja/models/ts/minimax-m3.toml
@@ -0,0 +1,12 @@
+base_model = "minimax/MiniMax-M3"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 2.1
+output = 8.4
+cache_read = 0.42
+
+[limit]
+context = 1048576
+output = 512000
diff --git a/providers/topupsaja/models/ts/mistral-large-2407.toml b/providers/topupsaja/models/ts/mistral-large-2407.toml
new file mode 100644
index 00000000000..65961b173cb
--- /dev/null
+++ b/providers/topupsaja/models/ts/mistral-large-2407.toml
@@ -0,0 +1,10 @@
+base_model = "mistral/mistral-large-2411"
+
+[cost]
+input = 12
+output = 36
+cache_read = 1.2
+
+[limit]
+context = 131072
+output = 104857
diff --git a/providers/topupsaja/models/ts/mistral-large-2512.toml b/providers/topupsaja/models/ts/mistral-large-2512.toml
new file mode 100644
index 00000000000..ff97d1ffbe7
--- /dev/null
+++ b/providers/topupsaja/models/ts/mistral-large-2512.toml
@@ -0,0 +1,10 @@
+base_model = "mistral/mistral-large-2512"
+
+[cost]
+input = 3.3
+output = 9.9
+cache_read = 0.33
+
+[limit]
+context = 262144
+output = 209715
diff --git a/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml b/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
new file mode 100644
index 00000000000..4e27693bba6
--- /dev/null
+++ b/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
@@ -0,0 +1,23 @@
+name = "Mistral: Mistral Medium 3.5 (batch)"
+description = "Mistral: Mistral Medium 3.5 (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = true
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = true
+[modalities]
+input = ["text", "image"]
+output = ["text"]
+
+[cost]
+input = 4.5
+output = 22.5
+cache_read = 2.25
+
+[limit]
+context = 262144
+output = 209715
diff --git a/providers/topupsaja/models/ts/mistral-medium-3-5.toml b/providers/topupsaja/models/ts/mistral-medium-3-5.toml
new file mode 100644
index 00000000000..13e66f0df94
--- /dev/null
+++ b/providers/topupsaja/models/ts/mistral-medium-3-5.toml
@@ -0,0 +1,23 @@
+name = "Mistral: Mistral Medium 3.5"
+description = "Mistral: Mistral Medium 3.5 served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = true
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = true
+[modalities]
+input = ["text", "image"]
+output = ["text"]
+
+[cost]
+input = 9
+output = 45
+cache_read = 4.5
+
+[limit]
+context = 262144
+output = 209715
diff --git a/providers/topupsaja/models/ts/mistral-medium-3.1.toml b/providers/topupsaja/models/ts/mistral-medium-3.1.toml
new file mode 100644
index 00000000000..ce8e6301517
--- /dev/null
+++ b/providers/topupsaja/models/ts/mistral-medium-3.1.toml
@@ -0,0 +1,10 @@
+base_model = "mistral/mistral-medium-2505"
+
+[cost]
+input = 2.4
+output = 12
+cache_read = 0.24
+
+[limit]
+context = 131072
+output = 104857
diff --git a/providers/topupsaja/models/ts/mistral-medium-3.toml b/providers/topupsaja/models/ts/mistral-medium-3.toml
new file mode 100644
index 00000000000..ce8e6301517
--- /dev/null
+++ b/providers/topupsaja/models/ts/mistral-medium-3.toml
@@ -0,0 +1,10 @@
+base_model = "mistral/mistral-medium-2505"
+
+[cost]
+input = 2.4
+output = 12
+cache_read = 0.24
+
+[limit]
+context = 131072
+output = 104857
diff --git a/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml b/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml
new file mode 100644
index 00000000000..2ba8846ccaf
--- /dev/null
+++ b/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml
@@ -0,0 +1,10 @@
+base_model = "mistral/mistral-small-3-1-24b-instruct-2503"
+
+[cost]
+input = 2.106
+output = 3.33
+cache_read = 1.053
+
+[limit]
+context = 128000
+output = 102400
diff --git a/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml b/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml
new file mode 100644
index 00000000000..af67adc2081
--- /dev/null
+++ b/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml
@@ -0,0 +1,10 @@
+base_model = "mistral/mistral-small-2506"
+
+[cost]
+input = 0.656
+output = 1.75
+cache_read = 0.328
+
+[limit]
+context = 256000
+output = 16384
diff --git a/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml b/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
new file mode 100644
index 00000000000..f2bd9ff8866
--- /dev/null
+++ b/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
@@ -0,0 +1,23 @@
+name = "Meta: Muse Spark 1.3 Contributor"
+description = "Meta: Muse Spark 1.3 Contributor served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = true
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = false
+[modalities]
+input = ["text", "image", "video", "audio"]
+output = ["text"]
+
+[cost]
+input = 0.7
+output = 1.4
+cache_read = 0.014
+
+[limit]
+context = 1048576
+output = 943718
diff --git a/providers/topupsaja/models/ts/muse-spark-1.3.toml b/providers/topupsaja/models/ts/muse-spark-1.3.toml
new file mode 100644
index 00000000000..bbf37f2c149
--- /dev/null
+++ b/providers/topupsaja/models/ts/muse-spark-1.3.toml
@@ -0,0 +1,12 @@
+base_model = "meta/muse-spark-1.3"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 7.5
+output = 25.5
+cache_read = 0.9
+
+[limit]
+context = 1048576
+output = 943718
diff --git a/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml b/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml
new file mode 100644
index 00000000000..7c122fbd334
--- /dev/null
+++ b/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml
@@ -0,0 +1,22 @@
+name = "Qwen2.5 72B Instruct"
+description = "Qwen2.5 72B Instruct served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = false
+reasoning = false
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = true
+[modalities]
+input = ["text"]
+output = ["text"]
+
+[cost]
+input = 2.16
+output = 2.4
+cache_read = 1.08
+
+[limit]
+context = 32768
+output = 16384
diff --git a/providers/topupsaja/models/ts/qwen3.6-plus.toml b/providers/topupsaja/models/ts/qwen3.6-plus.toml
new file mode 100644
index 00000000000..e68141cf747
--- /dev/null
+++ b/providers/topupsaja/models/ts/qwen3.6-plus.toml
@@ -0,0 +1,12 @@
+base_model = "alibaba/qwen3.6-plus"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 1.95
+output = 11.7
+cache_read = 0.975
+
+[limit]
+context = 1000000
+output = 65536
diff --git a/providers/topupsaja/models/ts/qwen3.7-flash.toml b/providers/topupsaja/models/ts/qwen3.7-flash.toml
new file mode 100644
index 00000000000..4c05bfb204c
--- /dev/null
+++ b/providers/topupsaja/models/ts/qwen3.7-flash.toml
@@ -0,0 +1,12 @@
+base_model = "alibaba/qwen3.7-flash"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 0.21
+output = 0.91
+cache_read = 0.042
+
+[limit]
+context = 1000000
+output = 65536
diff --git a/providers/topupsaja/models/ts/qwen3.7-max.toml b/providers/topupsaja/models/ts/qwen3.7-max.toml
new file mode 100644
index 00000000000..24379975b1f
--- /dev/null
+++ b/providers/topupsaja/models/ts/qwen3.7-max.toml
@@ -0,0 +1,12 @@
+base_model = "alibaba/qwen3.7-max"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 8.85
+output = 26.55
+cache_read = 1.77
+
+[limit]
+context = 1000000
+output = 131072
diff --git a/providers/topupsaja/models/ts/qwen3.7-plus.toml b/providers/topupsaja/models/ts/qwen3.7-plus.toml
new file mode 100644
index 00000000000..dd947dc2579
--- /dev/null
+++ b/providers/topupsaja/models/ts/qwen3.7-plus.toml
@@ -0,0 +1,12 @@
+base_model = "alibaba/qwen3.7-plus"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 1.92
+output = 7.68
+cache_read = 0.384
+
+[limit]
+context = 1000000
+output = 131072
diff --git a/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml
new file mode 100644
index 00000000000..c7b5dec1a89
--- /dev/null
+++ b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml
@@ -0,0 +1,23 @@
+name = "Qwen: Qwen3.8 2.4T A95B (batch)"
+description = "Qwen: Qwen3.8 2.4T A95B (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
+release_date = "2026-09-18"
+last_updated = "2026-09-18"
+attachment = false
+reasoning = true
+reasoning_options = [{ type = "toggle" }]
+tool_call = true
+temperature = true
+knowledge = "2025-06"
+open_weights = true
+[modalities]
+input = ["text"]
+output = ["text"]
+
+[cost]
+input = 12
+output = 36
+cache_read = 1.5
+
+[limit]
+context = 1010000
+output = 909000
diff --git a/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml
new file mode 100644
index 00000000000..afd83c05f4f
--- /dev/null
+++ b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml
@@ -0,0 +1,12 @@
+base_model = "alibaba/qwen3.8-2.4t-a95b"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 36
+cache_read = 1.5
+
+[limit]
+context = 1048576
+output = 131072
diff --git a/providers/topupsaja/models/ts/qwen3.8-27b.toml b/providers/topupsaja/models/ts/qwen3.8-27b.toml
new file mode 100644
index 00000000000..c4314345f44
--- /dev/null
+++ b/providers/topupsaja/models/ts/qwen3.8-27b.toml
@@ -0,0 +1,12 @@
+base_model = "alibaba/qwen3.8-27b"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 1.498
+output = 17.85
+cache_read = 1.05
+
+[limit]
+context = 1000000
+output = 131072
diff --git a/providers/topupsaja/models/ts/qwen3.8-flash.toml b/providers/topupsaja/models/ts/qwen3.8-flash.toml
new file mode 100644
index 00000000000..6e88264be46
--- /dev/null
+++ b/providers/topupsaja/models/ts/qwen3.8-flash.toml
@@ -0,0 +1,12 @@
+base_model = "alibaba/qwen3.8-flash"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 1.05
+output = 3.29
+cache_read = 0.112
+
+[limit]
+context = 1000000
+output = 131072
diff --git a/providers/topupsaja/models/ts/qwen3.8-max-0902.toml b/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
new file mode 100644
index 00000000000..56becbe4514
--- /dev/null
+++ b/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
@@ -0,0 +1,12 @@
+base_model = "alibaba/qwen3.8-max-0902"
+
+reasoning_options = [{ type = "toggle" }]
+
+[cost]
+input = 12
+output = 36
+cache_read = 1.5
+
+[limit]
+context = 1000000
+output = 131072
diff --git a/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml b/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
new file mode 100644
index 00000000000..a6e8a7ed132
--- /dev/null
+++ b/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
@@ -0,0 +1,10 @@
+base_model = "mistral/voxtral-small-24b-2507"
+
+[cost]
+input = 0.7
+output = 2.1
+cache_read = 0.07
+
+[limit]
+context = 32768
+output = 26214
diff --git a/providers/topupsaja/provider.toml b/providers/topupsaja/provider.toml
new file mode 100644
index 00000000000..781ce3369d9
--- /dev/null
+++ b/providers/topupsaja/provider.toml
@@ -0,0 +1,5 @@
+name = "TopUpSaja"
+npm = "@ai-sdk/openai-compatible"
+api = "https://api.topupsaja.com/v1"
+env = ["TOPUPSAJA_API_KEY"]
+doc = "https://topupsaja.com/docs"
From a8f90b3f6f665bfafddf65977fc15bd43060d8c1 Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 05:46:38 +0700
Subject: [PATCH 02/11] Address review: reasoning_options from lab/peers,
base_model for batch variants, new lab entries
---
models/alibaba/qwen-2.5-72b-instruct.toml | 23 +++++++++++++++++
models/meta/muse-spark-1.3-contributor.toml | 22 ++++++++++++++++
models/mistral/mistral-large-2407.toml | 23 +++++++++++++++++
models/moonshotai/kimi-k2.toml | 23 +++++++++++++++++
.../topupsaja/models/ts/claude-opus-4.7.toml | 12 +++++++--
.../topupsaja/models/ts/claude-opus-4.8.toml | 12 +++++++--
.../topupsaja/models/ts/claude-sonnet-5.toml | 12 +++++++--
.../models/ts/claude-sonnet-latest.toml | 12 +++++++--
.../topupsaja/models/ts/deepseek-r1.toml | 2 +-
.../ts/deepseek-v4-flash-0731-batch.toml | 25 +++++++++----------
.../models/ts/deepseek-v4-flash-0731.toml | 12 +++++++--
.../models/ts/deepseek-v4-flash-latest.toml | 12 +++++++--
.../deepseek-v4-flash-vision-exp-batch.toml | 25 +++++++++----------
.../ts/deepseek-v4-flash-vision-exp.toml | 12 +++++++--
.../models/ts/deepseek-v4-pro-0813-batch.toml | 25 +++++++++----------
.../models/ts/deepseek-v4-pro-0813.toml | 12 +++++++--
.../topupsaja/models/ts/deepseek-v4-pro.toml | 12 +++++++--
.../models/ts/deepseek-v4.1-flash.toml | 12 +++++++--
.../models/ts/gemini-3.5-flash-lite.toml | 6 +++--
.../topupsaja/models/ts/gemini-3.5-flash.toml | 6 +++--
.../models/ts/gemini-3.6-flash-batch.toml | 19 +++++---------
.../models/ts/gemini-3.7-flash-batch.toml | 19 +++++---------
.../topupsaja/models/ts/gemini-3.7-flash.toml | 6 +++--
.../models/ts/gemini-3.8-flash-batch.toml | 19 +++++---------
.../topupsaja/models/ts/gemini-3.8-flash.toml | 6 +++--
.../models/ts/gemini-flash-latest.toml | 6 +++--
.../models/ts/gemini-pro-latest.toml | 2 +-
providers/topupsaja/models/ts/glm-4.6.toml | 8 ++++--
.../models/ts/glm-5.3-flash-batch.toml | 6 ++++-
.../topupsaja/models/ts/glm-flash-latest.toml | 6 +++--
.../models/ts/gpt-5.6-terra-pro.toml | 6 +++--
.../topupsaja/models/ts/gpt-5.6-terra.toml | 6 +++--
.../topupsaja/models/ts/gpt-sol-latest.toml | 6 +++--
.../topupsaja/models/ts/gpt-terra-latest.toml | 6 +++--
providers/topupsaja/models/ts/grok-4.5.toml | 6 +++--
providers/topupsaja/models/ts/grok-4.6.toml | 6 +++--
.../topupsaja/models/ts/grok-build-0.1.toml | 2 +-
.../topupsaja/models/ts/grok-latest.toml | 6 +++--
.../topupsaja/models/ts/hy4-preview.toml | 6 +++--
providers/topupsaja/models/ts/kimi-k2.5.toml | 8 ++++--
providers/topupsaja/models/ts/kimi-k2.6.toml | 8 ++++--
.../topupsaja/models/ts/kimi-k2.7-code.toml | 2 +-
providers/topupsaja/models/ts/kimi-k2.toml | 14 +----------
.../topupsaja/models/ts/kimi-k3-batch.toml | 25 +++++++++----------
providers/topupsaja/models/ts/kimi-k3.toml | 12 +++++++--
.../topupsaja/models/ts/kimi-latest.toml | 12 +++++++--
.../topupsaja/models/ts/longcat-2.0.toml | 11 ++++++--
.../topupsaja/models/ts/mimo-v2.5-pro.toml | 8 ++++--
providers/topupsaja/models/ts/mimo-v2.5.toml | 8 ++++--
.../topupsaja/models/ts/minimax-m3-batch.toml | 21 ++++++----------
providers/topupsaja/models/ts/minimax-m3.toml | 8 ++++--
.../models/ts/mistral-large-2407.toml | 2 +-
.../models/ts/mistral-medium-3-5-batch.toml | 19 +++++---------
.../models/ts/mistral-medium-3-5.toml | 19 ++++----------
.../models/ts/muse-spark-1.3-contributor.toml | 19 +++++---------
.../topupsaja/models/ts/muse-spark-1.3.toml | 6 +++--
.../models/ts/qwen-2.5-72b-instruct.toml | 14 +----------
.../topupsaja/models/ts/qwen3.6-plus.toml | 8 ++++--
.../topupsaja/models/ts/qwen3.7-flash.toml | 11 ++++++--
.../topupsaja/models/ts/qwen3.7-max.toml | 8 ++++--
.../topupsaja/models/ts/qwen3.7-plus.toml | 8 ++++--
.../models/ts/qwen3.8-2.4t-a95b-batch.toml | 19 +++++---------
.../models/ts/qwen3.8-2.4t-a95b.toml | 6 +++--
.../topupsaja/models/ts/qwen3.8-27b.toml | 12 +++++++--
.../topupsaja/models/ts/qwen3.8-flash.toml | 11 ++++++--
.../topupsaja/models/ts/qwen3.8-max-0902.toml | 6 +++--
66 files changed, 479 insertions(+), 273 deletions(-)
create mode 100644 models/alibaba/qwen-2.5-72b-instruct.toml
create mode 100644 models/meta/muse-spark-1.3-contributor.toml
create mode 100644 models/mistral/mistral-large-2407.toml
create mode 100644 models/moonshotai/kimi-k2.toml
diff --git a/models/alibaba/qwen-2.5-72b-instruct.toml b/models/alibaba/qwen-2.5-72b-instruct.toml
new file mode 100644
index 00000000000..8921e653255
--- /dev/null
+++ b/models/alibaba/qwen-2.5-72b-instruct.toml
@@ -0,0 +1,23 @@
+# Sources:
+# https://openrouter.ai/qwen/qwen-2.5-72b-instruct
+
+name = "Qwen2.5 72B Instruct"
+description = "Qwen instruction model for multilingual chat, reasoning, and tool use"
+family = "qwen"
+release_date = "2024-09-19"
+last_updated = "2024-09-19"
+attachment = false
+reasoning = false
+temperature = true
+tool_call = true
+structured_output = true
+knowledge = "2024-06-30"
+open_weights = true
+
+[limit]
+context = 32_768
+output = 16_384
+
+[modalities]
+input = ["text"]
+output = ["text"]
diff --git a/models/meta/muse-spark-1.3-contributor.toml b/models/meta/muse-spark-1.3-contributor.toml
new file mode 100644
index 00000000000..0d190366663
--- /dev/null
+++ b/models/meta/muse-spark-1.3-contributor.toml
@@ -0,0 +1,22 @@
+# Sources:
+# https://openrouter.ai/meta/muse-spark-1.3-contributor
+
+name = "Muse Spark 1.3 Contributor"
+description = "Open Llama multimodal model for image understanding and text reasoning"
+family = "muse"
+release_date = "2026-09-02"
+last_updated = "2026-09-02"
+attachment = true
+reasoning = true
+temperature = true
+tool_call = true
+structured_output = true
+open_weights = false
+
+[limit]
+context = 1_048_576
+output = 943_718
+
+[modalities]
+input = ["text", "image", "video", "pdf", "audio"]
+output = ["text"]
diff --git a/models/mistral/mistral-large-2407.toml b/models/mistral/mistral-large-2407.toml
new file mode 100644
index 00000000000..d4976a12627
--- /dev/null
+++ b/models/mistral/mistral-large-2407.toml
@@ -0,0 +1,23 @@
+# Sources:
+# https://openrouter.ai/mistral/mistral-large-2407
+
+name = "Mistral Large 2407"
+description = "Flagship Mistral model for advanced reasoning, coding, and multilingual work"
+family = "mistral-large"
+release_date = "2024-11-19"
+last_updated = "2024-11-19"
+attachment = true
+reasoning = false
+temperature = true
+tool_call = true
+structured_output = true
+knowledge = "2024-03-31"
+open_weights = false
+
+[limit]
+context = 131_072
+output = 104_857
+
+[modalities]
+input = ["text", "pdf"]
+output = ["text"]
diff --git a/models/moonshotai/kimi-k2.toml b/models/moonshotai/kimi-k2.toml
new file mode 100644
index 00000000000..355dfdb401f
--- /dev/null
+++ b/models/moonshotai/kimi-k2.toml
@@ -0,0 +1,23 @@
+# Sources:
+# https://openrouter.ai/moonshotai/kimi-k2
+
+name = "Kimi K2 0711"
+description = "Kimi model for long-context chat, coding, and agentic reasoning"
+family = "kimi-k2"
+release_date = "2025-07-11"
+last_updated = "2025-07-11"
+attachment = false
+reasoning = false
+temperature = true
+tool_call = true
+structured_output = false
+knowledge = "2024-12-31"
+open_weights = true
+
+[limit]
+context = 131_072
+output = 98_304
+
+[modalities]
+input = ["text"]
+output = ["text"]
diff --git a/providers/topupsaja/models/ts/claude-opus-4.7.toml b/providers/topupsaja/models/ts/claude-opus-4.7.toml
index 28b1eff8903..8659df068a9 100644
--- a/providers/topupsaja/models/ts/claude-opus-4.7.toml
+++ b/providers/topupsaja/models/ts/claude-opus-4.7.toml
@@ -1,6 +1,7 @@
-base_model = "anthropic/claude-opus-4-7"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "anthropic/claude-opus-4-7"
[cost]
input = 25
@@ -10,3 +11,10 @@ cache_read = 2.5
[limit]
context = 1000000
output = 128000
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/claude-opus-4.8.toml b/providers/topupsaja/models/ts/claude-opus-4.8.toml
index d2839016e20..659898c3376 100644
--- a/providers/topupsaja/models/ts/claude-opus-4.8.toml
+++ b/providers/topupsaja/models/ts/claude-opus-4.8.toml
@@ -1,6 +1,7 @@
-base_model = "anthropic/claude-opus-4-8"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "anthropic/claude-opus-4-8"
[cost]
input = 25
@@ -10,3 +11,10 @@ cache_read = 2.5
[limit]
context = 1000000
output = 128000
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/claude-sonnet-5.toml b/providers/topupsaja/models/ts/claude-sonnet-5.toml
index 7dc7394988d..2e7eead67f9 100644
--- a/providers/topupsaja/models/ts/claude-sonnet-5.toml
+++ b/providers/topupsaja/models/ts/claude-sonnet-5.toml
@@ -1,6 +1,7 @@
-base_model = "anthropic/claude-sonnet-5"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "anthropic/claude-sonnet-5"
[cost]
input = 12
@@ -10,3 +11,10 @@ cache_read = 1.2
[limit]
context = 1000000
output = 128000
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/claude-sonnet-latest.toml b/providers/topupsaja/models/ts/claude-sonnet-latest.toml
index 7dc7394988d..2e7eead67f9 100644
--- a/providers/topupsaja/models/ts/claude-sonnet-latest.toml
+++ b/providers/topupsaja/models/ts/claude-sonnet-latest.toml
@@ -1,6 +1,7 @@
-base_model = "anthropic/claude-sonnet-5"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "anthropic/claude-sonnet-5"
[cost]
input = 12
@@ -10,3 +11,10 @@ cache_read = 1.2
[limit]
context = 1000000
output = 128000
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/deepseek-r1.toml b/providers/topupsaja/models/ts/deepseek-r1.toml
index 82184e62a8c..c35006b627b 100644
--- a/providers/topupsaja/models/ts/deepseek-r1.toml
+++ b/providers/topupsaja/models/ts/deepseek-r1.toml
@@ -1,6 +1,6 @@
base_model = "deepseek/deepseek-r1"
-reasoning_options = [{ type = "toggle" }]
+reasoning_options = []
[cost]
input = 4.2
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml
index 07420fbdb7b..c1ac7f12181 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml
@@ -1,17 +1,9 @@
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
+
+base_model = "deepseek/deepseek-v4-flash-0731"
+
name = "DeepSeek: DeepSeek V4 Flash 0731 (batch)"
-description = "DeepSeek: DeepSeek V4 Flash 0731 (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = false
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = true
-[modalities]
-input = ["text"]
-output = ["text"]
[cost]
input = 0.77
@@ -21,3 +13,10 @@ cache_read = 0.025
[limit]
context = 1048576
output = 943718
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml
index 38c630d4721..b0c4a4cdb78 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml
@@ -1,6 +1,7 @@
-base_model = "deepseek/deepseek-v4-flash-0731"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "deepseek/deepseek-v4-flash-0731"
[cost]
input = 0.42
@@ -10,3 +11,10 @@ cache_read = 0.084
[limit]
context = 1310720
output = 943718
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
index 382c61fde37..8421b373ae4 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
@@ -1,6 +1,7 @@
-base_model = "deepseek/deepseek-v4-flash-0731"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "deepseek/deepseek-v4-flash-0731"
[cost]
input = 0.379
@@ -10,3 +11,10 @@ cache_read = 0.012
[limit]
context = 1310720
output = 384000
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml
index 5828b01ea61..3ff4adc52cd 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml
@@ -1,17 +1,9 @@
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
+
+base_model = "deepseek/deepseek-v4-flash-vision-exp"
+
name = "DeepSeek: DeepSeek V4 Flash Vision Exp (batch)"
-description = "DeepSeek: DeepSeek V4 Flash Vision Exp (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = true
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = true
-[modalities]
-input = ["text", "image"]
-output = ["text"]
[cost]
input = 0.77
@@ -21,3 +13,10 @@ cache_read = 0.025
[limit]
context = 1048576
output = 943718
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml
index a70e3ceba49..e354a7a3050 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml
@@ -1,6 +1,7 @@
-base_model = "deepseek/deepseek-v4-flash-vision-exp"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "deepseek/deepseek-v4-flash-vision-exp"
[cost]
input = 1.509
@@ -10,3 +11,10 @@ cache_read = 0.048
[limit]
context = 1048576
output = 262144
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml b/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml
index 33e9beecfcf..378bd7bd0e4 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml
@@ -1,17 +1,9 @@
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
+
+base_model = "deepseek/deepseek-v4-pro-0813"
+
name = "DeepSeek: DeepSeek V4 Pro 0813 (batch)"
-description = "DeepSeek: DeepSeek V4 Pro 0813 (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = false
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = true
-[modalities]
-input = ["text"]
-output = ["text"]
[cost]
input = 3.96
@@ -21,3 +13,10 @@ cache_read = 0.132
[limit]
context = 1048576
output = 943718
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml b/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml
index 1c539efdd26..1ecdb0a7d3a 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml
@@ -1,6 +1,7 @@
-base_model = "deepseek/deepseek-v4-pro-0813"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "deepseek/deepseek-v4-pro-0813"
[cost]
input = 3.469
@@ -10,3 +11,10 @@ cache_read = 0.11
[limit]
context = 1048576
output = 393216
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/deepseek-v4-pro.toml b/providers/topupsaja/models/ts/deepseek-v4-pro.toml
index f6280abe6e7..ed3750781ce 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-pro.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-pro.toml
@@ -1,6 +1,7 @@
-base_model = "deepseek/deepseek-v4-pro"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "deepseek/deepseek-v4-pro"
[cost]
input = 9.6
@@ -10,3 +11,10 @@ cache_read = 0.81
[limit]
context = 1048576
output = 393216
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["high", "xhigh"]
diff --git a/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml b/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml
index de06641a2a2..ba92b3bf05d 100644
--- a/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml
@@ -1,6 +1,7 @@
-base_model = "deepseek/deepseek-v4.1-flash"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "deepseek/deepseek-v4.1-flash"
[cost]
input = 1.05
@@ -10,3 +11,10 @@ cache_read = 0.021
[limit]
context = 1048576
output = 384000
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml b/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml
index a131540bd9e..e0ce532d00d 100644
--- a/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml
+++ b/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml
@@ -1,7 +1,5 @@
base_model = "google/gemini-3.5-flash-lite"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 2.1
output = 17.5
@@ -10,3 +8,7 @@ cache_read = 0.21
[limit]
context = 1048576
output = 65536
+
+[[reasoning_options]]
+type = "effort"
+values = ["minimal", "low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.5-flash.toml b/providers/topupsaja/models/ts/gemini-3.5-flash.toml
index 9964ea3a3b2..44b60012cc6 100644
--- a/providers/topupsaja/models/ts/gemini-3.5-flash.toml
+++ b/providers/topupsaja/models/ts/gemini-3.5-flash.toml
@@ -1,7 +1,5 @@
base_model = "google/gemini-3.5-flash"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 9
output = 54
@@ -10,3 +8,7 @@ cache_read = 0.9
[limit]
context = 1048576
output = 65536
+
+[[reasoning_options]]
+type = "effort"
+values = ["minimal", "low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml b/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml
index cec616b337a..06da534b1cf 100644
--- a/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml
+++ b/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml
@@ -1,17 +1,6 @@
+base_model = "google/gemini-3.6-flash"
+
name = "Google: Gemini 3.6 Flash (batch)"
-description = "Google: Gemini 3.6 Flash (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = true
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = false
-[modalities]
-input = ["text", "image", "video", "audio"]
-output = ["text"]
[cost]
input = 2.25
@@ -21,3 +10,7 @@ cache_read = 0.225
[limit]
context = 1048576
output = 65536
+
+[[reasoning_options]]
+type = "effort"
+values = ["minimal", "low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml b/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml
index 665bfb98316..dce4a7f1f00 100644
--- a/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml
+++ b/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml
@@ -1,17 +1,6 @@
+base_model = "google/gemini-3.7-flash"
+
name = "Google: Gemini 3.7 Flash (batch)"
-description = "Google: Gemini 3.7 Flash (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = true
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = false
-[modalities]
-input = ["text", "image", "video", "audio"]
-output = ["text"]
[cost]
input = 2.25
@@ -21,3 +10,7 @@ cache_read = 0.225
[limit]
context = 1048576
output = 65536
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.7-flash.toml b/providers/topupsaja/models/ts/gemini-3.7-flash.toml
index 0907dba602e..c14f4744d31 100644
--- a/providers/topupsaja/models/ts/gemini-3.7-flash.toml
+++ b/providers/topupsaja/models/ts/gemini-3.7-flash.toml
@@ -1,7 +1,5 @@
base_model = "google/gemini-3.7-flash"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 4.5
output = 22.5
@@ -10,3 +8,7 @@ cache_read = 0.45
[limit]
context = 1048576
output = 65536
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml b/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml
index c1cbbc8bb91..4a10e8f2802 100644
--- a/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml
+++ b/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml
@@ -1,17 +1,6 @@
+base_model = "google/gemini-3.8-flash"
+
name = "Google: Gemini 3.8 Flash (batch)"
-description = "Google: Gemini 3.8 Flash (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = true
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = false
-[modalities]
-input = ["text", "image", "video", "audio"]
-output = ["text"]
[cost]
input = 2.25
@@ -21,3 +10,7 @@ cache_read = 0.225
[limit]
context = 1048576
output = 65536
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.8-flash.toml b/providers/topupsaja/models/ts/gemini-3.8-flash.toml
index 19089494e2d..8d968a9af9f 100644
--- a/providers/topupsaja/models/ts/gemini-3.8-flash.toml
+++ b/providers/topupsaja/models/ts/gemini-3.8-flash.toml
@@ -1,7 +1,5 @@
base_model = "google/gemini-3.8-flash"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 4.5
output = 22.5
@@ -10,3 +8,7 @@ cache_read = 0.45
[limit]
context = 1048576
output = 65536
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-flash-latest.toml b/providers/topupsaja/models/ts/gemini-flash-latest.toml
index 19089494e2d..8d968a9af9f 100644
--- a/providers/topupsaja/models/ts/gemini-flash-latest.toml
+++ b/providers/topupsaja/models/ts/gemini-flash-latest.toml
@@ -1,7 +1,5 @@
base_model = "google/gemini-3.8-flash"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 4.5
output = 22.5
@@ -10,3 +8,7 @@ cache_read = 0.45
[limit]
context = 1048576
output = 65536
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-pro-latest.toml b/providers/topupsaja/models/ts/gemini-pro-latest.toml
index 4c9db33284d..0fc94e9a7c7 100644
--- a/providers/topupsaja/models/ts/gemini-pro-latest.toml
+++ b/providers/topupsaja/models/ts/gemini-pro-latest.toml
@@ -1,6 +1,6 @@
base_model = "google/gemini-3-pro-preview"
-reasoning_options = [{ type = "toggle" }]
+reasoning_options = []
[cost]
input = 12
diff --git a/providers/topupsaja/models/ts/glm-4.6.toml b/providers/topupsaja/models/ts/glm-4.6.toml
index 5ac7759007d..73b80802078 100644
--- a/providers/topupsaja/models/ts/glm-4.6.toml
+++ b/providers/topupsaja/models/ts/glm-4.6.toml
@@ -1,6 +1,7 @@
-base_model = "zhipuai/glm-4.6"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "zhipuai/glm-4.6"
[cost]
input = 2.58
@@ -10,3 +11,6 @@ cache_read = 0.48
[limit]
context = 204800
output = 16384
+
+[[reasoning_options]]
+type = "toggle"
diff --git a/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml b/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
index ef023e46f4d..5957d1b5125 100644
--- a/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
+++ b/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
@@ -1,6 +1,6 @@
base_model = "zhipuai/glm-5.3-flash"
-reasoning_options = [{ type = "toggle" }]
+name = "Z.ai: GLM 5.3 Flash (batch)"
[cost]
input = 0.525
@@ -10,3 +10,7 @@ cache_read = 0.105
[limit]
context = 1048576
output = 943718
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/glm-flash-latest.toml b/providers/topupsaja/models/ts/glm-flash-latest.toml
index 90a4dd726fc..fbf8096e155 100644
--- a/providers/topupsaja/models/ts/glm-flash-latest.toml
+++ b/providers/topupsaja/models/ts/glm-flash-latest.toml
@@ -1,7 +1,5 @@
base_model = "zhipuai/glm-5.3-flash"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 0.525
output = 1.75
@@ -10,3 +8,7 @@ cache_read = 0.105
[limit]
context = 1310720
output = 131072
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml b/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
index fe5ad82e50c..9aaa4808765 100644
--- a/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
+++ b/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
@@ -1,7 +1,5 @@
base_model = "openai/gpt-5.6-terra"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 12
output = 72
@@ -10,3 +8,7 @@ cache_read = 1.2
[limit]
context = 1050000
output = 128000
+
+[[reasoning_options]]
+type = "effort"
+values = ["none", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/gpt-5.6-terra.toml b/providers/topupsaja/models/ts/gpt-5.6-terra.toml
index fe5ad82e50c..9aaa4808765 100644
--- a/providers/topupsaja/models/ts/gpt-5.6-terra.toml
+++ b/providers/topupsaja/models/ts/gpt-5.6-terra.toml
@@ -1,7 +1,5 @@
base_model = "openai/gpt-5.6-terra"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 12
output = 72
@@ -10,3 +8,7 @@ cache_read = 1.2
[limit]
context = 1050000
output = 128000
+
+[[reasoning_options]]
+type = "effort"
+values = ["none", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/gpt-sol-latest.toml b/providers/topupsaja/models/ts/gpt-sol-latest.toml
index 1503c88068f..af2aca4115f 100644
--- a/providers/topupsaja/models/ts/gpt-sol-latest.toml
+++ b/providers/topupsaja/models/ts/gpt-sol-latest.toml
@@ -1,7 +1,5 @@
base_model = "openai/gpt-5.6-sol"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 12
output = 60
@@ -10,3 +8,7 @@ cache_read = 1.2
[limit]
context = 1050000
output = 128000
+
+[[reasoning_options]]
+type = "effort"
+values = ["none", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/gpt-terra-latest.toml b/providers/topupsaja/models/ts/gpt-terra-latest.toml
index fe5ad82e50c..9aaa4808765 100644
--- a/providers/topupsaja/models/ts/gpt-terra-latest.toml
+++ b/providers/topupsaja/models/ts/gpt-terra-latest.toml
@@ -1,7 +1,5 @@
base_model = "openai/gpt-5.6-terra"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 12
output = 72
@@ -10,3 +8,7 @@ cache_read = 1.2
[limit]
context = 1050000
output = 128000
+
+[[reasoning_options]]
+type = "effort"
+values = ["none", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/grok-4.5.toml b/providers/topupsaja/models/ts/grok-4.5.toml
index 50b0371b734..6269374f343 100644
--- a/providers/topupsaja/models/ts/grok-4.5.toml
+++ b/providers/topupsaja/models/ts/grok-4.5.toml
@@ -1,7 +1,5 @@
base_model = "xai/grok-4.5"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 12
output = 36
@@ -10,3 +8,7 @@ cache_read = 1.8
[limit]
context = 500000
output = 450000
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/grok-4.6.toml b/providers/topupsaja/models/ts/grok-4.6.toml
index 39d672863d2..8a903c857d2 100644
--- a/providers/topupsaja/models/ts/grok-4.6.toml
+++ b/providers/topupsaja/models/ts/grok-4.6.toml
@@ -1,7 +1,5 @@
base_model = "xai/grok-4.6"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 12
output = 36
@@ -10,3 +8,7 @@ cache_read = 3
[limit]
context = 500000
output = 450000
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high", "xhigh"]
diff --git a/providers/topupsaja/models/ts/grok-build-0.1.toml b/providers/topupsaja/models/ts/grok-build-0.1.toml
index 2981ce8b446..6ead432f3f4 100644
--- a/providers/topupsaja/models/ts/grok-build-0.1.toml
+++ b/providers/topupsaja/models/ts/grok-build-0.1.toml
@@ -1,6 +1,6 @@
base_model = "xai/grok-build-0.1"
-reasoning_options = [{ type = "toggle" }]
+reasoning_options = []
[cost]
input = 6
diff --git a/providers/topupsaja/models/ts/grok-latest.toml b/providers/topupsaja/models/ts/grok-latest.toml
index 39d672863d2..8a903c857d2 100644
--- a/providers/topupsaja/models/ts/grok-latest.toml
+++ b/providers/topupsaja/models/ts/grok-latest.toml
@@ -1,7 +1,5 @@
base_model = "xai/grok-4.6"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 12
output = 36
@@ -10,3 +8,7 @@ cache_read = 3
[limit]
context = 500000
output = 450000
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high", "xhigh"]
diff --git a/providers/topupsaja/models/ts/hy4-preview.toml b/providers/topupsaja/models/ts/hy4-preview.toml
index a939a33c7b3..3f6b52c01c2 100644
--- a/providers/topupsaja/models/ts/hy4-preview.toml
+++ b/providers/topupsaja/models/ts/hy4-preview.toml
@@ -1,7 +1,5 @@
base_model = "tencent/hy4-preview"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 5.004
output = 15.006
@@ -10,3 +8,7 @@ cache_read = 0.252
[limit]
context = 1048576
output = 64000
+
+[[reasoning_options]]
+type = "effort"
+values = ["none", "low", "high"]
diff --git a/providers/topupsaja/models/ts/kimi-k2.5.toml b/providers/topupsaja/models/ts/kimi-k2.5.toml
index 533295208f3..84576388c72 100644
--- a/providers/topupsaja/models/ts/kimi-k2.5.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.5.toml
@@ -1,6 +1,7 @@
-base_model = "moonshotai/kimi-k2.5"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "moonshotai/kimi-k2.5"
[cost]
input = 2.7
@@ -10,3 +11,6 @@ cache_read = 0.42
[limit]
context = 262144
output = 235929
+
+[[reasoning_options]]
+type = "toggle"
diff --git a/providers/topupsaja/models/ts/kimi-k2.6.toml b/providers/topupsaja/models/ts/kimi-k2.6.toml
index 842abda449c..bade6bbb043 100644
--- a/providers/topupsaja/models/ts/kimi-k2.6.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.6.toml
@@ -1,6 +1,7 @@
-base_model = "moonshotai/kimi-k2.6"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "moonshotai/kimi-k2.6"
[cost]
input = 5.7
@@ -10,3 +11,6 @@ cache_read = 0.96
[limit]
context = 262144
output = 235929
+
+[[reasoning_options]]
+type = "toggle"
diff --git a/providers/topupsaja/models/ts/kimi-k2.7-code.toml b/providers/topupsaja/models/ts/kimi-k2.7-code.toml
index 001164aaeab..ebb8ffec935 100644
--- a/providers/topupsaja/models/ts/kimi-k2.7-code.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.7-code.toml
@@ -1,6 +1,6 @@
base_model = "moonshotai/kimi-k2.7-code"
-reasoning_options = [{ type = "toggle" }]
+reasoning_options = []
[cost]
input = 4.237
diff --git a/providers/topupsaja/models/ts/kimi-k2.toml b/providers/topupsaja/models/ts/kimi-k2.toml
index de6d9d4e12d..d2faf18c50f 100644
--- a/providers/topupsaja/models/ts/kimi-k2.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.toml
@@ -1,16 +1,4 @@
-name = "MoonshotAI: Kimi K2 0711"
-description = "MoonshotAI: Kimi K2 0711 served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = false
-reasoning = false
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = true
-[modalities]
-input = ["text"]
-output = ["text"]
+base_model = "moonshotai/kimi-k2"
[cost]
input = 3.42
diff --git a/providers/topupsaja/models/ts/kimi-k3-batch.toml b/providers/topupsaja/models/ts/kimi-k3-batch.toml
index 84998e8716f..b23fe40fada 100644
--- a/providers/topupsaja/models/ts/kimi-k3-batch.toml
+++ b/providers/topupsaja/models/ts/kimi-k3-batch.toml
@@ -1,17 +1,9 @@
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
+
+base_model = "moonshotai/kimi-k3"
+
name = "MoonshotAI: Kimi K3 (batch)"
-description = "MoonshotAI: Kimi K3 (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = true
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = true
-[modalities]
-input = ["text", "image", "video"]
-output = ["text"]
[cost]
input = 18
@@ -21,3 +13,10 @@ cache_read = 1.8
[limit]
context = 1048576
output = 943718
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/kimi-k3.toml b/providers/topupsaja/models/ts/kimi-k3.toml
index 652bfcf1686..5b8b03be0fc 100644
--- a/providers/topupsaja/models/ts/kimi-k3.toml
+++ b/providers/topupsaja/models/ts/kimi-k3.toml
@@ -1,6 +1,7 @@
-base_model = "moonshotai/kimi-k3"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "moonshotai/kimi-k3"
[cost]
input = 11.7
@@ -10,3 +11,10 @@ cache_read = 1.357
[limit]
context = 1048576
output = 943718
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/kimi-latest.toml b/providers/topupsaja/models/ts/kimi-latest.toml
index 27cea40a2bc..5b8b03be0fc 100644
--- a/providers/topupsaja/models/ts/kimi-latest.toml
+++ b/providers/topupsaja/models/ts/kimi-latest.toml
@@ -1,6 +1,7 @@
-base_model = "moonshotai/kimi-k2.5"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "moonshotai/kimi-k3"
[cost]
input = 11.7
@@ -10,3 +11,10 @@ cache_read = 1.357
[limit]
context = 1048576
output = 943718
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "high", "max"]
diff --git a/providers/topupsaja/models/ts/longcat-2.0.toml b/providers/topupsaja/models/ts/longcat-2.0.toml
index ad11e25c176..edb3ceb8b76 100644
--- a/providers/topupsaja/models/ts/longcat-2.0.toml
+++ b/providers/topupsaja/models/ts/longcat-2.0.toml
@@ -1,6 +1,7 @@
-base_model = "meituan/longcat-2.0"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "meituan/longcat-2.0"
[cost]
input = 2.1
@@ -10,3 +11,9 @@ cache_read = 0.042
[limit]
context = 1048756
output = 262144
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "budget_tokens"
diff --git a/providers/topupsaja/models/ts/mimo-v2.5-pro.toml b/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
index 52635982d70..c9f85681a69 100644
--- a/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
+++ b/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
@@ -1,6 +1,7 @@
-base_model = "xiaomi/mimo-v2.5-pro"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "xiaomi/mimo-v2.5-pro"
[cost]
input = 2.61
@@ -10,3 +11,6 @@ cache_read = 0.022
[limit]
context = 1050000
output = 131072
+
+[[reasoning_options]]
+type = "toggle"
diff --git a/providers/topupsaja/models/ts/mimo-v2.5.toml b/providers/topupsaja/models/ts/mimo-v2.5.toml
index 6e0e207f0e2..ca5697a9f0d 100644
--- a/providers/topupsaja/models/ts/mimo-v2.5.toml
+++ b/providers/topupsaja/models/ts/mimo-v2.5.toml
@@ -1,6 +1,7 @@
-base_model = "xiaomi/mimo-v2.5"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "xiaomi/mimo-v2.5"
[cost]
input = 0.98
@@ -10,3 +11,6 @@ cache_read = 0.02
[limit]
context = 1050000
output = 131072
+
+[[reasoning_options]]
+type = "toggle"
diff --git a/providers/topupsaja/models/ts/minimax-m3-batch.toml b/providers/topupsaja/models/ts/minimax-m3-batch.toml
index 326434d73a2..a2462977c62 100644
--- a/providers/topupsaja/models/ts/minimax-m3-batch.toml
+++ b/providers/topupsaja/models/ts/minimax-m3-batch.toml
@@ -1,17 +1,9 @@
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
+
+base_model = "minimax/MiniMax-M3"
+
name = "MiniMax: MiniMax M3 (batch)"
-description = "MiniMax: MiniMax M3 (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = true
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = true
-[modalities]
-input = ["text", "image", "video"]
-output = ["text"]
[cost]
input = 2.1
@@ -21,3 +13,6 @@ cache_read = 0.42
[limit]
context = 524288
output = 471859
+
+[[reasoning_options]]
+type = "toggle"
diff --git a/providers/topupsaja/models/ts/minimax-m3.toml b/providers/topupsaja/models/ts/minimax-m3.toml
index 364205de4e7..cbdbcc68c10 100644
--- a/providers/topupsaja/models/ts/minimax-m3.toml
+++ b/providers/topupsaja/models/ts/minimax-m3.toml
@@ -1,6 +1,7 @@
-base_model = "minimax/MiniMax-M3"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "minimax/MiniMax-M3"
[cost]
input = 2.1
@@ -10,3 +11,6 @@ cache_read = 0.42
[limit]
context = 1048576
output = 512000
+
+[[reasoning_options]]
+type = "toggle"
diff --git a/providers/topupsaja/models/ts/mistral-large-2407.toml b/providers/topupsaja/models/ts/mistral-large-2407.toml
index 65961b173cb..3810f468191 100644
--- a/providers/topupsaja/models/ts/mistral-large-2407.toml
+++ b/providers/topupsaja/models/ts/mistral-large-2407.toml
@@ -1,4 +1,4 @@
-base_model = "mistral/mistral-large-2411"
+base_model = "mistral/mistral-large-2407"
[cost]
input = 12
diff --git a/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml b/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
index 4e27693bba6..b0c892adc6c 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
@@ -1,17 +1,6 @@
+base_model = "mistral/mistral-medium-2604"
+
name = "Mistral: Mistral Medium 3.5 (batch)"
-description = "Mistral: Mistral Medium 3.5 (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = true
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = true
-[modalities]
-input = ["text", "image"]
-output = ["text"]
[cost]
input = 4.5
@@ -21,3 +10,7 @@ cache_read = 2.25
[limit]
context = 262144
output = 209715
+
+[[reasoning_options]]
+type = "effort"
+values = ["none", "high"]
diff --git a/providers/topupsaja/models/ts/mistral-medium-3-5.toml b/providers/topupsaja/models/ts/mistral-medium-3-5.toml
index 13e66f0df94..7e313fc3a42 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3-5.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3-5.toml
@@ -1,17 +1,4 @@
-name = "Mistral: Mistral Medium 3.5"
-description = "Mistral: Mistral Medium 3.5 served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = true
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = true
-[modalities]
-input = ["text", "image"]
-output = ["text"]
+base_model = "mistral/mistral-medium-2604"
[cost]
input = 9
@@ -21,3 +8,7 @@ cache_read = 4.5
[limit]
context = 262144
output = 209715
+
+[[reasoning_options]]
+type = "effort"
+values = ["none", "high"]
diff --git a/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml b/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
index f2bd9ff8866..9a06bc43ace 100644
--- a/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
+++ b/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
@@ -1,17 +1,6 @@
+base_model = "meta/muse-spark-1.3-contributor"
+
name = "Meta: Muse Spark 1.3 Contributor"
-description = "Meta: Muse Spark 1.3 Contributor served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = true
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = false
-[modalities]
-input = ["text", "image", "video", "audio"]
-output = ["text"]
[cost]
input = 0.7
@@ -21,3 +10,7 @@ cache_read = 0.014
[limit]
context = 1048576
output = 943718
+
+[[reasoning_options]]
+type = "effort"
+values = ["minimal", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/muse-spark-1.3.toml b/providers/topupsaja/models/ts/muse-spark-1.3.toml
index bbf37f2c149..19ff419b0ed 100644
--- a/providers/topupsaja/models/ts/muse-spark-1.3.toml
+++ b/providers/topupsaja/models/ts/muse-spark-1.3.toml
@@ -1,7 +1,5 @@
base_model = "meta/muse-spark-1.3"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 7.5
output = 25.5
@@ -10,3 +8,7 @@ cache_read = 0.9
[limit]
context = 1048576
output = 943718
+
+[[reasoning_options]]
+type = "effort"
+values = ["minimal", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml b/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml
index 7c122fbd334..66df75f6583 100644
--- a/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml
+++ b/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml
@@ -1,16 +1,4 @@
-name = "Qwen2.5 72B Instruct"
-description = "Qwen2.5 72B Instruct served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = false
-reasoning = false
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = true
-[modalities]
-input = ["text"]
-output = ["text"]
+base_model = "alibaba/qwen-2.5-72b-instruct"
[cost]
input = 2.16
diff --git a/providers/topupsaja/models/ts/qwen3.6-plus.toml b/providers/topupsaja/models/ts/qwen3.6-plus.toml
index e68141cf747..367cbb2269b 100644
--- a/providers/topupsaja/models/ts/qwen3.6-plus.toml
+++ b/providers/topupsaja/models/ts/qwen3.6-plus.toml
@@ -1,6 +1,7 @@
-base_model = "alibaba/qwen3.6-plus"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "alibaba/qwen3.6-plus"
[cost]
input = 1.95
@@ -10,3 +11,6 @@ cache_read = 0.975
[limit]
context = 1000000
output = 65536
+
+[[reasoning_options]]
+type = "toggle"
diff --git a/providers/topupsaja/models/ts/qwen3.7-flash.toml b/providers/topupsaja/models/ts/qwen3.7-flash.toml
index 4c05bfb204c..c128531e27b 100644
--- a/providers/topupsaja/models/ts/qwen3.7-flash.toml
+++ b/providers/topupsaja/models/ts/qwen3.7-flash.toml
@@ -1,6 +1,7 @@
-base_model = "alibaba/qwen3.7-flash"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "alibaba/qwen3.7-flash"
[cost]
input = 0.21
@@ -10,3 +11,9 @@ cache_read = 0.042
[limit]
context = 1000000
output = 65536
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "budget_tokens"
diff --git a/providers/topupsaja/models/ts/qwen3.7-max.toml b/providers/topupsaja/models/ts/qwen3.7-max.toml
index 24379975b1f..e0622c8f448 100644
--- a/providers/topupsaja/models/ts/qwen3.7-max.toml
+++ b/providers/topupsaja/models/ts/qwen3.7-max.toml
@@ -1,6 +1,7 @@
-base_model = "alibaba/qwen3.7-max"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "alibaba/qwen3.7-max"
[cost]
input = 8.85
@@ -10,3 +11,6 @@ cache_read = 1.77
[limit]
context = 1000000
output = 131072
+
+[[reasoning_options]]
+type = "toggle"
diff --git a/providers/topupsaja/models/ts/qwen3.7-plus.toml b/providers/topupsaja/models/ts/qwen3.7-plus.toml
index dd947dc2579..27965782511 100644
--- a/providers/topupsaja/models/ts/qwen3.7-plus.toml
+++ b/providers/topupsaja/models/ts/qwen3.7-plus.toml
@@ -1,6 +1,7 @@
-base_model = "alibaba/qwen3.7-plus"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "alibaba/qwen3.7-plus"
[cost]
input = 1.92
@@ -10,3 +11,6 @@ cache_read = 0.384
[limit]
context = 1000000
output = 131072
+
+[[reasoning_options]]
+type = "toggle"
diff --git a/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml
index c7b5dec1a89..36dd76f81e4 100644
--- a/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml
@@ -1,17 +1,6 @@
+base_model = "alibaba/qwen3.8-2.4t-a95b"
+
name = "Qwen: Qwen3.8 2.4T A95B (batch)"
-description = "Qwen: Qwen3.8 2.4T A95B (batch) served via TopUpSaja, an OpenAI-compatible AI relay."
-release_date = "2026-09-18"
-last_updated = "2026-09-18"
-attachment = false
-reasoning = true
-reasoning_options = [{ type = "toggle" }]
-tool_call = true
-temperature = true
-knowledge = "2025-06"
-open_weights = true
-[modalities]
-input = ["text"]
-output = ["text"]
[cost]
input = 12
@@ -21,3 +10,7 @@ cache_read = 1.5
[limit]
context = 1010000
output = 909000
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "xhigh"]
diff --git a/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml
index afd83c05f4f..f2616bfc274 100644
--- a/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml
@@ -1,7 +1,5 @@
base_model = "alibaba/qwen3.8-2.4t-a95b"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 12
output = 36
@@ -10,3 +8,7 @@ cache_read = 1.5
[limit]
context = 1048576
output = 131072
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "xhigh"]
diff --git a/providers/topupsaja/models/ts/qwen3.8-27b.toml b/providers/topupsaja/models/ts/qwen3.8-27b.toml
index c4314345f44..50c58f7e141 100644
--- a/providers/topupsaja/models/ts/qwen3.8-27b.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-27b.toml
@@ -1,6 +1,7 @@
-base_model = "alibaba/qwen3.8-27b"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "alibaba/qwen3.8-27b"
[cost]
input = 1.498
@@ -10,3 +11,10 @@ cache_read = 1.05
[limit]
context = 1000000
output = 131072
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "xhigh"]
diff --git a/providers/topupsaja/models/ts/qwen3.8-flash.toml b/providers/topupsaja/models/ts/qwen3.8-flash.toml
index 6e88264be46..76f4ccf5f60 100644
--- a/providers/topupsaja/models/ts/qwen3.8-flash.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-flash.toml
@@ -1,6 +1,7 @@
-base_model = "alibaba/qwen3.8-flash"
+# Toggle: reasoning.enabled = true|false
+# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
-reasoning_options = [{ type = "toggle" }]
+base_model = "alibaba/qwen3.8-flash"
[cost]
input = 1.05
@@ -10,3 +11,9 @@ cache_read = 0.112
[limit]
context = 1000000
output = 131072
+
+[[reasoning_options]]
+type = "toggle"
+
+[[reasoning_options]]
+type = "budget_tokens"
diff --git a/providers/topupsaja/models/ts/qwen3.8-max-0902.toml b/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
index 56becbe4514..a84020d8938 100644
--- a/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
@@ -1,7 +1,5 @@
base_model = "alibaba/qwen3.8-max-0902"
-reasoning_options = [{ type = "toggle" }]
-
[cost]
input = 12
output = 36
@@ -10,3 +8,7 @@ cache_read = 1.5
[limit]
context = 1000000
output = 131072
+
+[[reasoning_options]]
+type = "effort"
+values = ["minimal", "low", "medium", "high", "xhigh"]
From 8d692044256f75bce1a802201d98c688577286ea Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 06:16:53 +0700
Subject: [PATCH 03/11] Address review round 2: document OpenRouter
passthrough, dedupe limits, contributor -> muse-spark-1.3, gemini-pro effort
set
---
models/meta/muse-spark-1.3-contributor.toml | 22 -------------------
.../topupsaja/models/ts/claude-opus-4.7.toml | 6 ++---
.../topupsaja/models/ts/claude-opus-4.8.toml | 6 ++---
.../topupsaja/models/ts/claude-sonnet-5.toml | 6 ++---
.../models/ts/claude-sonnet-latest.toml | 6 ++---
.../topupsaja/models/ts/deepseek-r1.toml | 2 ++
.../ts/deepseek-v4-flash-0731-batch.toml | 2 ++
.../models/ts/deepseek-v4-flash-0731.toml | 2 ++
.../models/ts/deepseek-v4-flash-latest.toml | 3 ++-
.../deepseek-v4-flash-vision-exp-batch.toml | 2 ++
.../ts/deepseek-v4-flash-vision-exp.toml | 2 ++
.../models/ts/deepseek-v4-pro-0813-batch.toml | 2 ++
.../models/ts/deepseek-v4-pro-0813.toml | 2 ++
.../topupsaja/models/ts/deepseek-v4-pro.toml | 2 ++
.../models/ts/deepseek-v4.1-flash.toml | 3 ++-
.../models/ts/gemini-3.5-flash-lite.toml | 6 ++---
.../topupsaja/models/ts/gemini-3.5-flash.toml | 6 ++---
.../models/ts/gemini-3.6-flash-batch.toml | 6 ++---
.../models/ts/gemini-3.7-flash-batch.toml | 6 ++---
.../topupsaja/models/ts/gemini-3.7-flash.toml | 6 ++---
.../models/ts/gemini-3.8-flash-batch.toml | 6 ++---
.../topupsaja/models/ts/gemini-3.8-flash.toml | 6 ++---
.../models/ts/gemini-flash-latest.toml | 6 ++---
.../models/ts/gemini-pro-latest.toml | 8 +++----
providers/topupsaja/models/ts/glm-4.6.toml | 3 ++-
.../models/ts/glm-5.3-flash-batch.toml | 2 ++
.../topupsaja/models/ts/glm-flash-latest.toml | 3 ++-
.../topupsaja/models/ts/gpt-4.1-mini.toml | 4 ----
.../topupsaja/models/ts/gpt-4.1-nano.toml | 4 ----
providers/topupsaja/models/ts/gpt-4.1.toml | 4 ----
.../topupsaja/models/ts/gpt-4o-mini.toml | 4 ----
providers/topupsaja/models/ts/gpt-4o.toml | 4 ----
.../models/ts/gpt-5.6-terra-pro.toml | 6 ++---
.../topupsaja/models/ts/gpt-5.6-terra.toml | 6 ++---
.../topupsaja/models/ts/gpt-sol-latest.toml | 6 ++---
.../topupsaja/models/ts/gpt-terra-latest.toml | 6 ++---
providers/topupsaja/models/ts/grok-4.5.toml | 3 ++-
providers/topupsaja/models/ts/grok-4.6.toml | 3 ++-
.../topupsaja/models/ts/grok-build-0.1.toml | 3 ++-
.../topupsaja/models/ts/grok-latest.toml | 3 ++-
.../topupsaja/models/ts/hy4-preview.toml | 3 ++-
providers/topupsaja/models/ts/kimi-k2.5.toml | 3 ++-
providers/topupsaja/models/ts/kimi-k2.6.toml | 3 ++-
.../topupsaja/models/ts/kimi-k2.7-code.toml | 3 ++-
providers/topupsaja/models/ts/kimi-k2.toml | 4 ----
.../topupsaja/models/ts/kimi-k3-batch.toml | 3 ++-
providers/topupsaja/models/ts/kimi-k3.toml | 3 ++-
.../topupsaja/models/ts/kimi-latest.toml | 3 ++-
.../topupsaja/models/ts/longcat-2.0.toml | 3 +++
.../topupsaja/models/ts/mimo-v2.5-pro.toml | 3 ++-
providers/topupsaja/models/ts/mimo-v2.5.toml | 3 ++-
.../topupsaja/models/ts/minimax-m3-batch.toml | 2 ++
providers/topupsaja/models/ts/minimax-m3.toml | 6 ++---
.../models/ts/mistral-large-2407.toml | 4 ----
.../models/ts/mistral-large-2512.toml | 1 -
.../models/ts/mistral-medium-3-5-batch.toml | 3 ++-
.../models/ts/mistral-medium-3-5.toml | 3 ++-
.../models/ts/mistral-medium-3.1.toml | 1 -
.../topupsaja/models/ts/mistral-medium-3.toml | 1 -
.../ts/mistral-small-3.1-24b-instruct.toml | 1 -
.../ts/mistral-small-3.2-24b-instruct.toml | 1 -
.../models/ts/muse-spark-1.3-contributor.toml | 11 +++++-----
.../topupsaja/models/ts/muse-spark-1.3.toml | 9 ++++----
.../models/ts/qwen-2.5-72b-instruct.toml | 4 ----
.../topupsaja/models/ts/qwen3.6-plus.toml | 6 ++---
.../topupsaja/models/ts/qwen3.7-flash.toml | 7 +++---
.../topupsaja/models/ts/qwen3.7-max.toml | 3 ++-
.../topupsaja/models/ts/qwen3.7-plus.toml | 3 ++-
.../models/ts/qwen3.8-2.4t-a95b-batch.toml | 2 ++
.../models/ts/qwen3.8-2.4t-a95b.toml | 3 ++-
.../topupsaja/models/ts/qwen3.8-27b.toml | 2 ++
.../topupsaja/models/ts/qwen3.8-flash.toml | 7 +++---
.../topupsaja/models/ts/qwen3.8-max-0902.toml | 6 ++---
.../models/ts/voxtral-small-24b-2507.toml | 1 -
74 files changed, 127 insertions(+), 182 deletions(-)
delete mode 100644 models/meta/muse-spark-1.3-contributor.toml
diff --git a/models/meta/muse-spark-1.3-contributor.toml b/models/meta/muse-spark-1.3-contributor.toml
deleted file mode 100644
index 0d190366663..00000000000
--- a/models/meta/muse-spark-1.3-contributor.toml
+++ /dev/null
@@ -1,22 +0,0 @@
-# Sources:
-# https://openrouter.ai/meta/muse-spark-1.3-contributor
-
-name = "Muse Spark 1.3 Contributor"
-description = "Open Llama multimodal model for image understanding and text reasoning"
-family = "muse"
-release_date = "2026-09-02"
-last_updated = "2026-09-02"
-attachment = true
-reasoning = true
-temperature = true
-tool_call = true
-structured_output = true
-open_weights = false
-
-[limit]
-context = 1_048_576
-output = 943_718
-
-[modalities]
-input = ["text", "image", "video", "pdf", "audio"]
-output = ["text"]
diff --git a/providers/topupsaja/models/ts/claude-opus-4.7.toml b/providers/topupsaja/models/ts/claude-opus-4.7.toml
index 8659df068a9..fc3341f2fa0 100644
--- a/providers/topupsaja/models/ts/claude-opus-4.7.toml
+++ b/providers/topupsaja/models/ts/claude-opus-4.7.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -8,10 +10,6 @@ input = 25
output = 125
cache_read = 2.5
-[limit]
-context = 1000000
-output = 128000
-
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/claude-opus-4.8.toml b/providers/topupsaja/models/ts/claude-opus-4.8.toml
index 659898c3376..3b2412e3a10 100644
--- a/providers/topupsaja/models/ts/claude-opus-4.8.toml
+++ b/providers/topupsaja/models/ts/claude-opus-4.8.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -8,10 +10,6 @@ input = 25
output = 125
cache_read = 2.5
-[limit]
-context = 1000000
-output = 128000
-
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/claude-sonnet-5.toml b/providers/topupsaja/models/ts/claude-sonnet-5.toml
index 2e7eead67f9..cab4e8926ca 100644
--- a/providers/topupsaja/models/ts/claude-sonnet-5.toml
+++ b/providers/topupsaja/models/ts/claude-sonnet-5.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -8,10 +10,6 @@ input = 12
output = 60
cache_read = 1.2
-[limit]
-context = 1000000
-output = 128000
-
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/claude-sonnet-latest.toml b/providers/topupsaja/models/ts/claude-sonnet-latest.toml
index 2e7eead67f9..cab4e8926ca 100644
--- a/providers/topupsaja/models/ts/claude-sonnet-latest.toml
+++ b/providers/topupsaja/models/ts/claude-sonnet-latest.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -8,10 +10,6 @@ input = 12
output = 60
cache_read = 1.2
-[limit]
-context = 1000000
-output = 128000
-
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/deepseek-r1.toml b/providers/topupsaja/models/ts/deepseek-r1.toml
index c35006b627b..e9572657ccf 100644
--- a/providers/topupsaja/models/ts/deepseek-r1.toml
+++ b/providers/topupsaja/models/ts/deepseek-r1.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "deepseek/deepseek-r1"
reasoning_options = []
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml
index c1ac7f12181..a15cf6401e8 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-0731-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml
index b0c4a4cdb78..e317e16e9bd 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-0731.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
index 8421b373ae4..77959a22c82 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -10,7 +12,6 @@ cache_read = 0.012
[limit]
context = 1310720
-output = 384000
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml
index 3ff4adc52cd..2c7ef13d4bf 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml
index e354a7a3050..e9259f66e9d 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-vision-exp.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
diff --git a/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml b/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml
index 378bd7bd0e4..1a6e1641466 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-pro-0813-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
diff --git a/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml b/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml
index 1ecdb0a7d3a..f602b3266ed 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-pro-0813.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
diff --git a/providers/topupsaja/models/ts/deepseek-v4-pro.toml b/providers/topupsaja/models/ts/deepseek-v4-pro.toml
index ed3750781ce..63f52a59126 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-pro.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-pro.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
diff --git a/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml b/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml
index ba92b3bf05d..aa148c94688 100644
--- a/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4.1-flash.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -10,7 +12,6 @@ cache_read = 0.021
[limit]
context = 1048576
-output = 384000
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml b/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml
index e0ce532d00d..a94f275a95a 100644
--- a/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml
+++ b/providers/topupsaja/models/ts/gemini-3.5-flash-lite.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "google/gemini-3.5-flash-lite"
[cost]
@@ -5,10 +7,6 @@ input = 2.1
output = 17.5
cache_read = 0.21
-[limit]
-context = 1048576
-output = 65536
-
[[reasoning_options]]
type = "effort"
values = ["minimal", "low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.5-flash.toml b/providers/topupsaja/models/ts/gemini-3.5-flash.toml
index 44b60012cc6..396bcc6cdbc 100644
--- a/providers/topupsaja/models/ts/gemini-3.5-flash.toml
+++ b/providers/topupsaja/models/ts/gemini-3.5-flash.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "google/gemini-3.5-flash"
[cost]
@@ -5,10 +7,6 @@ input = 9
output = 54
cache_read = 0.9
-[limit]
-context = 1048576
-output = 65536
-
[[reasoning_options]]
type = "effort"
values = ["minimal", "low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml b/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml
index 06da534b1cf..44cbe796408 100644
--- a/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml
+++ b/providers/topupsaja/models/ts/gemini-3.6-flash-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "google/gemini-3.6-flash"
name = "Google: Gemini 3.6 Flash (batch)"
@@ -7,10 +9,6 @@ input = 2.25
output = 11.25
cache_read = 0.225
-[limit]
-context = 1048576
-output = 65536
-
[[reasoning_options]]
type = "effort"
values = ["minimal", "low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml b/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml
index dce4a7f1f00..70d9db355a7 100644
--- a/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml
+++ b/providers/topupsaja/models/ts/gemini-3.7-flash-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "google/gemini-3.7-flash"
name = "Google: Gemini 3.7 Flash (batch)"
@@ -7,10 +9,6 @@ input = 2.25
output = 11.25
cache_read = 0.225
-[limit]
-context = 1048576
-output = 65536
-
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.7-flash.toml b/providers/topupsaja/models/ts/gemini-3.7-flash.toml
index c14f4744d31..4c6af7d479e 100644
--- a/providers/topupsaja/models/ts/gemini-3.7-flash.toml
+++ b/providers/topupsaja/models/ts/gemini-3.7-flash.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "google/gemini-3.7-flash"
[cost]
@@ -5,10 +7,6 @@ input = 4.5
output = 22.5
cache_read = 0.45
-[limit]
-context = 1048576
-output = 65536
-
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml b/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml
index 4a10e8f2802..6799b3506b2 100644
--- a/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml
+++ b/providers/topupsaja/models/ts/gemini-3.8-flash-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "google/gemini-3.8-flash"
name = "Google: Gemini 3.8 Flash (batch)"
@@ -7,10 +9,6 @@ input = 2.25
output = 11.25
cache_read = 0.225
-[limit]
-context = 1048576
-output = 65536
-
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-3.8-flash.toml b/providers/topupsaja/models/ts/gemini-3.8-flash.toml
index 8d968a9af9f..c05153b777f 100644
--- a/providers/topupsaja/models/ts/gemini-3.8-flash.toml
+++ b/providers/topupsaja/models/ts/gemini-3.8-flash.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "google/gemini-3.8-flash"
[cost]
@@ -5,10 +7,6 @@ input = 4.5
output = 22.5
cache_read = 0.45
-[limit]
-context = 1048576
-output = 65536
-
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-flash-latest.toml b/providers/topupsaja/models/ts/gemini-flash-latest.toml
index 8d968a9af9f..c05153b777f 100644
--- a/providers/topupsaja/models/ts/gemini-flash-latest.toml
+++ b/providers/topupsaja/models/ts/gemini-flash-latest.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "google/gemini-3.8-flash"
[cost]
@@ -5,10 +7,6 @@ input = 4.5
output = 22.5
cache_read = 0.45
-[limit]
-context = 1048576
-output = 65536
-
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/gemini-pro-latest.toml b/providers/topupsaja/models/ts/gemini-pro-latest.toml
index 0fc94e9a7c7..323b625428d 100644
--- a/providers/topupsaja/models/ts/gemini-pro-latest.toml
+++ b/providers/topupsaja/models/ts/gemini-pro-latest.toml
@@ -1,12 +1,10 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "google/gemini-3-pro-preview"
-reasoning_options = []
+reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }]
[cost]
input = 12
output = 72
cache_read = 1.2
-
-[limit]
-context = 1048576
-output = 65536
diff --git a/providers/topupsaja/models/ts/glm-4.6.toml b/providers/topupsaja/models/ts/glm-4.6.toml
index 73b80802078..c238377dd71 100644
--- a/providers/topupsaja/models/ts/glm-4.6.toml
+++ b/providers/topupsaja/models/ts/glm-4.6.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -9,7 +11,6 @@ output = 10.5
cache_read = 0.48
[limit]
-context = 204800
output = 16384
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml b/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
index 5957d1b5125..7eac22ebfb1 100644
--- a/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
+++ b/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "zhipuai/glm-5.3-flash"
name = "Z.ai: GLM 5.3 Flash (batch)"
diff --git a/providers/topupsaja/models/ts/glm-flash-latest.toml b/providers/topupsaja/models/ts/glm-flash-latest.toml
index fbf8096e155..4bb58bf2300 100644
--- a/providers/topupsaja/models/ts/glm-flash-latest.toml
+++ b/providers/topupsaja/models/ts/glm-flash-latest.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "zhipuai/glm-5.3-flash"
[cost]
@@ -7,7 +9,6 @@ cache_read = 0.105
[limit]
context = 1310720
-output = 131072
[[reasoning_options]]
type = "effort"
diff --git a/providers/topupsaja/models/ts/gpt-4.1-mini.toml b/providers/topupsaja/models/ts/gpt-4.1-mini.toml
index f3cd5f5fae2..b4561ec58a0 100644
--- a/providers/topupsaja/models/ts/gpt-4.1-mini.toml
+++ b/providers/topupsaja/models/ts/gpt-4.1-mini.toml
@@ -4,7 +4,3 @@ base_model = "openai/gpt-4.1-mini"
input = 2.4
output = 9.6
cache_read = 0.6
-
-[limit]
-context = 1047576
-output = 32768
diff --git a/providers/topupsaja/models/ts/gpt-4.1-nano.toml b/providers/topupsaja/models/ts/gpt-4.1-nano.toml
index 78da773c67f..b9bf63d5ec9 100644
--- a/providers/topupsaja/models/ts/gpt-4.1-nano.toml
+++ b/providers/topupsaja/models/ts/gpt-4.1-nano.toml
@@ -4,7 +4,3 @@ base_model = "openai/gpt-4.1-nano"
input = 0.7
output = 2.8
cache_read = 0.175
-
-[limit]
-context = 1047576
-output = 32768
diff --git a/providers/topupsaja/models/ts/gpt-4.1.toml b/providers/topupsaja/models/ts/gpt-4.1.toml
index 7035d99c67a..e464525c383 100644
--- a/providers/topupsaja/models/ts/gpt-4.1.toml
+++ b/providers/topupsaja/models/ts/gpt-4.1.toml
@@ -4,7 +4,3 @@ base_model = "openai/gpt-4.1"
input = 12
output = 48
cache_read = 3
-
-[limit]
-context = 1047576
-output = 32768
diff --git a/providers/topupsaja/models/ts/gpt-4o-mini.toml b/providers/topupsaja/models/ts/gpt-4o-mini.toml
index d05ab0ad00e..7ba603f01ff 100644
--- a/providers/topupsaja/models/ts/gpt-4o-mini.toml
+++ b/providers/topupsaja/models/ts/gpt-4o-mini.toml
@@ -4,7 +4,3 @@ base_model = "openai/gpt-4o-mini"
input = 1.05
output = 4.2
cache_read = 0.525
-
-[limit]
-context = 128000
-output = 16384
diff --git a/providers/topupsaja/models/ts/gpt-4o.toml b/providers/topupsaja/models/ts/gpt-4o.toml
index 7213742a547..5df4b576f18 100644
--- a/providers/topupsaja/models/ts/gpt-4o.toml
+++ b/providers/topupsaja/models/ts/gpt-4o.toml
@@ -4,7 +4,3 @@ base_model = "openai/gpt-4o"
input = 15
output = 60
cache_read = 7.5
-
-[limit]
-context = 128000
-output = 16384
diff --git a/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml b/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
index 9aaa4808765..9ab043c6ebe 100644
--- a/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
+++ b/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "openai/gpt-5.6-terra"
[cost]
@@ -5,10 +7,6 @@ input = 12
output = 72
cache_read = 1.2
-[limit]
-context = 1050000
-output = 128000
-
[[reasoning_options]]
type = "effort"
values = ["none", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/gpt-5.6-terra.toml b/providers/topupsaja/models/ts/gpt-5.6-terra.toml
index 9aaa4808765..9ab043c6ebe 100644
--- a/providers/topupsaja/models/ts/gpt-5.6-terra.toml
+++ b/providers/topupsaja/models/ts/gpt-5.6-terra.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "openai/gpt-5.6-terra"
[cost]
@@ -5,10 +7,6 @@ input = 12
output = 72
cache_read = 1.2
-[limit]
-context = 1050000
-output = 128000
-
[[reasoning_options]]
type = "effort"
values = ["none", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/gpt-sol-latest.toml b/providers/topupsaja/models/ts/gpt-sol-latest.toml
index af2aca4115f..d0717aa504f 100644
--- a/providers/topupsaja/models/ts/gpt-sol-latest.toml
+++ b/providers/topupsaja/models/ts/gpt-sol-latest.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "openai/gpt-5.6-sol"
[cost]
@@ -5,10 +7,6 @@ input = 12
output = 60
cache_read = 1.2
-[limit]
-context = 1050000
-output = 128000
-
[[reasoning_options]]
type = "effort"
values = ["none", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/gpt-terra-latest.toml b/providers/topupsaja/models/ts/gpt-terra-latest.toml
index 9aaa4808765..9ab043c6ebe 100644
--- a/providers/topupsaja/models/ts/gpt-terra-latest.toml
+++ b/providers/topupsaja/models/ts/gpt-terra-latest.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "openai/gpt-5.6-terra"
[cost]
@@ -5,10 +7,6 @@ input = 12
output = 72
cache_read = 1.2
-[limit]
-context = 1050000
-output = 128000
-
[[reasoning_options]]
type = "effort"
values = ["none", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/grok-4.5.toml b/providers/topupsaja/models/ts/grok-4.5.toml
index 6269374f343..9ef15515da7 100644
--- a/providers/topupsaja/models/ts/grok-4.5.toml
+++ b/providers/topupsaja/models/ts/grok-4.5.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "xai/grok-4.5"
[cost]
@@ -6,7 +8,6 @@ output = 36
cache_read = 1.8
[limit]
-context = 500000
output = 450000
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/grok-4.6.toml b/providers/topupsaja/models/ts/grok-4.6.toml
index 8a903c857d2..1e171cfb776 100644
--- a/providers/topupsaja/models/ts/grok-4.6.toml
+++ b/providers/topupsaja/models/ts/grok-4.6.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "xai/grok-4.6"
[cost]
@@ -6,7 +8,6 @@ output = 36
cache_read = 3
[limit]
-context = 500000
output = 450000
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/grok-build-0.1.toml b/providers/topupsaja/models/ts/grok-build-0.1.toml
index 6ead432f3f4..1d73f7a89e2 100644
--- a/providers/topupsaja/models/ts/grok-build-0.1.toml
+++ b/providers/topupsaja/models/ts/grok-build-0.1.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "xai/grok-build-0.1"
reasoning_options = []
@@ -8,5 +10,4 @@ output = 12
cache_read = 1.2
[limit]
-context = 256000
output = 230400
diff --git a/providers/topupsaja/models/ts/grok-latest.toml b/providers/topupsaja/models/ts/grok-latest.toml
index 8a903c857d2..1e171cfb776 100644
--- a/providers/topupsaja/models/ts/grok-latest.toml
+++ b/providers/topupsaja/models/ts/grok-latest.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "xai/grok-4.6"
[cost]
@@ -6,7 +8,6 @@ output = 36
cache_read = 3
[limit]
-context = 500000
output = 450000
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/hy4-preview.toml b/providers/topupsaja/models/ts/hy4-preview.toml
index 3f6b52c01c2..704e6c52ab4 100644
--- a/providers/topupsaja/models/ts/hy4-preview.toml
+++ b/providers/topupsaja/models/ts/hy4-preview.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "tencent/hy4-preview"
[cost]
@@ -7,7 +9,6 @@ cache_read = 0.252
[limit]
context = 1048576
-output = 64000
[[reasoning_options]]
type = "effort"
diff --git a/providers/topupsaja/models/ts/kimi-k2.5.toml b/providers/topupsaja/models/ts/kimi-k2.5.toml
index 84576388c72..3b2c1ca6139 100644
--- a/providers/topupsaja/models/ts/kimi-k2.5.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.5.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -9,7 +11,6 @@ output = 13.5
cache_read = 0.42
[limit]
-context = 262144
output = 235929
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/kimi-k2.6.toml b/providers/topupsaja/models/ts/kimi-k2.6.toml
index bade6bbb043..298662a1ef5 100644
--- a/providers/topupsaja/models/ts/kimi-k2.6.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.6.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -9,7 +11,6 @@ output = 24
cache_read = 0.96
[limit]
-context = 262144
output = 235929
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/kimi-k2.7-code.toml b/providers/topupsaja/models/ts/kimi-k2.7-code.toml
index ebb8ffec935..f417fb1375d 100644
--- a/providers/topupsaja/models/ts/kimi-k2.7-code.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.7-code.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "moonshotai/kimi-k2.7-code"
reasoning_options = []
@@ -8,5 +10,4 @@ output = 19.26
cache_read = 1.08
[limit]
-context = 262144
output = 235929
diff --git a/providers/topupsaja/models/ts/kimi-k2.toml b/providers/topupsaja/models/ts/kimi-k2.toml
index d2faf18c50f..244ebd9ddcc 100644
--- a/providers/topupsaja/models/ts/kimi-k2.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.toml
@@ -4,7 +4,3 @@ base_model = "moonshotai/kimi-k2"
input = 3.42
output = 13.8
cache_read = 1.71
-
-[limit]
-context = 131072
-output = 98304
diff --git a/providers/topupsaja/models/ts/kimi-k3-batch.toml b/providers/topupsaja/models/ts/kimi-k3-batch.toml
index b23fe40fada..c0bd7c3a219 100644
--- a/providers/topupsaja/models/ts/kimi-k3-batch.toml
+++ b/providers/topupsaja/models/ts/kimi-k3-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -11,7 +13,6 @@ output = 90
cache_read = 1.8
[limit]
-context = 1048576
output = 943718
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/kimi-k3.toml b/providers/topupsaja/models/ts/kimi-k3.toml
index 5b8b03be0fc..3a7f3f74a47 100644
--- a/providers/topupsaja/models/ts/kimi-k3.toml
+++ b/providers/topupsaja/models/ts/kimi-k3.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -9,7 +11,6 @@ output = 65.52
cache_read = 1.357
[limit]
-context = 1048576
output = 943718
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/kimi-latest.toml b/providers/topupsaja/models/ts/kimi-latest.toml
index 5b8b03be0fc..3a7f3f74a47 100644
--- a/providers/topupsaja/models/ts/kimi-latest.toml
+++ b/providers/topupsaja/models/ts/kimi-latest.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -9,7 +11,6 @@ output = 65.52
cache_read = 1.357
[limit]
-context = 1048576
output = 943718
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/longcat-2.0.toml b/providers/topupsaja/models/ts/longcat-2.0.toml
index edb3ceb8b76..502c793e352 100644
--- a/providers/topupsaja/models/ts/longcat-2.0.toml
+++ b/providers/topupsaja/models/ts/longcat-2.0.toml
@@ -1,3 +1,6 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+# Budget: reasoning.max_tokens =
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
diff --git a/providers/topupsaja/models/ts/mimo-v2.5-pro.toml b/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
index c9f85681a69..16192d00dbd 100644
--- a/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
+++ b/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -10,7 +12,6 @@ cache_read = 0.022
[limit]
context = 1050000
-output = 131072
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/mimo-v2.5.toml b/providers/topupsaja/models/ts/mimo-v2.5.toml
index ca5697a9f0d..fb92b00b3e0 100644
--- a/providers/topupsaja/models/ts/mimo-v2.5.toml
+++ b/providers/topupsaja/models/ts/mimo-v2.5.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -10,7 +12,6 @@ cache_read = 0.02
[limit]
context = 1050000
-output = 131072
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/minimax-m3-batch.toml b/providers/topupsaja/models/ts/minimax-m3-batch.toml
index a2462977c62..bf7a30b84ca 100644
--- a/providers/topupsaja/models/ts/minimax-m3-batch.toml
+++ b/providers/topupsaja/models/ts/minimax-m3-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
diff --git a/providers/topupsaja/models/ts/minimax-m3.toml b/providers/topupsaja/models/ts/minimax-m3.toml
index cbdbcc68c10..7e9cd26ebcd 100644
--- a/providers/topupsaja/models/ts/minimax-m3.toml
+++ b/providers/topupsaja/models/ts/minimax-m3.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -8,9 +10,5 @@ input = 2.1
output = 8.4
cache_read = 0.42
-[limit]
-context = 1048576
-output = 512000
-
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/mistral-large-2407.toml b/providers/topupsaja/models/ts/mistral-large-2407.toml
index 3810f468191..171807812fe 100644
--- a/providers/topupsaja/models/ts/mistral-large-2407.toml
+++ b/providers/topupsaja/models/ts/mistral-large-2407.toml
@@ -4,7 +4,3 @@ base_model = "mistral/mistral-large-2407"
input = 12
output = 36
cache_read = 1.2
-
-[limit]
-context = 131072
-output = 104857
diff --git a/providers/topupsaja/models/ts/mistral-large-2512.toml b/providers/topupsaja/models/ts/mistral-large-2512.toml
index ff97d1ffbe7..8a96e8b6ba9 100644
--- a/providers/topupsaja/models/ts/mistral-large-2512.toml
+++ b/providers/topupsaja/models/ts/mistral-large-2512.toml
@@ -6,5 +6,4 @@ output = 9.9
cache_read = 0.33
[limit]
-context = 262144
output = 209715
diff --git a/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml b/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
index b0c892adc6c..af452126383 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "mistral/mistral-medium-2604"
name = "Mistral: Mistral Medium 3.5 (batch)"
@@ -8,7 +10,6 @@ output = 22.5
cache_read = 2.25
[limit]
-context = 262144
output = 209715
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/mistral-medium-3-5.toml b/providers/topupsaja/models/ts/mistral-medium-3-5.toml
index 7e313fc3a42..693dcc016a8 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3-5.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3-5.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "mistral/mistral-medium-2604"
[cost]
@@ -6,7 +8,6 @@ output = 45
cache_read = 4.5
[limit]
-context = 262144
output = 209715
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/mistral-medium-3.1.toml b/providers/topupsaja/models/ts/mistral-medium-3.1.toml
index ce8e6301517..18f55a45aab 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3.1.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3.1.toml
@@ -6,5 +6,4 @@ output = 12
cache_read = 0.24
[limit]
-context = 131072
output = 104857
diff --git a/providers/topupsaja/models/ts/mistral-medium-3.toml b/providers/topupsaja/models/ts/mistral-medium-3.toml
index ce8e6301517..18f55a45aab 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3.toml
@@ -6,5 +6,4 @@ output = 12
cache_read = 0.24
[limit]
-context = 131072
output = 104857
diff --git a/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml b/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml
index 2ba8846ccaf..5d0bfc33de4 100644
--- a/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml
+++ b/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml
@@ -6,5 +6,4 @@ output = 3.33
cache_read = 1.053
[limit]
-context = 128000
output = 102400
diff --git a/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml b/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml
index af67adc2081..fbd6244918e 100644
--- a/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml
+++ b/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml
@@ -7,4 +7,3 @@ cache_read = 0.328
[limit]
context = 256000
-output = 16384
diff --git a/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml b/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
index 9a06bc43ace..e407a35a6cd 100644
--- a/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
+++ b/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
@@ -1,4 +1,8 @@
-base_model = "meta/muse-spark-1.3-contributor"
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
+base_model = "meta/muse-spark-1.3"
+
+reasoning_options = [{ type = "effort", values = ["minimal", "low", "medium", "high", "xhigh"] }]
name = "Meta: Muse Spark 1.3 Contributor"
@@ -8,9 +12,4 @@ output = 1.4
cache_read = 0.014
[limit]
-context = 1048576
output = 943718
-
-[[reasoning_options]]
-type = "effort"
-values = ["minimal", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/muse-spark-1.3.toml b/providers/topupsaja/models/ts/muse-spark-1.3.toml
index 19ff419b0ed..d5c2e9299ce 100644
--- a/providers/topupsaja/models/ts/muse-spark-1.3.toml
+++ b/providers/topupsaja/models/ts/muse-spark-1.3.toml
@@ -1,14 +1,13 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "meta/muse-spark-1.3"
+reasoning_options = [{ type = "effort", values = ["minimal", "low", "medium", "high", "xhigh"] }]
+
[cost]
input = 7.5
output = 25.5
cache_read = 0.9
[limit]
-context = 1048576
output = 943718
-
-[[reasoning_options]]
-type = "effort"
-values = ["minimal", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml b/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml
index 66df75f6583..0d2d7b42d57 100644
--- a/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml
+++ b/providers/topupsaja/models/ts/qwen-2.5-72b-instruct.toml
@@ -4,7 +4,3 @@ base_model = "alibaba/qwen-2.5-72b-instruct"
input = 2.16
output = 2.4
cache_read = 1.08
-
-[limit]
-context = 32768
-output = 16384
diff --git a/providers/topupsaja/models/ts/qwen3.6-plus.toml b/providers/topupsaja/models/ts/qwen3.6-plus.toml
index 367cbb2269b..a086bb89395 100644
--- a/providers/topupsaja/models/ts/qwen3.6-plus.toml
+++ b/providers/topupsaja/models/ts/qwen3.6-plus.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -8,9 +10,5 @@ input = 1.95
output = 11.7
cache_read = 0.975
-[limit]
-context = 1000000
-output = 65536
-
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/qwen3.7-flash.toml b/providers/topupsaja/models/ts/qwen3.7-flash.toml
index c128531e27b..fdc7bb1e6dd 100644
--- a/providers/topupsaja/models/ts/qwen3.7-flash.toml
+++ b/providers/topupsaja/models/ts/qwen3.7-flash.toml
@@ -1,3 +1,6 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+# Budget: reasoning.max_tokens =
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -8,10 +11,6 @@ input = 0.21
output = 0.91
cache_read = 0.042
-[limit]
-context = 1000000
-output = 65536
-
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/qwen3.7-max.toml b/providers/topupsaja/models/ts/qwen3.7-max.toml
index e0622c8f448..e8a1c280ef4 100644
--- a/providers/topupsaja/models/ts/qwen3.7-max.toml
+++ b/providers/topupsaja/models/ts/qwen3.7-max.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -9,7 +11,6 @@ output = 26.55
cache_read = 1.77
[limit]
-context = 1000000
output = 131072
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/qwen3.7-plus.toml b/providers/topupsaja/models/ts/qwen3.7-plus.toml
index 27965782511..a43a8fdaa0f 100644
--- a/providers/topupsaja/models/ts/qwen3.7-plus.toml
+++ b/providers/topupsaja/models/ts/qwen3.7-plus.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -9,7 +11,6 @@ output = 7.68
cache_read = 0.384
[limit]
-context = 1000000
output = 131072
[[reasoning_options]]
diff --git a/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml
index 36dd76f81e4..056a66da9f3 100644
--- a/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b-batch.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "alibaba/qwen3.8-2.4t-a95b"
name = "Qwen: Qwen3.8 2.4T A95B (batch)"
diff --git a/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml
index f2616bfc274..d6cb2abd9d0 100644
--- a/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-2.4t-a95b.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "alibaba/qwen3.8-2.4t-a95b"
[cost]
@@ -7,7 +9,6 @@ cache_read = 1.5
[limit]
context = 1048576
-output = 131072
[[reasoning_options]]
type = "effort"
diff --git a/providers/topupsaja/models/ts/qwen3.8-27b.toml b/providers/topupsaja/models/ts/qwen3.8-27b.toml
index 50c58f7e141..ec88a76390f 100644
--- a/providers/topupsaja/models/ts/qwen3.8-27b.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-27b.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
diff --git a/providers/topupsaja/models/ts/qwen3.8-flash.toml b/providers/topupsaja/models/ts/qwen3.8-flash.toml
index 76f4ccf5f60..b06f6938653 100644
--- a/providers/topupsaja/models/ts/qwen3.8-flash.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-flash.toml
@@ -1,3 +1,6 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+# Budget: reasoning.max_tokens =
+
# Toggle: reasoning.enabled = true|false
# https://openrouter.ai/docs/guides/best-practices/reasoning-tokens
@@ -8,10 +11,6 @@ input = 1.05
output = 3.29
cache_read = 0.112
-[limit]
-context = 1000000
-output = 131072
-
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/qwen3.8-max-0902.toml b/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
index a84020d8938..605d4c6574b 100644
--- a/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
@@ -1,3 +1,5 @@
+# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
+
base_model = "alibaba/qwen3.8-max-0902"
[cost]
@@ -5,10 +7,6 @@ input = 12
output = 36
cache_read = 1.5
-[limit]
-context = 1000000
-output = 131072
-
[[reasoning_options]]
type = "effort"
values = ["minimal", "low", "medium", "high", "xhigh"]
diff --git a/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml b/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
index a6e8a7ed132..3a2c5f21c6f 100644
--- a/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
+++ b/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
@@ -6,5 +6,4 @@ output = 2.1
cache_read = 0.07
[limit]
-context = 32768
output = 26214
From 5ee65c3ea7c1dbdb96957335885f11ac4106b7d9 Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 06:29:52 +0700
Subject: [PATCH 04/11] Round 3 review: restore muse-spark-1.3-contributor lab
entry (incl. max effort), align muse-spark-1.3 with OR peer, point
gemini-pro-latest at gemini-3.1-pro-preview
---
models/meta/muse-spark-1.3-contributor.toml | 22 +++++++++++++++++++
.../models/ts/gemini-pro-latest.toml | 8 ++++---
.../models/ts/muse-spark-1.3-contributor.toml | 9 ++++----
.../topupsaja/models/ts/muse-spark-1.3.toml | 6 +++--
4 files changed, 35 insertions(+), 10 deletions(-)
create mode 100644 models/meta/muse-spark-1.3-contributor.toml
diff --git a/models/meta/muse-spark-1.3-contributor.toml b/models/meta/muse-spark-1.3-contributor.toml
new file mode 100644
index 00000000000..0d190366663
--- /dev/null
+++ b/models/meta/muse-spark-1.3-contributor.toml
@@ -0,0 +1,22 @@
+# Sources:
+# https://openrouter.ai/meta/muse-spark-1.3-contributor
+
+name = "Muse Spark 1.3 Contributor"
+description = "Open Llama multimodal model for image understanding and text reasoning"
+family = "muse"
+release_date = "2026-09-02"
+last_updated = "2026-09-02"
+attachment = true
+reasoning = true
+temperature = true
+tool_call = true
+structured_output = true
+open_weights = false
+
+[limit]
+context = 1_048_576
+output = 943_718
+
+[modalities]
+input = ["text", "image", "video", "pdf", "audio"]
+output = ["text"]
diff --git a/providers/topupsaja/models/ts/gemini-pro-latest.toml b/providers/topupsaja/models/ts/gemini-pro-latest.toml
index 323b625428d..5cfc00abbd0 100644
--- a/providers/topupsaja/models/ts/gemini-pro-latest.toml
+++ b/providers/topupsaja/models/ts/gemini-pro-latest.toml
@@ -1,10 +1,12 @@
# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
-base_model = "google/gemini-3-pro-preview"
-
-reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }]
+base_model = "google/gemini-3.1-pro-preview"
[cost]
input = 12
output = 72
cache_read = 1.2
+
+[[reasoning_options]]
+type = "effort"
+values = ["low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml b/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
index e407a35a6cd..e529ce903b6 100644
--- a/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
+++ b/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
@@ -1,8 +1,6 @@
# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
-base_model = "meta/muse-spark-1.3"
-
-reasoning_options = [{ type = "effort", values = ["minimal", "low", "medium", "high", "xhigh"] }]
+base_model = "meta/muse-spark-1.3-contributor"
name = "Meta: Muse Spark 1.3 Contributor"
@@ -11,5 +9,6 @@ input = 0.7
output = 1.4
cache_read = 0.014
-[limit]
-output = 943718
+[[reasoning_options]]
+type = "effort"
+values = ["minimal", "low", "medium", "high", "xhigh", "max"]
diff --git a/providers/topupsaja/models/ts/muse-spark-1.3.toml b/providers/topupsaja/models/ts/muse-spark-1.3.toml
index d5c2e9299ce..db9a395fd70 100644
--- a/providers/topupsaja/models/ts/muse-spark-1.3.toml
+++ b/providers/topupsaja/models/ts/muse-spark-1.3.toml
@@ -2,8 +2,6 @@
base_model = "meta/muse-spark-1.3"
-reasoning_options = [{ type = "effort", values = ["minimal", "low", "medium", "high", "xhigh"] }]
-
[cost]
input = 7.5
output = 25.5
@@ -11,3 +9,7 @@ cache_read = 0.9
[limit]
output = 943718
+
+[[reasoning_options]]
+type = "effort"
+values = ["minimal", "low", "medium", "high", "xhigh", "max"]
From 456401c05f27c6c2e0c18a52b4dd7112003f3942 Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 06:49:23 +0700
Subject: [PATCH 05/11] Round 4 review: capability overrides from OpenRouter
peers (temperature/structured_output/interleaved)
---
providers/topupsaja/models/ts/claude-opus-4.7.toml | 2 ++
providers/topupsaja/models/ts/claude-opus-4.8.toml | 3 +++
providers/topupsaja/models/ts/claude-sonnet-5.toml | 2 ++
providers/topupsaja/models/ts/claude-sonnet-latest.toml | 2 ++
providers/topupsaja/models/ts/deepseek-chat.toml | 2 ++
providers/topupsaja/models/ts/deepseek-r1.toml | 2 ++
providers/topupsaja/models/ts/deepseek-v4-pro.toml | 3 +++
providers/topupsaja/models/ts/gemini-pro-latest.toml | 3 +++
providers/topupsaja/models/ts/glm-4.6.toml | 2 ++
providers/topupsaja/models/ts/hy4-preview.toml | 2 ++
providers/topupsaja/models/ts/kimi-k2.5.toml | 5 +++++
providers/topupsaja/models/ts/kimi-k2.6.toml | 3 +++
providers/topupsaja/models/ts/kimi-k2.7-code.toml | 2 ++
providers/topupsaja/models/ts/kimi-k3-batch.toml | 2 ++
providers/topupsaja/models/ts/kimi-k3.toml | 2 ++
providers/topupsaja/models/ts/kimi-latest.toml | 2 ++
providers/topupsaja/models/ts/llama-3.1-70b-instruct.toml | 2 ++
providers/topupsaja/models/ts/llama-3.3-70b-instruct.toml | 2 ++
providers/topupsaja/models/ts/longcat-2.0.toml | 2 ++
providers/topupsaja/models/ts/mimo-v2.5-pro.toml | 5 +++++
providers/topupsaja/models/ts/mimo-v2.5.toml | 5 +++++
providers/topupsaja/models/ts/minimax-m3-batch.toml | 2 ++
providers/topupsaja/models/ts/minimax-m3.toml | 2 ++
providers/topupsaja/models/ts/qwen3.6-plus.toml | 2 ++
providers/topupsaja/models/ts/qwen3.7-flash.toml | 2 ++
providers/topupsaja/models/ts/qwen3.7-max.toml | 2 ++
providers/topupsaja/models/ts/qwen3.7-plus.toml | 2 ++
providers/topupsaja/models/ts/qwen3.8-flash.toml | 2 ++
providers/topupsaja/models/ts/qwen3.8-max-0902.toml | 2 ++
providers/topupsaja/models/ts/voxtral-small-24b-2507.toml | 2 ++
30 files changed, 73 insertions(+)
diff --git a/providers/topupsaja/models/ts/claude-opus-4.7.toml b/providers/topupsaja/models/ts/claude-opus-4.7.toml
index fc3341f2fa0..c63733f0ec8 100644
--- a/providers/topupsaja/models/ts/claude-opus-4.7.toml
+++ b/providers/topupsaja/models/ts/claude-opus-4.7.toml
@@ -5,6 +5,8 @@
base_model = "anthropic/claude-opus-4-7"
+structured_output = true
+
[cost]
input = 25
output = 125
diff --git a/providers/topupsaja/models/ts/claude-opus-4.8.toml b/providers/topupsaja/models/ts/claude-opus-4.8.toml
index 3b2412e3a10..cfbe6be5a8a 100644
--- a/providers/topupsaja/models/ts/claude-opus-4.8.toml
+++ b/providers/topupsaja/models/ts/claude-opus-4.8.toml
@@ -5,6 +5,9 @@
base_model = "anthropic/claude-opus-4-8"
+temperature = true
+structured_output = true
+
[cost]
input = 25
output = 125
diff --git a/providers/topupsaja/models/ts/claude-sonnet-5.toml b/providers/topupsaja/models/ts/claude-sonnet-5.toml
index cab4e8926ca..00350a0486a 100644
--- a/providers/topupsaja/models/ts/claude-sonnet-5.toml
+++ b/providers/topupsaja/models/ts/claude-sonnet-5.toml
@@ -5,6 +5,8 @@
base_model = "anthropic/claude-sonnet-5"
+structured_output = true
+
[cost]
input = 12
output = 60
diff --git a/providers/topupsaja/models/ts/claude-sonnet-latest.toml b/providers/topupsaja/models/ts/claude-sonnet-latest.toml
index cab4e8926ca..00350a0486a 100644
--- a/providers/topupsaja/models/ts/claude-sonnet-latest.toml
+++ b/providers/topupsaja/models/ts/claude-sonnet-latest.toml
@@ -5,6 +5,8 @@
base_model = "anthropic/claude-sonnet-5"
+structured_output = true
+
[cost]
input = 12
output = 60
diff --git a/providers/topupsaja/models/ts/deepseek-chat.toml b/providers/topupsaja/models/ts/deepseek-chat.toml
index 8e50347df57..7c8b01602d9 100644
--- a/providers/topupsaja/models/ts/deepseek-chat.toml
+++ b/providers/topupsaja/models/ts/deepseek-chat.toml
@@ -1,5 +1,7 @@
base_model = "deepseek/deepseek-chat"
+structured_output = true
+
[cost]
input = 1.92
output = 5.34
diff --git a/providers/topupsaja/models/ts/deepseek-r1.toml b/providers/topupsaja/models/ts/deepseek-r1.toml
index e9572657ccf..22161a2e30e 100644
--- a/providers/topupsaja/models/ts/deepseek-r1.toml
+++ b/providers/topupsaja/models/ts/deepseek-r1.toml
@@ -4,6 +4,8 @@ base_model = "deepseek/deepseek-r1"
reasoning_options = []
+structured_output = false
+
[cost]
input = 4.2
output = 15
diff --git a/providers/topupsaja/models/ts/deepseek-v4-pro.toml b/providers/topupsaja/models/ts/deepseek-v4-pro.toml
index 63f52a59126..c61a3510ad8 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-pro.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-pro.toml
@@ -20,3 +20,6 @@ type = "toggle"
[[reasoning_options]]
type = "effort"
values = ["high", "xhigh"]
+
+[interleaved]
+field = "reasoning_content"
diff --git a/providers/topupsaja/models/ts/gemini-pro-latest.toml b/providers/topupsaja/models/ts/gemini-pro-latest.toml
index 5cfc00abbd0..fd7ac323626 100644
--- a/providers/topupsaja/models/ts/gemini-pro-latest.toml
+++ b/providers/topupsaja/models/ts/gemini-pro-latest.toml
@@ -10,3 +10,6 @@ cache_read = 1.2
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
+
+[interleaved]
+field = "reasoning_details"
diff --git a/providers/topupsaja/models/ts/glm-4.6.toml b/providers/topupsaja/models/ts/glm-4.6.toml
index c238377dd71..692b9125e21 100644
--- a/providers/topupsaja/models/ts/glm-4.6.toml
+++ b/providers/topupsaja/models/ts/glm-4.6.toml
@@ -5,6 +5,8 @@
base_model = "zhipuai/glm-4.6"
+structured_output = true
+
[cost]
input = 2.58
output = 10.5
diff --git a/providers/topupsaja/models/ts/hy4-preview.toml b/providers/topupsaja/models/ts/hy4-preview.toml
index 704e6c52ab4..d38d1c0e566 100644
--- a/providers/topupsaja/models/ts/hy4-preview.toml
+++ b/providers/topupsaja/models/ts/hy4-preview.toml
@@ -2,6 +2,8 @@
base_model = "tencent/hy4-preview"
+structured_output = true
+
[cost]
input = 5.004
output = 15.006
diff --git a/providers/topupsaja/models/ts/kimi-k2.5.toml b/providers/topupsaja/models/ts/kimi-k2.5.toml
index 3b2c1ca6139..43b6eb7fb13 100644
--- a/providers/topupsaja/models/ts/kimi-k2.5.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.5.toml
@@ -5,6 +5,8 @@
base_model = "moonshotai/kimi-k2.5"
+temperature = true
+
[cost]
input = 2.7
output = 13.5
@@ -15,3 +17,6 @@ output = 235929
[[reasoning_options]]
type = "toggle"
+
+[interleaved]
+field = "reasoning_details"
diff --git a/providers/topupsaja/models/ts/kimi-k2.6.toml b/providers/topupsaja/models/ts/kimi-k2.6.toml
index 298662a1ef5..0bf63520703 100644
--- a/providers/topupsaja/models/ts/kimi-k2.6.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.6.toml
@@ -15,3 +15,6 @@ output = 235929
[[reasoning_options]]
type = "toggle"
+
+[interleaved]
+field = "reasoning_details"
diff --git a/providers/topupsaja/models/ts/kimi-k2.7-code.toml b/providers/topupsaja/models/ts/kimi-k2.7-code.toml
index f417fb1375d..4709100cba2 100644
--- a/providers/topupsaja/models/ts/kimi-k2.7-code.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.7-code.toml
@@ -4,6 +4,8 @@ base_model = "moonshotai/kimi-k2.7-code"
reasoning_options = []
+temperature = true
+
[cost]
input = 4.237
output = 19.26
diff --git a/providers/topupsaja/models/ts/kimi-k3-batch.toml b/providers/topupsaja/models/ts/kimi-k3-batch.toml
index c0bd7c3a219..b46b246c6dd 100644
--- a/providers/topupsaja/models/ts/kimi-k3-batch.toml
+++ b/providers/topupsaja/models/ts/kimi-k3-batch.toml
@@ -5,6 +5,8 @@
base_model = "moonshotai/kimi-k3"
+temperature = true
+
name = "MoonshotAI: Kimi K3 (batch)"
[cost]
diff --git a/providers/topupsaja/models/ts/kimi-k3.toml b/providers/topupsaja/models/ts/kimi-k3.toml
index 3a7f3f74a47..abda963f72c 100644
--- a/providers/topupsaja/models/ts/kimi-k3.toml
+++ b/providers/topupsaja/models/ts/kimi-k3.toml
@@ -5,6 +5,8 @@
base_model = "moonshotai/kimi-k3"
+temperature = true
+
[cost]
input = 11.7
output = 65.52
diff --git a/providers/topupsaja/models/ts/kimi-latest.toml b/providers/topupsaja/models/ts/kimi-latest.toml
index 3a7f3f74a47..abda963f72c 100644
--- a/providers/topupsaja/models/ts/kimi-latest.toml
+++ b/providers/topupsaja/models/ts/kimi-latest.toml
@@ -5,6 +5,8 @@
base_model = "moonshotai/kimi-k3"
+temperature = true
+
[cost]
input = 11.7
output = 65.52
diff --git a/providers/topupsaja/models/ts/llama-3.1-70b-instruct.toml b/providers/topupsaja/models/ts/llama-3.1-70b-instruct.toml
index 3e25e529bb7..01d553a1b7e 100644
--- a/providers/topupsaja/models/ts/llama-3.1-70b-instruct.toml
+++ b/providers/topupsaja/models/ts/llama-3.1-70b-instruct.toml
@@ -1,5 +1,7 @@
base_model = "meta/llama-3.1-70b-instruct"
+structured_output = true
+
[cost]
input = 2.4
output = 2.4
diff --git a/providers/topupsaja/models/ts/llama-3.3-70b-instruct.toml b/providers/topupsaja/models/ts/llama-3.3-70b-instruct.toml
index 6e317ab1d4a..9b27747e303 100644
--- a/providers/topupsaja/models/ts/llama-3.3-70b-instruct.toml
+++ b/providers/topupsaja/models/ts/llama-3.3-70b-instruct.toml
@@ -1,5 +1,7 @@
base_model = "meta/llama-3.3-70b-instruct"
+structured_output = true
+
[cost]
input = 0.7
output = 2.24
diff --git a/providers/topupsaja/models/ts/longcat-2.0.toml b/providers/topupsaja/models/ts/longcat-2.0.toml
index 502c793e352..cb727e00ca6 100644
--- a/providers/topupsaja/models/ts/longcat-2.0.toml
+++ b/providers/topupsaja/models/ts/longcat-2.0.toml
@@ -6,6 +6,8 @@
base_model = "meituan/longcat-2.0"
+structured_output = false
+
[cost]
input = 2.1
output = 8.4
diff --git a/providers/topupsaja/models/ts/mimo-v2.5-pro.toml b/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
index 16192d00dbd..05ffc772bd0 100644
--- a/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
+++ b/providers/topupsaja/models/ts/mimo-v2.5-pro.toml
@@ -5,6 +5,8 @@
base_model = "xiaomi/mimo-v2.5-pro"
+structured_output = true
+
[cost]
input = 2.61
output = 5.22
@@ -15,3 +17,6 @@ context = 1050000
[[reasoning_options]]
type = "toggle"
+
+[interleaved]
+field = "reasoning_content"
diff --git a/providers/topupsaja/models/ts/mimo-v2.5.toml b/providers/topupsaja/models/ts/mimo-v2.5.toml
index fb92b00b3e0..a3a8d403ba1 100644
--- a/providers/topupsaja/models/ts/mimo-v2.5.toml
+++ b/providers/topupsaja/models/ts/mimo-v2.5.toml
@@ -5,6 +5,8 @@
base_model = "xiaomi/mimo-v2.5"
+structured_output = true
+
[cost]
input = 0.98
output = 1.96
@@ -15,3 +17,6 @@ context = 1050000
[[reasoning_options]]
type = "toggle"
+
+[interleaved]
+field = "reasoning_details"
diff --git a/providers/topupsaja/models/ts/minimax-m3-batch.toml b/providers/topupsaja/models/ts/minimax-m3-batch.toml
index bf7a30b84ca..1903c256c02 100644
--- a/providers/topupsaja/models/ts/minimax-m3-batch.toml
+++ b/providers/topupsaja/models/ts/minimax-m3-batch.toml
@@ -5,6 +5,8 @@
base_model = "minimax/MiniMax-M3"
+structured_output = true
+
name = "MiniMax: MiniMax M3 (batch)"
[cost]
diff --git a/providers/topupsaja/models/ts/minimax-m3.toml b/providers/topupsaja/models/ts/minimax-m3.toml
index 7e9cd26ebcd..6840e96082b 100644
--- a/providers/topupsaja/models/ts/minimax-m3.toml
+++ b/providers/topupsaja/models/ts/minimax-m3.toml
@@ -5,6 +5,8 @@
base_model = "minimax/MiniMax-M3"
+structured_output = true
+
[cost]
input = 2.1
output = 8.4
diff --git a/providers/topupsaja/models/ts/qwen3.6-plus.toml b/providers/topupsaja/models/ts/qwen3.6-plus.toml
index a086bb89395..26d1f9d6c29 100644
--- a/providers/topupsaja/models/ts/qwen3.6-plus.toml
+++ b/providers/topupsaja/models/ts/qwen3.6-plus.toml
@@ -5,6 +5,8 @@
base_model = "alibaba/qwen3.6-plus"
+structured_output = true
+
[cost]
input = 1.95
output = 11.7
diff --git a/providers/topupsaja/models/ts/qwen3.7-flash.toml b/providers/topupsaja/models/ts/qwen3.7-flash.toml
index fdc7bb1e6dd..deaf068fc65 100644
--- a/providers/topupsaja/models/ts/qwen3.7-flash.toml
+++ b/providers/topupsaja/models/ts/qwen3.7-flash.toml
@@ -6,6 +6,8 @@
base_model = "alibaba/qwen3.7-flash"
+structured_output = false
+
[cost]
input = 0.21
output = 0.91
diff --git a/providers/topupsaja/models/ts/qwen3.7-max.toml b/providers/topupsaja/models/ts/qwen3.7-max.toml
index e8a1c280ef4..26e1e0eeef9 100644
--- a/providers/topupsaja/models/ts/qwen3.7-max.toml
+++ b/providers/topupsaja/models/ts/qwen3.7-max.toml
@@ -5,6 +5,8 @@
base_model = "alibaba/qwen3.7-max"
+structured_output = true
+
[cost]
input = 8.85
output = 26.55
diff --git a/providers/topupsaja/models/ts/qwen3.7-plus.toml b/providers/topupsaja/models/ts/qwen3.7-plus.toml
index a43a8fdaa0f..2fc2644c78d 100644
--- a/providers/topupsaja/models/ts/qwen3.7-plus.toml
+++ b/providers/topupsaja/models/ts/qwen3.7-plus.toml
@@ -5,6 +5,8 @@
base_model = "alibaba/qwen3.7-plus"
+structured_output = true
+
[cost]
input = 1.92
output = 7.68
diff --git a/providers/topupsaja/models/ts/qwen3.8-flash.toml b/providers/topupsaja/models/ts/qwen3.8-flash.toml
index b06f6938653..bedf39d3ecb 100644
--- a/providers/topupsaja/models/ts/qwen3.8-flash.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-flash.toml
@@ -6,6 +6,8 @@
base_model = "alibaba/qwen3.8-flash"
+temperature = true
+
[cost]
input = 1.05
output = 3.29
diff --git a/providers/topupsaja/models/ts/qwen3.8-max-0902.toml b/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
index 605d4c6574b..2a70f3f2b34 100644
--- a/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
@@ -2,6 +2,8 @@
base_model = "alibaba/qwen3.8-max-0902"
+structured_output = true
+
[cost]
input = 12
output = 36
diff --git a/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml b/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
index 3a2c5f21c6f..b098cce1826 100644
--- a/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
+++ b/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
@@ -1,5 +1,7 @@
base_model = "mistral/voxtral-small-24b-2507"
+structured_output = true
+
[cost]
input = 0.7
output = 2.1
From b9a9037d27df98c95e961f888b18fa047629c8c6 Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 07:13:32 +0700
Subject: [PATCH 06/11] Round 5 review: modality/limit/capability deltas from
OpenRouter peers, first-party lab citations
---
models/alibaba/qwen-2.5-72b-instruct.toml | 3 ++-
models/meta/muse-spark-1.3-contributor.toml | 1 +
models/mistral/mistral-large-2407.toml | 4 +++-
models/moonshotai/kimi-k2.toml | 3 ++-
providers/topupsaja/models/ts/deepseek-chat.toml | 1 +
providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml | 1 +
providers/topupsaja/models/ts/glm-5.3-flash-batch.toml | 3 +++
providers/topupsaja/models/ts/glm-flash-latest.toml | 3 +++
providers/topupsaja/models/ts/gpt-4.1-nano.toml | 3 +++
providers/topupsaja/models/ts/grok-4.5.toml | 3 +++
providers/topupsaja/models/ts/grok-4.6.toml | 3 +++
providers/topupsaja/models/ts/grok-latest.toml | 3 +++
providers/topupsaja/models/ts/kimi-k2.5.toml | 3 +++
providers/topupsaja/models/ts/kimi-k2.6.toml | 3 +++
providers/topupsaja/models/ts/kimi-k2.7-code.toml | 3 +++
providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml | 3 +++
providers/topupsaja/models/ts/mistral-medium-3-5.toml | 3 +++
providers/topupsaja/models/ts/mistral-medium-3.1.toml | 5 +++++
providers/topupsaja/models/ts/mistral-medium-3.toml | 5 +++++
.../topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml | 3 +++
.../topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml | 6 ++++++
providers/topupsaja/models/ts/qwen3.7-plus.toml | 3 +++
providers/topupsaja/models/ts/qwen3.8-max-0902.toml | 3 +++
providers/topupsaja/models/ts/voxtral-small-24b-2507.toml | 3 +++
24 files changed, 71 insertions(+), 3 deletions(-)
diff --git a/models/alibaba/qwen-2.5-72b-instruct.toml b/models/alibaba/qwen-2.5-72b-instruct.toml
index 8921e653255..22e74c74706 100644
--- a/models/alibaba/qwen-2.5-72b-instruct.toml
+++ b/models/alibaba/qwen-2.5-72b-instruct.toml
@@ -1,5 +1,6 @@
# Sources:
-# https://openrouter.ai/qwen/qwen-2.5-72b-instruct
+# https://huggingface.co/Qwen/Qwen2.5-72B-Instruct (first-party weights card, 2024-09-19)
+# https://openrouter.ai/qwen/qwen-2.5-72b-instruct (serving/pricing surface)
name = "Qwen2.5 72B Instruct"
description = "Qwen instruction model for multilingual chat, reasoning, and tool use"
diff --git a/models/meta/muse-spark-1.3-contributor.toml b/models/meta/muse-spark-1.3-contributor.toml
index 0d190366663..db02c529a1b 100644
--- a/models/meta/muse-spark-1.3-contributor.toml
+++ b/models/meta/muse-spark-1.3-contributor.toml
@@ -1,4 +1,5 @@
# Sources:
+# OpenRouter-hosted SKU (distinct Contributor tier of meta/muse-spark-1.3)
# https://openrouter.ai/meta/muse-spark-1.3-contributor
name = "Muse Spark 1.3 Contributor"
diff --git a/models/mistral/mistral-large-2407.toml b/models/mistral/mistral-large-2407.toml
index d4976a12627..2d3aa7bc775 100644
--- a/models/mistral/mistral-large-2407.toml
+++ b/models/mistral/mistral-large-2407.toml
@@ -1,5 +1,7 @@
# Sources:
-# https://openrouter.ai/mistral/mistral-large-2407
+# https://mistral.ai/news/mistral-large-2407 (first-party announcement, 2024-11-19)
+# Weights are under the Mistral Research License (not open source) -> open_weights = false
+# https://openrouter.ai/mistral/mistral-large-2407 (serving/pricing surface)
name = "Mistral Large 2407"
description = "Flagship Mistral model for advanced reasoning, coding, and multilingual work"
diff --git a/models/moonshotai/kimi-k2.toml b/models/moonshotai/kimi-k2.toml
index 355dfdb401f..8ec05ebfbfe 100644
--- a/models/moonshotai/kimi-k2.toml
+++ b/models/moonshotai/kimi-k2.toml
@@ -1,5 +1,6 @@
# Sources:
-# https://openrouter.ai/moonshotai/kimi-k2
+# https://huggingface.co/moonshotai/Kimi-K2-Instruct (first-party weights card, 2025-07-11)
+# https://openrouter.ai/moonshotai/kimi-k2 (serving/pricing surface)
name = "Kimi K2 0711"
description = "Kimi model for long-context chat, coding, and agentic reasoning"
diff --git a/providers/topupsaja/models/ts/deepseek-chat.toml b/providers/topupsaja/models/ts/deepseek-chat.toml
index 7c8b01602d9..464467af1be 100644
--- a/providers/topupsaja/models/ts/deepseek-chat.toml
+++ b/providers/topupsaja/models/ts/deepseek-chat.toml
@@ -1,6 +1,7 @@
base_model = "deepseek/deepseek-chat"
structured_output = true
+attachment = false
[cost]
input = 1.92
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
index 77959a22c82..1152b20f0b0 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
@@ -12,6 +12,7 @@ cache_read = 0.012
[limit]
context = 1310720
+output = 943718
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml b/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
index 7eac22ebfb1..d730f166627 100644
--- a/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
+++ b/providers/topupsaja/models/ts/glm-5.3-flash-batch.toml
@@ -16,3 +16,6 @@ output = 943718
[[reasoning_options]]
type = "effort"
values = ["low", "high", "max"]
+
+[modalities]
+input = ["text", "image", "video"]
diff --git a/providers/topupsaja/models/ts/glm-flash-latest.toml b/providers/topupsaja/models/ts/glm-flash-latest.toml
index 4bb58bf2300..74c1c068186 100644
--- a/providers/topupsaja/models/ts/glm-flash-latest.toml
+++ b/providers/topupsaja/models/ts/glm-flash-latest.toml
@@ -13,3 +13,6 @@ context = 1310720
[[reasoning_options]]
type = "effort"
values = ["low", "high", "max"]
+
+[modalities]
+input = ["text", "image", "video"]
diff --git a/providers/topupsaja/models/ts/gpt-4.1-nano.toml b/providers/topupsaja/models/ts/gpt-4.1-nano.toml
index b9bf63d5ec9..8e87841b377 100644
--- a/providers/topupsaja/models/ts/gpt-4.1-nano.toml
+++ b/providers/topupsaja/models/ts/gpt-4.1-nano.toml
@@ -4,3 +4,6 @@ base_model = "openai/gpt-4.1-nano"
input = 0.7
output = 2.8
cache_read = 0.175
+
+[modalities]
+input = ["image", "text", "pdf"]
diff --git a/providers/topupsaja/models/ts/grok-4.5.toml b/providers/topupsaja/models/ts/grok-4.5.toml
index 9ef15515da7..4c23b6f8a32 100644
--- a/providers/topupsaja/models/ts/grok-4.5.toml
+++ b/providers/topupsaja/models/ts/grok-4.5.toml
@@ -13,3 +13,6 @@ output = 450000
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
+
+[modalities]
+input = ["text", "image", "pdf"]
diff --git a/providers/topupsaja/models/ts/grok-4.6.toml b/providers/topupsaja/models/ts/grok-4.6.toml
index 1e171cfb776..cc4572e46bc 100644
--- a/providers/topupsaja/models/ts/grok-4.6.toml
+++ b/providers/topupsaja/models/ts/grok-4.6.toml
@@ -13,3 +13,6 @@ output = 450000
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high", "xhigh"]
+
+[modalities]
+input = ["text", "image", "pdf"]
diff --git a/providers/topupsaja/models/ts/grok-latest.toml b/providers/topupsaja/models/ts/grok-latest.toml
index 1e171cfb776..cc4572e46bc 100644
--- a/providers/topupsaja/models/ts/grok-latest.toml
+++ b/providers/topupsaja/models/ts/grok-latest.toml
@@ -13,3 +13,6 @@ output = 450000
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high", "xhigh"]
+
+[modalities]
+input = ["text", "image", "pdf"]
diff --git a/providers/topupsaja/models/ts/kimi-k2.5.toml b/providers/topupsaja/models/ts/kimi-k2.5.toml
index 43b6eb7fb13..1e85be47bba 100644
--- a/providers/topupsaja/models/ts/kimi-k2.5.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.5.toml
@@ -18,5 +18,8 @@ output = 235929
[[reasoning_options]]
type = "toggle"
+[modalities]
+input = ["text", "image"]
+
[interleaved]
field = "reasoning_details"
diff --git a/providers/topupsaja/models/ts/kimi-k2.6.toml b/providers/topupsaja/models/ts/kimi-k2.6.toml
index 0bf63520703..831bf9c86d0 100644
--- a/providers/topupsaja/models/ts/kimi-k2.6.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.6.toml
@@ -16,5 +16,8 @@ output = 235929
[[reasoning_options]]
type = "toggle"
+[modalities]
+input = ["text", "image"]
+
[interleaved]
field = "reasoning_details"
diff --git a/providers/topupsaja/models/ts/kimi-k2.7-code.toml b/providers/topupsaja/models/ts/kimi-k2.7-code.toml
index 4709100cba2..f442580ce3c 100644
--- a/providers/topupsaja/models/ts/kimi-k2.7-code.toml
+++ b/providers/topupsaja/models/ts/kimi-k2.7-code.toml
@@ -13,3 +13,6 @@ cache_read = 1.08
[limit]
output = 235929
+
+[modalities]
+input = ["text", "image"]
diff --git a/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml b/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
index af452126383..41f5555e630 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3-5-batch.toml
@@ -15,3 +15,6 @@ output = 209715
[[reasoning_options]]
type = "effort"
values = ["none", "high"]
+
+[modalities]
+input = ["text", "image", "pdf"]
diff --git a/providers/topupsaja/models/ts/mistral-medium-3-5.toml b/providers/topupsaja/models/ts/mistral-medium-3-5.toml
index 693dcc016a8..43bf1f245e4 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3-5.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3-5.toml
@@ -13,3 +13,6 @@ output = 209715
[[reasoning_options]]
type = "effort"
values = ["none", "high"]
+
+[modalities]
+input = ["text", "image", "pdf"]
diff --git a/providers/topupsaja/models/ts/mistral-medium-3.1.toml b/providers/topupsaja/models/ts/mistral-medium-3.1.toml
index 18f55a45aab..80d59c87df2 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3.1.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3.1.toml
@@ -1,5 +1,7 @@
base_model = "mistral/mistral-medium-2505"
+structured_output = true
+
[cost]
input = 2.4
output = 12
@@ -7,3 +9,6 @@ cache_read = 0.24
[limit]
output = 104857
+
+[modalities]
+input = ["text", "image", "pdf"]
diff --git a/providers/topupsaja/models/ts/mistral-medium-3.toml b/providers/topupsaja/models/ts/mistral-medium-3.toml
index 18f55a45aab..80d59c87df2 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3.toml
@@ -1,5 +1,7 @@
base_model = "mistral/mistral-medium-2505"
+structured_output = true
+
[cost]
input = 2.4
output = 12
@@ -7,3 +9,6 @@ cache_read = 0.24
[limit]
output = 104857
+
+[modalities]
+input = ["text", "image", "pdf"]
diff --git a/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml b/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml
index 5d0bfc33de4..c5a0a75ba37 100644
--- a/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml
+++ b/providers/topupsaja/models/ts/mistral-small-3.1-24b-instruct.toml
@@ -1,5 +1,8 @@
base_model = "mistral/mistral-small-3-1-24b-instruct-2503"
+structured_output = false
+tool_call = false
+
[cost]
input = 2.106
output = 3.33
diff --git a/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml b/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml
index fbd6244918e..197c446986a 100644
--- a/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml
+++ b/providers/topupsaja/models/ts/mistral-small-3.2-24b-instruct.toml
@@ -1,5 +1,8 @@
base_model = "mistral/mistral-small-2506"
+structured_output = true
+attachment = true
+
[cost]
input = 0.656
output = 1.75
@@ -7,3 +10,6 @@ cache_read = 0.328
[limit]
context = 256000
+
+[modalities]
+input = ["image", "text"]
diff --git a/providers/topupsaja/models/ts/qwen3.7-plus.toml b/providers/topupsaja/models/ts/qwen3.7-plus.toml
index 2fc2644c78d..f8d0127c971 100644
--- a/providers/topupsaja/models/ts/qwen3.7-plus.toml
+++ b/providers/topupsaja/models/ts/qwen3.7-plus.toml
@@ -17,3 +17,6 @@ output = 131072
[[reasoning_options]]
type = "toggle"
+
+[modalities]
+input = ["text", "image"]
diff --git a/providers/topupsaja/models/ts/qwen3.8-max-0902.toml b/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
index 2a70f3f2b34..e9150666d72 100644
--- a/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
+++ b/providers/topupsaja/models/ts/qwen3.8-max-0902.toml
@@ -12,3 +12,6 @@ cache_read = 1.5
[[reasoning_options]]
type = "effort"
values = ["minimal", "low", "medium", "high", "xhigh"]
+
+[modalities]
+input = ["text", "image", "video"]
diff --git a/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml b/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
index b098cce1826..c80082281d4 100644
--- a/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
+++ b/providers/topupsaja/models/ts/voxtral-small-24b-2507.toml
@@ -9,3 +9,6 @@ cache_read = 0.07
[limit]
output = 26214
+
+[modalities]
+input = ["text", "audio", "pdf"]
From fb6bfa52bc9259b7b6086894290866ded6ba9e1c Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 07:29:03 +0700
Subject: [PATCH 07/11] Round 6 review: Mistral Medium 3.1 lab identity,
latest-alias names, deepseek latest limits
---
models/mistral/mistral-medium-2508.toml | 24 +++++++++++++++++++
.../models/ts/claude-sonnet-latest.toml | 2 ++
.../models/ts/deepseek-v4-flash-latest.toml | 3 ++-
.../models/ts/gemini-flash-latest.toml | 2 ++
.../models/ts/gemini-pro-latest.toml | 2 ++
.../topupsaja/models/ts/glm-flash-latest.toml | 2 ++
.../topupsaja/models/ts/gpt-sol-latest.toml | 2 ++
.../topupsaja/models/ts/gpt-terra-latest.toml | 2 ++
.../topupsaja/models/ts/grok-latest.toml | 2 ++
.../topupsaja/models/ts/kimi-latest.toml | 2 ++
.../models/ts/mistral-medium-3.1.toml | 10 +-------
11 files changed, 43 insertions(+), 10 deletions(-)
create mode 100644 models/mistral/mistral-medium-2508.toml
diff --git a/models/mistral/mistral-medium-2508.toml b/models/mistral/mistral-medium-2508.toml
new file mode 100644
index 00000000000..7af48becef3
--- /dev/null
+++ b/models/mistral/mistral-medium-2508.toml
@@ -0,0 +1,24 @@
+# Sources:
+# https://mistral.ai/news/mistral-medium-3.1
+# https://openrouter.ai/mistralai/mistral-medium-3.1
+
+name = "Mistral Medium 3.1"
+description = "Mistral model for multilingual chat, reasoning, and tool-assisted workflows"
+family = "mistral-medium"
+release_date = "2025-08-13"
+last_updated = "2025-08-13"
+attachment = true
+reasoning = false
+temperature = true
+tool_call = true
+structured_output = true
+knowledge = "2025-06-30"
+open_weights = false
+
+[limit]
+context = 131_072
+output = 104_857
+
+[modalities]
+input = ["text", "image", "pdf"]
+output = ["text"]
diff --git a/providers/topupsaja/models/ts/claude-sonnet-latest.toml b/providers/topupsaja/models/ts/claude-sonnet-latest.toml
index 00350a0486a..31e7f793354 100644
--- a/providers/topupsaja/models/ts/claude-sonnet-latest.toml
+++ b/providers/topupsaja/models/ts/claude-sonnet-latest.toml
@@ -7,6 +7,8 @@ base_model = "anthropic/claude-sonnet-5"
structured_output = true
+name = "Claude Sonnet Latest"
+
[cost]
input = 12
output = 60
diff --git a/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml b/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
index 1152b20f0b0..f365a4a9866 100644
--- a/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
+++ b/providers/topupsaja/models/ts/deepseek-v4-flash-latest.toml
@@ -5,6 +5,8 @@
base_model = "deepseek/deepseek-v4-flash-0731"
+name = "DeepSeek V4 Flash Latest"
+
[cost]
input = 0.379
output = 1.137
@@ -12,7 +14,6 @@ cache_read = 0.012
[limit]
context = 1310720
-output = 943718
[[reasoning_options]]
type = "toggle"
diff --git a/providers/topupsaja/models/ts/gemini-flash-latest.toml b/providers/topupsaja/models/ts/gemini-flash-latest.toml
index c05153b777f..d254fedc3bf 100644
--- a/providers/topupsaja/models/ts/gemini-flash-latest.toml
+++ b/providers/topupsaja/models/ts/gemini-flash-latest.toml
@@ -2,6 +2,8 @@
base_model = "google/gemini-3.8-flash"
+name = "Gemini Flash Latest"
+
[cost]
input = 4.5
output = 22.5
diff --git a/providers/topupsaja/models/ts/gemini-pro-latest.toml b/providers/topupsaja/models/ts/gemini-pro-latest.toml
index fd7ac323626..e77af4ae6f1 100644
--- a/providers/topupsaja/models/ts/gemini-pro-latest.toml
+++ b/providers/topupsaja/models/ts/gemini-pro-latest.toml
@@ -2,6 +2,8 @@
base_model = "google/gemini-3.1-pro-preview"
+name = "Gemini Pro Latest"
+
[cost]
input = 12
output = 72
diff --git a/providers/topupsaja/models/ts/glm-flash-latest.toml b/providers/topupsaja/models/ts/glm-flash-latest.toml
index 74c1c068186..b8e0e91c692 100644
--- a/providers/topupsaja/models/ts/glm-flash-latest.toml
+++ b/providers/topupsaja/models/ts/glm-flash-latest.toml
@@ -2,6 +2,8 @@
base_model = "zhipuai/glm-5.3-flash"
+name = "GLM Flash Latest"
+
[cost]
input = 0.525
output = 1.75
diff --git a/providers/topupsaja/models/ts/gpt-sol-latest.toml b/providers/topupsaja/models/ts/gpt-sol-latest.toml
index d0717aa504f..3495b2ec2d1 100644
--- a/providers/topupsaja/models/ts/gpt-sol-latest.toml
+++ b/providers/topupsaja/models/ts/gpt-sol-latest.toml
@@ -2,6 +2,8 @@
base_model = "openai/gpt-5.6-sol"
+name = "GPT Sol Latest"
+
[cost]
input = 12
output = 60
diff --git a/providers/topupsaja/models/ts/gpt-terra-latest.toml b/providers/topupsaja/models/ts/gpt-terra-latest.toml
index 9ab043c6ebe..54ca862db40 100644
--- a/providers/topupsaja/models/ts/gpt-terra-latest.toml
+++ b/providers/topupsaja/models/ts/gpt-terra-latest.toml
@@ -2,6 +2,8 @@
base_model = "openai/gpt-5.6-terra"
+name = "GPT Terra Latest"
+
[cost]
input = 12
output = 72
diff --git a/providers/topupsaja/models/ts/grok-latest.toml b/providers/topupsaja/models/ts/grok-latest.toml
index cc4572e46bc..f255ac38ed0 100644
--- a/providers/topupsaja/models/ts/grok-latest.toml
+++ b/providers/topupsaja/models/ts/grok-latest.toml
@@ -2,6 +2,8 @@
base_model = "xai/grok-4.6"
+name = "Grok Latest"
+
[cost]
input = 12
output = 36
diff --git a/providers/topupsaja/models/ts/kimi-latest.toml b/providers/topupsaja/models/ts/kimi-latest.toml
index abda963f72c..910fbdd0248 100644
--- a/providers/topupsaja/models/ts/kimi-latest.toml
+++ b/providers/topupsaja/models/ts/kimi-latest.toml
@@ -7,6 +7,8 @@ base_model = "moonshotai/kimi-k3"
temperature = true
+name = "Kimi Latest"
+
[cost]
input = 11.7
output = 65.52
diff --git a/providers/topupsaja/models/ts/mistral-medium-3.1.toml b/providers/topupsaja/models/ts/mistral-medium-3.1.toml
index 80d59c87df2..395787a31b5 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3.1.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3.1.toml
@@ -1,14 +1,6 @@
-base_model = "mistral/mistral-medium-2505"
-
-structured_output = true
+base_model = "mistral/mistral-medium-2508"
[cost]
input = 2.4
output = 12
cache_read = 0.24
-
-[limit]
-output = 104857
-
-[modalities]
-input = ["text", "image", "pdf"]
From 1f58deddba2e1cf28dc673770643ac9e54c911b2 Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 07:44:30 +0700
Subject: [PATCH 08/11] Round 6 follow-up: name override for gpt-5.6-terra-pro
from OR peer
---
providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml b/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
index 9ab043c6ebe..ae31724abd5 100644
--- a/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
+++ b/providers/topupsaja/models/ts/gpt-5.6-terra-pro.toml
@@ -2,6 +2,8 @@
base_model = "openai/gpt-5.6-terra"
+name = "GPT-5.6 Terra Pro"
+
[cost]
input = 12
output = 72
From 7561a37723e94dc7601eb8d0aa034cd904026531 Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 08:03:18 +0700
Subject: [PATCH 09/11] Round 7 review: contributor follows Meta first-party
identity and effort enum, PR-body source citations
---
models/meta/muse-spark-1.3-contributor.toml | 23 -------------------
.../models/ts/muse-spark-1.3-contributor.toml | 7 ++++--
2 files changed, 5 insertions(+), 25 deletions(-)
delete mode 100644 models/meta/muse-spark-1.3-contributor.toml
diff --git a/models/meta/muse-spark-1.3-contributor.toml b/models/meta/muse-spark-1.3-contributor.toml
deleted file mode 100644
index db02c529a1b..00000000000
--- a/models/meta/muse-spark-1.3-contributor.toml
+++ /dev/null
@@ -1,23 +0,0 @@
-# Sources:
-# OpenRouter-hosted SKU (distinct Contributor tier of meta/muse-spark-1.3)
-# https://openrouter.ai/meta/muse-spark-1.3-contributor
-
-name = "Muse Spark 1.3 Contributor"
-description = "Open Llama multimodal model for image understanding and text reasoning"
-family = "muse"
-release_date = "2026-09-02"
-last_updated = "2026-09-02"
-attachment = true
-reasoning = true
-temperature = true
-tool_call = true
-structured_output = true
-open_weights = false
-
-[limit]
-context = 1_048_576
-output = 943_718
-
-[modalities]
-input = ["text", "image", "video", "pdf", "audio"]
-output = ["text"]
diff --git a/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml b/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
index e529ce903b6..6785e2dbb71 100644
--- a/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
+++ b/providers/topupsaja/models/ts/muse-spark-1.3-contributor.toml
@@ -1,6 +1,6 @@
# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
-base_model = "meta/muse-spark-1.3-contributor"
+base_model = "meta/muse-spark-1.3"
name = "Meta: Muse Spark 1.3 Contributor"
@@ -9,6 +9,9 @@ input = 0.7
output = 1.4
cache_read = 0.014
+[limit]
+output = 943718
+
[[reasoning_options]]
type = "effort"
-values = ["minimal", "low", "medium", "high", "xhigh", "max"]
+values = ["minimal", "low", "medium", "high", "xhigh"]
From b9d34aea11171e05dafc6b709b4f20bf5c753666 Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 08:24:24 +0700
Subject: [PATCH 10/11] Round 8 review: gemini-flash-latest resolves to Gemini
3.5 Flash per OR alias/DB
---
providers/topupsaja/models/ts/gemini-flash-latest.toml | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/providers/topupsaja/models/ts/gemini-flash-latest.toml b/providers/topupsaja/models/ts/gemini-flash-latest.toml
index d254fedc3bf..bc55929ae27 100644
--- a/providers/topupsaja/models/ts/gemini-flash-latest.toml
+++ b/providers/topupsaja/models/ts/gemini-flash-latest.toml
@@ -1,6 +1,6 @@
# TopUpSaja relays request bodies verbatim to OpenRouter /chat/completions
-base_model = "google/gemini-3.8-flash"
+base_model = "google/gemini-3.5-flash"
name = "Gemini Flash Latest"
@@ -12,3 +12,6 @@ cache_read = 0.45
[[reasoning_options]]
type = "effort"
values = ["low", "medium", "high"]
+
+[modalities]
+input = ["text", "image", "video", "pdf", "audio"]
From 618d140e3c2edfb41c451478af9c9ab32b859bac Mon Sep 17 00:00:00 2001
From: rbq123 <116137048+daza1234@users.noreply.github.com>
Date: Sat, 19 Sep 2026 08:37:10 +0700
Subject: [PATCH 11/11] Round 9 review: gemini-flash-latest effort from 3.5
peers; mistral-medium-2508 lab limits first-party
---
models/mistral/mistral-medium-2508.toml | 4 ++--
providers/topupsaja/models/ts/gemini-flash-latest.toml | 5 +----
providers/topupsaja/models/ts/mistral-medium-3.1.toml | 4 ++++
3 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/models/mistral/mistral-medium-2508.toml b/models/mistral/mistral-medium-2508.toml
index 7af48becef3..c71187c3142 100644
--- a/models/mistral/mistral-medium-2508.toml
+++ b/models/mistral/mistral-medium-2508.toml
@@ -16,8 +16,8 @@ knowledge = "2025-06-30"
open_weights = false
[limit]
-context = 131_072
-output = 104_857
+context = 262_144
+output = 262_144
[modalities]
input = ["text", "image", "pdf"]
diff --git a/providers/topupsaja/models/ts/gemini-flash-latest.toml b/providers/topupsaja/models/ts/gemini-flash-latest.toml
index bc55929ae27..1c2a7237544 100644
--- a/providers/topupsaja/models/ts/gemini-flash-latest.toml
+++ b/providers/topupsaja/models/ts/gemini-flash-latest.toml
@@ -11,7 +11,4 @@ cache_read = 0.45
[[reasoning_options]]
type = "effort"
-values = ["low", "medium", "high"]
-
-[modalities]
-input = ["text", "image", "video", "pdf", "audio"]
+values = ["minimal", "low", "medium", "high"]
diff --git a/providers/topupsaja/models/ts/mistral-medium-3.1.toml b/providers/topupsaja/models/ts/mistral-medium-3.1.toml
index 395787a31b5..c87212ffc4d 100644
--- a/providers/topupsaja/models/ts/mistral-medium-3.1.toml
+++ b/providers/topupsaja/models/ts/mistral-medium-3.1.toml
@@ -4,3 +4,7 @@ base_model = "mistral/mistral-medium-2508"
input = 2.4
output = 12
cache_read = 0.24
+
+[limit]
+context = 131072
+output = 104857