Arquitetura de gateways de IA20 de outubro de 2026Flatkey Team

API compatível com OpenAI do Amazon Bedrock: URL base, autenticação, modelos e código (2026)

Como chamar o Amazon Bedrock com o SDK da OpenAI: escolha do endpoint, chaves de API de curta e longa duração, IDs de modelo, código curl/Python/Node, Guardrails, preços e correção de erros comuns.

API compatível com OpenAI do Amazon Bedrock: URL base, autenticação, modelos e código (2026)

Sim. O Amazon Bedrock tem uma API compatível com OpenAI. Aponte o SDK da OpenAI para https://bedrock-runtime.{region}.amazonaws.com/openai/v1, autentique-se com uma chave de API do Bedrock (ou AWS SigV4) e informe um ID de modelo do Bedrock, como openai.gpt-oss-120b-1:0. Dessa forma, o Bedrock atende tanto a API Chat Completions quanto a API Responses. A AWS recomenda o endpoint bedrock-runtime para novas aplicações e mantém o bedrock-mantle como opção de compatibilidade. Um detalhe: o bedrock-runtime não implementa GET /models. Todas as informações vêm da documentação oficial de Chat Completions do Bedrock, conferida em 20 de outubro de 2026.

Este guia cobre os dois endpoints, os dois tipos de chave de API, IDs de modelo, código em curl, Python e Node, Guardrails, preços, os erros que você vai encontrar e quando o Bedrock é mais adequado do que um gateway multiprovedor.

Referência rápida

Item Valor (em 20 de outubro de 2026)
URL base recomendada https://bedrock-runtime.{region}.amazonaws.com/openai/v1
URL base de compatibilidade https://bedrock-mantle.{region}.api.aws/v1 (alguns modelos usam /openai/v1)
APIs da OpenAI compatíveis Chat Completions, Responses (por modelo) e também a API Messages da Anthropic
Autenticação Chave de API do Bedrock como Authorization: Bearer …, ou AWS SigV4
Exemplos de IDs de modelo openai.gpt-oss-120b-1:0, openai.gpt-oss-20b-1:0, global.openai.gpt-5.6-sol
Listar modelos via /models Somente no bedrock-mantle. No bedrock-runtime, use ListFoundationModels
Escopo regional Chaves e endpoints são regionais

Fontes: API Chat Completions, Endpoints de inferência, Início rápido.

bedrock-runtime vs bedrock-mantle: qual endpoint usar

Segundo a AWS, os dois endpoints "usam o mesmo mecanismo de inferência Mantle subjacente". O nome identifica uma superfície de endpoint, não um mecanismo diferente. A diferença está nos recursos:

bedrock-runtime (recomendado) bedrock-mantle (compatibilidade)
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 Não implementado (404 UnknownOperationException) Compatível
Guardrails, roteamento inteligente de prompts, inferência entre regiões Sim Confira o card do modelo
Ferramentas no servidor (por exemplo, busca na web), inferência em segundo plano, Projects, Workspaces Não Sim
Cotas Cotas por modelo para este endpoint Cotas por modelo separadas

Regra prática da AWS: comece pelo bedrock-runtime. Mude para o bedrock-mantle só se um modelo ou recurso de que você precisa estiver disponível apenas lá. No bedrock-mantle, o prefixo do caminho varia conforme o modelo. Uma requisição com o prefixo errado falha com "model … isn't supported on this route", então confira a tabela Programmatic Access no card do modelo.

Autenticação: chaves de API do Bedrock vs SigV4

As chaves de API do Bedrock permitem que o SDK da OpenAI se autentique com um token bearer em vez de assinar as requisições com credenciais da AWS (documentação de chaves de API, 20 de outubro de 2026):

Tipo de chave Validade Vinculada a Recomendação da AWS
Curta duração Até 12 horas (ou a duração da sessão) Permissões da entidade IAM que a gerou Produção
Longa duração Até a expiração configurada Um usuário IAM dedicado com políticas anexadas Apenas para testes

