SUB&SUB · Docs
Sprache
Theme

API-Referenz

SUB&SUB stellt einen Multi-Provider-Relay unter https://api.subnsub.com/v1 bereit. OpenAI-Clients sprechen /v1/chat/completions an; Anthropic-Clients /v1/messages. Derselbe sk-cf-...-Key routet beide — du wählst das Modell im Request-Body und der Relay wählt das Upstream.

Dienstverfügbarkeit

Nur bestehende Konten Der API-Zugriff ist derzeit auf Konten beschränkt, die vor dem 8. Juni 2026 (Pekinger Zeit) erstellt wurden. Neue Registrierungen können das gemeinsame Konto und SUB&SUB Tools nutzen, aber weder die API-Konsole öffnen noch einen API-Schlüssel erstellen, API-Guthaben aufladen oder das Relay aufrufen. Dieser Abschnitt wird aktualisiert, sobald das API-Onboarding wieder öffnet.

Schnellstart

Für ein bestehendes Konto mit API-Zugriff benötigen Sie drei Dinge:

  1. Base-URL: https://api.subnsub.com/v1 (OpenAI-Clients) oder https://api.subnsub.com (Anthropic-Clients — das SDK hängt /v1/messages selbst an)
  2. API-Key: sk-cf-..., ausgestellt über die Konsole
  3. Modell: eines der 16 unterstützten Modelle – z.B. gpt-5.4-mini oder claude-sonnet-5

Authentifizierung

Jede Anfrage muss einen Authorization: Bearer sk-cf-...-Header tragen. Keys werden über die Konsole ausgestellt und als SHA-256-Hashes gespeichert — sobald du den Erstellungsbildschirm verlässt, ist der Klartext für immer weg, also speichere ihn sofort.

Tipp Erstelle einen Key pro Integration (Chatbot, IDE-Plugin, Batch-Job). Das Widerrufen eines geleakten Keys in der Konsole greift innerhalb von Sekunden.

Endpoints

Die stabile öffentliche Oberfläche ist unten und im maschinenlesbaren OpenAPI-3.1-Dokument beschrieben. Nicht aufgeführte Felder können an den Upstream weitergeleitet werden, gehören aber nicht automatisch zur Kompatibilitätszusage von SUB&SUB.

POST /v1/chat/completions

POST/v1/chat/completions

Sende eine Chat-Completion-Anfrage. Die Request-Struktur entspricht der OpenAI Chat Completions API — die OpenAI-SDKs funktionieren unverändert.

ParameterTypBeschreibung
modelstringEine der verifizierten Modell-IDs.
messagesarrayKonversationsverlauf. Jedes Element: {role, content} mit rolesystem / user / assistant.
streambooleanWenn true, wird die Antwort als SSE-Chunks gesendet. Siehe Streaming.
stream_optionsobjectOptional. Der Relay erzwingt immer {include_usage: true} upstream, damit der letzte Chunk den Token-Usage-Block trägt — ein Überschreiben hat keine Wirkung.
max_tokensintegerBegrenzt die Completion-Länge. Standard ist das Maximum des Modells.
temperaturenumber0 – 2. Höher = zufälliger.

POST /v1/responses

POST/v1/responses

OpenAI Responses API – die neuere OpenAI-Anfrageform (client.responses.create(...)). Funktioniert mit jedem Katalogmodell: gpt-* nativ, claude-* über dieselbe Kompatibilitätsbrücke wie Chat/Completions. Die Nutzung wird identisch gemessen – Eingabe-/Ausgabe-Tokens zum Tarif des Modells.

ParameterTypBeschreibung
modelstringBeliebige Katalogmodell-ID.
inputstring | arrayDie Eingabeaufforderung – eine einfache Zeichenfolge oder die strukturierte Elementliste, die Responses API definiert.
max_output_tokensintegerBegrenzt die Antwortlänge (Begründung + sichtbare Ausgabe kombiniert).
reasoningobject{"effort": "..."} – dieselben fünf Werte wie reasoning_effort.
streambooleanWenn true, wird die Standardantwortsequenz SSE gestreamt: response.created, response.output_text.delta, …, response.completed.
backgroundbooleanNicht unterstützt. background: true gibt 400 unsupported_background_mode zurück – das Relais bedient nur synchrone Läufe.
Hinweis Das Websuchsuffix :online hat keine Auswirkung auf diesen Endpunkt – das Suffix wird entfernt, aber es wird kein Suchkontext eingefügt (Abfragen werden aus messages extrahiert, das Antwortanfragen nicht enthalten). Verwenden Sie /v1/chat/completions oder /v1/messages für die Websuche.

