Arquitectura de pasarelas de IA20 de octubre de 2026Flatkey Team

API compatible con OpenAI de Amazon Bedrock: URL base, autenticación, modelos y código (2026)

Cómo llamar a Amazon Bedrock con el SDK de OpenAI: qué endpoint elegir, claves de API de corta y larga duración, IDs de modelo, código curl/Python/Node, Guardrails, precios y solución de errores comunes.

API compatible con OpenAI de Amazon Bedrock: URL base, autenticación, modelos y código (2026)

Sí. Amazon Bedrock ofrece una API compatible con OpenAI. Apunta el SDK de OpenAI a https://bedrock-runtime.{region}.amazonaws.com/openai/v1, autentícate con una clave de API de Bedrock (o AWS SigV4) y pasa un ID de modelo de Bedrock como openai.gpt-oss-120b-1:0. Bedrock sirve así tanto la API Chat Completions como la API Responses. AWS recomienda el endpoint bedrock-runtime para aplicaciones nuevas y mantiene bedrock-mantle como opción de compatibilidad. Un detalle importante: bedrock-runtime no implementa GET /models. Todos los datos proceden de la documentación oficial de Chat Completions de Bedrock, revisada el 20 de octubre de 2026.

Esta guía cubre ambos endpoints, los dos tipos de clave de API, los IDs de modelo, código en curl, Python y Node, Guardrails, precios, los errores que te vas a encontrar y cuándo Bedrock encaja mejor que un gateway multiproveedor.

Referencia rápida

Elemento Valor (a 20 de octubre de 2026)
URL base recomendada https://bedrock-runtime.{region}.amazonaws.com/openai/v1
URL base de compatibilidad https://bedrock-mantle.{region}.api.aws/v1 (algunos modelos usan /openai/v1)
APIs de OpenAI compatibles Chat Completions, Responses (según el modelo) y además la API Messages de Anthropic
Autenticación Clave de API de Bedrock como Authorization: Bearer …, o AWS SigV4
IDs de modelo de ejemplo openai.gpt-oss-120b-1:0, openai.gpt-oss-20b-1:0, global.openai.gpt-5.6-sol
Listar modelos con /models Solo en bedrock-mantle. En bedrock-runtime, usa ListFoundationModels
Ámbito regional Las claves y los endpoints son regionales

Fuentes: API Chat Completions, Endpoints de inferencia, Inicio rápido.

bedrock-runtime vs bedrock-mantle: qué endpoint usar

AWS indica que ambos endpoints "usan el mismo motor de inferencia Mantle subyacente". El nombre identifica una superficie de endpoint, no un motor distinto. Se diferencian en las funciones:

bedrock-runtime (recomendado) bedrock-mantle (compatibilidad)
URL base 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 No implementado (404 UnknownOperationException) Compatible
Guardrails, enrutamiento inteligente de prompts, inferencia entre regiones Sí Consulta la ficha del modelo
Herramientas del lado del servidor (por ejemplo, búsqueda web), inferencia en segundo plano, Projects, Workspaces No Sí
Cuotas Cuotas por modelo para este endpoint Cuotas por modelo independientes

Regla práctica de AWS: empieza con bedrock-runtime. Cambia a bedrock-mantle solo si un modelo o una función que necesitas únicamente está disponible allí. En bedrock-mantle, el prefijo de la ruta varía según el modelo. Una solicitud con el prefijo equivocado falla con "model … isn't supported on this route", así que revisa la tabla Programmatic Access de la ficha del modelo.

Autenticación: claves de API de Bedrock vs SigV4

Las claves de API de Bedrock permiten que el SDK de OpenAI se autentique con un token bearer en lugar de firmar las solicitudes con credenciales de AWS (documentación de claves de API, 20 de octubre de 2026):

Tipo de clave Duración Respaldada por Recomendación de AWS
Corta duración Hasta 12 horas (o la duración de la sesión) Permisos de la entidad IAM que la generó Producción
Larga duración Hasta la caducidad configurada Un usuario IAM dedicado con políticas asociadas Solo para pruebas

