API Referenz

Der technische Vertrag für Requests, Responses, Streaming und den produktiven API-Betrieb.

Authentifizierung

Alle API-Anfragen erfordern einen gültigen API-Key im Authorization-Header.

Authorization: Bearer YOUR_API_KEY
Idempotency-Key: req_123 (optional, POST only)
X-End-User-Id: user_42 (optional)
X-Project-Id: adbase-main (optional)
X-Session-Id: sess_abc (optional)
X-Request-Id: 2fbd62fe-... (response header, always set)
Betriebsrelevante Header

Neben Authorization gibt es einige Header, die für stabile Produktionseinbindungen besonders wichtig sind.

Authorization

Pflichtheader für jede Anfrage. Verwenden Sie immer das Bearer-Präfix.

Idempotency-Key

Empfohlen für POST-Requests, die bei Timeouts oder 5xx erneut gesendet werden könnten.

X-End-User-Id

Optionaler Korrelationswert für Ihren Endnutzer oder Mandanten.

X-Project-Id

Optionaler Projekt- oder Service-Identifier für internes Monitoring und Kostenstellen.

X-Request-Id

Response-Header zur serverseitigen Nachverfolgung. Immer in Ihren Logs mitpersistieren.

Endpoints
GET
/v1/modelsReturns models available for the current API key.
POST
/v1/chat/completionsErstellt eine Chat-Completion. Unterstützt Streaming.
POST
/v1/filesUpload a file (multipart/form-data).
POST
/v1/audio/transcriptionsTranscribe audio files (multipart/form-data).
GET
/v1/files/{file_id}Read file metadata and processing status.
DELETE
/v1/files/{file_id}Delete file metadata and storage object.
POST
/v1/files/{file_id}/extract?async=true|falseStart or run extraction for one file.
GET
/v1/file-jobs/{job_id}Read extraction job status/result.
Request-Parameter
ParameterTypPflichtDefaultBeschreibung
modelstring
Pflicht
-Model-ID oder Alias (z.B. 'mistral-small', 'claude-sonnet')
messagesarray
Pflicht
-Array von Message-Objekten mit role und content
streambooleanfalseAktiviert Server-Sent Events für Echtzeit-Streaming
stream_optionsobjectnullOptionale Streaming-Einstellungen wie include_usage für einen finalen Usage-Chunk
temperaturenumber0.7Kreativität der Antworten (0.0-2.0)
top_pnumber1.0Nucleus Sampling (0.0-1.0)
max_tokensinteger4096Maximale Anzahl Output-Tokens
frequency_penaltynumber0Strafe für häufig verwendete Tokens (-2.0 bis 2.0)
presence_penaltynumber0Strafe für bereits verwendete Tokens (-2.0 bis 2.0)
stopstring | arraynullSequenz(en), bei denen die Generierung stoppt
response_formatobjectnullErzwingt JSON-Ausgabe (type: 'json_object')
toolsarraynullVerfügbare Funktionen/Tools für Function Calling
tool_choicestring | objectautoWie Tools verwendet werden sollen (auto, required, none)
functionsarraynullLegacy-Funktionsdefinitionen (OpenAI-Kompatibilitätsmodus)
function_callstring | objectautoLegacy-Verhalten für Funktionsaufrufe (auto, none oder benannte Funktion)
Message-Format

Jede Nachricht hat eine Rolle und einen Inhalt:

system
Definiert das Verhalten des Assistenten (optional, max. 1)
user
Nachrichten vom Benutzer
assistant
Vorherige Antworten des Modells (für Kontext)
messages.jsonjson
{
  "messages": [
    { "role": "system", "content": "You are a helpful assistant." },
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "Summarize this file" },
        { "type": "file_ref", "file_id": "file_abc123" }
      ]
    },
    { "role": "assistant", "content": "I don't have access to real-time weather data." },
    { "role": "user", "content": "I understand, thank you!" }
  ]
}
Request-Beispiel
request.jsonjson
{
  "model": "gpt-4o",
  "messages": [
    { "role": "system", "content": "You are a helpful assistant." },
    { "role": "user", "content": "Hello!" }
  ],
  "temperature": 0.7,
  "max_tokens": 1000
}
curl.shbash
curl https://api.vantero.chat/v1/chat/completions \
  -H "Authorization: Bearer $VANTERO_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: req_123" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      { "role": "user", "content": "Summarize the latest campaign results." }
    ],
    "stream": false
  }'