Ausführbares Responses-Beispiel:

curl https://api.subnsub.com/v1/responses \
  -H "Authorization: Bearer sk-cf-xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-mini",
    "input": "Explain exponential backoff in two sentences."
  }'

POST /v1/messages

POST/v1/messages

Anthropic-nativer Endpoint für die claude-*-Modelle — das Anthropic-SDK (anthropic-sdk-python, @anthropic-ai/sdk, claude-code) funktioniert unverändert gegen diesen Pfad. Richte deine Base-URL auf https://api.subnsub.com und authentifiziere dich über den x-api-key-Header (die Authorization-Bearer-Form funktioniert ebenfalls, falls dein Client sie bevorzugt).

ParameterTypBeschreibung
modelstringEine claude-*-Modell-ID (siehe Verfügbare Modelle). Wird hier ein OpenAI-Modell übergeben, gibt es 400 invalid_request_error zurück.
max_tokensintegerVon Anthropic erforderlich — begrenzt die Länge der Assistant-Antwort.
messagesarrayKonversationsverlauf, Anthropic-Struktur: {role, content} mit roleuser / assistant.
streambooleanWenn true, wird die standardmäßige Anthropic-SSE-Event-Sequenz zurückgegeben: message_start, content_block_delta, message_delta, message_stop.
thinkingobjectWörtlich weitergeleitet an Anthropic. Verwenden Sie {"type":"adaptive"}, sofern unterstützt; Fable 5 verwendet immer adaptives Denken, auch wenn dieses Feld weggelassen wird. Es gibt keine synthetischen -thinking-Modell-IDs.
cache_controlobjectPrompt-Caching wird unterstützt. Cache-Write-Tokens werden mit 1,25× und Cache-Read-Tokens mit 0,10× des Eingabe-Satzes des Tiers berechnet.
Hinweis Claude-Anfragen werden direkt von offiziellen Anthropic-Konten bearbeitet. Verwenden Sie die unten aufgeführten genauen offiziellen Modell-IDs.

Ausführbares Anthropic-Messages-Beispiel:

curl https://api.subnsub.com/v1/messages \
  -H "x-api-key: sk-cf-xxxxxxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 256,
    "messages": [{"role": "user", "content": "Hello"}]
  }'

POST /v1/messages/count_tokens

POST/v1/messages/count_tokens

Zählen Sie die Token eines Anthropic-formatierten Prompts vor dem Senden. Verwenden Sie dieselben Felder x-api-key, anthropic-version, model, system, messages und tools wie bei /v1/messages. Dieser Endpunkt wird nicht berechnet. Ein Suffix :online wird entfernt; Suchergebnisse werden weder abgerufen noch mitgezählt.

curl https://api.subnsub.com/v1/messages/count_tokens \
  -H "x-api-key: sk-cf-xxxxxxxxxxxx" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "messages": [{"role": "user", "content": "Count this prompt."}]
  }'

GET /v1/models

GET/v1/models

Listen Sie die Modelle auf, die Sie tatsächlich verwenden können. Das Relay überprüft den Zustand beider Upstream-Familien und gibt die 16 verifizierten öffentlichen IDs zurück – dieselbe Whitelist, die auch die POST-Endpunkte erzwingen, sodass Discovery niemals ein Modell ankündigt, das 400 wäre. Wenn der Upstream-Katalog nicht erreichbar ist, gibt der Endpunkt 502 models_unreachable anstelle einer irreführenden leeren Liste zurück.

# sample response (truncated)
{
  "object": "list",
  "data": [
    { "id": "gpt-5.4-mini",      "type": "model", ... },
    { "id": "gpt-5.4",           "type": "model", ... },
    { "id": "claude-sonnet-5",     "type": "model", ... },
    { "id": "claude-fable-5",      "type": "model", ... },
    ...
  ]
}

Kompatibilitätszusage

OpenAI-kompatibel bedeutet nicht, dass jedes Feld jedes Upstream-Modells auf jeder Route garantiert ist. Es gelten drei Supportstufen:

