Jährlich Jährlich zahlen und bei jedem bezahlten Tarif 2 Monate gratis erhalten. Tarife ansehen
Anmelden Kostenlos starten

OpenAI-kompatible API

Zuletzt aktualisiert am 11 Nov. 2026

Was sie ist

Die OpenAI-kompatible API lässt ein Tool, das das Chat-Completions-Format von OpenAI spricht, die Chat-Modelle von ToRun nutzen, bezahlt über Ihr ToRun-Konto. Ein Coding-Agent wie opencode kann ToRun so neben den MCP-Tools von ToRun auch als Modellanbieter nutzen.

Adresse und Anmeldung

Basis-URL https://mcp.torun.ai/v1
Anmeldung Authorization: Bearer <your developer key>

Verwenden Sie denselben Entwicklerschlüssel wie für den MCP-Server: siehe Entwicklerschlüssel. Ein Schlüssel, der erstellt wurde, bevor die OpenAI-kompatible API hinzukam, erhält 403 insufficient_scope. Die Berechtigungen eines Schlüssels ändern sich nie, erstellen Sie also einen neuen Schlüssel.

Die API hat zwei Endpunkte, GET /v1/models und POST /v1/chat/completions. Jeder andere Pfad unter /v1 antwortet mit 404 not_found.

Modelle

GET /v1/models listet zuerst torun/auto auf, dann jedes Textmodell, das Ihr Plan nutzen kann, mit seiner Modell-ID. Jedes Modell gibt an:

  • wie viel Text es lesen kann (context_length) und wie lang eine Antwort sein kann, die es schreibt (max_completion_tokens),
  • ob es Tools aufrufen (supports_tools) und Bilder lesen kann (supports_vision),
  • seinen Preis in Runs pro Million Tokens (pricing: input und output).

Mit torun/auto wählt ToRun für jede Anfrage ein Modell: eines, das Bilder liest, wenn die Anfrage ein Bild enthält, und eines, das Tools aufruft, wenn sie tools sendet.

Chat Completions

POST /v1/chat/completions nimmt an:

  • messages mit den Rollen system, developer (wie system behandelt), user, assistant und tool,
  • tools und tool_choice (auto, none, required oder eine benannte Funktion): Die eigenen Tools Ihres Tools kommen als Tool-Aufrufe zu ihm zurück, und ToRun führt sie nie aus,
  • response_format mit json_object. json_schema wird angenommen und als JSON beantwortet, das Schema selbst wird aber nicht erzwungen,
  • temperature (0 bis 2), top_p (0 bis 1), max_completion_tokens oder max_tokens, stop (bis zu 4 Sequenzen), seed und reasoning_effort,
  • stream und stream_options.include_usage.

n über 1, logprobs, top_logprobs, Audio und jede andere Ausgabe als Text werden mit 400 unsupported_parameter abgewiesen statt ignoriert.

Bilder

Senden Sie ein Bild inline, als data:image/...;base64,... in einem image_url-Teil, bis 20 MB pro Anfrage. Ein als Link gesendetes Bild wird mit 400 image_url_not_supported abgewiesen: ToRun ruft es nicht ab. Bilder werden wie in der App auf Sicherheit geprüft.

Streaming

Mit "stream": true kommt die Antwort als Server-Sent Events in der Form chat.completion.chunk:

  • Der erste Chunk trägt die Rolle assistant, und Tool-Aufrufe werden mit ihrem index gestreamt.
  • Solange es nichts zu senden gibt, kommt alle 15 Sekunden eine Kommentarzeile : keepalive; SSE-Parser überspringen sie.
  • data: [DONE] beendet einen erfolgreichen Stream.
  • Mit stream_options.include_usage hat der letzte Chunk ein leeres choices und trägt usage.
  • Ein Fehler nach dem Start des Streams kommt als ein einzelnes Ereignis data: {"error": ...}, ohne [DONE].

Ein Aufruf ohne Streaming wird nach 110 Sekunden mit 504 timeout gestoppt. Senden Sie lange Anfragen mit "stream": true.

Nutzung