Request-Lifecycle

So sollte ein produktiver Request idealerweise durch Ihr System laufen.

  • Validieren Sie Modell, Payload-Größe und benötigte Header bereits vor dem Absenden.
  • Senden Sie POST-Requests mit Timeout und optionalem Idempotency-Key.
  • Loggen Sie Statuscode, Latenz, Modell und X-Request-Id für jede Antwort.
  • Persistieren Sie finale Usage- und Fehlerdaten getrennt von den eigentlichen Nutzdaten.
Response-Format

Erfolgreiche Anfragen geben ein Chat-Completion-Objekt zurück:

response.jsonjson
{
  "id": "chatcmpl-abc123",
  "object": "chat.completion",
  "created": 1699000000,
  "model": "gpt-4o",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 10,
    "total_tokens": 30
  }
}

finish_reason kann sein:

  • stop - Natürliches Ende
  • length - max_tokens erreicht
  • content_filter - Inhalt gefiltert
  • tool_calls - Das Modell hat Tool-Aufrufe zurückgegeben
  • function_call - Das Modell hat einen Legacy-Funktionsaufruf zurückgegeben
Streaming

Mit stream: true erhalten Sie Antworten in Echtzeit als Server-Sent Events (SSE). Mit stream_options.include_usage kann der finale Chunk zusätzlich Usage-Daten enthalten.

Streaming-Vertrag

  • Der erste Chunk enthält typischerweise die assistant-Rolle im delta.
  • Nachfolgende Chunks transportieren Text- oder Tool-Deltas inkrementell.
  • Der finale Chunk kann Usage enthalten, wenn include_usage gesetzt ist.
  • Der Stream endet immer mit dem Marker [DONE].
stream.txttext
data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1699000000,"model":"gpt-4o","choices":[{"index":0,"delta":{"role":"assistant"},"finish_reason":null}]}

data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1699000000,"model":"gpt-4o","choices":[{"index":0,"delta":{"content":"Hello"},"finish_reason":null}]}

data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1699000000,"model":"gpt-4o","choices":[{"index":0,"delta":{"content":"!"},"finish_reason":null}]}

data: {"id":"chatcmpl-abc123","object":"chat.completion.chunk","created":1699000000,"model":"gpt-4o","choices":[{"index":0,"delta":{},"finish_reason":"stop"}],"usage":{"prompt_tokens":20,"completion_tokens":10,"total_tokens":30}}

data: [DONE]
Verfügbare Modelle

Alle Modelle können über ihren Alias oder die vollständige ID angesprochen werden.

AliasModellZoneContextFaktorFeatures
mistral-small-24b
Mistral AI Logo

Mistral Small 24B

Kompakt und schnell für Standard-Chat.

DE128Kx0.15
llama-3.3-70b
Meta Platforms Logo

Llama 3.3 70B

Stark bei Analyse und mehrsprachigen Texten.

DE128Kx0.55
gpt-oss
OpenAI Logo

GPT-OSS 120B

Open-Weight mit starkem Reasoning-Profil.

DE128Kx0.25
Reasoning
llama-405b
Meta Platforms Logo

Llama 3.1 405B

Sehr stark für komplexe Aufgabenketten.

DE128Kx1.20
Reasoning
codellama
Meta Platforms Logo

CodeLlama 13B

Codefokus für Generierung und Reviews.

DE16Kx0.35
Code
mistral-small
Mistral AI Logo

Mistral Small

Direkter Mistral-Allrounder fuer Web, Bilder und Chat.