StatusDetail
Dokumentiert & stabilTextgenerierung über die vier obigen Endpunkte; synchrone und gestreamte Antworten; dokumentierte Reasoning-Steuerung; Anthropic-Prompt-Caching; :online für Chat Completions und Messages; Authentifizierung, Abrechnung und die dokumentierten Fehlerformate.
Durchleitung, modellabhängigTool-/Funktionsaufrufe, strikte Tools, strukturierte Ausgabe / JSON Schema, Sampling-Optionen, Stoppsequenzen, mehrteilige Inhalte (einschließlich Bilder oder Dokumente) sowie Kontext- und Ausgabelimits. Der Edge leitet diese Felder ohne lokale Validierung weiter; Unterstützung und genaue Antwortform können je nach Modell und Protokoll abweichen. Testen Sie Modell und Payload vor dem Produktionseinsatz; eine providerübergreifende Normalisierung wird nicht zugesagt.
Nicht angebotenResponses im Hintergrund; :online für Responses; OpenAI-APIs für Bilderzeugung, Audio, Realtime, Batch, Files, Embeddings und Moderation; synthetische Claude-Aliasse mit -thinking; sowie die OpenAI-Reasoning-Stufe minimal.
Tipp Behandeln Sie openapi.json zusammen mit dieser Seite als unterstützten Vertrag. Ein heute von einem Upstream akzeptiertes Feld kann dort später entfallen, ohne dadurch zu einer dauerhaften SUB&SUB-Garantie zu werden.

Verfügbare Modelle

Zwei vorgelagerte Familien. Die 7 OpenAI-Modelle leiten an gemeinsam genutzte ChatGPT-Konten weiter; Die 9 Claude-Modelle werden von offiziellen Anthropic-Konten bedient. Die Preise pro Token hängen von der Stufe ab (siehe Preise) – der gleiche Schlüssel funktioniert für beide.

OpenAI

Modell-IDFamilieTierHinweise
gpt-5.4-mini GPT-5.4Mini Schnell & günstig. Empfohlener Standard für Chat & Coding.
gpt-5.4 GPT-5.4StandardGPT-5.4 in voller Größe — langsamer, stärkeres Reasoning.
gpt-5.4-2026-03-05GPT-5.4StandardDatums-Snapshot von gpt-5.4.
gpt-5.5 GPT-5.5Premium Neueres Flaggschiff.
gpt-5.6-luna GPT-5.6Luna Leichtgewicht GPT-5.6 – zwischen Mini und Standard.
gpt-5.6-terra GPT-5.6StandardMittelgroß GPT-5.6 – gleicher Preis wie gpt-5.4.
gpt-5.6-sol GPT-5.6Premium Top GPT-5.6 – gleicher Preis wie gpt-5.5.

Anthropic

Modell-IDFamilieTierHinweise
claude-fable-5 Fable 5 Fable Anthropics leistungsfähigstes, weit verbreitetes Modell; Adaptives Denken ist immer angesagt.
claude-haiku-4-5-20251001 Haiku 4.5 Mini Kleinstes Claude — gleicher Satz pro Token wie gpt-5.4-mini.
claude-sonnet-4-5-20250929 Sonnet 4.5 StandardClaude der Mittelklasse — gleicher Satz pro Token wie gpt-5.4.
claude-sonnet-4-6 Sonnet 4.6 StandardNeueres Sonnet-Tuning — Standard-Tier, gleicher Satz wie sonnet-4.5.
claude-sonnet-5 Sonnet 5 Sonnet 5 IntroNeueste Sonnet; Der Einführungspreis gilt bis zum 31. August 2026.
claude-opus-4-5-20251101 Opus 4.5 Ultra Claude an der Spitze. Wird zu Anthropics Listenpreis abgerechnet — ohne Marge (siehe Preise).
claude-opus-4-6 Opus 4.6 Ultra Neueres Opus-Tuning.
claude-opus-4-7 Opus 4.7 Ultra Vorheriger Opus-Snapshot.
claude-opus-4-8 Opus 4.8 Ultra Neuester Opus-Snapshot.
Hinweis Der Claude-Katalog verwendet offizielle Anthropic-Modell-IDs. Prompt-Caching wird unterstützt: Der Cache schreibt die Rechnung mit dem 1,25-fachen und liest mit dem 0,10-fachen der Eingaberate der Stufe (siehe Preise).
Fable Ablehnungen Fable 5 Sicherheitsklassifikatoren können HTTP 200 mit stop_reason: "refusal" und einem leeren Inhaltsarray zurückgeben. Clients sollten auf den Status stop_reason verzweigen, nicht nur auf den Status HTTP, und die Anfrage mit claude-opus-4-8 erneut versuchen. Über die OpenAI-Protokollendpunkte wird das gleiche Ergebnis angezeigt wie finish_reason: "content_filter" (Chat/Abschlüsse) oder status: "incomplete" mit incomplete_details.reason: "content_filter" (Antworten). Rechtzeitige Ablehnungen werden nicht von Ihrem Guthaben abgezogen; eine Mid-Stream-Ablehnung nach Teilleistung wird normal abgerechnet.
Nicht verfügbar Nicht mehr verfügbare OpenAI-IDs (gpt-5.2* und gpt-5.3-codex*), der bloße Alias ​​gpt-5.6 (verwenden Sie die oben genannten Varianten), OpenAI Pro-/Bild-/Audio-/Echtzeitvarianten, Punktnotations-IDs (z. B. claude-sonnet-4.5) und synthetische -thinking-Modell-IDs sind nicht verfügbar. Verwenden Sie die genauen IDs oben und das native Feld thinking von Anthropic.

