GET /v1/models
Alle aktiven Modelle abfragen.
Listet alle für die aufrufende Org freigeschalteten Modelle.
Diese Liste ist org-spezifisch. Ein Org-Owner oder -Admin legt unter Einstellungen → Modelle fest, welche Modelle in seiner Organisation nutzbar sind.
GET /v1/modelsliefert deshalb genau die Modelle, die dieser Key ansprechen darf — zwei Keys verschiedener Orgs können unterschiedliche Listen sehen.Ein Modell, das hier fehlt, beantwortet
POST /v1/chat/completionsmit404 model_not_found. Es gibt bewusst kein stilles Downgrade auf ein anderes Modell — sonst könnte ein Client nicht merken, dass er eine Antwort von einem anderen Modell bekommen hat. Lade 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": "qwen3.5-9b",
"object": "model",
"created": 1715520000,
"owned_by": "sovrgpt",
"tier": "default",
"display_name": "Qwen 3.5 9B",
"subtitle": "Schnellantwort · multimodal-fähig",
"capabilities": {
"reasoning": 3,
"coding": 3,
"vision": 3,
"speed": 5,
"german": 4
},
"accepts_vision": true,
"license": "Apache 2.0",
"quality_index": 22,
"quality_index_source": "Artificial Analysis Intelligence Index",
"quality_index_as_of": "2026-08-08",
"origin_vendor": "Alibaba",
"origin_country": "CN",
"lifecycle": "active",
"cold_start_hint": "warm meist <5 s, Cold-Start typisch 30–90 s"
},
{
"id": "qwen3.6-27b",
"object": "model",
"owned_by": "sovrgpt",
"tier": "balanced",
"display_name": "Qwen 3.6 27B",
"subtitle": "Mehr Tiefe, akzeptable Latenz",
"license": "Apache 2.0"
}
/* … weitere Tiers … */
]
}Felder
Standard-OpenAI-Felder
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Modell-ID (in chat/completions als model einsetzbar). |
object | string | Immer "model". |
created | integer | Unix-Timestamp der Modell-Aktivierung. |
owned_by | string | Immer "sovrgpt". |
SovrGPT-Erweiterungen
| Feld | Typ | Beschreibung |
|---|---|---|
kind | enum | chat / embedding / rerank / tts / stt — sagt, über welchen Endpoint das Modell adressiert wird (/v1/chat/completions, /v1/embeddings, /v1/rerank, /v1/audio/speech, /v1/audio/transcriptions). |
tier | enum | Nur bei kind: "chat": default / balanced / premium / reasoning / vision / coder-mini / coder / coder-max / llama. |
display_name | string | Schöner Name für UIs. |
subtitle | string | Kurzer Untertitel für Picker. |
capabilities | object | 1–5-Skalen für reasoning, coding, vision, speed, german. Picker-UIs zeigen daraus Sterne / Balken. |
accepts_vision | boolean | True, wenn das Modell Bilder im Multipart-Format akzeptiert. |
license | string | Lizenz-Label (Apache 2.0, Llama Community License, …). |
quality_index | integer | null | Unabhängiger Qualitäts-Index. null heißt „von der Quelle nicht geführt" — wir schätzen keinen Wert. Siehe Hinweis unten. |
quality_index_source | string | Quelle des Index. Entfällt, wenn quality_index null ist. |
quality_index_as_of | string | Abrufdatum des Index (ISO-8601). Entfällt, wenn quality_index null ist. |
origin_vendor | string | Organisation, die 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 / planned — siehe unten. |
lifecycle_note | string | Kurzer Hinweis zum Auslaufen. Nur bei lifecycle: "legacy" gesetzt. |
cold_start_hint | string | Menschen-lesbarer Hinweis zur erwarteten Cold-Start-Dauer. |
Zum Qualitäts-Index
Quelle ist der Artificial Analysis Intelligence Index. Er ist deshalb aussagekräftig, weil er alle Modelle in einem Testaufbau misst — die Werte sind also untereinander vergleichbar, anders als Zahlen aus den jeweiligen Herstellerkarten.
⚠️ Zwei Grenzen, die dazugehören: Der Index ist ein Aggregat über
englischsprachige Tests und sagt nichts über deutsche Sprachqualität.
Und er ist eine Momentaufnahme — deshalb liefern wir immer quality_index_as_of
mit. Nicht jedes Modell ist dort gelistet; in dem Fall ist quality_index null,
und wir setzen bewusst keinen Ersatzwert ein.
Zum Lebenszyklus (lifecycle)
| Wert | Bedeutung |
|---|---|
active | Die empfohlene Wahl für diese Rolle. |
legacy | Weiterhin voll nutzbar und über die API adressierbar, aber nicht mehr die empfohlene Wahl und mittelfristig auslaufend. Es gibt keinen harten Abschalttermin — bestehende Integrationen laufen unverändert weiter. lifecycle_note nennt in der Regel den Nachfolger. |
planned | Entschieden, aber noch nicht bereitgestellt. Erscheint nicht in dieser Liste und ist nicht adressierbar. |
Wer langfristig plant, sollte auf lifecycle filtern statt Modell-IDs fest zu
verdrahten.
OpenAI-Clients ignorieren unbekannte Felder — alle Erweiterungen sind additiv.
Audio-Modelle (TTS/STT) in der Liste
Auch die Sprach-Modelle erscheinen hier mit kind: "tts" bzw. kind: "stt" —
so kannst du programmatisch abfragen, welche Stimm-Engines verfügbar sind:
{ "id": "supertonic-3", "kind": "tts", "display_name": "Supertonic 3 — Text-to-Speech" }
{ "id": "cosyvoice-3", "kind": "tts", "display_name": "CosyVoice 3 — Expressive TTS + Voice-Cloning" }
{ "id": "voxtral-mini-transcribe", "kind": "stt", "display_name": "Voxtral Mini Transcribe — Speech-to-Text" }Die passende id gibst du dann als model an POST /v1/audio/speech bzw.
/v1/audio/transcriptions — siehe Audio-API.
Modell nicht in der Liste?
Drei Gründe, in dieser Reihenfolge zu prüfen:
- Die Org hat es ausgeblendet. Ein Owner/Admin kuratiert unter Einstellungen → Modelle, welche Modelle das Team sieht. Häufigste Ursache — und die einzige, die du von außen nicht sehen kannst.
lifecycle: "planned"— entschieden, aber noch nicht bereitgestellt; erscheint grundsätzlich nicht in dieser Liste.- Externe (BYO-Key-)Modelle brauchen zusätzlich einen hinterlegten Provider-Key der Org.
Filter / Pagination
Aktuell keine Filter. Die Liste ist kurz (≤10 Einträge), Pagination
nicht nötig. Falls in Zukunft >100 Modelle aktiv sind, kommt
?limit=/?after= analog zu OpenAI.
Caching
Antworten ändern sich selten (≤ein Update pro Woche). Wir empfehlen clientseitiges Caching mit TTL = 1 Stunde. Bei Modell-Wechseln gibt es kein Push — Clients sollen nach 401/404 die Liste erneut laden.