Architecture des passerelles IA20 octobre 2026Flatkey Team

API compatible OpenAI d'Amazon Bedrock : URL de base, authentification, modèles et code (2026)

Comment appeler Amazon Bedrock avec le SDK OpenAI : choix du endpoint, clés API courte et longue durée, ID de modèles, code curl/Python/Node, Guardrails, tarifs et correction des erreurs courantes.

API compatible OpenAI d'Amazon Bedrock : URL de base, authentification, modèles et code (2026)

Oui. Amazon Bedrock propose une API compatible OpenAI. Pointez le SDK OpenAI vers https://bedrock-runtime.{region}.amazonaws.com/openai/v1, authentifiez-vous avec une clé API Bedrock (ou AWS SigV4) et indiquez un ID de modèle Bedrock comme openai.gpt-oss-120b-1:0. Bedrock sert ainsi les API Chat Completions et Responses. AWS recommande le endpoint bedrock-runtime pour les nouvelles applications et conserve bedrock-mantle comme option de compatibilité. Attention : bedrock-runtime n'implémente pas GET /models. Toutes les informations proviennent de la documentation officielle Chat Completions de Bedrock, vérifiée le 20 octobre 2026.

Ce guide couvre les deux endpoints, les deux types de clés API, les ID de modèles, du code curl, Python et Node, les Guardrails, les tarifs, les erreurs que vous rencontrerez et les cas où Bedrock convient mieux qu'une passerelle multi-fournisseurs.

Référence rapide

Élément Valeur (au 20 octobre 2026)
URL de base recommandée https://bedrock-runtime.{region}.amazonaws.com/openai/v1
URL de base de compatibilité https://bedrock-mantle.{region}.api.aws/v1 (certains modèles utilisent /openai/v1)
API OpenAI prises en charge Chat Completions, Responses (selon le modèle), ainsi que l'API Messages d'Anthropic
Authentification Clé API Bedrock en Authorization: Bearer …, ou AWS SigV4
Exemples d'ID de modèles openai.gpt-oss-120b-1:0, openai.gpt-oss-20b-1:0, global.openai.gpt-5.6-sol
Lister les modèles via /models Uniquement sur bedrock-mantle. Sur bedrock-runtime, utilisez ListFoundationModels
Portée régionale Les clés et les endpoints sont régionaux

Sources : API Chat Completions, Endpoints d'inférence, Démarrage rapide.

bedrock-runtime ou bedrock-mantle : quel endpoint choisir

Selon AWS, les deux endpoints « utilisent le même moteur d'inférence Mantle sous-jacent ». Le nom désigne une surface d'endpoint, pas un moteur différent. Les fonctionnalités, elles, diffèrent :

bedrock-runtime (recommandé) bedrock-mantle (compatibilité)
URL de base bedrock-runtime.{region}.amazonaws.com/openai/v1 bedrock-mantle.{region}.api.aws/v1
API InvokeModel, Converse, Chat Completions, Responses, Messages Chat Completions, Responses, Messages
GET /models Non implémenté (404 UnknownOperationException) Pris en charge
Guardrails, routage intelligent des prompts, inférence interrégionale Oui Voir la fiche du modèle
Outils côté serveur (par exemple recherche web), inférence en arrière-plan, Projects, Workspaces Non Oui
Quotas Quotas par modèle pour ce endpoint Quotas par modèle distincts

Règle empirique d'AWS : commencez par bedrock-runtime. Passez à bedrock-mantle uniquement si un modèle ou une fonctionnalité dont vous avez besoin n'existe que là. Sur bedrock-mantle, le préfixe du chemin varie selon le modèle. Une requête avec le mauvais préfixe échoue avec « model … isn't supported on this route » : vérifiez donc le tableau Programmatic Access de la fiche du modèle.

Authentification : clés API Bedrock ou SigV4

Les clés API Bedrock permettent au SDK OpenAI de s'authentifier avec un jeton bearer au lieu de signer les requêtes avec des identifiants AWS (documentation des clés API, 20 octobre 2026) :

Type de clé Durée de vie Adossée à Recommandation AWS
Courte durée Jusqu'à 12 heures (ou la durée de la session) Autorisations du principal IAM qui l'a générée Production
Longue durée Jusqu'à l'expiration configurée Un utilisateur IAM dédié avec des stratégies attachées Exploration uniquement