Reasoning-Aufwand

Jedes oben genannte OpenAI-Modell ist ein Argumentationsmodell – das Backend kann mehr oder weniger „Denk“-Tokens ausgeben, bevor es sichtbare Ausgaben ausgibt. Legen Sie reasoning_effort für den Anforderungstext OpenAI /v1/chat/completions (oder reasoning: {"effort": ...} für /v1/responses) fest, um das Budget zu kontrollieren. Verwenden Sie für Claude die Anthropic-nativen Felder thinking und output_config.effort – siehe Abschnitt /v1/messages. Die OpenAI-Modelle akzeptieren die gleichen fünf Aufwandswerte:

WertVerhalten
none Kein Denken — direkt zur Antwort. Am günstigsten und schnellsten.
low Ein kurzer Reasoning-Durchlauf.
medium Standard, wenn du das Feld nicht übergibst. Ausgewogen.
high Tieferes Reasoning. Empfohlen für nicht-triviales Coding / mehrstufige Probleme.
xhigh Maximaler Aufwand. Am langsamsten und teuersten; reserviere ihn für schwierige Analysen, bei denen du ihn wirklich brauchst.
# Two equivalent forms — pick whichever your SDK supports
{
  "model": "gpt-5.4-mini",
  "reasoning_effort": "high",
  "messages": [ ... ]
}

{
  "model": "gpt-5.5",
  "reasoning": { "effort": "xhigh" },
  "messages": [ ... ]
}
Kosten Denk-Tokens zählen für die Abrechnung als Ausgabe-Tokens — höherer Aufwand = mehr Ausgabe-Tokens = eine höhere Rechnung beim selben Prompt. Der Satz pro Token ändert sich nicht.
Hinweis Das OpenAI-Protokoll definiert auch 'minimal', aber die Modelle auf diesem Relay lehnen es ab: "'minimal' is not supported with this model". Bleib bei den fünf Werten oben.

Streaming

Setze "stream": true, um Server-Sent Events zu empfangen. Der letzte Chunk trägt einen usage-Block (wir erzwingen stream_options.include_usage upstream, sodass Token-Zählungen immer ausgegeben werden), danach schließt ein wörtliches data: [DONE] den Stream.

# Streaming format (line by line)
data: {"id":"resp_...","choices":[{"delta":{"content":"Hi"}}]}

data: {"id":"resp_...","choices":[{"delta":{"content":"!"}}]}

data: {"id":"resp_...","choices":[],"usage":{"prompt_tokens":18,"completion_tokens":11,"total_tokens":29}}

data: [DONE]

Ausführbares Python-Streaming-Beispiel:

from openai import OpenAI

client = OpenAI(
    api_key="sk-cf-xxxxxxxxxxxx",
    base_url="https://api.subnsub.com/v1",
)

