Arsitektur gateway AI20 Oktober 2026Flatkey Team

API Kompatibel OpenAI di Amazon Bedrock: Base URL, Autentikasi, Model, dan Kode (2026)

Cara memanggil Amazon Bedrock dengan OpenAI SDK: memilih endpoint, API key jangka pendek dan jangka panjang, ID model, kode curl/Python/Node, Guardrails, harga, dan solusi error umum.

API Kompatibel OpenAI di Amazon Bedrock: Base URL, Autentikasi, Model, dan Kode (2026)

Ya. Amazon Bedrock memiliki API yang kompatibel dengan OpenAI. Arahkan OpenAI SDK ke https://bedrock-runtime.{region}.amazonaws.com/openai/v1, lakukan autentikasi dengan API key Bedrock (atau AWS SigV4), lalu gunakan ID model Bedrock seperti openai.gpt-oss-120b-1:0. Dengan cara ini Bedrock melayani Chat Completions API maupun Responses API. AWS merekomendasikan endpoint bedrock-runtime untuk aplikasi baru dan mempertahankan bedrock-mantle sebagai opsi kompatibilitas. Satu catatan: bedrock-runtime tidak mengimplementasikan GET /models. Semua informasi berasal dari dokumentasi resmi Chat Completions Bedrock, diperiksa pada 20 Oktober 2026.

Panduan ini membahas kedua endpoint, dua jenis API key, ID model, kode curl, Python, dan Node, Guardrails, harga, error yang akan Anda temui, serta kapan Bedrock lebih cocok daripada gateway multi-penyedia.

Referensi cepat

Item Nilai (per 20 Oktober 2026)
Base URL yang direkomendasikan https://bedrock-runtime.{region}.amazonaws.com/openai/v1
Base URL kompatibilitas https://bedrock-mantle.{region}.api.aws/v1 (beberapa model memakai /openai/v1)
API OpenAI yang didukung Chat Completions, Responses (tergantung model), plus Anthropic Messages API
Autentikasi API key Bedrock sebagai Authorization: Bearer …, atau AWS SigV4
Contoh ID model openai.gpt-oss-120b-1:0, openai.gpt-oss-20b-1:0, global.openai.gpt-5.6-sol
Menampilkan model lewat /models Hanya di bedrock-mantle. Di bedrock-runtime, gunakan ListFoundationModels
Cakupan region Key dan endpoint bersifat per region

Sumber: Chat Completions API, Endpoint inferensi, Mulai cepat.

bedrock-runtime vs bedrock-mantle: endpoint mana yang dipakai

Menurut AWS, kedua endpoint "menggunakan mesin inferensi Mantle yang sama". Namanya menunjukkan permukaan endpoint, bukan mesin yang berbeda. Perbedaannya ada pada fitur:

bedrock-runtime (direkomendasikan) bedrock-mantle (kompatibilitas)
Base URL 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 Tidak diimplementasikan (404 UnknownOperationException) Didukung
Guardrails, perutean prompt cerdas, inferensi lintas region Ya Lihat kartu model
Tool sisi server (misalnya pencarian web), inferensi latar belakang, Projects, Workspaces Tidak Ya
Kuota Kuota per model untuk endpoint ini Kuota per model terpisah

Patokan dari AWS: mulailah dengan bedrock-runtime. Pindah ke bedrock-mantle hanya jika model atau fitur yang Anda butuhkan hanya tersedia di sana. Di bedrock-mantle, prefiks path berbeda-beda per model. Permintaan dengan prefiks yang salah gagal dengan pesan "model … isn't supported on this route", jadi periksa tabel Programmatic Access di kartu model.

Autentikasi: API key Bedrock vs SigV4

API key Bedrock memungkinkan OpenAI SDK melakukan autentikasi dengan bearer token, bukan menandatangani permintaan dengan kredensial AWS (dokumentasi API key, 20 Oktober 2026):

Jenis key Masa berlaku Didukung oleh Rekomendasi AWS
Jangka pendek Hingga 12 jam (atau sepanjang sesi) Izin principal IAM yang membuatnya Produksi
Jangka panjang Hingga tanggal kedaluwarsa yang diatur Pengguna IAM khusus dengan kebijakan terlampir Hanya untuk eksplorasi