Conseils pratiques :

  • Générez des clés de courte durée dans le code avec pip install aws-bedrock-token-generator (Python) ou npm install @aws/bedrock-token-generator (Node), et appelez le fournisseur avant chaque requête. Il renvoie un jeton en cache tant que celui-ci est valide.
  • Les clés de longue durée ne fonctionnent que dans la région où elles ont été créées. Un appel vers une autre région échoue avec Credential should be scoped to a valid region.
  • Restreignez l'usage des clés avec les actions IAM bedrock:CallWithBearerToken et bedrock-mantle:CallWithBearerToken.
  • Les appels API sont journalisés dans CloudTrail. Les clés elles-mêmes ne le sont pas.
  • Avec boto3, la variable AWS_BEARER_TOKEN_BEDROCK nécessite boto3 1.39.0 ou ultérieur (Démarrage rapide).

Code : appeler Bedrock avec le SDK OpenAI

curl (clé API)

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, sans clé API)

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 avec renouvellement automatique des clés de courte durée

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);

Lister les modèles

client.models.list() renvoie une erreur 404 sur bedrock-runtime. Utilisez aws bedrock list-foundation-models --region us-east-1, ou pointez le SDK vers bedrock-mantle pour lister les modèles :

curl -s "https://bedrock-mantle.us-east-1.api.aws/v1/models" -H "Authorization: Bearer $OPENAI_API_KEY"

Ajouter un Guardrail Bedrock à une requête de style OpenAI

Les Guardrails sont transmis via des en-têtes supplémentaires. Un champ facultatif dans le corps active le balisage de l'entrée :

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"}},
)

Les noms d'en-têtes proviennent de l'exemple officiel de guardrail.

Quels modèles fonctionnent avec l'API compatible OpenAI ?

La prise en charge varie selon le modèle et selon l'endpoint : vérifiez chaque fiche de modèle (tableau de compatibilité des API). Exemples tirés de la documentation AWS au 20 octobre 2026 :

Modèle Chat Completions sur runtime Responses sur runtime Remarques
openai.gpt-oss-120b-1:0 / -20b-1:0 Oui Non (Responses uniquement sur mantle) GPT OSS à poids ouverts
global.openai.gpt-5.6-sol Oui Oui Présent dans le démarrage rapide AWS, profil d'inférence global
Famille GPT-6, GPT-5.x Selon la fiche du modèle Selon la fiche du modèle Listés dans la section OpenAI du tableau de compatibilité
Anthropic Claude Utiliser l'API Messages (/anthropic) n/a ANTHROPIC_BASE_URL=https://bedrock-runtime.{region}.amazonaws.com/anthropic

Tarifs Bedrock pour les appels compatibles OpenAI

Vous payez le tarif Bedrock habituel par token pour le modèle. L'interface compatible OpenAI n'entraîne aucun supplément. Exemples tirés de la page de tarifs Bedrock, 20 octobre 2026, par million de tokens :

Modèle Région Entrée Sortie
gpt-oss-20b Asie-Pacifique (Sydney) $0.0721 $0.3090
gpt-oss-120b Asie-Pacifique (Sydney) $0.1545 $0.6180
GPT OSS Safeguard 20B USA Est/Ouest $0.07 $0.20
GPT OSS Safeguard 120B USA Est/Ouest $0.15 $0.60

Les tarifs varient selon la région, et Bedrock propose aussi les niveaux Priority, Flex et Batch. Utilisez le sélecteur de région de la page de tarifs pour connaître le tarif exact.

Erreurs courantes et solutions

Erreur Cause Solution
404 UnknownOperationException sur /models bedrock-runtime n'implémente pas l'API Models Utilisez ListFoundationModels, ou appelez /models sur bedrock-mantle
model … isn't supported on this route Mauvais préfixe de chemin sur bedrock-mantle Vérifiez /v1 ou /openai/v1 dans la fiche du modèle
Credential should be scoped to a valid region Clé de longue durée utilisée hors de sa région Générez une clé dans la région cible
Unable to locate credentials boto3 antérieur à 1.39.0 ignore AWS_BEARER_TOKEN_BEDROCK pip install --upgrade boto3
API Responses non prise en charge pour GPT OSS GPT OSS ne prend en charge Responses que sur bedrock-mantle Utilisez Chat Completions ou changez d'endpoint
AccessDenied Accès au modèle manquant ou CallWithBearerToken refusé Activez l'accès au modèle et vérifiez les stratégies IAM

Bedrock, OpenAI en direct ou passerelle multi-fournisseurs