stream = client.chat.completions.create(
    model="gpt-5.4-mini",
    messages=[{"role": "user", "content": "Hello"}],
    stream=True,
)
for chunk in stream:
    text = chunk.choices[0].delta.content if chunk.choices else None
    if text:
        print(text, end="", flush=True)

Hänge :online an eine beliebige vom Endpoint unterstützte Modell-ID an, und der Relay führt vor dem Weiterleiten an das Modell eine Websuche durch und stellt die Ergebnisse der Konversation voran, damit die Antwort auf frischen Daten basiert. Der Suffix funktioniert auf /v1/chat/completions und /v1/messages (Letzteres erfordert weiterhin eine claude-*-Basis); es sind keine suchspezifischen Request-Felder erforderlich.

# Same call as before — just :online on the model
curl https://api.subnsub.com/v1/chat/completions \
  -H "Authorization: Bearer sk-cf-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.4-mini:online",
    "messages": [
      {"role": "user", "content": "What did Anthropic ship this week?"}
    ]
  }'

So funktioniert es: Der Relay entfernt :online, nimmt die jüngste User-Nachricht als Query (auf 400 Zeichen begrenzt), ruft Tavily für bis zu 3 Ergebnisse mit extrahiertem Seitentext (falls verfügbar) auf, plus eine optionale von Tavily generierte Zusammenfassung, und stellt sie dann demselben User-Turn als klar abgegrenzten <search_results>-Block voran, bevor die Anfrage upstream gesendet wird. Der Suchaufruf hat einen Timeout von 8 Sekunden. Die Ergebnisse werden bewusst in die User-Rolle eingefügt — niemals in den System-Prompt — sodass nicht vertrauenswürdige Snippets nicht auf System-Priorität angehoben werden können.

Der <search_results>-Block sieht so aus. Ihm geht eine einzeilige Anweisung voraus, die das Modell anweist, den Block als nicht vertrauenswürdige externe Daten zu behandeln und nummerierte Einträge inline zu zitieren:

<search_results query="What did Anthropic ship this week?" retrieved="2026-05-21">
Summary: <short LLM-generated synthesis of the result set>

[1] Anthropic launches Opus 4.8
URL: https://www.anthropic.com/news/opus-4-8
<extracted page text, or short snippet if extraction failed — up to ~2000 chars>

[2] ...
</search_results>
VerhaltenDetail
KostenHeute kein Aufschlag — du zahlst den normalen Satz des Modells pro Token; der Relay übernimmt den Suchaufruf. Der eingefügte <search_results>-Block zählt jedoch als Eingabe-Tokens, rechne also mit einer höheren Prompt-Token-Rechnung als bei derselben Frage ohne :online.
FehlerverhaltenWeich. Wenn Tavily einen Timeout hat oder Fehler liefert, läuft die Anfrage ohne Suchkontext weiter zum Modell (du bekommst trotzdem eine Antwort, nur ohne Fundierung). Der einzige harte Fehler ist 503 search_unavailable, wenn die Suche auf dem Relay gar nicht konfiguriert ist.
count_tokens/v1/messages/count_tokens entfernt den Suffix, ruft aber nie Tavily auf — die Zählung spiegelt deinen ursprünglichen Prompt wider, nicht den erweiterten.
Mehrere TurnsNur der letzte User-Turn wird abgefragt & erweitert; frühere Turns bleiben unberührt. Um erneut zu suchen, sende eine neue User-Nachricht, während :online weiterhin am Modell hängt.

Wann :online verwenden

Der Relay macht einen einzigen Tavily-Aufruf pro Anfrage und fügt die Ergebnisse ein — es ist keine agentische Suchschleife. Das Modell entscheidet nicht anhand des Gesehenen, erneut zu suchen, wie es Perplexity Sonar oder das Browse-Tool von ChatGPT tun. Plane diese Einschränkung ein:

Gut geeignetSchlecht geeignet
Zeitkritische Fakten (Nachrichten, Preise, Versionsnummern, Release-Daten)Privater oder eingefügter Code, der nicht im öffentlichen Web steht — fügt Prompt-Rauschen hinzu ohne Fundierung
Ein offizielles Dokument oder eine Ankündigung findenMathematik, Reasoning, Übersetzung, kreatives Schreiben — nichts zum Fundieren
Alles, was du sonst per Google verifizieren würdestStabiles Wissen, das bereits in den Trainingsdaten steckt ("was ist ein Binärbaum")

