# AI Gateway & Model Evaluation Set ๐
> A professional, reproducible evaluation layer for [Awesome AI Gateway](README.md): how the **models** behind the gateways actually perform, what they **really cost** on concrete workloads, and how the **gateways themselves** score on compliance, price, security and stability.
>
> **Languages:** English ยท [็ฎไฝไธญๆ](BENCHMARKS.zh-CN.md) ยท Last reviewed: **see footer**
Every number here is **sourced and dated**. Cost cells are *computed* from a public pricing table by a unit-tested script ([`scripts/cost_calc.py`](scripts/cost_calc.py)), never hand-typed โ re-run it and you get the same table. Model scores are copied from primary leaderboards with links. Gateway scores follow the published [rubric](#scoring-rubric-apply-consistently) below.
## Contents
- [Part 1 โ Authoritative model benchmarks](#part-1--authoritative-model-benchmarks)
- [Part 2 โ Pick a model by scenario](#part-2--pick-a-model-by-scenario)
- [Part 3 โ Real-world token cost (computed)](#part-3--real-world-token-cost-computed)
- [Part 4 โ Gateway scorecard: compliance ยท price ยท security ยท stability ยท observability](#part-4--gateway-scorecard-compliance--price--security--stability--observability)
- [Part 5 โ Real-world reviews: what production users report](#part-5--real-world-reviews-what-production-users-report)
- [Part 6 โ Gateway observability: the factors that matter](#part-6--gateway-observability-the-factors-that-matter)
- [Part 7 โ Identity & governance: the SSO-tax table](#part-7--identity--governance-the-sso-tax-table)
- [Methodology & caveats](#methodology--caveats)
- [Sources](#sources)
---
## Part 1 โ Authoritative model benchmarks
How capable is each model? These are the most-cited public benchmarks as of the review date. **Read them with the [caveats](#methodology--caveats)** โ leaderboards get gamed and contaminated; pair them with the human-preference Arena and the real-world cost tables below.
Ranked by the **Artificial Analysis Intelligence Index** (the most-cited one-number composite), on the current **v4.1** scale (rebased 2026-06-15, re-weighted toward agentic work โ scores sit ~5 points below v4.0, so **never compare across scales**). Sourcing is deliberately single-source per column: GPQAโฆ and HLE are AA's own independent runs; SWE-bench Verified is the independent [BenchLM](https://benchlm.ai/benchmarks/sweVerified) harness (board dated 2026-07-27) โ where a vendor card claims a score but the independent board doesn't carry the model, we show `โ`, not the vendor's number. Reasoning models appear in their highest-effort config (what AA headline-lists). `โฆ` = GPQA Diamond.
| # | Model | Provider | Weights | Context | GPQAโฆ | SWE-bench Verified | HLE | Arena Elo | AA Index |
|---|---|---|---|---|---|---|---|---|---|
| 1 | **Claude Opus 5** | Anthropic | Closed | 1M | 93.2% | **96.0%** ๐ฅ | 52.6% | 1495หข | **60.7** ๐ฅ |
| 2 | **Claude Fable 5** | Anthropic | Closed | 1M | 92.6% | 95.0% | **53.3%** ๐ฅ | **1508** ๐ฅ | **59.9** |
| 3 | **GPT-5.6 Sol** | OpenAI | Closed | ~1M | 94.1% | โ | 47.2% | 1485 | **58.9** |
| 4 | **Kimi K3** | Moonshot | ๐ Open | 1M | 93.5% | โ | 44.4% | 1486หข | **57.1** |
| 5 | **Claude Opus 4.8** | Anthropic | Closed | 1M | 92.0% | 88.6% | 45.7% | 1484 | **55.7** |
| 6 | **GPT-5.5** | OpenAI | Closed | ~1M | 93.5% | โ | 44.3% | 1482 | **54.8** |
| 7 | **Grok 4.5** | xAI | Closed | 500K | 93.1% | โ | 40.3% | 1468 | **53.8** |
| 8 | **GLM-5.2** | Z.ai (Zhipu) | ๐ Open ยท MIT | 1M | 89.5% | โ | 40.1% | 1469 | **51.1** |
| 9 | **Muse Spark 1.1** | Meta | Closed | 262K | 89.8% | โ | 45.1% | 1491 | **50.6** |
| 10 | **Gemini 3.5 Flash** | Google | Closed | 1M | 92.2% | โ | 41.0% | 1476 | **50.2** |
| 11 | **Gemini 3.6 Flash** | Google | Closed | 1M | 92.8% | โ | 38.3% | 1482 | **50.1** |
| 12 | **Gemini 3.1 Pro** | Google | Closed | 1M | 94.1% | โ | 44.7% | 1486 | **46.5** |
| 13 | **Qwen3.7 Max** | Alibaba | Closed | 1M | 92.3% | 80.4%โด | 38.1% | 1475 | **46.0** |
| 14 | **DeepSeek V4 Pro** | DeepSeek | ๐ Open ยท MIT | 1M | 88.8% | 80.6% | 35.9% | 1457 | **44.3** |
| 15 | **Kimi K2.6** | Moonshot | ๐ Open | 256K | 91.1% | 80.2% | 35.9% | 1461 | **44.2** |
| 16 | **GLM-5.1** | Z.ai (Zhipu) | ๐ Open | 200K | 86.8% | โ | 28.0% | 1469 | **40.2** |
| 17 | **Grok 4.3** | xAI | Closed | 1M | 90.1% | โ | 35.0% | 1443 | **37.6** |
| 18 | **Claude Haiku 4.5** | Anthropic | Closed | 200K | 67.2% | 73.3% | 9.7% | 1412 | **29.6** |
| 19 | **Mistral Large 3** | Mistral | ๐ Open | 256K | 68.0% | โ | 4.1% | 1415 | **15.9** |
หข Arena Elo still settling โ Claude Opus 5 has only ~2.4K votes (ยฑ12), Kimi K3 ~3.6K; read those two as provisional. Fable 5's 1508 (ยฑ6, 16K votes) is settled.
โด BenchLM marks the Qwen3.7 Max (and Gemini 3.5 Flash Pro-board) rows as lower-confidence.
> ๐ก๏ธ **Contamination-resistant cross-check.** On **SWE-bench Pro** (harder to game than Verified, [BenchLM](https://benchlm.ai/benchmarks/swePro)): Fable 5 **80.0%** ๐ฅ ยท Opus 5 79.2% ยท Opus 4.8 69.2% ยท Grok 4.5 64.7% ยท GPT-5.6 Sol 64.6% ยท GLM-5.2 62.1% ยท Muse Spark 1.1 61.5% ยท GPT-5.5 / Kimi K2.6 58.6% ยท GLM-5.1 58.4%. (Claude Mythos 5, limited availability, posts 80.3% โ the figure sometimes misattributed to Fable 5.) The frontier clusters at 89โ94% on GPQA โ at that ceiling, 1โ2 point gaps are noise; **HLE is the column that still separates** (4โ53% spread).
**What each column means**
- **GPQA Diamond** โ graduate-level science questions, Google-proof by design (AA independent runs).
- **SWE-bench Verified** โ fixes real GitHub issues; the headline *agentic coding* score (BenchLM independent harness).
- **HLE (Humanity's Last Exam)** โ frontier-difficulty closed-book exam; the strongest remaining separator (AA independent runs).
- **Arena Elo** โ blind human preference on [Arena (ex-LMArena)](https://arena.ai/leaderboard); the hardest metric to game.
- **AA Index** โ [Artificial Analysis](https://artificialanalysis.ai) Intelligence Index v4.1, a composite across agentic/coding/reasoning/knowledge benchmarks.
- AIME math figures (where published) remain in [`data/models.json`](data/models.json); the column was retired here for sparse coverage.
---
## Part 2 โ Pick a model by scenario
Benchmarks rank capability in the abstract; most teams have one concrete job. This maps the common jobs to a *capability* pick and a *value* pick (good-enough, far cheaper). Cross-check the price in [Part 3](#part-3--real-world-token-cost-computed).
| Your job | ๐ Capability pick | ๐ธ Value pick (good-enough, far cheaper) | Why |
|---|---|---|---|
| **Agentic coding** (SWE-bench) | Claude Opus 5 (96.0) / Fable 5 | Kimi K2.6 ยท DeepSeek V4 Pro | Open models hit ~80% SWE-bench Verified at a fraction of flagship cost |
| **Long-context / RAG** (100K+) | Gemini 3.1 Pro (1M ctx) | DeepSeek V4-Flash (1M ctx) | Cost floor on input-heavy work; mind Gemini's >200K surcharge |
| **Hard reasoning / math** | Gemini 3.1 Pro (98.2 AIME'26) | GLM-5.1 ยท Kimi K2.6 | Open models reach 95%+ AIME โ math is the most commoditized frontier skill |
| **Bulk generation** (emails, content) | Claude Haiku 4.5 | DeepSeek V4-Flash ยท GPT-5.4 nano | Output-heavy โ output price dominates; see [3.1](#31-write-a-100k-token-report-generation-heavy) |
| **Cheapest acceptable chat** | GPT-5.4 nano | DeepSeek V4-Flash | ~$0.21 per 1M-token chatbot month vs $17.50 for GPT-5.5 |
| **Open-ended chat** (human pref) | Claude Fable 5 (Arena 1508, #1) ยท Muse Spark 1.1 | GLM-5.2 (1469 at $1.40/M in) | Arena Elo is the metric that tracks "feels good to use" |
| **On-prem / data-sovereign** | Kimi K3 ยท DeepSeek V4 Pro (MIT) | GLM-5.2 (MIT) ยท Kimi K2.6 | Open weights you can run inside your own VPC โ zero data egress |
| **Compliance-bound enterprise** | Claude Opus 4.8 / GPT-5.5 via Azure / Bedrock / Vertex | โ | Route flagships through a [first-party cloud](#part-4--gateway-scorecard-compliance--price--security--stability--observability) with HIPAA/FedRAMP |
> A **gateway** is what lets you act on this table without rewriting code: set the capability pick as primary and the value pick as fallback, or route per-request by task. That's the whole point of the [list](README.md).
---
## Part 3 โ Real-world token cost (computed)
> "Benchmarks tell you what's *best*. Your invoice tells you what's *affordable*." These tables price four concrete workloads across a representative model set, computed from the pricing in [`data/models.json`](data/models.json) by [`scripts/cost_calc.py`](scripts/cost_calc.py). Pricing is USD per 1M tokens; reasoning models bill hidden thinking tokens at the output rate.
### 3.1 Write a 100K-token report (generation-heavy)
**Write a 100K-token report** (input 2,000 tok ยท output 100,000 tok)
| # | Model | Provider | Cost |
|---|---|---|---|
| 1 | DeepSeek V4-Flash | DeepSeek | $0.028 |
| 2 | GPT-5.6 Luna | OpenAI | $0.12 |
| 3 | GPT-5.4 nano | OpenAI | $0.13 |
| 4 | Mistral Large 3 | Mistral | $0.15 |
| 5 | Kimi K2.6 | Moonshot | $0.40 |
| 6 | GLM-5.2 | Z.ai (Zhipu) | $0.44 |
| 7 | Claude Haiku 4.5 | Anthropic | $0.50 |
| 8 | Grok 4.5 | xAI | $0.60 |
| 9 | Gemini 3.6 Flash | Google | $0.75 |
| 10 | GPT-5.6 Terra | OpenAI | $1.20 |
| 11 | Gemini 3.1 Pro | Google | $1.20 |
| 12 | Kimi K3 | Moonshot | $1.51 |
| 13 | Claude Opus 5 | Anthropic | $2.51 |
| 14 | Claude Opus 4.8 | Anthropic | $2.51 |
| 15 | GPT-5.6 Sol | OpenAI | $3.01 |
| 16 | GPT-5.5 | OpenAI | $3.01 |
| 17 | GPT-6 Astra | OpenAI | $5.02 |
| 18 | Claude Fable 5.1 | Anthropic | $5.02 |
> ๐ Cheapest is **~178ร** less than the most expensive for this task.
### 3.2 Summarize a 100K-token document (input-heavy)
**Summarize a 100K-token document** (input 100,000 tok ยท output 2,000 tok)
| # | Model | Provider | Cost |
|---|---|---|---|
| 1 | DeepSeek V4-Flash | DeepSeek | $0.015 |
| 2 | GPT-5.6 Luna | OpenAI | $0.022 |
| 3 | GPT-5.4 nano | OpenAI | $0.023 |
| 4 | Mistral Large 3 | Mistral | $0.053 |
| 5 | Kimi K2.6 | Moonshot | $0.10 |
| 6 | Claude Haiku 4.5 | Anthropic | $0.11 |
| 7 | GLM-5.2 | Z.ai (Zhipu) | $0.15 |
| 8 | Gemini 3.6 Flash | Google | $0.17 |
| 9 | Grok 4.5 | xAI | $0.21 |
| 10 | GPT-5.6 Terra | OpenAI | $0.22 |
| 11 | Gemini 3.1 Pro | Google | $0.22 |
| 12 | Kimi K3 | Moonshot | $0.33 |
| 13 | Claude Opus 5 | Anthropic | $0.55 |
| 14 | Claude Opus 4.8 | Anthropic | $0.55 |
| 15 | GPT-5.6 Sol | OpenAI | $0.56 |
| 16 | GPT-5.5 | OpenAI | $0.56 |
| 17 | GPT-6 Astra | OpenAI | $1.10 |
| 18 | Claude Fable 5.1 | Anthropic | $1.10 |
> ๐ Cheapest is **~76ร** less than the most expensive for this task.
### 3.3 Coding-agent session (mixed + reasoning tokens)
> **Capability *and* cost on one axis.** Every model with both an independent SWE-bench Verified score (BenchLM) and a price, plotted on the shared coding-agent session. Open weights (green) hit ~80% โ flagship-*tier* coding โ for a fraction of the spend: **DeepSeek V4 Pro (80.6%) costs ~$0.07 a session**, while the 96% ceiling (Claude Opus 5) runs ~23ร that and Arena-topping Fable 5 ~46ร. The cost axis reuses the unit-tested engine below; capability is the dated `swe_bench_verified` figure (models without an independent score โ e.g. Gemini 3.1 Pro, absent from the BenchLM board โ don't appear). Rendered by [`scripts/make_coding_chart.py`](scripts/make_coding_chart.py) โ re-run it and you get the same picture.
**Coding-agent session** (input 50,000 tok ยท output 20,000 tok ยท +30,000 thinking for reasoning models)
| # | Model | Provider | Cost |
|---|---|---|---|
| 1 | DeepSeek V4-Flash | DeepSeek | $0.021 |
| 2 | Mistral Large 3 | Mistral | $0.055 |
| 3 | GPT-5.6 Luna | OpenAI | $0.07 |
| 4 | GPT-5.4 nano | OpenAI | $0.073 |
| 5 | Kimi K2.6 | Moonshot | $0.13 |
| 6 | Claude Haiku 4.5 | Anthropic | $0.15 |
| 7 | GLM-5.2 | Z.ai (Zhipu) | $0.29 |
| 8 | Grok 4.5 | xAI | $0.40 |
| 9 | Gemini 3.6 Flash | Google | $0.45 |
| 10 | GPT-5.6 Terra | OpenAI | $0.70 |
| 11 | Gemini 3.1 Pro | Google | $0.70 |
| 12 | Kimi K3 | Moonshot | $0.90 |
| 13 | Claude Opus 5 | Anthropic | $1.50 |
| 14 | Claude Opus 4.8 | Anthropic | $1.50 |
| 15 | GPT-5.6 Sol | OpenAI | $1.75 |
| 16 | GPT-5.5 | OpenAI | $1.75 |
| 17 | GPT-6 Astra | OpenAI | $3.00 |
| 18 | Claude Fable 5.1 | Anthropic | $3.00 |
> ๐ Cheapest is **~143ร** less than the most expensive for this task.
### 3.4 1M-token chatbot month (balanced)
**1M-token chatbot month** (input 500,000 tok ยท output 500,000 tok)
| # | Model | Provider | Cost |
|---|---|---|---|
| 1 | DeepSeek V4-Flash | DeepSeek | $0.21 |
| 2 | GPT-5.6 Luna | OpenAI | $0.70 |
| 3 | GPT-5.4 nano | OpenAI | $0.72 |
| 4 | Mistral Large 3 | Mistral | $1.00 |
| 5 | Kimi K2.6 | Moonshot | $2.48 |
| 6 | GLM-5.2 | Z.ai (Zhipu) | $2.90 |
| 7 | Claude Haiku 4.5 | Anthropic | $3.00 |
| 8 | Grok 4.5 | xAI | $4.00 |
| 9 | Gemini 3.6 Flash | Google | $4.50 |
| 10 | GPT-5.6 Terra | OpenAI | $7.00 |
| 11 | Gemini 3.1 Pro | Google | $7.00 |
| 12 | Kimi K3 | Moonshot | $9.00 |
| 13 | Claude Opus 5 | Anthropic | $15.00 |
| 14 | Claude Opus 4.8 | Anthropic | $15.00 |
| 15 | GPT-5.6 Sol | OpenAI | $17.50 |
| 16 | GPT-5.5 | OpenAI | $17.50 |
| 17 | GPT-6 Astra | OpenAI | $30.00 |
| 18 | Claude Fable 5.1 | Anthropic | $30.00 |
> ๐ Cheapest is **~143ร** less than the most expensive for this task.
**Pricing gotchas a gateway buyer must know**
1. **Reasoning tokens are billed as output.** A "cheap" reasoning model can cost more than a flagship once it thinks for 30K tokens. The coding table above includes them.
2. **Cached input is 5โ10ร cheaper on most models โ and up to ~120ร on DeepSeek.** Reusing a long system prompt? The cached-input rate, not the headline input rate, is your real cost. (Writes cost 1.25โ2ร, so it only pays above a break-even hit rate โ see [caching economics](docs/caching-economics.md).)
3. **Batch APIs are ~50% off** for non-interactive work (Anthropic, OpenAI, Google all offer this).
4. **China models are priced in RMB** and often have off-peak discounts (DeepSeek) โ the USD figures here are conversions and move with the exchange rate.
---
## Part 4 โ Gateway scorecard: compliance ยท price ยท security ยท stability ยท observability
This is the part buyers actually lose sleep over. Models are interchangeable; the gateway is where your keys, prompts, and audit trail live. Each gateway is scored โ
1โ5 on five axes using the rubric below, so scores are comparable rather than vibes. The observability axis grades what a gateway actually exposes (per-gateway evidence in [`data/gateways_eval.json`](data/gateways_eval.json)); [Part 6](#part-6--gateway-observability-the-factors-that-matter) explains what each pillar means in practice.
### Scoring rubric (apply consistently)
| โ
| Compliance | Security | Stability / reliability | Observability |
|---|---|---|---|---|
| โ
5 | SOC 2 Type II **+** ISO 27001 **+** HIPAA BAA **+** EU residency **+** ZDR | Guardrails + PII redaction + RBAC + SSO/SAML + audit logs + key vault | Public uptime SLA โฅ99.9%, status page, multi-provider failover, sub-ms overhead | All 5 pillars: metrics export + trace export + per-key token/cost attribution + log export + dashboard |
| โ
4 | SOC 2 + one of {ISO, HIPAA, residency} + ZDR option | Most of the above, missing one enterprise control | SLA or strong failover + healthy maintenance | 4 of 5 pillars (typically missing trace export or a bundled UI) |
| โ
3 | SOC 2 **or** GDPR posture, ZDR on request | RBAC + audit logs + keys encrypted | Failover/fallback, active releases, no public SLA | Cost/usage accounting + dashboard, no standards-based (Prometheus/OTel) export |
| โ
2 | Privacy policy only, no third-party audit | Basic auth + key storage, few controls | Best-effort, community-maintained | Basic request logs/stats only |
| โ
1 | None stated | Known unpatched issues / minimal controls | Sporadic maintenance or unproven | Little beyond the provider invoice |
| ๐ | *Self-hosted: **you** own these. Score reflects the controls the software gives you to comply.* | | | |
**Markup** = what the gateway charges on top of provider token cost. Self-hosted = $0 markup, you pay infra + ops.
#### Hosted multi-provider gateways
| Gateway | Compliance | Markup | Security | Stability | Obsv | One-line |
|---|---|---|---|---|---|---|
| **Cloudflare AI Gateway** | โ
โ
โ
โ
ยฝ | **0%** | โ
โ
โ
โ
| โ
โ
โ
โ
ยฝ | โ
โ
โ
โ
โ
| CF holds SOC 2 II / ISO 27001 / PCI; free DLP + fallback; 100% SLA at Business+ |
| **Portkey** (cloud) | โ
โ
โ
โ
ยฝ | usage-based | โ
โ
โ
โ
ยฝ | โ
โ
โ
โ
| โ
โ
โ
โ
โ
| SOC 2 II + ISO + HIPAA; 50+ guardrail marketplace, RBAC/SSO; 99.99% SLA |
| **Vercel AI Gateway** | โ
โ
โ
โ
| **0%** | โ
โ
โ
ยฝ | โ
โ
โ
โ
| โ
โ
โ
โ
| SOC 2 II + 99.99% SLA (Enterprise); true 0% even on BYOK |
| **Helicone** (cloud) | โ
โ
โ
ยฝ | **0%** passthrough | โ
โ
โ
ยฝ | โ
โ
โ
| โ
โ
โ
โ
ยฝ | SOC 2 + HIPAA (Team); PII detection; OSS core โ VPC/self-host option |
| **Requesty** | โ
โ
โ
ยฝ | ~5% | โ
โ
โ
ยฝ | โ
โ
โ
| โ
โ
โ
| EU residency + PII masking + ZDR; SOC 2 Type II "in progress โ expected Q3 2026" (slipped from Q2; the vendor's own FAQ markup contradicts the badge). Q3 is the current quarter โ re-verify before relying on it |
| **OpenRouter** | โ
โ
โ
ยฝ | ~5.5% credit fee | โ
โ
โ
| โ
โ
โ
| โ
โ
โ
โ
ยฝ | ~90 providers, auto-failover, free ZDR; **no public SLA** (enterprise only) |
| **Eden AI** | โ
โ
โ
ยฝ | ~5.5% platform fee | โ
โ
โ
| โ
โ
โ
ยฝ | โ
โ
โ
| France-based, EU-default residency, GDPR-first; SOC 2 UNVERIFIED |
| **Martian** | โ
โ
โ
| volume (undisclosed) | โ
โ
โ
ยฝ | โ
โ
โ
| โ
โ
ยฝ | "Airlock" compliance vetting + cost-routing; certs UNVERIFIED |
#### First-party clouds (single-vendor, strongest certs)
| Gateway | Compliance | Markup | Security | Stability | Obsv | One-line |
|---|---|---|---|---|---|---|
| **Azure OpenAI** | โ
โ
โ
โ
โ
| N/A | โ
โ
โ
โ
โ
| โ
โ
โ
โ
ยฝ | โ
โ
โ
โ
ยฝ | SOC 2 / ISO / HIPAA-BAA / **FedRAMP High**, region pinning, ZDR endpoints |
| **AWS Bedrock** | โ
โ
โ
โ
โ
| N/A | โ
โ
โ
โ
โ
| โ
โ
โ
โ
ยฝ | โ
โ
โ
โ
| ISO / SOC / CSA STAR / HIPAA / FedRAMP High; multi-model within Bedrock |
| **Google Vertex AI** | โ
โ
โ
โ
ยฝ | N/A | โ
โ
โ
โ
โ
| โ
โ
โ
โ
ยฝ | โ
โ
โ
โ
| First GenAI platform to FedRAMP High (2025); SOC 2 / ISO / HIPAA |
| **OpenAI** (direct) | โ
โ
โ
โ
| N/A | โ
โ
โ
โ
| โ
โ
โ
โ
| โ
โ
โ
โ
| SOC 2 II, HIPAA-BAA, ZDR; but single-vendor = no cross-provider failover |
> โ ๏ธ First-party clouds win compliance but **can't survive a provider outage** โ that cross-vendor failover is exactly what a gateway in front of them buys you.
#### Open-source self-hosted (๐ you own compliance; $0 markup, you pay infra)
| Gateway | Compliance | Security | Stability | Obsv | One-line |
|---|---|---|---|---|---|
| **Portkey Gateway** (OSS) | โ
โ
โ
๐ | โ
โ
โ
โ
| โ
โ
โ
โ
| โ
โ
| MIT; full guardrails, MCP OAuth, fallbacks free; 2.65 ms measured overhead (the marketed <1 ms did not reproduce) |
| **Kong AI Gateway** | โ
โ
โ
ยฝ | โ
โ
โ
โ
| โ
โ
โ
โ
| โ
โ
โ
ยฝ | Prompt Guard + mature general security plugins (OSS); PII sanitization, Model Armor and RBAC are Enterprise-only (verified absent from the OSS tree, 2026-07-28) |
| **Envoy AI Gateway** | โ
โ
โ
๐ | โ
โ
โ
โ
| โ
โ
โ
โ
| โ
โ
โ
โ
| Multi-provider + MCP gateway w/ OAuth+CEL authz; native K8s/Istio |
| **Bifrost** (Maxim) | โ
โ
โ
๐ | โ
โ
โ
ยฝ | โ
โ
โ
โ
ยฝ | โ
โ
โ
โ
โ
| Go; measured 0.62 ms overhead (the ~11ยตs figure is the vendor's own benchmark); cluster mode; one high SSRF advisory, fixed 1.5.16 |
| **TensorZero** | โ
โ
โ
๐ | โ
โ
โ
| โ
โ
โ
โ
| โ
โ
โ
โ
ยฝ | Rust; <1ms p99 at 10k+ QPS; routing + built-in observability; โ ๏ธ archived Jun 2026 |
| **Higress** | โ
โ
โ
๐ | โ
โ
โ
ยฝ | โ
โ
โ
โ
| โ
โ
โ
โ
ยฝ | Istio/Envoy AI-native, Wasm plugins, console; Alibaba-backed |
| **Apache APISIX** | โ
โ
โ
๐ | โ
โ
โ
| โ
โ
โ
โ
| โ
โ
โ
ยฝ | ai-proxy / ai-prompt-guard plugins on mature ASF gateway |
| **LiteLLM** | โ
โ
โ
๐ | โ
โ
ยฝ โ ๏ธ | โ
โ
โ
โ
| โ
โ
โ
โ
โ
| SOC 2 I + ISO (Enterprise); **run โฅ1.84.0** โ 12 advisories published in 2026, 3 of them critical (one RCE chain on CISA's KEV list); all fixed, but the floor moved past 1.83.7 |
| **GPT-Load** | โ
โ
๐ | โ
โ
ยฝ | โ
โ
โ
ยฝ | โ
ยฝ | Go key-pool rotation + encrypted key store + dual auth; proxy-level only |
| **new-api** | โ
โ
๐ | โ
ยฝ โ ๏ธ | โ
โ
โ
| โ
โ
ยฝ | Active, but **cluster of 2026 CVEs** (IDOR/SSRF/SQLi) โ sandbox + patch fast |
| **one-api** | โ
โ
๐ | โ
โ
| โ
โ
ยฝ | โ
โ
| The MIT original; maintenance slowed โ new-api is the more active successor |
> โ ๏ธ **CVE honesty.** Popularity makes OSS gateways targets. LiteLLM (pre-auth SQLi + unauth RCE) and new-api (IDOR/SSRF/SQLi) both had serious 2026 advisories โ *patched*, but the lesson is: pin to current stable, restrict egress, and don't expose the admin panel publicly. Absence of found CVEs (TensorZero, Higress, Envoy, GPT-Load) โ proven-secure; it can mean less scrutiny.
> ๐ **Obsv column** = the five-pillar observability score from the rubric; per-gateway evidence (which pillars, which docs) is machine-readable in [`data/gateways_eval.json`](data/gateways_eval.json). Standouts: **LiteLLM / Bifrost / Cloudflare / Portkey cloud** cover all five pillars; **Portkey OSS v1.x ships near-zero observability** (its telemetry lands in the unreleased 2.0 branch); **Envoy AI Gateway** is the strongest standards-first pick (OTel GenAI-semconv, no UI); CN-panel gateways (new-api/one-api/GPT-Load) invert โ strong billing UI, no Prometheus/OTel.
> โฑ๏ธ **Gateway overhead, independently measured.** Vendors market conflicting overhead claims (ยตs-level vs ms-level) with no third-party numbers โ so this project measures it: a reproducible harness (mock OpenAI upstream, interleaved rounds, median-of-medians; no API keys) runs monthly in CI on the same neutral runner. 2026-07 results, added latency per request: **Bifrost 0.62 ms** (IQR 0.59โ0.78) ยท **Portkey Gateway OSS v1.15.2 2.65 ms** (2.57โ2.83) ยท **LiteLLM v1.91.1 5.83 ms** (5.55โ5.86). Read against marketing: Bifrost's "fastest" holds directionally (~10ร vs LiteLLM โ not the marketed 50ร, which refers to loaded throughput); Portkey's "<1 ms" didn't reproduce on shared CI hardware (it did on a fast desktop: 0.47 ms). Data: [`llm-gateway-bench/data/overhead.json`](https://github.com/cuihuan/llm-gateway-bench/blob/main/data/overhead.json) ยท [methodology](https://github.com/cuihuan/llm-gateway-bench/blob/main/docs/methodology.md) โ PRs adding Kong/Envoy/Higress are welcome.
> ๐ **Protocol-translation fidelity, independently measured (2026-07).** The most-reported gateway failure in real bug trackers isn't routing โ it's the gateway **corrupting tool-calls / streaming / usage in translation** ("claude code" appears in 400+ LiteLLM issues; the top-commented issues on Portkey/OpenRouter/Bifrost are all this). So this project measures it: a mock upstream returns spec-correct responses (a tool_call, a genuine multi-chunk SSE stream with `usage`), and the harness checks what actually arrives **through** each gateway (no keys, reproducible in CI). Result, self-hosted at a custom upstream: **LiteLLM v1.91.1 โ 3/3 ยท Bifrost โ 3/3 ยท Portkey Gateway OSS v1.15.2 โ 1/3.** All three relay a tool_call intact; but **Portkey OSS in custom-host mode threw an internal error on *every* streaming request** (client got 0 chunks, no `usage`) while non-streaming worked โ reproduced on a clean CI runner. Fair caveats: this is the OSS gateway's *self-host custom-host path* (Portkey's hosted product / standard provider integrations may stream fine, and v2.0 is unreleased). That result is OpenAI-format **passthrough**; the harder **cross-format** path โ an Anthropic client (e.g. Claude Code) routed to an OpenAI upstream, where the hardest bugs live โ is now measured too (neutral CI runner): **LiteLLM v1.91.1 โ 3/3 ยท Bifrost โ 3/3 ยท Portkey Gateway OSS v1.15.2 โ not offered.** LiteLLM (`/v1/messages`) and Bifrost (`/anthropic/v1/messages`) both translate a Claude-Code / Anthropic-SDK client to an OpenAI upstream cleanly โ tool_use, streaming and usage all survive; Portkey OSS's `/v1/messages` is **Anthropic-provider-only** โ with an OpenAI provider it rejects the request (`messages is not supported by openai`), so it doesn't offer this path in header-config self-host mode. One finding worth pinning your version for: LiteLLM's `/v1/messages` transport **changed across releases** โ โค1.57.x via OpenAI *Chat Completions* (drops streaming usage, 2/3), โฅ~1.9x (and Bifrost) via the OpenAI **Responses API** (upstream `/v1/responses`), which fails `KeyError('created_at')` against a chat-completions-only upstream (recorded **inconclusive**; a gateway that doesn't offer the path at all is **unsupported** โ neither is ever a 0/3). **Takeaway: before committing, run your actual agent โ tools + streaming โ through the gateway, not a hello-world.** Data: [`fidelity.json`](https://github.com/cuihuan/llm-gateway-bench/blob/main/data/fidelity.json) (passthrough) ยท [`xformat.json`](https://github.com/cuihuan/llm-gateway-bench/blob/main/data/xformat.json) (cross-format).
> ๐ **Self-hosted shifts the burden to you.** LiteLLM/Bifrost/Kong score on the *controls they hand you* (RBAC, audit logs, key vaulting, on-prem) โ but SOC 2 / HIPAA compliance of the *deployment* is yours to earn. That's the trade for $0 markup and full data control.
---
## Part 5 โ Real-world reviews: what production users report
Benchmarks rank capability; this ranks **what actually breaks once a gateway is in production**. Sourced from incident postmortems, status pages, security research and acquisition news โ every dated event below links to a primary or recognized source, summarized fairly (what users praise *and* complain about). Read it alongside the [scorecard](#part-4--gateway-scorecard-compliance--price--security--stability--observability): stars measure popularity; this measures the 3am pager.
| Gateway | Praised for | Recurring gripe | Dated event worth knowing |
|---|---|---|---|
| **LiteLLM** | Default OpenAI-compatible multi-provider proxy; unmatched model breadth | Latency/memory overhead and degradation at high RPS | โ ๏ธ **PyPI supply-chain attack (Mar 2026)** โ v1.82.7/1.82.8 were backdoored with a credential stealer after a Trivy CI-token compromise (TeamPCP); PyPI quarantined the project in ~3h. Pin to a clean release. [Trend Micro](https://www.trendmicro.com/en/research/26/c/inside-litellm-supply-chain-compromise.html) ยท [Datadog](https://securitylabs.datadoghq.com/articles/litellm-compromised-pypi-teampcp-supply-chain-campaign/) |
| **OpenRouter** | 400+ models behind one key and one bill; hard spend caps | ~5.5% credit fee at scale; provider quality/quantization varies; no public SLA | **~50-min database outage (Aug 28 2025)**, then two more on **Feb 17 & 19 2026** โ all DB-layer failures, not upstream providers (the Feb pair: the caching layer dropped every DB connection, returning 401s with ~80โ90% request failures); ~99.96% uptime over 8 months, but no SLA or downtime credits. [StatusGator](https://statusgator.com/services/openrouter) ยท [Feb 2026 postmortem](https://openrouter.ai/blog/announcements/openrouter-outages-on-february-17-and-19-2026/) |
| **Portkey** | Genuinely production-grade; strong observability, fallbacks, prompt management | Much "review" content is SEO โ weigh G2/Gartner over listicles | **Acquired by Palo Alto Networks (closed May 2026)** โ now the control plane for Prisma AIRS; a neutrality/roadmap question if you want vendor-independent infra. [Palo Alto Networks](https://www.paloaltonetworks.com/company/press/2026/palo-alto-networks-completes-acquisition-of-portkey-to-secure-ai-agents) |
| **Vercel AI Gateway** | One endpoint, 0% markup on BYOK, native to the AI SDK | Durable independent sentiment still thin | **Vercel breach (Apr 2026)** โ a Context.ai OAuth supply-chain compromise exposed environment variables for a subset of customers. Not the gateway product itself, but it bears on trusting Vercel with your keys. [TechCrunch](https://techcrunch.com/2026/04/20/app-host-vercel-confirms-security-incident-says-customer-data-was-stolen-via-breach-at-context-ai/) ยท [Vercel](https://vercel.com/kb/bulletin/vercel-april-2026-security-incident) |
| **Cloudflare AI Gateway** | Zero-infra observability / caching / rate-limiting on CF's edge; dollar spend limits | Limited request-placement / routing control | Newer entrant; independent production-review depth is still thin. |
| **Kong AI Gateway** | Inherits a battle-tested data plane + broad plugin ecosystem | Open-core: several important plugins are Enterprise-only (some prefer Apache APISIX for predictable OSS) | The AI Gateway is newer; most Kong-vs-LiteLLM/Portkey benchmarks are vendor-published โ reproduce before trusting. |
| **TensorZero** | Ambitious OSS gateway + observability + optimization "flywheel" | โ | โ ๏ธ **Archived June 2026** โ company wound down; Apache-2.0 code and community forks remain, but plan for self-support, not a vendor roadmap. [GitHub](https://github.com/tensorzero/tensorzero) |
| **Helicone** | ~2-minute onboarding; fast cost/usage and token-limit debugging | As a proxy it sits in the request path (a SPOF unless you use async logging) | **Acquired by Mintlify (Mar 2026), now maintenance mode** โ security fixes, bug fixes and new models keep shipping; Mintlify supports migration. [Mintlify](https://www.mintlify.com/blog/mintlify-acquires-helicone) ยท [Helicone](https://www.helicone.ai/blog/joining-mintlify) |
| **Bifrost** | Markets itself as a fast Go drop-in for LiteLLM | Independent production evidence is still thin | Its 50โ90ร lower-p99 claims are **vendor-reported** โ reproduce on your own workload before betting on them. |
> **How to read this.** Every gateway here is a *legitimate* project with a real maintainer or company โ the kind this list includes. We surface their warts on purpose: a gateway with *no* public criticism usually just has no public users. These notes are point-in-time and dated; sources move fast, so verify before you sign.
---
## Part 6 โ Gateway observability: the factors that matter
*Why this is its own axis โ separate from the [scorecard](#part-4--gateway-scorecard-compliance--price--security--stability--observability) and from generic APM: a gateway sits between many internal consumers and metered, $-per-token providers, so the unit of analysis is **tokens and dollars attributed per key / team / user / model** โ and the gateway's own value-add (retries, fallback, caching, guardrails) actively **masks** cost and failure unless it's instrumented. The cross-vendor standard is the [OpenTelemetry GenAI semantic conventions](https://github.com/open-telemetry/semantic-conventions-genai) (`gen_ai.*` spans + metrics), now natively consumed by Datadog/Honeycomb/Grafana โ but most `gen_ai.*` attributes are still **"Development"** status in 2026, and several heavily-marketed capabilities (online evals, drift detection) are real **product features, not standards**. This rubric grades what a gateway actually exposes, flags standardized vs aspirational, and stays neutral. The premise is survey-backed: cost is the **#2 most-monitored production metric** after quality/task success, with nearly half of teams actively monitoring cost in prod ([Amplify 2026 AI Engineering Report](https://www.amplifypartners.com/blog-posts/the-2026-ai-engineering-report), n>1,000).*
### Table-stakes โ miss these and it's barely instrumented (mostly maps to Required/Stable OTel)
| Factor | What a well-instrumented gateway exposes | How to verify |
|---|---|---|
| **Core inference telemetry** | `gen_ai.operation.name` + `gen_ai.provider.name` on every span (**both Required**), span named `{op} {model}`, and **both** `gen_ai.request.model` (alias requested) **and** `gen_ai.response.model` (concrete model that answered) โ so a silent reroute / alias-swap is visible. | Call two upstreams via a model alias; confirm distinct `provider.name`, and `request.model`=alias vs `response.model`=resolved version. |
| **Token & $ cost attribution** | input/output token counts + the `gen_ai.client.token.usage` histogram split by `gen_ai.token.type`; cost read from the **provider usage payload** (not just model-name inference), broken down by token type (prompt / completion / cached-read / reasoning) and rolled up per key/team/user/model. | Two identical calls under different keys โ separate cost; a cache-read costs less than a miss; an **unknown model still yields token counts**, not a silent $0. |
| **Decomposed latency** | total **and** upstream-provider **and** gateway-overhead as separate numbers, plus **TTFT** on streams, as **histograms** (p95/p99) โ `gen_ai.client.operation.duration` is the **only** metric the spec marks Required. | One trace shows total/upstream/overhead separately; a streaming call records TTFT distinctly; the metric is a histogram, not an average gauge. |
| **Error taxonomy by origin** | failures carry the **Stable** `error.type` + provider status + class, separated by origin (client/gateway rejection vs upstream failure vs guardrail block) โ not one flat 5xx counter. | Trigger a provider 429, an oversized-prompt 400, a budget/auth rejection, and a guardrail block โ each labeled distinctly. |
| **Open export / no lock-in** | emits **and** ingests OTLP (`gen_ai.*` / OpenInference), a Prometheus `/metrics` endpoint, webhooks, and bulk raw export to S3/warehouse โ not a dashboard-only silo (a real risk after the 2026 shakeout: TensorZero archived, HeliconeโMintlify maintenance, PortkeyโPalo Alto). | Point its exporter at a throwaway OTel Collector; `curl /metrics`; configure a test webhook; ask for a documented warehouse export. |
| **Cardinality discipline** | metrics use only **bounded** labels (model / provider / region / status / deployment); unbounded ids (prompt text, conversation/request id, raw user id) live in trace/log attributes, **never** labels โ else the monitoring bill exceeds the inference bill. | Scrape `/metrics` and look for any unbounded label; ask "what's my metrics bill at 10k RPS with 1M distinct users?" |
### Differentiating โ instruments the gateway's own value-add (which otherwise hides cost & failure)
| Factor | What a well-instrumented gateway exposes | How to verify |
|---|---|---|
| **Reliability visibility** (retry / fallback / failover / cooldown) | counters for successful vs failed fallbacks labeled `requestedโfallback` model, retry-attempt counts, circuit-breaker/cooldown events โ because a request that succeeds after 3 retries + a fallback otherwise looks like a clean 200. | Force the primary to 500 โ trace shows retry spans, the fallback sourceโtarget, and which deployment finally served. |
| **Cache visibility** | per-request HIT/MISS + hit-rate % + cost/time saved; exact **and** semantic caching; provider prompt-cache read/write tokens tracked **separately** from the gateway's own response cache. | Send the same request twice โ 2nd flagged HIT with lower cost/latency; dashboard shows hit rate + cumulative savings. |
| **Budget / quota / rate-limit telemetry** | live remaining-budget gauges per key **and** team ($ + hours-to-reset), remaining RPM/TPM per model, upstream provider rate-limit headroom, graduated alerts, and a **hard cutoff** at the limit (not just an alert). | Set a small team budget, drive spend โ gauge ticks down, alert fires, **and traffic is actually cut off**. |
| **Streaming lifecycle** | a `gen_ai.request.stream` flag, TTFT + per-output-token latency, and **mid-stream failure** detected as a failure/partial (a stream can send 200 OK then stall or error). | Stream a request โ TTFT distinct from total; cut the connection mid-stream โ recorded as failure/partial, not a clean success. |
| **Prompt/response capture *with* redaction** | content capture **off by default** (the OTel default, toggled via `OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT`), landing in `gen_ai.input.messages` / `output.messages`; paired with **PII redaction before storage and before the provider call**. Raw logging without redaction can breach GDPR + the EU AI Act (high-risk provisions enforceable **2026-08-02**). | With capture unset, only metadata appears; a planted SSN/email is masked on both input **and** output. |
### Advanced โ the 2026 frontier, mostly **non-standard product features** (grade as bonus, verify claims)
| Factor | What a well-instrumented gateway exposes | Honest caveat |
|---|---|---|
| **Retention + tail/eval-driven sampling** | per-data-class retention (keep metrics long, expire raw prompts fast) + sampling that keeps **100% of errors** and high-cost/anomalous traces while sampling the boring bulk โ head-only sampling drops the rare hallucination you needed. | Only OTLP transport is standardized; the **sampling policy is product-specific**. |
| **Eval / quality & drift signals** | online evals (LLM-as-judge or programmatic) attachable to live traces and chartable over time, + capture of the **resolved** `gen_ai.response.model` so a silent provider re-point is visible, + traceโeval behind a CI gate. | Online evals / LLM-as-judge are **vendor product features, NOT the OTel standard** โ only `gen_ai.response.model` is standardized. Treat vendor eval/latency claims as vendor-reported until reproduced. |
**Exemplars among listed gateways** (illustrative, not endorsements): **LiteLLM** ships the reference self-hosted label set (`litellm_spend_metric`, cached/reasoning token splits, distinct request/upstream/overhead latency, fallback + budget metrics, Prometheus + Grafana). **Helicone**, **Langfuse**, **Arize Phoenix**, **Pydantic Logfire** and **Braintrust** are observability-first (OTLP-native, cost-by-segment, evals). **Portkey** exposes OTLP export + hard budget enforcement + cache/guardrail telemetry. **Kong AI Gateway** maps the `gen_ai.*` span set and PII sanitization. **Cloudflare AI Gateway** adds spend limits + free DLP/PII scan. *Verify against your own workload โ most performance/eval figures are vendor-reported.*
> **Questions to ask before you trust a gateway's dashboard**
> - Show me a sample exported span: do you **emit and ingest OTLP** with `gen_ai.*` / OpenInference names, or is telemetry proprietary-only?
> - Is there a Prometheus `/metrics` endpoint, and are all labels **bounded**? (Any unbounded label โ prompt text, conversation/request id, raw user id โ is a walk-away.)
> - Can cost be attributed **simultaneously per virtual-key / team / user / model AND by token type**, read from the provider usage payload (not just inferred from the model name, which breaks on new/renamed models)?
> - Can I read **total, upstream, and gateway-overhead latency separately**, with TTFT on streams, as histograms (p95/p99) โ not one average gauge?
> - When a request succeeds only after retries + a fallback, does the trace show the **retry spans and the fallback sourceโtarget**, or just a 200?
> - Do budgets **hard-cut-off** at the limit or only alert, and where do alerts route?
> - Is content capture **off by default**, with PII redacted **before storage and before the provider sees it**?
> - Do you record the **resolved** `gen_ai.response.model`, so a silent provider re-point or model re-tune is detectable?
> - Under ZDR / self-host, **what observability do I lose** (typically you keep metadata/metrics, drop prompt bodies)?
> **Grounded in** the [OpenTelemetry GenAI semantic conventions](https://github.com/open-telemetry/semantic-conventions-genai) ([spans](https://github.com/open-telemetry/semantic-conventions-genai/blob/main/docs/gen-ai/gen-ai-spans.md) ยท [metrics](https://github.com/open-telemetry/semantic-conventions-genai/blob/main/docs/gen-ai/gen-ai-metrics.md)). Most `gen_ai.*` attributes are still **Development** status in 2026 (`error.type` / `server.*` are Stable) โ pin `OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental` so dashboards don't silently break across releases. Reference label sets: [LiteLLM Prometheus](https://docs.litellm.ai/docs/proxy/prometheus), [OpenLLMetry/Traceloop](https://github.com/traceloop/openllmetry), [OpenInference](https://github.com/Arize-ai/openinference). Last reviewed **2026-06-25**.
---
## Part 7 โ Identity & governance: the SSO-tax table
Enterprise evaluations burn hours on four unglamorous questions โ **SSO, SCIM, RBAC, audit logs** โ and no neutral party has published the tier gates on one page. Here they are, from primary vendor docs only ([machine-readable with per-cell quotes + URLs](data/identity_matrix.json), verified **2026-07-27**). Control-plane features only: data-plane auth plugins (APISIX `openid-connect`, Higress `key-auth`, โฆ) protect *proxied* traffic, not the gateway's own console, and don't count. "Not documented" = the vendor's docs are silent, **not** a confirmed "no". The recurring pattern is the **SSO tax**: identity and governance are precisely where open source and low tiers stop and the enterprise contract begins.
**Legend:** โ
available at the stated tier ยท ๐ฐ paid/enterprise gate ยท โ absent ยท โ not documented
### Self-hosted / open-core
| Vendor | SSO (admin / control plane) | SCIM provisioning | RBAC | Audit logs |
|---|---|---|---|---|
| **LiteLLM** | โ
OIDC + SAML, **free โค5 users** (v1.76.0+) ยท ๐ฐ Enterprise beyond | ๐ฐ Enterprise (`/scim`, 6 IdPs; deprovision also deletes the user's API keys) | โ
global roles + teams/keys free ยท ๐ฐ org/team-admin roles Enterprise | ๐ฐ Enterprise (key/team/user/model changes; UI + S3 JSON export) |
| **Portkey** | ๐ฐ Enterprise (OIDC + SAML, hosted control plane) ยท โ not in OSS gateway | โ
users + groupsโworkspaces (Azure AD, Okta) ยท tier โ (docs sit under "Enterprise Offering") | โ ๏ธ vendor self-conflict: pricing says Production $49/mo, docs banner says Enterprise ยท โ not in OSS | ๐ฐ Enterprise (admin actions, indefinite retention, JSON Admin API; no bulk file export) |
| **Kong** | ๐ฐ Konnect Enterprise (OIDC + SAML) ยท โ none in OSS | โ not documented for the gateway (Kong's SCIM is Insomnia-only) | ๐ฐ Konnect Plus+ / Gateway Enterprise ยท โ zero `rbac` keys in OSS `kong.conf.default` | ๐ฐ Enterprise (Konnect SIEM webhook, CEF/JSON โ โ ๏ธ **7-day retention**, then deleted) |
| **Apache APISIX / API7** | โ OSS (single shared admin key) ยท ๐ฐ API7 Enterprise (OIDC/SAML/LDAP) | โ OSS ยท ๐ฐ API7 Enterprise (Okta, Entra ID) | โ OSS ยท ๐ฐ API7 Enterprise (custom roles + IAM-style policies) | โ OSS ยท ๐ฐ API7 Enterprise (180-day default, JSON/CSV export) |
| **Higress (OSS)** | โ single local admin account (console login mgmt is a roadmap item) | โ not documented | โ single-admin model, no console roles | โ not documented |
### Hosted
| Vendor | SSO | SCIM | RBAC | Audit logs |
|---|---|---|---|---|
| **OpenRouter** | ๐ฐ Enterprise (SAML: Okta, Entra ID, Google Workspace, custom) | ๐ฐ Enterprise (groupโworkspace mappings; IdP deactivation kills org-scoped keys) | โ
2 roles only (Admin/Member) + per-workspace assignment ยท tier โ | โ **no admin-action audit log documented** โ only usage CSV/PDF export |
| **Vercel AI Gateway** | ๐ฐ Enterprise, or Pro add-on at **$300/month** (SAML, 20+ IdPs) | ๐ฐ Enterprise only (Directory Sync โ not purchasable on Pro at any price) | โ
Pro team-level ยท ๐ฐ Enterprise adds project-level | ๐ฐ Enterprise (CSV + SIEM streaming / Audit Log Drains) |
| **Cloudflare AI Gateway** | โ
**free on all plans** (dashboard SSO, any Cloudflare One IdP, SAML incl.) | ๐ฐ Enterprise only (Okta, Entra ID, Authentik) | โ
70+ account roles + domain/resource scoping (domain-scoped shipped to Enterprise; docs silent on tier today) | โ
all plans, 18-month retention, CSV/API ยท ๐ฐ Logpush export Enterprise |
| **Higress hosted (Alibaba Cloud APIG)** | โ
free (RAM SAML 2.0, account plane) | โ
CloudSSO SCIM 2.0 (Okta, Entra ID, Keycloak) | โ
RAM roles + custom JSON policies, resource-level (service code `apig`) | โ
ActionTrail (90-day free, SLS/OSS delivery) |
> **How to read the SSO tax.** (1) **Six of the nine vendors gate SSO behind a paid or enterprise tier.** Cloudflare is the only gateway vendor shipping dashboard SSO free on every plan; Vercel is the only one with a public sticker price for the tax ($300/month on Pro); LiteLLM has the only OSS carve-out (free up to 5 users since v1.76.0); Higress OSS has no console SSO at any price. (2) **Don't confuse data-plane auth with control-plane identity.** APISIX's `openid-connect`/`saml-auth` and Higress's auth plugins protect *proxied* APIs โ the OSS consoles behind them are single-admin with no SSO, RBAC, or audit trail documented at all. (3) **Audit-log fine print bites hardest.** Kong Konnect keeps audit logs **7 days** then deletes them (the SIEM webhook is effectively mandatory); OpenRouter documents no admin-action audit log at all; LiteLLM and Portkey put audit logs behind Enterprise. (4) **Check *where* the feature lives.** Portkey's OSS repo is the data plane only โ every identity feature requires the hosted/enterprise control plane; Cloudflare, Vercel and Alibaba Cloud inherit identity from the platform account, not the gateway product โ fine if you're all-in on that platform, an extra dependency if not. Per-cell vendor quotes and source URLs: [`data/identity_matrix.json`](data/identity_matrix.json).
---
## Methodology & caveats
- **Benchmarks are necessary, not sufficient.** Public sets leak into training data (contamination), and vendors optimize for the leaderboard. We therefore show *several* benchmarks + blind human preference (Arena) + real cost, and weight none of them alone.
- **"Verified" matters.** We prefer SWE-bench **Verified** over the raw set, and official model cards / [Artificial Analysis](https://artificialanalysis.ai) independent runs over vendor press releases. Vendor-reported numbers are labeled.
- **Cost โ price.** Headline $/token hides reasoning-token inflation, cached-input discounts and batch pricing. Part 3 prices *workloads*, not tokens, and the script is open for you to plug your own token mix.
- **Gateway scores are point-in-time estimates** from public trust pages, status pages and docs. Compliance certs lapse and ship; verify before you sign. Corrections welcome via PR โ see [CONTRIBUTING](CONTRIBUTING.md).
- **No affiliation.** This list takes no money from any vendor listed. Self-hosted and commercial options are scored on the same axes.
## Sources
Primary leaderboards and pricing references (verify live โ these move weekly):
- [LMArena](https://lmarena.ai) โ blind human-preference Elo
- [Artificial Analysis](https://artificialanalysis.ai) โ Intelligence Index, price & speed
- [SWE-bench](https://www.swebench.com) โ agentic coding leaderboard
- [Vellum LLM Leaderboard](https://www.vellum.ai/llm-leaderboard), [OpenRouter rankings](https://openrouter.ai/rankings)
- **Agentic & tool-calling:** [Terminal-Bench](https://www.tbench.ai/leaderboard) (shell/CLI agents), [ฯยฒ-bench](https://github.com/sierra-research/tau2-bench) (tool-agent policy adherence), [BFCL v4](https://gorilla.cs.berkeley.edu/leaderboard.html) (Berkeley function-calling), [Aider polyglot](https://aider.chat/docs/leaderboards/) (multi-language code edits)
- **Contamination-resistant / frontier:** [LiveBench](https://livebench.ai) & [LiveCodeBench](https://livecodebench.github.io/leaderboard.html) (questions refreshed monthly), [FrontierMath](https://epoch.ai/frontiermath) (research-level math)
- Official pricing: [Anthropic](https://www.anthropic.com/pricing), [OpenAI](https://openai.com/api/pricing/), [Google](https://ai.google.dev/pricing), [DeepSeek](https://api-docs.deepseek.com/quick_start/pricing)
- Observability standard (Part 6): [OpenTelemetry GenAI semantic conventions](https://github.com/open-telemetry/semantic-conventions-genai) โ `gen_ai.*` spans & metrics
Per-cell sources are listed in [`data/models.json`](data/models.json) and the gateway research notes.
---
*Maintained as part of [Awesome AI Gateway](README.md). Model scores and prices change fast; this set is reviewed on a published cadence and every figure is dated at its source.*
**Last reviewed: 2026-07-28** ยท benchmark & pricing snapshot in [`data/models.json`](data/models.json), gateway scores in [`data/gateways_eval.json`](data/gateways_eval.json).