Skip to content

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.txtPROBE 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.mdPROBE 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.jsonPROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key
  • [claimed-docs] https://vercel.com/docs/ai-gatewayvercel ai-gateway coding-agents setup
  • [claimed-docs] https://vercel.com/docs/ai-gatewayAI 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-compatYou 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/authenticationFor 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-providersThis endpoint requires no authentication and returns detailed information including model IDs, context windows, and pricing.
  • [claimed-docs] https://vercel.com/docs/ai-gateway/authenticationFor 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-compatYou 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.jsonPROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key
  • [probe] https://ai-gateway.vercel.sh/v1/modelsPROBE 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-gatewayvercel ai-gateway coding-agents setup
  • [claimed-docs] https://vercel.com/docs/ai-gatewayAI 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-gatewayvercel 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-compatYou 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-providersThis 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-providersQuery 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-compatYou 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.jsonPROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key
  • [probe] https://ai-gateway.vercel.sh/v1/modelsPROBE 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/pricingTo 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/observabilityThe Requests section displays summaries by project, API key, and a detailed log of all requests.
  • [claimed-docs] https://vercel.com/docs/ai-gateway/authenticationFor 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/authenticationFor 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-compatYou 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-gatewayPoint your existing OpenAI or Anthropic SDK at AI Gateway. Same calls, no rewrites.
  • [claimed-docs] https://vercel.com/docs/ai-gateway/openai-compatYou 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-gatewayMove existing OpenAI, Anthropic, and AI SDK integrations to AI Gateway with a base URL swap.
  • [claimed-docs] https://vercel.com/docs/ai-gatewayconst agent = new ToolLoopAgent({ model: 'anthropic/claude-sonnet-5', tools: { getWeather: tool({
  • [probe] https://ai-gateway.vercel.sh/v1/modelsPROBE 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.jsonPROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key
  • [probe] https://ai-gateway.vercel.sh/v1/modelsPROBE 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-providersThis 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-providersQuery 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.jsonPROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key
  • [probe] https://ai-gateway.vercel.sh/v1/modelsPROBE 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-providersThis 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-providersQuery 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.jsonPROBE openapi: HTTP 200 at https://vercel.com/openapi.json — contains "openapi" key
  • [probe] https://ai-gateway.vercel.sh/v1/modelsPROBE 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-providersQuery 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-gatewayOne key, hundreds of models. Access models from multiple providers with a single API key
  • [claimed-docs] https://vercel.com/docs/ai-gatewayUnified API. Switch between providers and models with minimal code changes
  • [claimed-docs] https://vercel.com/docs/ai-gateway/provider-optionsYou 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-providersThis 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-providersQuery 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/byokyou 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-gatewaySpend monitoring. Monitor your spending across different providers
  • [claimed-docs] https://vercel.com/docs/ai-gateway/pricingTo 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/observabilityopen 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/modelsPROBE 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/observabilityopen 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-compatYou 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-gatewayPoint your existing OpenAI or Anthropic SDK at AI Gateway. Same calls, no rewrites.
  • [claimed-docs] https://vercel.com/docs/ai-gateway/openai-compatYou 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=48364193If 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-gatewayHigh reliability. Automatically retries requests to other providers if one fails
  • [claimed-docs] https://vercel.com/docs/ai-gateway/provider-optionsYou can set per-provider timeouts to trigger fast failover when a provider is slow to respond.
  • [claimed-docs] https://vercel.com/docs/ai-gateway/byokIf 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/pricingTo 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-optionsYou 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