Notas prácticas:

  • Genera claves de corta duración en el código con pip install aws-bedrock-token-generator (Python) o npm install @aws/bedrock-token-generator (Node) y llama al proveedor antes de cada solicitud. Devuelve un token en caché mientras siga siendo válido.
  • Las claves de larga duración solo funcionan en la región donde se crearon. Una llamada a otra región falla con Credential should be scoped to a valid region.
  • Restringe el uso de las claves con las acciones IAM bedrock:CallWithBearerToken y bedrock-mantle:CallWithBearerToken.
  • Las llamadas a la API quedan registradas en CloudTrail. Las claves en sí no se registran.
  • Con boto3, la variable AWS_BEARER_TOKEN_BEDROCK requiere boto3 1.39.0 o posterior (Inicio rápido).

Código: llamar a Bedrock con el SDK de OpenAI

curl (clave de 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, sin clave de 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 con claves de corta duración que se renuevan solas

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

Listar modelos

client.models.list() devuelve 404 en bedrock-runtime. Puedes ejecutar aws bedrock list-foundation-models --region us-east-1 o apuntar el SDK a bedrock-mantle para listar modelos:

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

Añadir un Guardrail de Bedrock a una solicitud estilo OpenAI

Los Guardrails se pasan como cabeceras adicionales. Un campo opcional en el cuerpo activa el etiquetado de la entrada:

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

Los nombres de las cabeceras proceden del ejemplo oficial de guardrail.

¿Qué modelos funcionan con la API compatible con OpenAI?

La compatibilidad de la API varía según el modelo y según el endpoint, así que revisa cada ficha de modelo (tabla de compatibilidad de APIs). Ejemplos de la documentación de AWS a 20 de octubre de 2026:

Modelo Chat Completions en runtime Responses en runtime Notas
openai.gpt-oss-120b-1:0 / -20b-1:0 Sí No (Responses solo en mantle) GPT OSS de pesos abiertos
global.openai.gpt-5.6-sol Sí Sí Aparece en el inicio rápido de AWS, perfil de inferencia global
Familia GPT-6, GPT-5.x Según la ficha del modelo Según la ficha del modelo Incluidos en la sección OpenAI de la tabla de compatibilidad
Anthropic Claude Usa la API Messages (/anthropic) n/a ANTHROPIC_BASE_URL=https://bedrock-runtime.{region}.amazonaws.com/anthropic

Precios de Bedrock para llamadas compatibles con OpenAI

Pagas la tarifa normal por token de Bedrock para el modelo. La interfaz compatible con OpenAI no tiene recargo. Ejemplos de la página de precios de Bedrock, 20 de octubre de 2026, por cada millón de tokens:

Modelo Región Entrada Salida
gpt-oss-20b Asia Pacífico (Sídney) $0.0721 $0.3090
gpt-oss-120b Asia Pacífico (Sídney) $0.1545 $0.6180
GPT OSS Safeguard 20B EE. UU. Este/Oeste $0.07 $0.20
GPT OSS Safeguard 120B EE. UU. Este/Oeste $0.15 $0.60

Las tarifas varían según la región, y Bedrock también ofrece los niveles Priority, Flex y Batch. Usa el selector de región de la página de precios para ver la tarifa exacta que pagarás.

Errores comunes y cómo solucionarlos

Error Causa Solución
404 UnknownOperationException en /models bedrock-runtime no implementa la API Models Usa ListFoundationModels o llama a /models en bedrock-mantle
model … isn't supported on this route Prefijo de ruta incorrecto en bedrock-mantle Revisa en la ficha del modelo si es /v1 o /openai/v1
Credential should be scoped to a valid region Clave de larga duración usada fuera de su región Genera una clave en la región de destino
Unable to locate credentials boto3 anterior a 1.39.0 ignora AWS_BEARER_TOKEN_BEDROCK pip install --upgrade boto3
La API Responses no es compatible con GPT OSS GPT OSS solo admite Responses en bedrock-mantle Usa Chat Completions o cambia de endpoint
AccessDenied Falta acceso al modelo o se deniega CallWithBearerToken Habilita el acceso al modelo y revisa las políticas IAM

Bedrock vs OpenAI directo vs un gateway multiproveedor

Necesidad Bedrock compatible con OpenAI API directa del proveedor Gateway multiproveedor (p. ej., Flatkey)
Permanecer dentro de una cuenta de AWS, IAM y CloudTrail La mejor opción No No
Usar créditos de AWS o compromisos del Enterprise Discount Program (EDP) Sí No No
Guardrails y controles cercanos a la VPC Sí Depende del proveedor Depende del gateway
El modelo más nuevo el mismo día de su lanzamiento Depende del modelo Normalmente primero Varía
Una sola clave para OpenAI, Anthropic, Google, Alibaba, DeepSeek, Moonshot y Zhipu Solo modelos alojados en Bedrock No Sí
Gestión regional de claves Obligatoria No No

Si todo tu stack está en AWS, la API compatible con OpenAI de Bedrock es la opción más limpia. Si también necesitas modelos que Bedrock no aloja, conserva el mismo código del SDK de OpenAI y cambia la URL base. Con Flatkey, una sola clave en https://router.flatkey.ai/v1 da acceso a GPT, Claude, Gemini, Qwen, DeepSeek, Kimi y 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"))

A 20 de octubre de 2026, la página de gpt-6-sol en Flatkey indica $1.20 de entrada y $6.00 de salida por millón de tokens, un precio promocional frente a una tarifa de lista de $2 / $10. Compáralo con tu tarifa de Bedrock para el mismo modelo. Más contexto: URLs base de APIs compatibles con OpenAI, cuentas directas con proveedores vs un gateway de API de IA y checklist de gateway de API de IA empresarial.

Checklist de migración: de una app de OpenAI a Bedrock

  1. Elige la región y confirma el acceso al modelo en la consola de Bedrock.
  2. Sustituye OPENAI_BASE_URL por https://bedrock-runtime.{region}.amazonaws.com/openai/v1.
  3. Sustituye la clave por un proveedor de claves de API de Bedrock de corta duración. No lleves claves de larga duración a producción.
  4. Asigna los nombres de modelo a IDs de Bedrock, por ejemplo gpt-oss-120b → openai.gpt-oss-120b-1:0.
  5. Elimina las llamadas a client.models.list() o muévelas a bedrock-mantle.
  6. Prueba streaming, llamadas a herramientas y salida estructurada según la ficha de cada modelo.
  7. Añade las cabeceras de guardrail donde la política lo exija.
  8. Revisa las cuotas del endpoint elegido (gestión de límites de tasa).
  9. Controla el gasto por modelo y por equipo (atribución de costes).

Preguntas frecuentes

¿Amazon Bedrock es compatible con la API de OpenAI?

Sí. Bedrock implementa las APIs Chat Completions y Responses de OpenAI en https://bedrock-runtime.{region}.amazonaws.com/openai/v1, así que el código existente del SDK de OpenAI funciona cambiando la URL base, la clave de API y el ID del modelo.

¿Cuál es la URL base compatible con OpenAI de Bedrock?

La URL recomendada es https://bedrock-runtime.{region}.amazonaws.com/openai/v1, por ejemplo https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1. El endpoint de compatibilidad es https://bedrock-mantle.{region}.api.aws/v1.

¿Cómo autentico el SDK de OpenAI con Bedrock?

Usa una clave de API de Amazon Bedrock como api_key, enviada como Authorization: Bearer. AWS recomienda claves de corta duración (hasta 12 horas) en producción. La firma SigV4 también funciona en bedrock-runtime.

¿Por qué falla models.list() en Bedrock?

El endpoint bedrock-runtime no implementa la operación GET /models de OpenAI y devuelve 404 UnknownOperationException. Usa ListFoundationModels o llama a /models en bedrock-mantle.

¿Puedo usar GPT OSS con la API Responses en Bedrock?

No en bedrock-runtime. Allí GPT OSS admite Chat Completions, y la API Responses para GPT OSS solo está disponible en bedrock-mantle.

¿Hay un cargo adicional por el endpoint compatible con OpenAI?

AWS no indica ninguna tarifa aparte por la interfaz. Pagas el precio estándar por token de Bedrock para el modelo, según tu región y nivel.

Conclusión

Para usar el SDK de OpenAI en AWS, configura la URL base como bedrock-runtime.{region}.amazonaws.com/openai/v1, usa claves de API de Bedrock de corta duración, asigna tus IDs de modelo y elimina models.list(). Si tu stack también necesita modelos fuera de Bedrock, el mismo patrón del SDK funciona con una sola clave a través del router de Flatkey.

Última actualización: 20 de octubre de 2026 · Flatkey Team. Los datos se citan de la documentación oficial de AWS enlazada en el texto.