OmniRoute/docs/i18n/de/API_REFERENCE.md

442 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API-Referenz
🌐 **Languages:** 🇺🇸 [English](../../API_REFERENCE.md) | 🇧🇷 [Português (Brasil)](../pt-BR/API_REFERENCE.md) | 🇪🇸 [Español](../es/API_REFERENCE.md) | 🇫🇷 [Français](../fr/API_REFERENCE.md) | 🇮🇹 [Italiano](../it/API_REFERENCE.md) | 🇷🇺 [Русский](../ru/API_REFERENCE.md) | 🇨🇳 [中文 (简体)](../zh-CN/API_REFERENCE.md) | 🇩🇪 [Deutsch](../de/API_REFERENCE.md) | 🇮🇳 [हिन्दी](../in/API_REFERENCE.md) | 🇹🇭 [ไทย](../th/API_REFERENCE.md) | 🇺🇦 [Українська](../uk-UA/API_REFERENCE.md) | 🇸🇦 [العربية](../ar/API_REFERENCE.md) | 🇯🇵 [日本語](../ja/API_REFERENCE.md) | 🇻🇳 [Tiếng Việt](../vi/API_REFERENCE.md) | 🇧🇬 [Български](../bg/API_REFERENCE.md) | 🇩🇰 [Dansk](../da/API_REFERENCE.md) | 🇫🇮 [Suomi](../fi/API_REFERENCE.md) | 🇮🇱 [עברית](../he/API_REFERENCE.md) | 🇭🇺 [Magyar](../hu/API_REFERENCE.md) | 🇮🇩 [Bahasa Indonesia](../id/API_REFERENCE.md) | 🇰🇷 [한국어](../ko/API_REFERENCE.md) | 🇲🇾 [Bahasa Melayu](../ms/API_REFERENCE.md) | 🇳🇱 [Nederlands](../nl/API_REFERENCE.md) | 🇳🇴 [Norsk](../no/API_REFERENCE.md) | 🇵🇹 [Português (Portugal)](../pt/API_REFERENCE.md) | 🇷🇴 [Română](../ro/API_REFERENCE.md) | 🇵🇱 [Polski](../pl/API_REFERENCE.md) | 🇸🇰 [Slovenčina](../sk/API_REFERENCE.md) | 🇸🇪 [Svenska](../sv/API_REFERENCE.md) | 🇵🇭 [Filipino](../phi/API_REFERENCE.md)
Vollständige Referenz für alle OmniRoute-API-Endpunkte.
---
## Inhaltsverzeichnis
- [Chat Completions](#chat-completions)
- [Embeddings](#embeddings)
- [Image Generation](#image-generation)
- [List Models](#list-models)
- [Compatibility Endpoints](#compatibility-endpoints)
- [Semantic Cache](#semantic-cache)
- [Dashboard & Management](#dashboard--management)
- [Request Processing](#request-processing)
- [Authentication](#authentication)
---
## Chat-Abschlüsse
```bash
POST /v1/chat/completions
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "cc/claude-opus-4-6",
"messages": [
{"role": "user", "content": "Write a function to..."}
],
"stream": true
}
```
### Benutzerdefinierte Header
| Kopfzeile | Richtung | Beschreibung |
| ------------------------ | -------- | -------------------------------------------- |
| `X-OmniRoute-No-Cache` | Anfrage | Auf `true` setzen, um den Cache zu umgehen |
| `X-OmniRoute-Progress` | Anfrage | Für Fortschrittsereignisse auf `true` setzen |
| `Idempotency-Key` | Anfrage | Dedup-Schlüssel (5-Sekunden-Fenster) |
| `X-Request-Id` | Anfrage | Alternativer Deduplizierungsschlüssel |
| `X-OmniRoute-Cache` | Antwort | `HIT` oder `MISS` (kein Streaming) |
| `X-OmniRoute-Idempotent` | Antwort | `true` wenn dedupliziert |
| `X-OmniRoute-Progress` | Antwort | `enabled` wenn Fortschrittsverfolgung auf |
---
## Einbettungen
```bash
POST /v1/embeddings
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "nebius/Qwen/Qwen3-Embedding-8B",
"input": "The food was delicious"
}
```
Verfügbare Anbieter: Nebius, OpenAI, Mistral, Together AI, Fireworks, NVIDIA.
```bash
# List all embedding models
GET /v1/embeddings
```
---
## Bildgenerierung
```bash
POST /v1/images/generations
Authorization: Bearer your-api-key
Content-Type: application/json
{
"model": "openai/dall-e-3",
"prompt": "A beautiful sunset over mountains",
"size": "1024x1024"
}
```
Verfügbare Anbieter: OpenAI (DALL-E), xAI (Grok Image), Together AI (FLUX), Fireworks AI.
```bash
# List all image models
GET /v1/images/generations
```
---
## Modelle auflisten
```bash
GET /v1/models
Authorization: Bearer your-api-key
→ Returns all chat, embedding, and image models + combos in OpenAI format
```
---
## Kompatibilitätsendpunkte
| Methode | Pfad | Formatieren |
| ------- | --------------------------- | --------------------------- |
| POST | `/v1/chat/completions` | OpenAI |
| POST | `/v1/messages` | Anthropisch |
| POST | `/v1/responses` | OpenAI-Antworten |
| POST | `/v1/embeddings` | OpenAI |
| POST | `/v1/images/generations` | OpenAI |
| GET | `/v1/models` | OpenAI |
| POST | `/v1/messages/count_tokens` | Anthropisch |
| GET | `/v1beta/models` | Zwillinge |
| POST | `/v1beta/models/{...path}` | Zwillinge generierenContent |
| POST | `/v1/api/chat` | Ollama |
### Dedizierte Anbieterrouten
```bash
POST /v1/providers/{provider}/chat/completions
POST /v1/providers/{provider}/embeddings
POST /v1/providers/{provider}/images/generations
```
Das Anbieterpräfix wird automatisch hinzugefügt, wenn es fehlt. Nicht übereinstimmende Modelle geben `400` zurück.
---
## Semantischer Cache
```bash
# Get cache stats
GET /api/cache
# Clear all caches
DELETE /api/cache
```
Antwortbeispiel:
```json
{
"semanticCache": {
"memorySize": 42,
"memoryMaxSize": 500,
"dbSize": 128,
"hitRate": 0.65
},
"idempotency": {
"activeKeys": 3,
"windowMs": 5000
}
}
```
---
## Dashboard und Verwaltung
### Authentifizierung
| Endpunkt | Methode | Beschreibung |
| ----------------------------- | ------- | --------------------------------- |
| `/api/auth/login` | POST | Anmelden |
| `/api/auth/logout` | POST | Abmelden |
| `/api/settings/require-login` | GET/PUT | Anmeldung erforderlich umschalten |
### Anbieterverwaltung
| Endpunkt | Methode | Beschreibung |
| ---------------------------- | --------------- | -------------------------------- |
| `/api/providers` | GET/POST | Anbieter auflisten/anlegen |
| `/api/providers/[id]` | GET/PUT/DELETE | Einen Anbieter verwalten |
| `/api/providers/[id]/test` | POST | Provider-Verbindung testen |
| `/api/providers/[id]/models` | GET | Anbietermodelle auflisten |
| `/api/providers/validate` | POST | Anbieterkonfiguration validieren |
| `/api/provider-nodes*` | Verschiedene | Provider-Knotenverwaltung |
| `/api/provider-models` | GET/POST/DELETE | Kundenspezifische Modelle |
### OAuth-Flows
| Endpunkt | Methode | Beschreibung |
| -------------------------------- | ------------ | -------------------------- |
| `/api/oauth/[provider]/[action]` | Verschiedene | Anbieterspezifisches OAuth |
### Routing & Konfig
| Endpunkt | Methode | Beschreibung |
| --------------------- | ------------ | -------------------------------- |
| `/api/models/alias` | GET/POST | Modell-Aliase |
| `/api/models/catalog` | GET | Alle Modelle nach Anbieter + Typ |
| `/api/combos*` | Verschiedene | Combo-Management |
| `/api/keys*` | Verschiedene | API-Schlüsselverwaltung |
| `/api/pricing` | GET | Modellpreise |
### Nutzung und Analyse
| Endpunkt | Methode | Beschreibung |
| --------------------------- | ------- | -------------------------------- |
| `/api/usage/history` | GET | Nutzungshistorie |
| `/api/usage/logs` | GET | Nutzungsprotokolle |
| `/api/usage/request-logs` | GET | Protokolle auf Anforderungsebene |
| `/api/usage/[connectionId]` | GET | Nutzung pro Verbindung |
### Einstellungen
| Endpunkt | Methode | Beschreibung |
| ------------------------------- | ------- | -------------------------------- |
| `/api/settings` | GET/PUT | Allgemeine Einstellungen |
| `/api/settings/proxy` | GET/PUT | Netzwerk-Proxy-Konfiguration |
| `/api/settings/proxy/test` | POST | Proxy-Verbindung testen |
| `/api/settings/ip-filter` | GET/PUT | IP-Zulassungs-/Blockierungsliste |
| `/api/settings/thinking-budget` | GET/PUT | Begründung des Token-Budgets |
| `/api/settings/system-prompt` | GET/PUT | Globale Systemaufforderung |
### Überwachung
| Endpunkt | Methode | Beschreibung |
| ------------------------ | ---------------- | --------------------------- |
| `/api/sessions` | GET | Aktive Sitzungsverfolgung |
| `/api/rate-limits` | GET | Tariflimits pro Konto |
| `/api/monitoring/health` | GET | Gesundheitscheck |
| `/api/cache` | ERHALTEN/LÖSCHEN | Cache-Statistiken / löschen |
### Sichern und Exportieren/Importieren
| Endpunkt | Methode | Beschreibung |
| --------------------------- | ------- | -------------------------------------------------------------- |
| `/api/db-backups` | GET | Verfügbare Backups auflisten |
| `/api/db-backups` | PUT | Erstellen Sie ein manuelles Backup |
| `/api/db-backups` | POST | Von einem bestimmten Backup wiederherstellen |
| `/api/db-backups/export` | GET | Datenbank als .sqlite-Datei herunterladen |
| `/api/db-backups/import` | POST | Laden Sie die .sqlite-Datei hoch, um die Datenbank zu ersetzen |
| `/api/db-backups/exportAll` | GET | Vollständiges Backup als .tar.gz-Archiv herunterladen |
### Cloud-Synchronisierung
| Endpunkt | Methode | Beschreibung |
| ---------------------- | ------------ | ------------------------------- |
| `/api/sync/cloud` | Verschiedene | Cloud-Synchronisierungsvorgänge |
| `/api/sync/initialize` | POST | Synchronisierung initialisieren |
| `/api/cloud/*` | Verschiedene | Cloud-Management |
### CLI-Tools
| Endpunkt | Methode | Beschreibung |
| ---------------------------------- | ------- | ----------------------- |
| `/api/cli-tools/claude-settings` | GET | Claude CLI-Status |
| `/api/cli-tools/codex-settings` | GET | Codex-CLI-Status |
| `/api/cli-tools/droid-settings` | GET | Droid-CLI-Status |
| `/api/cli-tools/openclaw-settings` | GET | OpenClaw CLI-Status |
| `/api/cli-tools/runtime/[toolId]` | GET | Generische CLI-Laufzeit |
Zu den CLI-Antworten gehören: `installed`, `runnable`, `command`, `commandPath`, `runtimeMode`, `reason`.
### Belastbarkeit und Ratenbeschränkungen
| Endpunkt | Methode | Beschreibung |
| ----------------------- | ------- | -------------------------------------- |
| `/api/resilience` | GET/PUT | Resilienzprofile abrufen/aktualisieren |
| `/api/resilience/reset` | POST | Leistungsschalter zurücksetzen |
| `/api/rate-limits` | GET | Status der Ratenbegrenzung pro Konto |
| `/api/rate-limit` | GET | Konfiguration des globalen Ratenlimits |
### Bewertungen
| Endpunkt | Methode | Beschreibung |
| ------------ | -------- | ---------------------------------------------------- |
| `/api/evals` | GET/POST | Evaluierungssuiten auflisten / Evaluierung ausführen |
### Richtlinien
| Endpunkt | Methode | Beschreibung |
| --------------- | --------------- | ----------------------------- |
| `/api/policies` | GET/POST/DELETE | Routing-Richtlinien verwalten |
### Compliance
| Endpunkt | Methode | Beschreibung |
| --------------------------- | ------- | -------------------------------------- |
| `/api/compliance/audit-log` | GET | Compliance-Audit-Protokoll (letztes N) |
### v1beta (Gemini-kompatibel)
| Endpunkt | Methode | Beschreibung |
| -------------------------- | ------- | ---------------------------------- |
| `/v1beta/models` | GET | Modelle im Gemini-Format auflisten |
| `/v1beta/models/{...path}` | POST | Gemini `generateContent` Endpunkt |
Diese Endpunkte spiegeln das API-Format von Gemini für Kunden wider, die native Gemini SDK-Kompatibilität erwarten.
### Interne/System-APIs
| Endpunkt | Methode | Beschreibung |
| --------------- | ------- | ---------------------------------------------------------------------------- |
| `/api/init` | GET | Überprüfung der Anwendungsinitialisierung (wird beim ersten Start verwendet) |
| `/api/tags` | GET | Ollama-kompatible Modell-Tags (für Ollama-Clients) |
| `/api/restart` | POST | Ordentlichen Serverneustart auslösen |
| `/api/shutdown` | POST | Ordentliches Herunterfahren des Servers auslösen |
> **Hinweis:** Diese Endpunkte werden intern vom System oder für die Ollama-Client-Kompatibilität verwendet. Sie werden normalerweise nicht von Endbenutzern aufgerufen.
---
## Audiotranskription
```bash
POST /v1/audio/transcriptions
Authorization: Bearer your-api-key
Content-Type: multipart/form-data
```
Transkribieren Sie Audiodateien mit Deepgram oder AssemblyAI.
**Anfrage:**
```bash
curl -X POST http://localhost:20128/v1/audio/transcriptions \
-H "Authorization: Bearer your-api-key" \
-F "file=@recording.mp3" \
-F "model=deepgram/nova-3"
```
**Antwort:**
```json
{
"text": "Hello, this is the transcribed audio content.",
"task": "transcribe",
"language": "en",
"duration": 12.5
}
```
**Unterstützte Anbieter:** `deepgram/nova-3`, `assemblyai/best`.
**Unterstützte Formate:** `mp3`, `wav`, `m4a`, `flac`, `ogg`, `webm`.
---
## Ollama-Kompatibilität
Für Kunden, die das API-Format von Ollama verwenden:
```bash
# Chat endpoint (Ollama format)
POST /v1/api/chat
# Model listing (Ollama format)
GET /api/tags
```
Anfragen werden automatisch zwischen Ollama und internen Formaten übersetzt.
---
## Telemetrie
```bash
# Get latency telemetry summary (p50/p95/p99 per provider)
GET /api/telemetry/summary
```
**Antwort:**
```json
{
"providers": {
"claudeCode": { "p50": 245, "p95": 890, "p99": 1200, "count": 150 },
"github": { "p50": 180, "p95": 620, "p99": 950, "count": 320 }
}
}
```
---
## Budget
```bash
# Get budget status for all API keys
GET /api/usage/budget
# Set or update a budget
POST /api/usage/budget
Content-Type: application/json
{
"keyId": "key-123",
"limit": 50.00,
"period": "monthly"
}
```
---
## Modellverfügbarkeit
```bash
# Get real-time model availability across all providers
GET /api/models/availability
# Check availability for a specific model
POST /api/models/availability
Content-Type: application/json
{
"model": "claude-sonnet-4-5-20250929"
}
```
---
## Bearbeitung der Anfrage
1. Client sendet Anfrage an `/v1/*`
2. Route-Handler-Aufrufe `handleChat`, `handleEmbedding`, `handleAudioTranscription` oder `handleImageGeneration`
3. Modell wird aufgelöst (direkter Anbieter/Modell oder Alias/Kombination)
4. Aus der lokalen Datenbank ausgewählte Anmeldeinformationen mit Kontoverfügbarkeitsfilterung
5. Für Chat: `handleChatCore` Formaterkennung, Übersetzung, Cache-Prüfung, Idempotenzprüfung
6. Der Executor des Anbieters sendet eine Upstream-Anfrage
7. Antwort zurück ins Client-Format übersetzt (Chat) oder unverändert zurückgegeben (Einbettungen/Bilder/Audio)
8. Nutzung/Protokollierung aufgezeichnet
9. Bei Fehlern gilt ein Fallback gemäß den Combo-Regeln
Vollständige Architekturreferenz: [link](ARCHITECTURE.md)
---
## Authentifizierung
Dashboard-Routen (`/dashboard/*`) verwenden das Cookie `auth_token`
- Bei der Anmeldung wird der gespeicherte Passwort-Hash verwendet. Fallback auf `INITIAL_PASSWORD`
- `requireLogin` umschaltbar über `/api/settings/require-login`
`/v1/*` Routen erfordern optional einen Bearer-API-Schlüssel, wenn `REQUIRE_API_KEY=true`