Formuliere die letzte User-Nachricht als eigenständige Suchanfrage. Die Suche läuft gegen den wörtlichen Text deines jüngsten User-Turns (auf 400 Zeichen begrenzt), sodass konversationelle Rückfragen wie "und was ist mit der neuesten Version?" zu nutzlosen Queries ohne Kontext werden. Wiederhole in einem Mehrturn-Chat das Thema, wenn du :online hinzufügst — z. B. "neueste Version des Anthropic Python SDK" statt "die neueste".

Für Fragen, die mehrstufige Synthese brauchen (Vergleichen-und-Gegenüberstellen, tiefe Recherche), zerlege sie in mehrere Turns und füge jedem :online hinzu. Das Modell liest die frischen Ergebnisse jedes Turns; du steuerst die nächste Query manuell. Beachte, dass der eingefügte <search_results>-Block nur upstream gesendet wird — er wird nicht an deinen Client zurückgespiegelt und nicht in die nächste Anfrage übernommen. Wenn also ein späterer Turn von Details früherer Quellen abhängt, bitte das Modell, sie in seiner sichtbaren Antwort zusammenzufassen. Ein One-Shot-Recherchemodus wird nicht unterstützt.

Tipp Kombiniere es mit hohem Reasoning-Aufwand (reasoning_effort: "high"), damit das Modell die zurückgegebenen Quellen tatsächlich abwägt, statt sich auf das erste Ergebnis zu verlassen. Die eingefügte Anweisung bittet das Modell, nummerierte Quellen als [1], [2] inline zu zitieren, sodass die Ausgabe meist solche Zitate trägt — auch wenn das Modell nicht streng an dieses Format gebunden ist.

Fehler

Der Umschlag hängt davon ab, welchen Endpoint du aufgerufen hast — der Relay gibt Fehler im Protokoll zurück, das zum SDK des Aufrufers passt, und Upstream-Fehler werden wörtlich durchgereicht.

OpenAI-Pfade (/v1/chat/completions, /v1/responses, /v1/models) — OpenAI-Umschlag:

{ "error": { "message": "...", "type": "...", "code": "..." } }

Anthropic-Pfade (/v1/messages, /v1/messages/count_tokens) — Anthropic-Umschlag:

{ "type": "error", "error": { "type": "...", "message": "..." } }

Der Anthropic-Umschlag verwendet eine andere Struktur — kein code-Feld, und der Diskriminator type: "error" steht auf oberster Ebene (wobei das innere error.type die Kategorie angibt, z. B. authentication_error, invalid_request_error, permission_error, api_error). Anthropic-SDKs parsen diese Struktur bereits; gewöhnliche OpenAI-SDK-Fehlerhandler tun das nicht, rufe /v1/messages also mit einem Anthropic-SDK auf (oder nutze rohes HTTP).

Die Statuscodes sind über beide Protokolle hinweg die kanonischen HTTP-Codes:

StatusOpenAI code / Anthropic error.typeBedeutung
401invalid_api_key / authentication_errorFehlender oder unbekannter sk-cf-...-Key.
402insufficient_balance / permission_errorDas Konto-Guthaben ist negativ. Lade im Abrechnungs-Tab der Konsole auf.
403key_revoked / permission_errorDer Key wurde widerrufen.
403account_closed / permission_errorDas Konto ist nicht für den API-Zugriff aktiviert – Anmeldungen nach der Dienstunterbrechung am 08.06.2026 umfassen den API-Dienst nicht.
400model_not_available / invalid_request_errorDas model, das du gesendet hast, steht nicht im verifizierten Katalog oder ist falsch für den Endpoint (z. B. ein OpenAI-Modell auf /v1/messages) — prüfe Verfügbare Modelle.
400unsupported_background_mode / —background: true auf /v1/responses – das Relay bedient nur synchrone Läufe. Nur Umschlag OpenAI.
429rate_limit_exceeded / rate_limit_errorDie gemeinsame Upstream-Kapazität wird vorübergehend gedrosselt. Beachten Sie retry-after, falls vorhanden, und wiederholen Sie dann mit exponentiellem Backoff und Jitter.
503Derzeit bedient kein Upstream-Account die Anfrage — meist ein vorübergehendes poolweites Rate-Limit-Fenster. Nach kurzem Backoff erneut versuchen.
503search_unavailable / api_errorDu hast :online verwendet, aber die Websuche ist auf diesem Relay nicht konfiguriert. Siehe Websuche.
502upstream_unreachable / api_errorDer Relay konnte das Backend nicht erreichen. Wiederhole nach kurzem Backoff.
500server_error / api_errorDas Relay ist vor oder nach dem Kontakt zum Upstream fehlgeschlagen. Wiederholen Sie nur, wenn der Vorgang sicher wiederholbar ist; prüfen Sie andernfalls zuerst den Nutzungsverlauf.

