How Vercel AI Gateway’s scores are calculated
The full audit trail, recomputed from the verdict data at build time through the same code that produced the leaderboard: verdict × quality × story weight per cell, cells sum to dimension scores, dimensions blend into the PA Score. Every number on the product page is reproducible from this page alone; for why the formula looks like this, see the methodology.
verdict factors: full ×1.0 · partial ×0.6 · disputed ×0.3 · none ×0.0 · n/a excluded from both sides · cell points = weight × quality × factor · cell max = weight × 10
PA Score29/100
Agent-ready 41.2 × 0.30 = 12.36
API quality 33.3 × 0.20 = 6.66
Openness 16.2 × 0.20 = 3.24
Built-in AI n/a — excluded, its ×0.15 weight renormalized away
Automation 14.4 × 0.15 = 2.16
(12.36 + 6.66 + 3.24 + 2.16) ÷ (0.30 + 0.20 + 0.20 + 0.15) = 24.42 ÷ 0.85 = 28.7 — weights renormalized over the scored components
Scores are stored to 1 decimal; the product page’s pills round to whole numbers for display. Each dimension below shows the stories, verdicts, and cited evidence behind its number.
Agent-ready41.2/100×0.30 of the PA blend
Outside-in: can YOUR agent reach and drive this product — API, MCP, CLI, headless runs, agent docs.
Point an agent at llms.txt or agent-oriented docsweight 2
2 (weight) × 9 (quality) × 1.0 (full) = 18.0 of 20 max
- [probe] https://vercel.com/llms.txt“PROBE llms.txt: HTTP 200 at https://vercel.com/llms.txt # Vercel > Vercel is a cloud platform for building, deploying, and scaling web applications and AI workloads. Use this”
- [probe] https://vercel.com/docs/ai-gateway.md“PROBE docs-md: HTTP 200 at https://vercel.com/docs/ai-gateway.md --- title: AI Gateway product: vercel url: /docs/ai-gateway canonical_url: "https://vercel.com/docs/ai-gateway" last_upd”
- [probe] https://vercel.com/openapi.json“PROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key”
- [claimed-docs] https://vercel.com/docs/ai-gateway“vercel ai-gateway coding-agents setup”
- [claimed-docs] https://vercel.com/docs/ai-gateway“AI Gateway routes requests, manages fallbacks and budgets, monitors usage, and connects supported coding agents.”
Run the product headlessly / in CI for automationweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://vercel.com/docs/ai-gateway/openai-compat“You can use existing OpenAI client libraries, switch to AI Gateway with a URL change, and keep your current tools and workflows without code rewrites.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/authentication“For applications deployed on Vercel, OIDC tokens are automatically available as `VERCEL_OIDC_TOKEN`. No secrets to manage, no keys to rotate.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/models-and-providers“This endpoint requires no authentication and returns detailed information including model IDs, context windows, and pricing.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/authentication“For applications deployed on Vercel, OIDC tokens are automatically available as VERCEL_OIDC_TOKEN. No secrets to manage, no keys to rotate. It just works.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/openai-compat“You can use the AI Gateway's Chat Completions API with existing tools and libraries like the OpenAI client libraries and AI SDK. Point your existing client to the AI Gateway's base URL”
- [probe] https://vercel.com/openapi.json“PROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key”
- [probe] https://ai-gateway.vercel.sh/v1/models“PROBE keyless-endpoint: GET https://ai-gateway.vercel.sh/v1/models returned HTTP 200 application/json with an OpenAI-compatible {"object":"list","data":[...]} model catalog (unauthenticated)”
Plug MCP servers into this product so it can use their toolsweight 3
3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Connect an agent via an official MCP serverweight 3
3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max
- [claimed-docs] https://vercel.com/docs/ai-gateway“vercel ai-gateway coding-agents setup”
- [claimed-docs] https://vercel.com/docs/ai-gateway“AI Gateway routes requests, manages fallbacks and budgets, monitors usage, and connects supported coding agents.”
Use an official CLIweight 2
2 (weight) × 3 (quality) × 0.6 (partial) = 3.6 of 20 max
- [claimed-docs] https://vercel.com/docs/ai-gateway“vercel ai-gateway coding-agents setup”
Drive the product through a documented public APIweight 3
3 (weight) × 9 (quality) × 1.0 (full) = 27.0 of 30 max
- [claimed-docs] https://vercel.com/docs/ai-gateway/openai-compat“You can use existing OpenAI client libraries, switch to AI Gateway with a URL change, and keep your current tools and workflows without code rewrites.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/models-and-providers“This endpoint requires no authentication and returns detailed information including model IDs, context windows, and pricing.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/models-and-providers“Query the models endpoint directly to get a JSON list of all available models with pricing and capabilities”
- [claimed-docs] https://vercel.com/docs/ai-gateway/openai-compat“You can use the AI Gateway's Chat Completions API with existing tools and libraries like the OpenAI client libraries and AI SDK. Point your existing client to the AI Gateway's base URL”
- [probe] https://vercel.com/openapi.json“PROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key”
- [probe] https://ai-gateway.vercel.sh/v1/models“PROBE keyless-endpoint: GET https://ai-gateway.vercel.sh/v1/models returned HTTP 200 application/json with an OpenAI-compatible {"object":"list","data":[...]} model catalog (unauthenticated)”
Issue scoped/least-privilege API credentials for an agentweight 2
2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max
- [claimed-docs] https://vercel.com/docs/ai-gateway/pricing“To cap how much your team, a project, an API key, or a team member can spend, set [budgets]”
- [claimed-docs] https://vercel.com/docs/ai-gateway/observability“The Requests section displays summaries by project, API key, and a detailed log of all requests.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/authentication“For applications deployed on Vercel, OIDC tokens are automatically available as `VERCEL_OIDC_TOKEN`. No secrets to manage, no keys to rotate.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/authentication“For applications deployed on Vercel, OIDC tokens are automatically available as VERCEL_OIDC_TOKEN. No secrets to manage, no keys to rotate. It just works.”
Build against official SDKsweight 2
2 (weight) × 8 (quality) × 1.0 (full) = 16.0 of 20 max
- [claimed-docs] https://vercel.com/docs/ai-gateway/openai-compat“You can use existing OpenAI client libraries, switch to AI Gateway with a URL change, and keep your current tools and workflows without code rewrites.”
- [claimed-docs] https://vercel.com/ai-gateway“Point your existing OpenAI or Anthropic SDK at AI Gateway. Same calls, no rewrites.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/openai-compat“You can use the AI Gateway's Chat Completions API with existing tools and libraries like the OpenAI client libraries and AI SDK. Point your existing client to the AI Gateway's base URL”
- [claimed-docs] https://vercel.com/ai-gateway“Move existing OpenAI, Anthropic, and AI SDK integrations to AI Gateway with a base URL swap.”
- [claimed-docs] https://vercel.com/docs/ai-gateway“const agent = new ToolLoopAgent({ model: 'anthropic/claude-sonnet-5', tools: { getWeather: tool({”
- [probe] https://ai-gateway.vercel.sh/v1/models“PROBE keyless-endpoint: GET https://ai-gateway.vercel.sh/v1/models returned HTTP 200 application/json with an OpenAI-compatible {"object":"list","data":[...]} model catalog (unauthenticated)”
Subscribe to events via webhooksweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Agent-ready = 86.6 ÷ 210 × 100 = 41.2
API quality33.3/100×0.20 of the PA blend
The programmable surface once an agent is there — machine-readable spec, interactive docs, sandbox, versioning discipline.
Explore an interactive API reference with runnable examplesweight 2
2 (weight) × 5 (quality) × 0.6 (partial) = 6.0 of 20 max
- [probe] https://vercel.com/openapi.json“PROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key”
- [probe] https://ai-gateway.vercel.sh/v1/models“PROBE keyless-endpoint: GET https://ai-gateway.vercel.sh/v1/models returned HTTP 200 application/json with an OpenAI-compatible {"object":"list","data":[...]} model catalog (unauthenticated)”
- [claimed-docs] https://vercel.com/docs/ai-gateway/models-and-providers“This endpoint requires no authentication and returns detailed information including model IDs, context windows, and pricing.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/models-and-providers“Query the models endpoint directly to get a JSON list of all available models with pricing and capabilities”
Download a machine-readable API spec (OpenAPI or equivalent)weight 2
2 (weight) × 7 (quality) × 1.0 (full) = 14.0 of 20 max
- [probe] https://vercel.com/openapi.json“PROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key”
- [probe] https://ai-gateway.vercel.sh/v1/models“PROBE keyless-endpoint: GET https://ai-gateway.vercel.sh/v1/models returned HTTP 200 application/json with an OpenAI-compatible {"object":"list","data":[...]} model catalog (unauthenticated)”
- [claimed-docs] https://vercel.com/docs/ai-gateway/models-and-providers“This endpoint requires no authentication and returns detailed information including model IDs, context windows, and pricing.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/models-and-providers“Query the models endpoint directly to get a JSON list of all available models with pricing and capabilities”
Test against a sandbox environment without touching production dataweight 1
n/a — not applicable to this product: excluded from numerator and denominator
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Rely on versioned APIs with a documented deprecation policyweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
- [probe] https://vercel.com/openapi.json“PROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key”
- [probe] https://ai-gateway.vercel.sh/v1/models“PROBE keyless-endpoint: GET https://ai-gateway.vercel.sh/v1/models returned HTTP 200 application/json with an OpenAI-compatible {"object":"list","data":[...]} model catalog (unauthenticated)”
- [claimed-docs] https://vercel.com/docs/ai-gateway/models-and-providers“Query the models endpoint directly to get a JSON list of all available models with pricing and capabilities”
API quality = 20.0 ÷ 60 × 100 = 33.3
Openness16.2/100×0.20 of the PA blend
Can you leave, inspect, or self-host — data export, open source, portability.
Do everything through the API that I can do in the UIweight 2
2 (weight) × 6 (quality) × 0.6 (partial) = 7.2 of 20 max
- [claimed-docs] https://vercel.com/docs/ai-gateway“One key, hundreds of models. Access models from multiple providers with a single API key”
- [claimed-docs] https://vercel.com/docs/ai-gateway“Unified API. Switch between providers and models with minimal code changes”
- [claimed-docs] https://vercel.com/docs/ai-gateway/provider-options“You can use `order`, `only`, and `sort` in `providerOptions.gateway` to control which providers handle your requests, in what order, and how they are ranked.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/models-and-providers“This endpoint requires no authentication and returns detailed information including model IDs, context windows, and pricing.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/models-and-providers“Query the models endpoint directly to get a JSON list of all available models with pricing and capabilities”
- [claimed-docs] https://vercel.com/docs/ai-gateway/byok“you can pass provider credentials on a per-request basis using the byok option in providerOptions.gateway. This is useful when you need to use different credentials for specific requests”
- [claimed-docs] https://vercel.com/docs/ai-gateway“Spend monitoring. Monitor your spending across different providers”
- [claimed-docs] https://vercel.com/docs/ai-gateway/pricing“To cap how much your team, a project, an API key, or a team member can spend, set [budgets]”
- [claimed-docs] https://vercel.com/docs/ai-gateway/observability“open the Logs page, where you can search by request ID, filter by model, provider, or status code, follow requests live, and open one request to see how it was routed. You can also export the filtered list as CSV or JSON.”
- [probe] https://ai-gateway.vercel.sh/v1/models“PROBE keyless-endpoint: GET https://ai-gateway.vercel.sh/v1/models returned HTTP 200 application/json with an OpenAI-compatible {"object":"list","data":[...]} model catalog (unauthenticated)”
Export all of my data in open formats and leaveweight 3
3 (weight) × 5 (quality) × 0.6 (partial) = 9.0 of 30 max
- [claimed-docs] https://vercel.com/docs/ai-gateway/observability“open the Logs page, where you can search by request ID, filter by model, provider, or status code, follow requests live, and open one request to see how it was routed. You can also export the filtered list as CSV or JSON.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/openai-compat“You can use existing OpenAI client libraries, switch to AI Gateway with a URL change, and keep your current tools and workflows without code rewrites.”
- [claimed-docs] https://vercel.com/ai-gateway“Point your existing OpenAI or Anthropic SDK at AI Gateway. Same calls, no rewrites.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/openai-compat“You can use the AI Gateway's Chat Completions API with existing tools and libraries like the OpenAI client libraries and AI SDK. Point your existing client to the AI Gateway's base URL”
- [community] https://news.ycombinator.com/item?id=48364193“If I bring my own Anthropic/OpenAI key and have usage available, why does Vercel's account balance determine whether my request executes? (Vercel AI Gateway appears to block BYOK requests when account balance reaches $0)”
Read the product's source under an open licenseweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Self-host the core productweight 3
3 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 30 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Openness = 16.2 ÷ 100 × 100 = 16.2
Built-in AIn/a×0.15 of the PA blend
Inside-out: how agentic the product itself is for its users — built-in assistants, autonomous features.
Get AI-generated insights and suggestions from my data inside the productweight 2
n/a — not applicable to this product: excluded from numerator and denominator
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Set up automations that run autonomously in the backgroundweight 2
n/a — not applicable to this product: excluded from numerator and denominator
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Delegate tasks to a built-in AI assistant inside the productweight 3
n/a — not applicable to this product: excluded from numerator and denominator
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Operate the product with natural-language commandsweight 2
n/a — not applicable to this product: excluded from numerator and denominator
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
every cell n/a — unscored (not zero), excluded from the blend
Automation14.4/100×0.15 of the PA blend
Depth of automation primitives — rules, scheduling, bulk operations, webhooks.
Perform bulk operations across many items at onceweight 2
2 (weight) × 0 (quality) × 0.0 (none) = 0.0 of 20 max
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Define rules that trigger actions automatically on eventsweight 3
3 (weight) × 4 (quality) × 0.6 (partial) = 7.2 of 30 max
- [claimed-docs] https://vercel.com/docs/ai-gateway“High reliability. Automatically retries requests to other providers if one fails”
- [claimed-docs] https://vercel.com/docs/ai-gateway/provider-options“You can set per-provider timeouts to trigger fast failover when a provider is slow to respond.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/byok“If a query using your credentials fails, AI Gateway will retry the query with its system credentials to improve service availability.”
- [claimed-docs] https://vercel.com/docs/ai-gateway/pricing“To cap how much your team, a project, an API key, or a team member can spend, set [budgets]”
- [claimed-docs] https://vercel.com/docs/ai-gateway/provider-options“You can use order, only, and sort in providerOptions.gateway to control which providers handle your requests, in what order, and how they are ranked.”
Schedule recurring jobs or workflowsweight 2
n/a — not applicable to this product: excluded from numerator and denominator
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Version, review, and roll back my automationsweight 1
n/a — not applicable to this product: excluded from numerator and denominator
no evidence cited — the verdict rests on absence of evidence, re-checked on refresh
Automation = 7.2 ÷ 50 × 100 = 14.4