Dicas práticas:

  • Gere chaves de curta duração no código com pip install aws-bedrock-token-generator (Python) ou npm install @aws/bedrock-token-generator (Node) e chame o provedor antes de cada requisição. Ele retorna um token em cache enquanto esse token ainda for válido.
  • Chaves de longa duração só funcionam na região onde foram criadas. Uma chamada para outra região falha com Credential should be scoped to a valid region.
  • Restrinja o uso das chaves com as ações IAM bedrock:CallWithBearerToken e bedrock-mantle:CallWithBearerToken.
  • As chamadas de API são registradas no CloudTrail. As chaves em si não são registradas.
  • Com boto3, a variável AWS_BEARER_TOKEN_BEDROCK exige boto3 1.39.0 ou posterior (Início rápido).

Código: chamar o Bedrock com o SDK da OpenAI

curl (chave 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, sem chave 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 com renovação automática de chaves de curta duração

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() retorna 404 no bedrock-runtime. Use aws bedrock list-foundation-models --region us-east-1 ou aponte o SDK para o bedrock-mantle para listar os modelos:

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

Adicionar um Guardrail do Bedrock a uma requisição no estilo OpenAI

Os Guardrails são enviados como cabeçalhos extras. Um campo opcional no corpo ativa a marcação da 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"}},
)

Os nomes dos cabeçalhos vêm do exemplo oficial de guardrail.

Quais modelos funcionam com a API compatível com OpenAI?

O suporte varia por modelo e por endpoint, então confira cada card de modelo (tabela de compatibilidade de APIs). Exemplos da documentação da AWS em 20 de outubro de 2026:

Modelo Chat Completions no runtime Responses no runtime Observações
openai.gpt-oss-120b-1:0 / -20b-1:0 Sim Não (Responses só no mantle) GPT OSS de pesos abertos
global.openai.gpt-5.6-sol Sim Sim Aparece no início rápido da AWS, perfil de inferência global
Família GPT-6, GPT-5.x Conforme o card do modelo Conforme o card do modelo Listados na seção OpenAI da tabela de compatibilidade
Anthropic Claude Use a API Messages (/anthropic) n/a ANTHROPIC_BASE_URL=https://bedrock-runtime.{region}.amazonaws.com/anthropic

Preços do Bedrock para chamadas compatíveis com OpenAI

Você paga a tarifa normal por token do Bedrock para o modelo. A interface compatível com OpenAI não tem acréscimo. Exemplos da página de preços do Bedrock, 20 de outubro de 2026, por 1 milhão de tokens:

Modelo Região Entrada Saída
gpt-oss-20b Ásia-Pacífico (Sydney) $0.0721 $0.3090
gpt-oss-120b Ásia-Pacífico (Sydney) $0.1545 $0.6180
GPT OSS Safeguard 20B EUA Leste/Oeste $0.07 $0.20
GPT OSS Safeguard 120B EUA Leste/Oeste $0.15 $0.60

As tarifas variam por região, e o Bedrock também oferece os níveis Priority, Flex e Batch. Use o seletor de região da página de preços para ver a tarifa exata que você vai pagar.

Erros comuns e como corrigir

Erro Causa Correção
404 UnknownOperationException em /models O bedrock-runtime não implementa a API Models Use ListFoundationModels ou chame /models no bedrock-mantle
model … isn't supported on this route Prefixo de caminho errado no bedrock-mantle Confira no card do modelo se é /v1 ou /openai/v1
Credential should be scoped to a valid region Chave de longa duração usada fora da sua região Gere uma chave na região de destino
Unable to locate credentials boto3 anterior à 1.39.0 ignora AWS_BEARER_TOKEN_BEDROCK pip install --upgrade boto3
API Responses não suportada para GPT OSS O GPT OSS só suporta Responses no bedrock-mantle Use Chat Completions ou troque de endpoint
AccessDenied Falta acesso ao modelo ou CallWithBearerToken foi negado Ative o acesso ao modelo e revise as políticas IAM

Bedrock vs OpenAI direto vs gateway multiprovedor

Necessidade Bedrock compatível com OpenAI API direta do provedor Gateway multiprovedor (ex.: Flatkey)
Ficar dentro de uma conta AWS, com IAM e CloudTrail Melhor opção Não Não
Usar créditos da AWS ou compromissos do Enterprise Discount Program (EDP) Sim Não Não
Guardrails e controles próximos à VPC Sim Depende do provedor Depende do gateway
O modelo mais novo no dia do lançamento Depende do modelo Geralmente primeiro Varia
Uma chave para OpenAI, Anthropic, Google, Alibaba, DeepSeek, Moonshot e Zhipu Só modelos hospedados no Bedrock Não Sim
Gerenciamento regional de chaves Obrigatório Não Não

