GET /v1/models
Modellliste der SovrGPT-API abfragen: Modell-IDs, Kontextfenster, Werkzeug- und Bildfähigkeit, Denk-Stufen, Herkunft und Lebenszyklus je Modell.
Listet alle Modelle, die der aufrufende Schlüssel nutzen darf: Chat, Embeddings, Reranking, Sprache und Entscheidungen. Die Antwort folgt dem OpenAI-Schema und ergänzt Felder, mit denen Sie ein passendes Modell auswählen.
Die Liste gilt je Organisation. Owner und Admins legen unter Einstellungen → Modelle fest,
welche Chat-Modelle nutzbar sind; zwei Schlüssel verschiedener Organisationen können also
verschiedene Listen sehen. Ein ausgeblendetes Katalogmodell beantwortet
POST /v1/chat/completions mit 404 model_not_found, eine unbekannte ID ebenso (siehe
Kopfzeilen). Laden Sie die Liste
bei einem 404 neu, statt Modell-IDs fest zu verdrahten.
curl https://sovrgpt.com/api/v1/models \
-H "Authorization: Bearer $SOVR_KEY"Antwort
{
"object": "list",
"data": [
{
"id": "gemma-4-12b",
"object": "model",
"created": 1715520000,
"owned_by": "sovrgpt",
"kind": "chat",
"tier": "default",
"display_name": "Gemma 4 12B",
"subtitle": "Alltag – mit sehr großem Kontext",
"capabilities": {
"reasoning": 3,
"coding": 3,
"vision": 4,
"speed": 4,
"german": 4
},
"accepts_vision": true,
"accepts_tools": true,
"effort_levels": [],
"context_window": 262144,
"license": "Apache 2.0",
"attribution": "Powered by Gemma",
"quality_index": 22,
"quality_index_source": "Artificial Analysis Intelligence Index",
"quality_index_as_of": "2026-08-08",
"origin_vendor": "Google DeepMind",
"origin_country": "US",
"lifecycle": "active",
"cold_start_hint": "warm <10 s, Cold-Start gemessen ~5,5–9,5 min (332–574 s)"
},
{
"id": "stackit-qwen3.8-27b",
"object": "model",
"owned_by": "sovrgpt",
"tier": "hosted",
"display_name": "Qwen 3.8 27B",
"subtitle": "Ohne Kaltstart · Betrieb in Deutschland",
"license": "Apache 2.0"
}
/* … weitere Modelle … */
]
}Felder
Standard-OpenAI-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Modell-ID, in chat/completions als model einsetzbar. |
object | string | Immer "model". |
created | integer | Zeitpunkt der Abfrage (Unix-Sekunden). Pflichtfeld im OpenAI-Schema, ohne weitere Bedeutung. |
owned_by | string | "sovrgpt"; bei eigenen Modellen Ihrer Organisation "org". |
SovrGPT-Erweiterungen
| Feld | Typ | Beschreibung |
|---|---|---|
kind | enum | chat / embedding / rerank / tts / stt / decision: über welchen Endpunkt das Modell angesprochen wird (/v1/chat/completions, /v1/embeddings, /v1/rerank, /v1/audio/speech, /v1/audio/transcriptions, /v1/decisions). |
tier | enum | Nur bei kind: "chat": default / balanced / reasoning / vision / coder-mini / llama für selbst betriebene Modelle, hosted für Partner-Modelle, remote für eigene Modelle Ihrer Organisation. |
display_name | string | Anzeigename. |
subtitle | string | Kurzer Untertitel für Auswahllisten. |
description | string | Längere Beschreibung. |
capabilities | object | Skalen 1–5 für reasoning, coding, vision, speed, german. |
accepts_vision | boolean | true, wenn das Modell Bilder (image_url im content-Array) annimmt. |
accepts_audio | boolean | true, wenn das Modell Audio als Eingabe annimmt. |
accepts_tools | boolean | true, wenn das Modell Werkzeugaufrufe (tools) beherrscht. Bei false ist das nicht geprüft: Eine Anfrage mit tools kann mit HTTP 400 scheitern, oder das Modell ruft keine Werkzeuge auf. Vor dem Anhängen von Werkzeugen prüfen. |
effort_levels | array | Die für dieses Modell gemessenen Denk-Stufen (low / medium / high) für reasoning_effort in /v1/chat/completions. Leeres Array = kein wirksamer Regler; ein trotzdem gesendeter Wert wird nicht übersetzt. |
context_window | integer | Kontextfenster in Token: die Obergrenze für Eingabe und Ausgabe zusammen. Im Katalog zwischen 16 384 und 1 000 000. Eine zu lange Anfrage schlägt nicht fehl, sondern wird still gekürzt, siehe unten. |
license | string | Lizenz (Apache 2.0, MIT, Llama CL, …). |
attribution | string | Pflichthinweis oder Betrieb, z. B. Built with Llama oder bei Partner-Modellen das Rechenzentrum. |
quality_index | integer | null | Unabhängiger Qualitätsindex. null heißt „von der Quelle nicht geführt“; wir schätzen keinen Wert. |
quality_index_source | string | Quelle des Index. Fehlt, wenn quality_index null ist. |
quality_index_as_of | string | Abrufdatum des Index (ISO 8601). Fehlt, wenn quality_index null ist. |
origin_vendor | string | Wer die Gewichte veröffentlicht hat (z. B. Google DeepMind). |
origin_country | string | Herkunftsland der Gewichte (ISO 3166 alpha-2, z. B. US). |
lifecycle | enum | active / legacy, siehe unten. |
lifecycle_note | string | Hinweis zum Auslaufen. Nur bei lifecycle: "legacy". |
cold_start_hint | string | Erwartete Kaltstart-Dauer als Text. |
beta | boolean | Nur vorhanden (true), wenn das Modell noch erprobt wird. |
pricing | object | Verkaufspreis in Euro netto je 1 Mio. Einheiten, { "currency": "EUR", "unit": "token", "input_per_million": 5.3, "output_per_million": 26.1 }. unit ist token (Chat, Embeddings, Rerank), second (Transkription) oder character (Sprachausgabe). null-Werte: kein Preis hinterlegt bzw. keine Ausgabe berechnet. Fehlt bei der Decision Engine (sie kostet den Preis ihrer Laufzeit) und solange die Preisliste nicht veröffentlicht ist. Die ganze Liste liefert GET /v1/pricing. |
dimensions | integer | Nur bei kind: "embedding": Standardlänge der Vektoren (z. B. 1024 bei bge-m3, 4096 bei den STACKIT-Einbettern). Welche kürzeren Längen ein Modell über den Parameter dimensions liefert, steht unten. |
is_remote | boolean | Nur bei eigenen Modellen Ihrer Organisation, siehe unten. |
Die Textfelder (subtitle, description, cold_start_hint) sind deutschsprachig.
OpenAI-Clients ignorieren unbekannte Felder; alle Erweiterungen sind additiv.
Zum Kontextfenster
Der Wert ist die harte Obergrenze des Modells für Eingabe plus Ausgabe. Nur mit ihm können Sie
max_tokens sinnvoll setzen.
Eine Überschreitung meldet sich nicht. /v1/chat/completions reicht Ihre Anfrage unverändert
an den Modellserver weiter; ist sie zu lang, wird sie dort still gekürzt. Sie bekommen HTTP 200
und eine Antwort, die den abgeschnittenen Teil Ihres Prompts nie gesehen hat. Einen Fehlercode
dafür gibt es nicht. Rechnen Sie deshalb selbst:
Eingabe-Token + max_tokens < context_windowDie Spanne ist groß: von 16 384 (qwen3.5-9b-deepseek-v4, llama-3.1-8b) bis 1 000 000
(tensorx-deepseek-v4.1-flash). Wer eine Integration auf ein anderes Modell umstellt, stellt
damit auch das Kontextbudget um, siehe Migration. Viel Kontext bieten
z. B. gemma-4-12b (262 144), stackit-qwen3.8-27b (262 144) und
tensorx-deepseek-v4.1-flash (1 000 000).
Zum Qualitätsindex
Quelle ist der Artificial Analysis Intelligence Index. Er misst alle Modelle im selben Testaufbau; die Werte sind daher untereinander vergleichbar, anders als Zahlen aus Herstellerangaben.
Zwei Grenzen: Der Index beruht auf englischsprachigen Tests und sagt nichts über die Qualität
auf Deutsch. Und er ist eine Momentaufnahme, deshalb liefern wir immer quality_index_as_of
mit. Nicht gelistete Modelle haben quality_index: null.
Zum Lebenszyklus (lifecycle)
| Wert | Bedeutung |
|---|---|
active | Die empfohlene Wahl für diese Rolle. |
legacy | Weiter voll nutzbar, aber nicht mehr empfohlen und mittelfristig auslaufend. Es gibt keinen festen Abschalttermin; lifecycle_note nennt meist den Nachfolger. |
Wird ein Modell zurückgezogen, verschwindet es aus der Liste, und /v1/chat/completions
antwortet mit 404 model_withdrawn samt Nachfolger. Wer langfristig plant, filtert auf
lifecycle, statt Modell-IDs fest zu verdrahten.
Embedding-, Audio- und Entscheidungsmodelle
Auch diese Modelle stehen in der Liste, mit dem passenden kind: bge-m3,
nomic-embed-code, stackit-qwen3-vl-embedding-8b und stackit-e5-mistral-7b (embedding),
bge-reranker-base (rerank), sovr-decision-v1 und sovr-decision-v2 (decision) sowie die
Sprachmodelle.
Die Embedding-Modelle im Vergleich (POST /v1/embeddings):
| Modell-ID | Betrieb | Standardlänge | Parameter dimensions | Eingabe je Text |
|---|---|---|---|---|
bge-m3 (Standard) | selbst betrieben, EU | 1024 | wird ignoriert | – |
nomic-embed-code | selbst betrieben, EU | 3584 | wird ignoriert | – |
stackit-qwen3-vl-embedding-8b | 🇩🇪 STACKIT, kein Kaltstart | 4096 | 256, 384, 768, 1024 oder 1536 (gekürzt und neu normiert); 4096 oder weglassen für die volle Länge | bis 32 000 Token |
stackit-e5-mistral-7b | 🇩🇪 STACKIT, kein Kaltstart | 4096 | nur 4096 oder weglassen | laut Modellkarte für bis 4 096 Token trainiert |
Ohne model und bei den OpenAI-Namen (text-embedding-3-small usw.) rechnet weiterhin
bge-m3; Ihre vorhandenen Vektoren behalten also ihren Raum. Ein anderer Wert für dimensions
als in der Tabelle endet bei den STACKIT-Einbettern mit 400 (param: "dimensions"). Je Anfrage
nehmen sie höchstens 2048 Texte an. Bei stackit-e5-mistral-7b stellen Sie Suchanfragen eine
Aufgabenzeile voran (Instruct: … Query: …), Dokumente bleiben ohne. Die STACKIT-Einbetter
erscheinen nur, wenn sie auf dem Server eingerichtet sind; ohne Einrichtung antwortet
/v1/embeddings für sie mit 503 model_not_available.
Die Sprachmodelle:
{ "id": "supertonic-3", "kind": "tts", "display_name": "Supertonic 3 — Text-to-Speech" }
{ "id": "cosyvoice-3", "kind": "tts", "display_name": "CosyVoice 3 — Ausdrucksstarkes TTS + Stimmklon" }
{ "id": "voxtral-mini-tts", "kind": "tts", "display_name": "Voxtral Mini TTS — Stimmenkatalog" }
{ "id": "voxtral-mini-transcribe", "kind": "stt", "display_name": "Voxtral Mini Transcribe — Speech-to-Text" }Die id geben Sie als model an POST /v1/audio/speech bzw. /v1/audio/transcriptions,
siehe Audio-API. Diese Einträge hängen nicht von der Modellauswahl der
Organisation ab.
Eigene Modelle Ihrer Organisation
Trägt Ihre Organisation unter Einstellungen → Provider-Keys einen eigenen OpenAI-kompatiblen Endpunkt ein (eigene Adresse, eigener Modellname, eigener Anzeigename), erscheint er hier so:
{
"id": "org-model:8b2f…",
"owned_by": "org",
"kind": "chat",
"tier": "remote",
"is_remote": true,
"accepts_tools": false
}- Die
idmit dem Präfixorg-model:setzen Sie in/v1/chat/completionsein wie eine Katalog-ID. owned_by: "org": Der Endpunkt gehört Ihnen.- Anfragen an ein solches Modell gehen direkt an die eingetragene Adresse, außerhalb unseres Betriebs. Es gilt die Datenschutzerklärung des dortigen Anbieters.
accepts_toolsistfalse;effort_levelsundcontext_windowfehlen. Über fremde Endpunkte sagen wir nichts zu, was wir nicht geprüft haben.
Nur aktivierte Einträge erscheinen. Ein pausierter oder gelöschter Eintrag verschwindet aus der
Liste, und /v1/chat/completions antwortet für seine ID mit 404 model_not_found.
Modell nicht in der Liste?
Mögliche Gründe, in dieser Reihenfolge zu prüfen:
- Die Organisation hat es ausgeblendet. Owner und Admins wählen unter Einstellungen → Modelle, welche Modelle das Team sieht. Das ist der häufigste Grund, und von außen sehen Sie ihn nicht.
- Es ist geplant (
lifecycle: "planned"), aber noch nicht bereitgestellt. Solche Modelle erscheinen nie in der Liste. - Es wurde zurückgezogen.
/v1/chat/completionsantwortet dann mit404 model_withdrawnund nennt den Nachfolger. - Ein eigenes Modell der Organisation ist pausiert oder gelöscht, oder auf dem Server fehlt der Verschlüsselungsschlüssel. Dann werden eigene Modelle grundsätzlich nicht bedient.
Filter und Seitenaufteilung
Es gibt keine Filter und keine Seitenaufteilung; die Liste hat derzeit rund 30 Einträge. Kommt
eine Seitenaufteilung, folgt sie dem OpenAI-Muster (?limit=/?after=).
Caching
Die Liste ändert sich selten. Cachen Sie sie clientseitig etwa eine Stunde. Änderungen melden
wir nicht aktiv; laden Sie die Liste nach einem 404 (model_not_found, model_withdrawn)
neu.