Compare stdapi.ai¶
Two questions follow the feature list: how does stdapi.ai compare with the other ways to put an OpenAI-compatible API in front of Amazon Bedrock, and how do you know its compatibility claims hold. This page answers both — the feature-by-feature comparison with its sources and verification dates, then the test evidence behind every claim on that page.
How stdapi.ai Compares¶
All four solutions below expose an OpenAI-compatible API in front of Amazon Bedrock. The comparison focuses on the AWS deployment context — LiteLLM is evaluated with AWS services as the backend provider (Bedrock, Polly, Transcribe), not as a multi-cloud proxy. Bedrock Access Gateway is the official AWS-maintained open-source sample. Bedrock Mantle is AWS's own managed OpenAI-compatible endpoint, requiring no self-hosting — and stdapi.ai can also front it as an additional backend, serving Mantle-only models through the gateway (see Bedrock Mantle Models).
Competitor capabilities were verified against official sources on 5 August 2026; the batch inference, vector store, file search and per-end-user billing rows were verified on 21 August 2026; the image, audio and video rows were re-verified on 24 August 2026; the Ollama, Marketplace endpoint, SageMaker AI, tenant key and Administration API rows were verified on 27 August 2026. stdapi.ai is AWS-only: if you need multi-cloud routing or spend limits enforced at request time, LiteLLM is the better fit.
Cost attribution is not a spend limit
Bedrock's native attribution — IAM principal, application inference profiles, projects and workspaces — reports aggregated billed cost to Cost Explorer and CUR 2.0 at per-usage-type-per-day granularity, not as a per-request row. That is reporting, not enforcement: it cannot block a request that would exceed a budget. stdapi.ai's per-request cost figures are likewise an estimate for visibility. Enforcing a hard limit requires a gateway layer in front of inference — the approach AWS itself takes in its Generative AI Gateway Solution, which uses LiteLLM.
| Capability | stdapi.ai | LiteLLM (on AWS) | Bedrock Access Gateway | Bedrock Mantle |
|---|---|---|---|---|
| OpenAI Chat completions | full | full | full | partial 2 |
| OpenAI Completions | full | full | not available | not available |
| OpenAI Embeddings | full | full | full | not available |
| Anthropic Messages API | full | full | not available | partial 14 |
| OpenAI Responses API | full | partial 18 | not available | partial 2 |
| OpenAI Image generation | full | full | not available | not available |
| OpenAI Image editing | full | partial 28 | not available | not available |
| OpenAI Image variations | full | not available | not available | not available |
| OpenAI Videos API | full | not available | not available | not available |
| OpenAI Moderations API | full | not available | not available | not available |
| OpenAI TTS (speech) | full | partial 12 | not available | not available |
| OpenAI STT (transcription) | full | not available | not available | not available |
| OpenAI Files & Uploads API | full | not available | not available | not available |
| Asynchronous batch inference | full | full 21 | not available | not available 22 |
| Managed vector stores (create, attach, index, search) | full | partial 23 | not available | not available |
| Model-run file search, with citations | full | partial 24 | not available | not available |
| Server-side stored conversations | full | partial 17 | not available | full |
| OpenAI Realtime API | full | full | not available | not available |
| Cohere Rerank API | full | full | not available | not available |
| Cohere Embed API | full | not available | not available | not available |
| Ollama API | full | not available 29 | not available | not available |
| Own AI & media APIs as MCP tools | full | partial 20 | not available | not available |
| Bedrock Full model catalog | full | partial 1 | partial 10 | partial 2 |
| Unified Bedrock + Mantle catalog | full | partial 15 | not available | not available |
| Bedrock Marketplace model endpoints | full | partial 30 | not available 31 | not available 32 |
| Your own SageMaker AI endpoints | full | partial 33 | not available 31 | not available 32 |
| Every model on every text API | full | partial 16 | not available | not available |
| Multimodal inputs | text · image · audio · video · docs | text · image · docs | text · image | text · image |
| Multi-region capacity combining | full | partial 8 | not available | not available |
| Bedrock Cross-region inference profiles | full | partial 13 | partial 13 | not available |
| Bedrock system tools | full | not available | not available | not available |
| Bedrock Guardrails | full | full | not available | not available |
| Bedrock Service tiers | full | full | not available | full |
| Bedrock Application inference profiles | full | full | full | not available 19 |
| Bedrock prompt routers | full | not available | not available | not available |
| Bedrock Prompt caching & reasoning | full | partial 6 | full | partial 9 |
| Runs in your AWS account | full | full | full | not available |
| Model auto-discovery | full | partial 1 | partial 7 | full |
| Deprecated model failover | full | not available | not available | not available |
| Per-tenant API keys scoped to models | full | full | not available 34 | partial 35 |
| Cost & usage tracking | full | full | not available | not available |
| OpenAI Administration usage & costs | full | partial 36 | not available | not available |
| Per-end-user cost on the AWS bill | full | not available 25 | partial 26 | partial 27 |
| Ready-to-use deployment | full | not available | partial 3 | full |
| Commercial support | full | full | not available | full 4 |
| Self-hosted | full | full | full | not available |
| AWS-native focus | full | partial 5 | full | full |
| Multi-provider support | not available | full 11 | not available | not available |
| Source license | AGPL-3.0 (community) · commercial | MIT | MIT-0 | AWS service |
| Distribution & supply chain | AWS Marketplace · GHCR | pip/PyPI | GitHub (MIT-0) | AWS-managed |
full partial / manual setup not available
About the alternatives
- LiteLLM — widely adopted multi-cloud proxy with a large open-source community. Ideal when you need a single entry point across OpenAI, Azure, AWS, and others. AWS deployment and security features (WAF, VPC endpoints) require manual setup. Also offers a commercial Enterprise tier.
- Bedrock Access Gateway — official open-source AWS sample (MIT-0). Covers chat completions and embeddings only. No WAF, auto-scaling, monitoring, or commercial support included.
- Bedrock Mantle — AWS's own native OpenAI-compatible endpoint backed by AWS's full compliance and SLA. No self-hosting required. Supports the Chat Completions, Responses, and Anthropic Messages APIs — but each model is restricted to specific APIs (frontier GPT = Responses only, Claude = Messages only, open-weight = Chat Completions), and it covers only a subset of Bedrock models (see the 2 markers in the comparison table above for exact coverage). Guardrails, prompt routers, and cross-region inference profiles are not available on Mantle. Routes through an AWS-managed endpoint, not your private VPC. See model availability. Rather than an either/or choice, stdapi.ai can serve the Mantle catalog itself: enable Bedrock Mantle Models to access OpenAI GPT, xAI Grok, and other Mantle-only models through the gateway, with all four text APIs available for every model.
Quality Assurance¶
"OpenAI-compatible" is easy to claim and hard to keep. The gateway sits between your application and a set of backends that change underneath it — new model generations, new parameters, silently altered behaviour — so its test suite is built to catch that drift before you do.
-
8,000+ automated tests
Run against real AWS services rather than mocks. -
95%+ branch coverage
Measured with every test tier enabled — the full suite, not the offline CI gate that runs on every push. -
Validated against the vendors
The same tests run against the real OpenAI, Anthropic, Cohere and Ollama APIs. -
Driven by real client software
Twenty-two third-party clients — Claude Code, n8n, Open WebUI, Home Assistant and more — driven end to end against a live gateway.
Compatibility is proven against the real APIs, not against our own docs¶
A gateway tested only against itself proves only that it is self-consistent. The suite runs the same test bodies against the genuine OpenAI, Anthropic, Cohere and Ollama endpoints, changing nothing but the URL, and a test that passes here and fails there is a compatibility bug in this product rather than an acceptable difference. The expected behaviour is captured from the vendor's own API before the feature exists, so the implementation is written against a contract that was verified, not assumed.
Real applications, not just API calls¶
Passing an HTTP test says nothing about whether a real coding agent, chatbot or automation platform actually works. So the suite runs them: complete third-party client software, unmodified, against a live gateway — coding agents (Claude Code, Codex, pi, OpenClaw, Hermes, Qwen Code), the n8n workflow runner, a Haystack RAG pipeline, the Open WebUI chat interface, Home Assistant's voice bridge, the LiteLLM proxy, Docling Serve's vision pipeline, LiveKit Agents and Pipecat on the documented WebRTC and telephony configurations, and the LangChain, LlamaIndex, Pydantic AI, Agno, inspect-ai and OpenAI Agents SDK libraries — driving multi-turn tool-calling sessions, document retrieval and reranking, server-side conversations, vector-store retrieval loops and speech pipelines across dozens of models and all four API dialects. A regression that only appears in a real client is caught here, not by you.
Every model is measured, not assumed¶
Model documentation describes what a model is supposed to accept. What it actually accepts is something else, and it changes between generations of the same model family. Each supported model is probed empirically for the parameters and features it genuinely honours — including the parameters it accepts and then quietly ignores, which are the ones that silently produce a wrong answer. The results are recorded and the behaviour is pinned by tests. See what each model reports.
Beyond automated tests¶
- Every release is validated twice — the complete suite locally, then again against a real deployment of the exact build being released
- Static analysis and strict typing on every line of source and test code
- Documented behaviour is tested behaviour — the compatibility tables on these pages are derived from what the tests assert, so a change in behaviour that the docs do not reflect fails the build
- Continuous review — periodic audits of the codebase and of the test suite itself, because a passing test that asserts nothing is worse than no test
- Security scanning of dependencies and container images, with the commercial image validated against AWS Security Hub's Foundational Security Best Practices
Found something anyway?
No suite catches everything. If you hit a compatibility difference between stdapi.ai and the API it mirrors, open an issue on GitHub — or email us if you would rather not report it publicly. That class of bug is treated as a defect, not as expected behaviour.
-
Full Bedrock catalog supported; each model must be declared in config (applies to auto-discovery) ↩↩
-
Subset of Bedrock models — mostly newer open-weight models (DeepSeek, Gemma, Qwen, GLM, MiniMax, Kimi, newer Mistral) plus OpenAI GPT/gpt-oss and xAI Grok; newer Anthropic Claude generations are available via the Messages API only. Amazon Nova, Meta Llama, AI21, Cohere, and Stability AI (images) are not available — see AWS endpoint availability ↩↩↩↩
-
CloudFormation reference sample (API Gateway + Lambda, or ALB + Fargate) — no WAF, auto-scaling, monitoring, or commercial support ↩
-
Covered through your existing AWS Support plan ↩
-
Generalist multi-cloud proxy covering 100+ providers; AWS-specific Bedrock features and security integrations may lag behind dedicated solutions ↩
-
Prompt caching and reasoning supported on standard routes; coverage varies by model — not all Bedrock models support prompt caching or extended thinking ↩
-
Auto-discovery limited to the single deployed region — some models are only available in specific AWS regions ↩
-
Achievable via the LiteLLM router, but requires manually declaring each model per region with explicit TPM/RPM limits — no automatic quota distribution ↩
-
Prompt caching on Mantle is supported but model-dependent (per each model card); reasoning is served via frontier models (GPT-5.x, gpt-oss) and select open-weight models (Qwen3 thinking, etc.) ↩
-
Single-region deployment — some models are only available in specific AWS regions; no cross-region catalog aggregation ↩
-
100+ providers: OpenAI, Azure OpenAI, GCP Vertex, Anthropic direct, and more — ideal when you need a single gateway across multiple clouds ↩
-
Requires connecting Amazon Polly as the TTS backend — not included by default in a LiteLLM on AWS deployment ↩
-
Supported by specifying the cross-region inference profile ARN as the model ID — no automatic profile selection ↩↩
-
Anthropic Messages API supported on Mantle for newer Claude generations only — Claude 3.x and some 4.x are not available; structured outputs (
output_config.format) are rejected with a 400 on Mantle — see AWS endpoint availability ↩ -
LiteLLM ships a first-class
bedrock_mantle/provider covering all Mantle models, so reaching Mantle needs no custom endpoint. Bedrock and Mantle remain two separate providers, each model declared inmodel_list, rather than one auto-discovered catalog ↩ -
LiteLLM translates between API formats per provider adapter; coverage is not a guaranteed all-text-APIs-on-every-model surface ↩
-
Conversation state kept in LiteLLM's own datastore rather than native provider server-side storage ↩
-
Served via LiteLLM's
/responsesendpoint, auto-bridged to/chat/completions; no native Bedrock Responses passthrough ↩ -
Mantle uses Projects/Workspaces (tag-based cost allocation via Cost Explorer) for workload isolation instead of application inference profiles — see Amazon Bedrock Projects ↩
-
LiteLLM provides an MCP gateway that proxies configured third-party MCP servers and converts OpenAPI specs to tools — a related capability, but it does not expose LiteLLM's own AI and media endpoints as tools ↩
-
Amazon Bedrock is a first-class batch provider for LiteLLM's Batches API — on the proxy only, not the SDK, and backed by Managed Files with a Postgres database plus an operator-configured S3 bucket and Bedrock batch role. LiteLLM's own cost tracking for batches is an Enterprise feature ↩
-
The Bedrock Mantle endpoint serves the Responses, Chat Completions and Anthropic Messages APIs only. Amazon Bedrock does offer an OpenAI-compatible Batch API on its
bedrock-runtimeendpoint — for OpenAI models only, reading its input from an S3 URI you upload yourself rather than through a Files API ↩ -
With Amazon Bedrock it is a bridge to a knowledge base you registered yourself: search, retrieve, list, update and delete are forwarded, while OpenAI-shaped store creation and file attachment accept the
openaiprovider only. LiteLLM's own/v1/rag/ingestroute does chunk, embed and index into a Bedrock knowledge base, but it is not part of the OpenAI API surface an unmodified client speaks ↩ -
Emulated: the store is presented to the model as a function tool and the search is executed by the proxy rather than by the model's own server. LiteLLM documents that
file_citationannotations can come back empty when the vector backend does not return the file metadata they need ↩ -
Spend is attributed per key and per user in LiteLLM's own database, not in AWS's billing data. Bedrock
requestMetadatacan be forwarded, which AWS surfaces in invocation logs rather than Cost Explorer or CUR 2.0 ↩ -
Application inference profiles put billed dollars in Cost Explorer and CUR 2.0, but per application rather than per end user — the gateway does not map a caller to a profile ↩
-
IAM principal attribution, Projects and Workspaces put billed dollars in Cost Explorer and CUR 2.0 — per identity or per project rather than per end user, and behind a shared gateway every caller arrives as the same identity ↩
-
/images/editslists AWS Bedrock (Stability) among its providers, so Stability's editing operations are reachable on Bedrock. It does not extend to the other Bedrock image models: the Bedrock provider page lists/images/generationsbut not/images/editsamong its supported OpenAI endpoints, and Amazon Nova Canvas and Titan are documented for generation only ↩ -
LiteLLM integrates Ollama as one of the backends it calls. Its proxy does not serve Ollama's own
/api/*routes, so an Ollama-native client cannot point at it ↩ -
Reachable by declaring the endpoint's ARN as a model entry (
bedrock/<provider_route>/<arn>) in the Bedrock provider configuration: one entry per endpoint, and no discovery of what is deployed ↩ -
The model list is discovered from Bedrock's foundation models and inference profiles only. The project's README documents Marketplace, custom-model and provisioned-throughput ARNs as unsupported, and states there is no plan to support SageMaker models ↩↩
-
A model deployed to a Marketplace or SageMaker AI endpoint is invoked through Bedrock's own Converse and InvokeModel APIs, and is absent from Mantle's API compatibility matrix ↩↩
-
Each endpoint is declared in
model_listthrough thesagemaker_chatprovider. Endpoints are not discovered, and nothing is documented for an endpoint scaled to zero ↩ -
A single API key is read from AWS Secrets Manager, Parameter Store or the environment at start-up, so there is no per-caller key to scope ↩
-
Bedrock API keys are restricted by an IAM policy on the identity behind the key rather than by a model or endpoint scope carried on the key itself ↩
-
The same data is served by LiteLLM's own
/spend/*routes, reported per key, user and team in a different wire format, so a dashboard written against OpenAI's Administration API does not read it ↩