Se você está totalmente na AWS, a API compatível com OpenAI do Bedrock é a opção mais limpa. Se também precisa de modelos que o Bedrock não hospeda, mantenha o mesmo código do SDK da OpenAI e troque a URL base. Com o Flatkey, uma única chave em https://router.flatkey.ai/v1 dá acesso a GPT, Claude, Gemini, Qwen, DeepSeek, Kimi e 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"))

Em 20 de outubro de 2026, a página do gpt-6-sol no Flatkey mostra $1.20 de entrada e $6.00 de saída por 1 milhão de tokens, um preço promocional em relação ao preço de tabela de $2 / $10. Compare com a sua tarifa do Bedrock para o mesmo modelo. Mais contexto: URLs base de APIs compatíveis com OpenAI, contas diretas com provedores vs gateway de API de IA e checklist de gateway de API de IA corporativo.

Checklist de migração: de um app OpenAI para o Bedrock

  1. Escolha a região e confirme o acesso ao modelo no console do Bedrock.
  2. Substitua OPENAI_BASE_URL por https://bedrock-runtime.{region}.amazonaws.com/openai/v1.
  3. Substitua a chave por um provedor de chaves de API do Bedrock de curta duração. Não leve chaves de longa duração para produção.
  4. Mapeie os nomes dos modelos para IDs do Bedrock, como gpt-oss-120b → openai.gpt-oss-120b-1:0.
  5. Remova as chamadas a client.models.list() ou mova-as para o bedrock-mantle.
  6. Teste streaming, chamadas de ferramentas e saída estruturada conforme o card de cada modelo.
  7. Adicione os cabeçalhos de guardrail onde a política exigir.
  8. Verifique as cotas do endpoint escolhido (tratamento de limites de taxa).
  9. Acompanhe os gastos por modelo e por equipe (atribuição de custos).

Perguntas frequentes

O Amazon Bedrock suporta a API da OpenAI?

Sim. O Bedrock implementa as APIs Chat Completions e Responses da OpenAI em https://bedrock-runtime.{region}.amazonaws.com/openai/v1, então o código existente do SDK da OpenAI funciona trocando a URL base, a chave de API e o ID do modelo.

Qual é a URL base compatível com OpenAI do Bedrock?

A URL recomendada é https://bedrock-runtime.{region}.amazonaws.com/openai/v1, por exemplo https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1. O endpoint de compatibilidade é https://bedrock-mantle.{region}.api.aws/v1.

Como autenticar o SDK da OpenAI no Bedrock?

Use uma chave de API do Amazon Bedrock como api_key, enviada como Authorization: Bearer. A AWS recomenda chaves de curta duração (até 12 horas) em produção. A assinatura SigV4 também funciona no bedrock-runtime.

Por que models.list() falha no Bedrock?

O endpoint bedrock-runtime não implementa a operação GET /models da OpenAI e retorna 404 UnknownOperationException. Use ListFoundationModels ou chame /models no bedrock-mantle.

Posso usar o GPT OSS com a API Responses no Bedrock?

Não no bedrock-runtime. Lá, o GPT OSS suporta Chat Completions, e a API Responses para GPT OSS está disponível apenas no bedrock-mantle.

Há cobrança extra pelo endpoint compatível com OpenAI?

A AWS não lista nenhuma taxa separada pela interface. Você paga o preço padrão por token do Bedrock para o modelo, de acordo com a sua região e nível.

Conclusão

Para usar o SDK da OpenAI na AWS, defina a URL base como bedrock-runtime.{region}.amazonaws.com/openai/v1, use chaves de API do Bedrock de curta duração, mapeie seus IDs de modelo e remova models.list(). Se o seu stack também precisa de modelos fora do Bedrock, o mesmo padrão do SDK funciona com uma única chave pelo roteador do Flatkey.

Última atualização: 20 de outubro de 2026 · Flatkey Team. As informações foram extraídas da documentação oficial da AWS indicada no texto.