Catatan praktis:

  • Buat key jangka pendek di kode dengan pip install aws-bedrock-token-generator (Python) atau npm install @aws/bedrock-token-generator (Node), lalu panggil provider sebelum setiap permintaan. Provider mengembalikan token dari cache selama token tersebut masih berlaku.
  • Key jangka panjang hanya berfungsi di region tempat key dibuat. Panggilan lintas region gagal dengan Credential should be scoped to a valid region.
  • Batasi penggunaan key dengan aksi IAM bedrock:CallWithBearerToken dan bedrock-mantle:CallWithBearerToken.
  • Panggilan API dicatat di CloudTrail. Key-nya sendiri tidak dicatat.
  • Dengan boto3, variabel AWS_BEARER_TOKEN_BEDROCK memerlukan boto3 1.39.0 atau lebih baru (Mulai cepat).

Kode: memanggil Bedrock dengan OpenAI SDK

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, tanpa 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 dengan key jangka pendek yang diperbarui otomatis

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

Menampilkan daftar model

client.models.list() mengembalikan 404 di bedrock-runtime. Jalankan aws bedrock list-foundation-models --region us-east-1, atau arahkan SDK ke bedrock-mantle untuk menampilkan daftar model:

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

Menambahkan Bedrock Guardrail ke permintaan bergaya OpenAI

Guardrails dikirim sebagai header tambahan. Field opsional di body mengaktifkan penandaan input:

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

Nama header diambil dari contoh guardrail resmi.

Model apa saja yang bisa dipakai dengan API kompatibel OpenAI?

Dukungan API berbeda per model dan per endpoint, jadi periksa setiap kartu model (tabel kompatibilitas API). Contoh dari dokumentasi AWS per 20 Oktober 2026:

Model Chat Completions di runtime Responses di runtime Catatan
openai.gpt-oss-120b-1:0 / -20b-1:0 Ya Tidak (Responses hanya di mantle) GPT OSS open-weight
global.openai.gpt-5.6-sol Ya Ya Ditampilkan di panduan mulai cepat AWS, profil inferensi global
Keluarga GPT-6, GPT-5.x Sesuai kartu model Sesuai kartu model Tercantum di bagian OpenAI pada tabel kompatibilitas
Anthropic Claude Gunakan Messages API (/anthropic) n/a ANTHROPIC_BASE_URL=https://bedrock-runtime.{region}.amazonaws.com/anthropic

Harga Bedrock untuk panggilan kompatibel OpenAI

Anda membayar tarif per token Bedrock yang biasa untuk model tersebut. Antarmuka kompatibel OpenAI tidak dikenai biaya tambahan. Contoh dari halaman harga Bedrock, 20 Oktober 2026, per 1 juta token:

Model Region Input Output
gpt-oss-20b Asia Pasifik (Sydney) $0.0721 $0.3090
gpt-oss-120b Asia Pasifik (Sydney) $0.1545 $0.6180
GPT OSS Safeguard 20B AS Timur/Barat $0.07 $0.20
GPT OSS Safeguard 120B AS Timur/Barat $0.15 $0.60

Tarif berbeda per region, dan Bedrock juga menyediakan tier Priority, Flex, dan Batch. Gunakan pemilih region di halaman harga untuk melihat tarif persis yang akan Anda bayar.

Error umum dan solusinya

Error Penyebab Solusi
404 UnknownOperationException di /models bedrock-runtime tidak mengimplementasikan Models API Gunakan ListFoundationModels, atau panggil /models di bedrock-mantle
model … isn't supported on this route Prefiks path salah di bedrock-mantle Periksa kartu model: /v1 atau /openai/v1
Credential should be scoped to a valid region Key jangka panjang dipakai di luar region-nya Buat key di region tujuan
Unable to locate credentials boto3 versi di bawah 1.39.0 mengabaikan AWS_BEARER_TOKEN_BEDROCK pip install --upgrade boto3
Responses API tidak didukung untuk GPT OSS GPT OSS hanya mendukung Responses di bedrock-mantle Gunakan Chat Completions atau ganti endpoint
AccessDenied Akses model belum aktif atau CallWithBearerToken ditolak Aktifkan akses model dan tinjau kebijakan IAM

Bedrock vs OpenAI langsung vs gateway multi-penyedia

Kebutuhan Bedrock kompatibel OpenAI API penyedia langsung Gateway multi-penyedia (mis. Flatkey)
Tetap di dalam akun AWS, dengan IAM dan CloudTrail Terbaik Tidak Tidak
Memakai kredit AWS atau komitmen Enterprise Discount Program (EDP) Ya Tidak Tidak
Guardrails dan kontrol dekat VPC Ya Tergantung penyedia Tergantung gateway
Model terbaru pada hari peluncuran Tergantung model Biasanya paling cepat Bervariasi
Satu key untuk OpenAI, Anthropic, Google, Alibaba, DeepSeek, Moonshot, Zhipu Hanya model yang di-host Bedrock Tidak Ya
Pengelolaan key per region Wajib Tidak Tidak