usage enthält prompt_tokens, completion_tokens, total_tokens, prompt_tokens_details.cached_tokens und completion_tokens_details.reasoning_tokens sowie torun_credits: was der Aufruf gekostet hat, in Runs.

In opencode nutzen

Die opencode-Konfiguration auf der Entwicklerseite fügt ToRun neben dem MCP-Server als Modellanbieter hinzu:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "torun": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "ToRun",
      "options": { "baseURL": "https://mcp.torun.ai/v1", "apiKey": "{env:TORUN_API_KEY}" },
      "models": { "torun/auto": { "name": "ToRun Auto" } }
    }
  }
}

Jedes andere Tool, das die Chat-API von OpenAI spricht, funktioniert genauso. Der Tab OpenAI-API der Seite zeigt diesen Aufruf:

curl https://mcp.torun.ai/v1/chat/completions \
  -H "Authorization: Bearer $TORUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "torun/auto", "messages": [{"role": "user", "content": "Hello"}]}'

Wie Aufrufe bezahlt werden

API-Aufrufe kosten dieselben Runs wie dieselbe Nutzung in der App. Sie werden nur aus bezahlten Mitteln bezahlt: zuerst aus dem Kontingent Ihres bezahlten Plans, dann aus Ihrem Wallet, wenn Sie das für den Schlüssel erlaubt haben. Das kostenlose Kontingent bezahlt nie API-Aufrufe. Die monatlichen und täglichen Limits des Schlüssels gelten, und Antworten werden wie Chat-Antworten auf Sicherheit geprüft.

Limits

Jeder Schlüssel kann 60 Anfragen pro Minute an diese API senden und 4 Completions gleichzeitig ausführen. Darüber antwortet die API mit 429 rate_limit_exceeded und einem Retry-After-Header.

Fehler

Jeder Fehler hat die Form {"error": {"message": ..., "type": ..., "param": ..., "code": ...}}. Die message ist in der Sprache, die der Accept-Language-Header der Anfrage verlangt.

Status Code Bedeutung
400 invalid_json, missing_parameter, invalid_parameter, unsupported_parameter Die Anfrage ist fehlerhaft oder nutzt einen Parameter, den ToRun nicht unterstützt.
400 image_url_not_supported Ein Bild wurde als Link gesendet; senden Sie es inline.
400 content_blocked Die Sicherheitsprüfung hat den Inhalt blockiert.
400 upstream_rejected Der Anbieter des Modells hat die Anfrage abgelehnt; die Meldung nennt den Grund.
401 invalid_api_key Der Schlüssel fehlt, ist falsch geschrieben oder widerrufen.
402 insufficient_credits, wallet_spend_not_allowed, spending_cap_reached Das Konto oder der Schlüssel kann den Aufruf nicht bezahlen.
403 insufficient_scope Der Schlüssel wurde erstellt, bevor diese API hinzukam; erstellen Sie einen neuen Schlüssel.
403 model_not_available Das Modell ist nicht in Ihrem Plan enthalten.
403 account_suspended, no_developer_access Das Konto ist gesperrt oder hat keinen Entwicklerzugang.
404 model_not_found Die Modell-ID ist keine, die GET /v1/models auflistet.
404 not_found Unter /v1 gibt es keinen solchen Pfad.
429 rate_limit_exceeded Zu viele Aufrufe; warten Sie die Zeit in Retry-After ab.
500 internal_error Auf der Seite von ToRun ist etwas fehlgeschlagen.
502 upstream_error, empty_reply Der Anbieter des Modells ist ausgefallen oder hat eine leere Antwort gesendet.
503 upstream_error, cap_unreadable, scan_unavailable Ein Dienst, den der Aufruf braucht, ist kurz nicht verfügbar; versuchen Sie es erneut.
504 timeout Ein Aufruf ohne Streaming lief länger als 110 Sekunden.

Eine Anfrage, die nicht bezahlt werden kann, antwortet mit 402, nicht mit 429, damit ein Client sie nicht immer wieder versucht.

Nicht weitergekommen? Im Forum gibt es meist innerhalb weniger Stunden eine Antwort, vom Support innerhalb von 24 Stunden. Im Forum fragen Support kontaktieren