OpenAI-kompatible API von Amazon Bedrock: Base URL, Authentifizierung, Modelle und Code (2026)
Ja. Amazon Bedrock bietet eine OpenAI-kompatible API. Richten Sie das OpenAI SDK auf https://bedrock-runtime.{region}.amazonaws.com/openai/v1 aus, authentifizieren Sie sich mit einem Bedrock-API-Key (oder AWS SigV4) und übergeben Sie eine Bedrock-Modell-ID wie openai.gpt-oss-120b-1:0. Auf diese Weise stellt Bedrock sowohl die Chat Completions API als auch die Responses API bereit. AWS empfiehlt für neue Anwendungen den Endpoint bedrock-runtime und behält bedrock-mantle als Kompatibilitätsoption bei. Ein Haken: bedrock-runtime implementiert GET /models nicht. Alle Angaben stammen aus der offiziellen Bedrock-Dokumentation zu Chat Completions, geprüft am 20. Oktober 2026.
Dieser Leitfaden behandelt beide Endpoints, die zwei API-Key-Typen, Modell-IDs, Code für curl, Python und Node, Guardrails, Preise, die Fehler, auf die Sie stoßen werden, und wann Bedrock besser passt als ein Multi-Provider-Gateway.
Kurzübersicht
| Punkt | Wert (Stand: 20. Oktober 2026) |
|---|---|
| Empfohlene Base URL | https://bedrock-runtime.{region}.amazonaws.com/openai/v1 |
| Kompatibilitäts-Base-URL | https://bedrock-mantle.{region}.api.aws/v1 (manche Modelle nutzen /openai/v1) |
| Unterstützte OpenAI-APIs | Chat Completions, Responses (je nach Modell) sowie die Anthropic Messages API |
| Authentifizierung | Bedrock-API-Key als Authorization: Bearer … oder AWS SigV4 |
| Beispiel-Modell-IDs | openai.gpt-oss-120b-1:0, openai.gpt-oss-20b-1:0, global.openai.gpt-5.6-sol |
Modelle über /models auflisten |
Nur auf bedrock-mantle. Auf bedrock-runtime ListFoundationModels verwenden |
| Regionaler Geltungsbereich | Keys und Endpoints sind regional |
Quellen: Chat Completions API, Inferenz-Endpoints, Schnellstart.
bedrock-runtime oder bedrock-mantle: welcher Endpoint?
Laut AWS „nutzen beide Endpoints dieselbe zugrunde liegende Mantle-Inferenz-Engine“. Der Name bezeichnet eine Endpoint-Oberfläche, keine andere Engine. Unterschiede gibt es bei den Funktionen:
bedrock-runtime (empfohlen) |
bedrock-mantle (Kompatibilität) |
|
|---|---|---|
| Base URL | bedrock-runtime.{region}.amazonaws.com/openai/v1 |
bedrock-mantle.{region}.api.aws/v1 |
| APIs | InvokeModel, Converse, Chat Completions, Responses, Messages | Chat Completions, Responses, Messages |
GET /models |
Nicht implementiert (404 UnknownOperationException) |
Unterstützt |
| Guardrails, intelligentes Prompt-Routing, regionsübergreifende Inferenz | Ja | Modellkarte prüfen |
| Serverseitige Tools (z. B. Websuche), Hintergrund-Inferenz, Projects, Workspaces | Nein | Ja |
| Kontingente | Modellbezogene Kontingente für diesen Endpoint | Separate modellbezogene Kontingente |
Faustregel von AWS: Starten Sie mit bedrock-runtime. Wechseln Sie nur zu bedrock-mantle, wenn ein benötigtes Modell oder Feature ausschließlich dort verfügbar ist. Auf bedrock-mantle hängt das Pfadpräfix vom Modell ab. Eine Anfrage mit falschem Präfix schlägt mit „model … isn't supported on this route“ fehl – prüfen Sie daher die Tabelle Programmatic Access auf der Modellkarte.
Authentifizierung: Bedrock-API-Keys oder SigV4
Mit Bedrock-API-Keys kann sich das OpenAI SDK per Bearer-Token authentifizieren, statt Anfragen mit AWS-Anmeldedaten zu signieren (Dokumentation zu API-Keys, 20. Oktober 2026):
| Key-Typ | Gültigkeit | Grundlage | AWS-Empfehlung |
|---|---|---|---|
| Kurzfristig | Bis zu 12 Stunden (oder Sitzungsdauer) | Berechtigungen des IAM-Principals, der ihn erzeugt hat | Produktion |
| Langfristig | Bis zum konfigurierten Ablauf | Ein eigener IAM-Benutzer mit angehängten Richtlinien | Nur zum Ausprobieren |
Praxishinweise:
- Erzeugen Sie kurzfristige Keys im Code mit
pip install aws-bedrock-token-generator(Python) odernpm install @aws/bedrock-token-generator(Node) und rufen Sie den Provider vor jeder Anfrage auf. Solange das Token gültig ist, liefert er die zwischengespeicherte Version. - Langfristige Keys funktionieren nur in der Region, in der sie erstellt wurden. Ein regionsübergreifender Aufruf scheitert mit
Credential should be scoped to a valid region. - Schränken Sie die Key-Nutzung mit den IAM-Aktionen
bedrock:CallWithBearerTokenundbedrock-mantle:CallWithBearerTokenein. - API-Aufrufe werden in CloudTrail protokolliert. Die Keys selbst nicht.
- Mit boto3 erfordert die Variable
AWS_BEARER_TOKEN_BEDROCKboto3 1.39.0 oder neuer (Schnellstart).
Code: Bedrock mit dem OpenAI SDK aufrufen
curl (API-Key)
export OPENAI_API_KEY="<bedrock-api-key>"
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{"model": "openai.gpt-oss-120b-1:0",
"messages": [{"role": "user", "content": "Hello from Bedrock"}]}'
curl (SigV4, ohne API-Key)
curl -X POST "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1/chat/completions" \
-H "Content-Type: application/json" \
--aws-sigv4 "aws:amz:us-east-1:bedrock" \
--user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
-d '{"model": "openai.gpt-oss-120b-1:0", "messages": [{"role": "user", "content": "Hello"}]}'
Python mit automatisch erneuerten kurzfristigen Keys
from aws_bedrock_token_generator import provide_token # pip install aws-bedrock-token-generator openai
from openai import OpenAI
REGION = "us-east-1"
def bedrock_client() -> OpenAI:
# provide_token() returns a cached token or mints a fresh short-term key (<= 12h)
return OpenAI(base_url=f"https://bedrock-runtime.{REGION}.amazonaws.com/openai/v1",
api_key=provide_token())
r = bedrock_client().chat.completions.create(
model="openai.gpt-oss-120b-1:0",
messages=[{"role": "user", "content": "Explain Bedrock API keys in one sentence."}],
)
print(r.choices[0].message.content, r.usage)
Node.js
import OpenAI from "openai";
import { getTokenProvider } from "@aws/bedrock-token-generator";
const provideToken = getTokenProvider();
const client = new OpenAI({
baseURL: "https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1",
apiKey: await provideToken(),
});
const r = await client.chat.completions.create({
model: "openai.gpt-oss-20b-1:0",
messages: [{ role: "user", content: "Name two Bedrock endpoints." }],
});
console.log(r.choices[0].message.content);
Modelle auflisten
client.models.list() liefert auf bedrock-runtime einen 404-Fehler. Nutzen Sie entweder aws bedrock list-foundation-models --region us-east-1 oder richten Sie das SDK auf bedrock-mantle aus, um Modelle aufzulisten:
curl -s "https://bedrock-mantle.us-east-1.api.aws/v1/models" -H "Authorization: Bearer $OPENAI_API_KEY"
Einen Bedrock Guardrail zu einer Anfrage im OpenAI-Stil hinzufügen
Guardrails werden als zusätzliche Header übergeben. Ein optionales Feld im Body aktiviert das Tagging der Eingabe:
r = bedrock_client().chat.completions.create(
model="openai.gpt-oss-20b-1:0",
messages=[{"role": "user", "content": "What is the weather like today?"}],
extra_headers={
"X-Amzn-Bedrock-GuardrailIdentifier": "GR12345",
"X-Amzn-Bedrock-GuardrailVersion": "DRAFT",
"X-Amzn-Bedrock-Trace": "ENABLED",
},
extra_body={"amazon-bedrock-guardrailConfig": {"tagSuffix": "xyz"}},
)
Die Header-Namen stammen aus dem offiziellen Guardrail-Beispiel.
Welche Modelle funktionieren mit der OpenAI-kompatiblen API?
Die API-Unterstützung hängt vom Modell und vom Endpoint ab, prüfen Sie also jede Modellkarte (API-Kompatibilitätstabelle). Beispiele aus der AWS-Dokumentation, Stand 20. Oktober 2026:
| Modell | Chat Completions auf runtime | Responses auf runtime | Hinweise |
|---|---|---|---|
openai.gpt-oss-120b-1:0 / -20b-1:0 |
Ja | Nein (Responses nur auf mantle) | GPT OSS mit offenen Gewichten |
global.openai.gpt-5.6-sol |
Ja | Ja | Im AWS-Schnellstart gezeigt, globales Inferenzprofil |
| GPT-6-Familie, GPT-5.x | Laut Modellkarte | Laut Modellkarte | Im OpenAI-Abschnitt der Kompatibilitätstabelle aufgeführt |
| Anthropic Claude | Messages API (/anthropic) verwenden |
n/a | ANTHROPIC_BASE_URL=https://bedrock-runtime.{region}.amazonaws.com/anthropic |
Bedrock-Preise für OpenAI-kompatible Aufrufe
Sie zahlen den normalen Bedrock-Tokenpreis für das Modell. Für die OpenAI-kompatible Schnittstelle fällt kein Aufschlag an. Beispiele von der Bedrock-Preisseite, 20. Oktober 2026, pro 1 Mio. Tokens:
| Modell | Region | Input | Output |
|---|---|---|---|
| gpt-oss-20b | Asien-Pazifik (Sydney) | $0.0721 | $0.3090 |
| gpt-oss-120b | Asien-Pazifik (Sydney) | $0.1545 | $0.6180 |
| GPT OSS Safeguard 20B | USA Ost/West | $0.07 | $0.20 |
| GPT OSS Safeguard 120B | USA Ost/West | $0.15 | $0.60 |
Die Preise variieren je nach Region, außerdem bietet Bedrock die Stufen Priority, Flex und Batch. Den genauen Preis zeigt die Regionsauswahl auf der Preisseite.
Häufige Fehler und Lösungen
| Fehler | Ursache | Lösung |
|---|---|---|
404 UnknownOperationException bei /models |
bedrock-runtime implementiert die Models API nicht |
ListFoundationModels nutzen oder /models auf bedrock-mantle aufrufen |
model … isn't supported on this route |
Falsches Pfadpräfix auf bedrock-mantle |
Auf der Modellkarte /v1 oder /openai/v1 prüfen |
Credential should be scoped to a valid region |
Langfristiger Key außerhalb seiner Region verwendet | Key in der Zielregion erzeugen |
Unable to locate credentials |
boto3 vor 1.39.0 ignoriert AWS_BEARER_TOKEN_BEDROCK |
pip install --upgrade boto3 |
| Responses API für GPT OSS nicht unterstützt | GPT OSS unterstützt Responses nur auf bedrock-mantle |
Chat Completions nutzen oder Endpoint wechseln |
AccessDenied |
Fehlender Modellzugriff oder CallWithBearerToken verweigert |
Modellzugriff aktivieren und IAM-Richtlinien prüfen |
Bedrock vs. OpenAI direkt vs. Multi-Provider-Gateway
| Anforderung | Bedrock OpenAI-kompatibel | Direkte Provider-API | Multi-Provider-Gateway (z. B. Flatkey) |
|---|---|---|---|
| Im AWS-Konto mit IAM und CloudTrail bleiben | Am besten | Nein | Nein |
| AWS-Guthaben oder Enterprise-Discount-Program-(EDP-)Zusagen nutzen | Ja | Nein | Nein |
| Guardrails und VPC-nahe Kontrollen | Ja | Providerabhängig | Gatewayabhängig |
| Neuestes Modell am Tag des Launches | Je nach Modell | Meist zuerst | Unterschiedlich |
| Ein Key für OpenAI, Anthropic, Google, Alibaba, DeepSeek, Moonshot, Zhipu | Nur auf Bedrock gehostete Modelle | Nein | Ja |
| Regionale Key-Verwaltung | Erforderlich | Nein | Nein |
Wenn Sie voll auf AWS setzen, ist die OpenAI-kompatible API von Bedrock die sauberste Lösung. Brauchen Sie auch Modelle, die Bedrock nicht hostet, behalten Sie denselben OpenAI-SDK-Code und tauschen nur die Base URL. Mit Flatkey erreicht ein einziger Key unter https://router.flatkey.ai/v1 GPT, Claude, Gemini, Qwen, DeepSeek, Kimi und GLM:
import os
from openai import OpenAI
ROUTES = {
"bedrock": OpenAI(base_url="https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1",
api_key=os.environ["AWS_BEARER_TOKEN_BEDROCK"]),
"flatkey": OpenAI(base_url="https://router.flatkey.ai/v1",
api_key=os.environ["FLATKEY_API_KEY"]),
}
def ask(route, model, prompt):
r = ROUTES[route].chat.completions.create(model=model, messages=[{"role": "user", "content": prompt}])
return r.choices[0].message.content
print(ask("bedrock", "openai.gpt-oss-120b-1:0", "hi"))
print(ask("flatkey", "qwen3.8-max", "hi")) # same SDK, different provider
print(ask("flatkey", "claude-sonnet-5-5", "hi"))
Stand 20. Oktober 2026 nennt die Seite gpt-6-sol bei Flatkey $1.20 Input und $6.00 Output pro 1 Mio. Tokens – ein Aktionspreis gegenüber dem Listenpreis von $2 / $10. Vergleichen Sie ihn mit Ihrem Bedrock-Preis für dasselbe Modell. Weiterlesen: Base URLs für OpenAI-kompatible APIs, direkte Provider-Konten vs. AI-API-Gateway und Checkliste für Enterprise-AI-API-Gateways.
Migrations-Checkliste: von einer OpenAI-App zu Bedrock
- Region wählen und Modellzugriff in der Bedrock-Konsole bestätigen.
OPENAI_BASE_URLdurchhttps://bedrock-runtime.{region}.amazonaws.com/openai/v1ersetzen.- Den Key durch einen Provider für kurzfristige Bedrock-API-Keys ersetzen. Keine langfristigen Keys in Produktion einsetzen.
- Modellnamen auf Bedrock-IDs abbilden, etwa
gpt-oss-120b→openai.gpt-oss-120b-1:0. - Aufrufe von
client.models.list()entfernen oder aufbedrock-mantleverlagern. - Streaming, Tool-Aufrufe und strukturierte Ausgabe je Modellkarte testen.
- Guardrail-Header dort ergänzen, wo Richtlinien sie verlangen.
- Kontingente des gewählten Endpoints prüfen (Umgang mit Rate Limits).
- Ausgaben pro Modell und Team verfolgen (Kostenzuordnung).
FAQ
Unterstützt Amazon Bedrock die OpenAI API?
Ja. Bedrock implementiert die OpenAI Chat Completions und Responses APIs unter https://bedrock-runtime.{region}.amazonaws.com/openai/v1. Bestehender OpenAI-SDK-Code funktioniert also, wenn Sie Base URL, API-Key und Modell-ID ändern.
Wie lautet die OpenAI-kompatible Base URL von Bedrock?
Empfohlen ist https://bedrock-runtime.{region}.amazonaws.com/openai/v1, zum Beispiel https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1. Der Kompatibilitäts-Endpoint ist https://bedrock-mantle.{region}.api.aws/v1.
Wie authentifiziere ich das OpenAI SDK bei Bedrock?
Verwenden Sie einen Amazon-Bedrock-API-Key als api_key; er wird als Authorization: Bearer gesendet. AWS empfiehlt für die Produktion kurzfristige Keys (bis zu 12 Stunden). SigV4-Signaturen funktionieren auf bedrock-runtime ebenfalls.
Warum schlägt models.list() bei Bedrock fehl?
Der Endpoint bedrock-runtime implementiert die OpenAI-Operation GET /models nicht und liefert 404 UnknownOperationException. Nutzen Sie ListFoundationModels oder rufen Sie /models auf bedrock-mantle auf.
Kann ich GPT OSS mit der Responses API auf Bedrock nutzen?
Nicht auf bedrock-runtime. Dort unterstützt GPT OSS Chat Completions; die Responses API für GPT OSS gibt es nur auf bedrock-mantle.
Kostet der OpenAI-kompatible Endpoint extra?
AWS nennt keine separate Gebühr für die Schnittstelle. Sie zahlen den regulären Bedrock-Tokenpreis des Modells für Ihre Region und Stufe.
Fazit
Um das OpenAI SDK auf AWS zu nutzen, setzen Sie die Base URL auf bedrock-runtime.{region}.amazonaws.com/openai/v1, verwenden kurzfristige Bedrock-API-Keys, bilden Ihre Modell-IDs ab und verzichten auf models.list(). Braucht Ihr Stack auch Modelle außerhalb von Bedrock, funktioniert dasselbe SDK-Muster mit einem einzigen Key über den Flatkey-Router.
Zuletzt aktualisiert: 20. Oktober 2026 · Flatkey Team. Die Angaben stammen aus der im Text verlinkten offiziellen AWS-Dokumentation.