Wiederholungen & Zuverlässigkeit

Verwenden Sie begrenzte Wiederholungen. Das Relay nutzt gemeinsame Upstream-Kapazität, und Generierungsanfragen sind nicht idempotent.

Preise & Abrechnung

Pay-as-you-go, abgerechnet pro Token in Mikrodollar (1 Mikro = $0,000001 = 1/10.000 Cent), sodass Anfragen unter einem Cent genau erfasst werden. Die Sätze gelten pro 1M Tokens, nach Tier — siehe die Modelltabelle, welchem Tier jedes Modell zugeordnet ist.

TierModelleEingabe / 1MAusgabe / 1M
Mini gpt-5.4-mini, claude-haiku-4-5-20251001 $0.20$1.60
Luna gpt-5.6-luna $0.30$2.40
Standardgpt-5.4, gpt-5.4-2026-03-05, gpt-5.6-terra, claude-sonnet-4-5-20250929, claude-sonnet-4-6$0.75$6.00
Premium gpt-5.5, gpt-5.6-sol $1.10$8.80
Sonnet 5 Introclaude-sonnet-5 $2.00$10.00
Ultra claude-opus-4-5-20251101, claude-opus-4-6, claude-opus-4-7, claude-opus-4-8$5.00$25.00
Fable claude-fable-5 $10.00$50.00

Die Preise für Fable und Ultra entsprechen den veröffentlichten Listenpreisen von Anthropic. Sonnet 5 nutzt bis zum 31. August 2026 den Einführungspreis von 2 $/10 $ von Anthropic; Der nach diesem Datum veröffentlichte Standardpreis beträgt 3 $/15 $. Die anderen Stufen liegen dank der gebündelten Abonnementunterstützung unter den Upstream-Tarifen.

Reasoning-Tokens (wenn Sie reasoning_effort auf OpenAI oder das native thinking-Feld von Anthropic auf Claude festlegen) zählen als Output-Tokens zum Stufensatz des Modells – es gibt keinen gesonderten Aufpreis für hohen Aufwand, aber eine Deep-Thinking-Anfrage kann leicht 10–50-mal mehr Output erzeugen Tokens als eins ohne Aufwand, so dass der Dollarschein mit ihm skaliert.

Anthropic-Prompt-Caching wird als separater Posten abgerechnet: Cache-Writes mit 1,25× und Cache-Reads mit 0,10× des Eingabe-Satzes des Tiers. Ein haiku-4.5-Cache-Hit kostet also 0.20 × 0.10 = $0.02 per 1M tokens, und ein sonnet-4.5-Cache-Hit kostet 0.75 × 0.10 = $0.075 per 1M tokens. Cache-Tokens werden pro Anfrage einzeln in der Abrechnung erfasst — die Konsole zeigt die Aufschlüsselung.

Das Guthaben wird in Echtzeit abgezogen, sobald jede Anfrage zurückkehrt — bei Streaming-Anfragen läuft die Abrechnung, nachdem der [DONE]-Chunk eingetroffen ist. Sieh dir dein Live-Guthaben und die Abrechnungen pro Anfrage unter /console#billing an.

Aufladen Die Konsole unterstützt Stripe Checkout — Karte, Link, Alipay, WeChat Pay. Credits verfallen nie.

Rate-Limits

Heute keine Rate-Limits pro Key. Gemeinsame Upstream-Kapazität und anbieterseitiges Throttling gelten weiterhin; wenn du an diese stößt, gibt der Relay 429 mit einem retry-after-Header zurück. Limits für RPM / TPM pro Key sind geplant.

Status & Support

Dokumentation zuletzt geprüft: 14. Juli 2026.