FR256Kx0.25
ReasoningWebsuche integriertBild-Input
mistral-medium
Mistral AI Logo

Mistral Medium 3

Mistral-Allrounder für breite Workloads.

FR256Kx0.50
Websuche integriertBild-Input
mistral-large
Mistral AI Logo

Mistral Large

Aktueller Mistral-Topslot für komplexe Analysen.

FR256Kx0.60
Tiefe AnalysenWebsuche integriertBild-Input
codestral
Mistral AI Logo

Codestral

Coding-Modell für Dev-Workflows.

FR256Kx0.30
Code
devstral
Mistral AI Logo

Devstral

Neuer Mistral-Spezialist fuer Refactors und Coding.

FR256Kx0.50
Code256K Context
gemini-flash
Google Gemini Logo

Gemini 2.5 Flash

Schnell, multimodal, mit langem Kontext.

EU1Mx0.35
WebsucheBild-Input
gpt-4.1
OpenAI Logo

ChatGPT-4.1

Präzise für Code und Instruktionen.

EU1Mx2.00
ReasoningBild-Input
gpt-5
OpenAI Logo

ChatGPT-5

OpenAI-Flaggschiff für Komplexes.

EU128Kx2.40
ReasoningBild-Input
gpt-5.4
OpenAI Logo

GPT-5.4

Aktuelles OpenAI-Flaggschiff in Azure Sweden.

EU1Mx4.00
FrontierReasoningBild-Input
gpt-5-mini
OpenAI Logo

ChatGPT-5 Mini

Schneller GPT-5-Allrounder.

EU400Kx0.60
Bild-InputSchnell
gpt-5-nano
OpenAI Logo

ChatGPT-5 Nano

GPT-5 für niedrige Latenz.

EU400Kx0.15
Bild-Input
claude-sonnet
Anthropic Claude Logo

Claude Sonnet 4.6

Starke Balance aus Tempo und Qualität.

EU1Mx3.00
ReasoningBild-Input
claude-opus
Anthropic Claude Logo

Claude Opus 4.6

Maximale Qualität für harte Fälle.

EU1Mx5.00
ReasoningBild-Input
gemini-pro
Google Gemini Logo

Gemini 2.5 Pro

Starkes Reasoning mit Long Context.

EU1Mx2.50
ReasoningWebsucheBild-Input
gemini-flash-lite
Google Gemini Logo

Gemini 2.5 Flash-Lite

Niedrige Latenz und niedrige Kosten.

EU1Mx0.20
WebsucheBild-Input
claude-haiku
Anthropic Claude Logo

Claude Haiku 4.5

Sehr schnell für kurze Antworten.

EU200Kx1.20
SchnellBild-Input
nova-micro
Amazon Nova Logo

Nova Micro

Extrem schnell für Basis-Tasks.

EU128Kx0.10
Schnell
nova-lite
Amazon Nova Logo

Nova Lite

Günstiger multimodaler Allrounder.

EU300Kx0.12
Bild-InputSchnell
nova-pro
Amazon Nova Logo

Nova Pro

Nova-Flaggschiff für schwere Tasks.

EU300Kx0.80
Bild-InputReasoning
nova-2-lite
Amazon Nova Logo

Nova 2 Lite

Neue Nova-2-Lite-Generation in Bedrock EU.

EU1Mx0.90
Bild-InputSchnell
deepseek-v3.2
DeepSeek Logo

DeepSeek V3.2

Aktueller DeepSeek-Stand mit Tool-Fokus.

EU164Kx0.60
Reasoning
minimax-m2.5
MiniMax

MiniMax M2.5

Effizientes Reasoning via Bedrock EU.

EU1Mx0.60
ReasoningEffizient
qwen3-vl-de
Alibaba Qwen Logo

Qwen3 VL 235B

DE-only Vision-Modell für Bilder und Screenshots.

DE218Kx1.00
Bild-InputReasoning
qwen3-next
Alibaba Qwen Logo

