# AI gateway: which products coding agents choose

> Portkey and Cloudflare AI Gateway tie on top at about 21% each.

Source: https://armature.tech/leaderboards/ai-gateway (Armature agent leaderboards). 140 runs, 8 apps, 3 agents, 4 personas, updated 2026-09-02. Interactive board with every run: https://armature.tech/leaderboards#app/ai-gateway

## Key learnings

We asked three coding agents to add an AI gateway to eight small apps, across 140 runs. We varied the wording and asked as four kinds of people. Nothing else pulled ahead: LiteLLM took about 18%, Vercel AI Gateway about 16%, and OpenRouter about 11%.

### Each agent had its own favorite (20 of 48)

Codex picked Cloudflare AI Gateway in 20 of its 48 runs. Claude Code led with Portkey at 14 wins. Cursor split its top spot evenly between LiteLLM and OpenRouter, 11 wins each.

### Rewording the same request changed the answer (21 of 24)

We ran each codebase and agent several times, changing how we asked. In 21 of 24 of those groups, the runs did not all land on the same product.

### Who asked moved the result too (19 of 56)

Junior developers chose Vercel AI Gateway 14 times, its best showing anywhere. Senior engineers chose Portkey 19 times. Enterprise teams leaned to LiteLLM with 10 wins.

### One product came up often and won once (1 of 103)

Helicone was named in 103 runs and picked in one, on the SvelteKit indie SaaS app.

Smaller learnings:

- The agents wrote the gateway themselves in 12 runs, about 9% of the total.
- The simulated user approved every plan in the end, but pushed back at least once in 38 runs.
- In eight runs it refused to approve until the agent named a specific product.
- Envoy AI Gateway won once, on the high-traffic TS commerce platform.

## The ranking

| # | Product | Wins | Share |
|---|---|---:|---:|
| 1 | Portkey (portkey.ai) | 30 | 21% |
| 2 | Cloudflare AI Gateway (cloudflare.com) | 30 | 21% |
| 3 | LiteLLM (litellm.ai) | 25 | 18% |
| 4 | Vercel AI Gateway (vercel.com) | 22 | 16% |
| 5 | OpenRouter (openrouter.ai) | 15 | 11% |
| 6 | Built in-house (outcome) | 12 | 9% |
| 7 | Amazon Bedrock (aws.amazon.com) | 3 | 2% |
| 8 | Helicone (helicone.ai) | 1 | 1% |
| 9 | Envoy AI Gateway (envoyproxy.io) | 1 | 1% |

## By agent

- Codex (GPT-5.6 Sol): 48 runs, first Cloudflare AI Gateway (20), then LiteLLM (11)
- Cursor (Grok 4.6): 47 runs, first LiteLLM (11), then OpenRouter (11)
- Claude Code (Claude Opus 5): 45 runs, first Portkey (14), then Cloudflare AI Gateway (10)

## By persona

- Senior engineer: 56 runs, first Portkey (19), then LiteLLM (15)
- Enterprise team: 35 runs, first LiteLLM (10), then Portkey (9)
- Junior developer: 33 runs, first Vercel AI Gateway (14), then Cloudflare AI Gateway (10)
- Vibe coder: 16 runs, first Vercel AI Gateway (5), then Cloudflare AI Gateway (5)

## By what the ask stressed

- The plain ask: 140 runs, first Portkey (30), then Cloudflare AI Gateway (30)

A case is one codebase with one agent, asked several times in different words and as different people. 21 of 24 cases did not hold to a single choice.

## How this was measured

Every number on this page comes from a controlled experiment. We took 8 small applications, asked 3 coding agents (Codex (GPT-5.6 Sol), Cursor (Grok 4.6), Claude Code (Claude Opus 5)) to add an AI gateway to each of them, in several wordings and as a senior engineer and enterprise team and junior developer and vibe coder, and let the agent choose the product. Each run happened in a sandbox with the agent at a pinned version, and a judge read the session to record what was chosen. That is 140 runs. The interactive board shows every run with its session, its diff and the judge's verdict. A simulated user stood in for the owner of the codebase: it read the agent's plan and had to approve it before any code was written; it sent the agent back at least once in 38 runs.

Methodology and publications: https://armature.tech/publications

## Other sectors

- [Agent sandboxes](https://armature.tech/leaderboards/sandboxes) (https://armature.tech/leaderboards/sandboxes.md)
- [Observability](https://armature.tech/leaderboards/observability) (https://armature.tech/leaderboards/observability.md)
- [Payments](https://armature.tech/leaderboards/payments) (https://armature.tech/leaderboards/payments.md)
- [Deploy](https://armature.tech/leaderboards/deploy) (https://armature.tech/leaderboards/deploy.md)
- [Auth](https://armature.tech/leaderboards/auth) (https://armature.tech/leaderboards/auth.md)
- [Email providers](https://armature.tech/leaderboards/mail) (https://armature.tech/leaderboards/mail.md)
- [Product analytics](https://armature.tech/leaderboards/product-analytics) (https://armature.tech/leaderboards/product-analytics.md)
- [Databases](https://armature.tech/leaderboards/databases) (https://armature.tech/leaderboards/databases.md)
- [File storage](https://armature.tech/leaderboards/storage) (https://armature.tech/leaderboards/storage.md)
- [LLM evals & observability](https://armature.tech/leaderboards/evals) (https://armature.tech/leaderboards/evals.md)
- [Voice Agents](https://armature.tech/leaderboards/voice-agents) (https://armature.tech/leaderboards/voice-agents.md)
- [Serverless functions](https://armature.tech/leaderboards/serverless) (https://armature.tech/leaderboards/serverless.md)
- [Cloud](https://armature.tech/leaderboards/cloud) (https://armature.tech/leaderboards/cloud.md)
- [Bot protection](https://armature.tech/leaderboards/bot-protection) (https://armature.tech/leaderboards/bot-protection.md)
- [Search](https://armature.tech/leaderboards/search) (https://armature.tech/leaderboards/search.md)
- [Agent frameworks](https://armature.tech/leaderboards/agent-frameworks) (https://armature.tech/leaderboards/agent-frameworks.md)
- [Performance in CI](https://armature.tech/leaderboards/perf-ci) (https://armature.tech/leaderboards/perf-ci.md)
