Developer Portal

Eine OpenAI-kompatible API für alle Modelle von fascis. Bestehender Code funktioniert mit zwei Änderungen: base_url und API-Key.

Quickstart

Base URL: https://www.fascis.eu/v1

from openai import OpenAI

client = OpenAI(api_key="YOUR_PLATFORM_KEY", base_url="https://www.fascis.eu/v1")

stream = client.chat.completions.create(
    model="auto",
    messages=[{"role": "user", "content": "Erkläre Quantencomputing in 3 Sätzen."}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

Endpoints

POST/v1/chat/completions
GET/v1/models
POST/v1/embeddings
POST/v1/images/generations
POST/v1/audio/transcriptions

Modelle & Routing

Verwende eine Modell-ID aus /v1/models (z. B. vendor/model) oder einen Routing-Modus:

  • auto – wählt das passende Modell pro Anfrage
  • auto:price – günstigste gute Antwort
  • auto:quality – bestes verfügbares Modell
  • auto:speed – schnellste Antwort nach aktueller Latenz

Die Antwort enthält das tatsächlich genutzte Modell (model), den Provider (provider), die Kosten (cost) sowie den Header x-request-id. Fällt ein Provider aus, wird automatisch ein anderer verwendet.

Limits & Budgets

Rate Limits gelten pro IP, Workspace, API-Key und Modell (abhängig vom Plan). Pro Key lassen sich Ausgabenlimits und eigene Rate Limits setzen. Überschreitungen liefern HTTP 429 mit Retry-After; fehlendes Guthaben HTTP 402.

Fehler

{ "error": { "message": "Nicht genügend Guthaben.", "type": "invalid_request_error", "code": "insufficient_credits" } }
401 invalid_api_key
402 insufficient_credits / budget_exceeded
403 model_not_allowed / insufficient_scope
404 model_not_found
429 rate_limited
503 model_unavailable

Webhooks

Events: request.completed, request.failed, usage.updated, budget.warning, budget.exceeded. Jede Zustellung ist mit x-aihub-signature: t=<ts>,v1=<hmac_sha256(secret, ts + "." + body)> signiert.