Besoin Bedrock compatible OpenAI API directe du fournisseur Passerelle multi-fournisseurs (ex. Flatkey)
Rester dans un compte AWS, avec IAM et CloudTrail Idéal Non Non
Utiliser des crédits AWS ou des engagements Enterprise Discount Program (EDP) Oui Non Non
Guardrails et contrôles proches du VPC Oui Propre au fournisseur Propre à la passerelle
Le modèle le plus récent dès son lancement Selon le modèle Généralement en premier Variable
Une seule clé pour OpenAI, Anthropic, Google, Alibaba, DeepSeek, Moonshot, Zhipu Uniquement les modèles hébergés sur Bedrock Non Oui
Gestion régionale des clés Obligatoire Non Non

Si vous êtes entièrement sur AWS, l'API compatible OpenAI de Bedrock est l'option la plus propre. Si vous avez aussi besoin de modèles que Bedrock n'héberge pas, gardez le même code SDK OpenAI et changez l'URL de base. Avec Flatkey, une seule clé sur https://router.flatkey.ai/v1 donne accès à GPT, Claude, Gemini, Qwen, DeepSeek, Kimi et 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"))

Au 20 octobre 2026, la page gpt-6-sol de Flatkey affiche $1.20 en entrée et $6.00 en sortie par million de tokens, un prix promotionnel face à un tarif catalogue de $2 / $10. Comparez-le à votre tarif Bedrock pour le même modèle. Pour aller plus loin : URL de base des API compatibles OpenAI, comptes fournisseurs directs ou passerelle d'API IA et checklist de passerelle d'API IA pour l'entreprise.

Checklist de migration : d'une app OpenAI vers Bedrock

  1. Choisissez la région et confirmez l'accès au modèle dans la console Bedrock.
  2. Remplacez OPENAI_BASE_URL par https://bedrock-runtime.{region}.amazonaws.com/openai/v1.
  3. Remplacez la clé par un fournisseur de clés API Bedrock de courte durée. Ne déployez pas de clés de longue durée en production.
  4. Faites correspondre les noms de modèles aux ID Bedrock, par exemple gpt-oss-120b → openai.gpt-oss-120b-1:0.
  5. Supprimez les appels à client.models.list() ou déplacez-les vers bedrock-mantle.
  6. Testez le streaming, les appels d'outils et la sortie structurée selon chaque fiche de modèle.
  7. Ajoutez les en-têtes de guardrail là où votre politique l'exige.
  8. Vérifiez les quotas du endpoint choisi (gestion des limites de débit).
  9. Suivez les dépenses par modèle et par équipe (attribution des coûts).

FAQ

Amazon Bedrock prend-il en charge l'API OpenAI ?

Oui. Bedrock implémente les API Chat Completions et Responses d'OpenAI sur https://bedrock-runtime.{region}.amazonaws.com/openai/v1 : le code SDK OpenAI existant fonctionne en changeant l'URL de base, la clé API et l'ID du modèle.

Quelle est l'URL de base compatible OpenAI de Bedrock ?

L'URL recommandée est https://bedrock-runtime.{region}.amazonaws.com/openai/v1, par exemple https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1. Le endpoint de compatibilité est https://bedrock-mantle.{region}.api.aws/v1.

Comment authentifier le SDK OpenAI auprès de Bedrock ?

Utilisez une clé API Amazon Bedrock comme api_key, envoyée en Authorization: Bearer. AWS recommande des clés de courte durée (jusqu'à 12 heures) en production. La signature SigV4 fonctionne aussi sur bedrock-runtime.

Pourquoi models.list() échoue-t-il sur Bedrock ?

Le endpoint bedrock-runtime n'implémente pas l'opération OpenAI GET /models et renvoie 404 UnknownOperationException. Utilisez ListFoundationModels, ou appelez /models sur bedrock-mantle.

Puis-je utiliser GPT OSS avec l'API Responses sur Bedrock ?

Pas sur bedrock-runtime. GPT OSS y prend en charge Chat Completions, et l'API Responses pour GPT OSS n'est disponible que sur bedrock-mantle.

Le endpoint compatible OpenAI est-il facturé en plus ?

AWS n'indique aucun frais distinct pour l'interface. Vous payez le tarif standard par token Bedrock du modèle, selon votre région et votre niveau.

En résumé

Pour utiliser le SDK OpenAI sur AWS, définissez l'URL de base sur bedrock-runtime.{region}.amazonaws.com/openai/v1, utilisez des clés API Bedrock de courte durée, faites correspondre vos ID de modèles et supprimez models.list(). Si votre stack a aussi besoin de modèles hors de Bedrock, le même schéma SDK fonctionne avec une seule clé via le routeur Flatkey.

Dernière mise à jour : 20 octobre 2026 · Flatkey Team. Les informations sont tirées de la documentation officielle AWS citée dans le texte.