Qwen3 Next 80B

Effizientes MoE mit langem Kontext.

EU256Kx0.40
Schnell256K Context
qwen3-vl
Alibaba Qwen Logo

Qwen3 VL 235B

Großmodell für Analyse-Workloads.

EU256Kx0.90
Bild-InputReasoning
qwen3-coder
Alibaba Qwen Logo

Qwen3 Coder 480B

Großes Modell für Coding und Agenten.

EU128Kx1.60
CodingAgentic
kimi-k2.5
Moonshot Kimi Logo

Kimi K2.5

Neuer K2.5-Stand für tiefe Recherche und Reasoning.

EU256Kx0.90
Reasoning256K Context
sonar
Perplexity AI Logo

Sonar

Schnelle Antworten mit Webbezug.

US128Kx2.00
WebsucheSchnell
sonar-pro
Perplexity AI Logo

Sonar Pro

Tiefere Web-Recherche.

US200Kx4.50
WebsucheTiefenanalyse
sonar-reasoning
Perplexity AI Logo

Sonar Reasoning Pro

Web plus mehrstufiges Reasoning.

US128Kx4.00
WebsucheReasoning
sonar-research
Perplexity AI Logo

Sonar Deep Research

Umfangreiche Quellenrecherche.

US128Kx24.00
WebsucheResearch

DE Modelle mit Verarbeitung in Deutschland für maximale Datensouveränität.

FR Mistral-Modelle mit Verarbeitung in Frankreich und temporärer Nutzung ohne Speicherung.

EU Frontier-Modelle in europäischen Cloud-Regionen mit EU-zentrierter Datenverarbeitung.

US Perplexity-Modelle mit Webfokus auf US-Infrastruktur unter GDPR-konformen Vertragsgrundlagen.

Rate Limits

Rate Limits werden pro API-Key angewendet und können in der Plattform konfiguriert werden.

Die folgenden Header werden in jeder Antwort mitgesendet:

  • X-RateLimit-Limit - Maximale Anfragen im aktuellen Zeitfenster
  • X-RateLimit-Remaining - Verbleibende Anfragen im aktuellen Zeitfenster
  • X-RateLimit-Reset - Unix-Timestamp, wann das Limit zurückgesetzt wird
Fehlerobjekt

Fehlerantworten liefern einen stabilen error-Block mit Typ, Code und request_id. Nutzen Sie die request_id immer für Support und Incident-Analyse.

error.jsonjson
{
  "error": {
    "message": "Rate limit exceeded",
    "type": "rate_limit_exceeded",
    "code": "rate_limit_exceeded",
    "request_id": "req_2fbd62fe"
  }
}
Fehlercodes
HTTPCodeBeschreibungLösung
400invalid_request_errorUngültige Anfrage - Parameter fehlen oder sind falschÜberprüfen Sie die Request-Parameter
401invalid_api_keyAPI-Key ungültig oder fehltÜberprüfen Sie Ihren API-Key
404model_not_foundModell nicht gefundenPrüfen Sie den Modell-Alias
429rate_limit_exceededRate Limit überschrittenWarten Sie und versuchen Sie es erneut
429insufficient_quotaBudget/Quota aufgebrauchtBudget erhöhen oder warten
500server_errorInterner Server-FehlerVersuchen Sie es später erneut
503model_unavailableDas angeforderte Modell ist vorübergehend nicht verfügbar.Kurz warten und erneut versuchen oder auf ein anderes erlaubtes Modell wechseln.
Integrations-Checkliste

Diese Punkte sollten in jeder produktiven Integration abgedeckt sein.

  • Authorization-Header und Secret-Verwaltung sind serverseitig abgesichert.
  • Timeouts und Abbruchpfade sind implementiert.
  • Temporäre Fehler werden mit Backoff retried, permanente Fehler nicht.
  • X-Request-Id wird in allen relevanten Logs gespeichert.
  • Streaming-Clients behandeln Chunks und [DONE] korrekt.