Jika Anda sepenuhnya menggunakan AWS, API kompatibel OpenAI dari Bedrock adalah pilihan paling rapi. Jika Anda juga butuh model yang tidak di-host Bedrock, pertahankan kode OpenAI SDK yang sama dan cukup ganti base URL. Dengan Flatkey, satu key di https://router.flatkey.ai/v1 menjangkau GPT, Claude, Gemini, Qwen, DeepSeek, Kimi, dan 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"))

Per 20 Oktober 2026, halaman gpt-6-sol di Flatkey mencantumkan $1.20 input dan $6.00 output per 1 juta token, harga promo dibandingkan harga resmi $2 / $10. Bandingkan dengan tarif Bedrock Anda untuk model yang sama. Bacaan lanjutan: base URL API kompatibel OpenAI, akun penyedia langsung vs AI API gateway, dan checklist AI API gateway untuk enterprise.

Checklist migrasi: dari aplikasi OpenAI ke Bedrock

  1. Pilih region dan pastikan akses model di konsol Bedrock.
  2. Ganti OPENAI_BASE_URL dengan https://bedrock-runtime.{region}.amazonaws.com/openai/v1.
  3. Ganti key dengan provider API key Bedrock jangka pendek. Jangan pakai key jangka panjang di produksi.
  4. Petakan nama model ke ID Bedrock, misalnya gpt-oss-120b → openai.gpt-oss-120b-1:0.
  5. Hapus panggilan client.models.list(), atau pindahkan ke bedrock-mantle.
  6. Uji streaming, pemanggilan tool, dan output terstruktur sesuai kartu tiap model.
  7. Tambahkan header guardrail di tempat yang diwajibkan kebijakan.
  8. Periksa kuota endpoint yang Anda pilih (penanganan rate limit).
  9. Pantau pengeluaran per model dan per tim (atribusi biaya).

FAQ

Apakah Amazon Bedrock mendukung API OpenAI?

Ya. Bedrock mengimplementasikan OpenAI Chat Completions dan Responses API di https://bedrock-runtime.{region}.amazonaws.com/openai/v1, sehingga kode OpenAI SDK yang sudah ada tetap berjalan cukup dengan mengganti base URL, API key, dan ID model.

Apa base URL kompatibel OpenAI dari Bedrock?

URL yang direkomendasikan adalah https://bedrock-runtime.{region}.amazonaws.com/openai/v1, misalnya https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1. Endpoint kompatibilitasnya adalah https://bedrock-mantle.{region}.api.aws/v1.

Bagaimana cara mengautentikasi OpenAI SDK dengan Bedrock?

Gunakan API key Amazon Bedrock sebagai api_key, yang dikirim sebagai Authorization: Bearer. AWS merekomendasikan key jangka pendek (hingga 12 jam) untuk produksi. Penandatanganan SigV4 juga berfungsi di bedrock-runtime.

Mengapa models.list() gagal di Bedrock?

Endpoint bedrock-runtime tidak mengimplementasikan operasi OpenAI GET /models dan mengembalikan 404 UnknownOperationException. Gunakan ListFoundationModels, atau panggil /models di bedrock-mantle.

Bisakah GPT OSS dipakai dengan Responses API di Bedrock?

Tidak di bedrock-runtime. Di sana GPT OSS mendukung Chat Completions, sedangkan Responses API untuk GPT OSS hanya tersedia di bedrock-mantle.

Apakah ada biaya tambahan untuk endpoint kompatibel OpenAI?

AWS tidak mencantumkan biaya terpisah untuk antarmuka ini. Anda membayar harga token Bedrock standar untuk model tersebut sesuai region dan tier Anda.

Kesimpulan

Untuk memakai OpenAI SDK di AWS, atur base URL ke bedrock-runtime.{region}.amazonaws.com/openai/v1, gunakan API key Bedrock jangka pendek, petakan ID model Anda, dan tinggalkan models.list(). Jika stack Anda juga memerlukan model di luar Bedrock, pola SDK yang sama bekerja dengan satu key melalui router Flatkey.

Terakhir diperbarui: 20 Oktober 2026 · Flatkey Team. Informasi dikutip dari dokumentasi resmi AWS yang ditautkan di dalam artikel.