Bifrost

Vercel AI Gateway

Adapter key vercel. Responses, Chat Completions, embeddings, images, and reranking through Vercel AI Gateway.

{
  "publicModel": "claude-through-vercel",
  "adapterKey": "vercel",
  "upstreamModel": "anthropic/claude-opus-5",
  "credentials": { "apiKey": "..." }
}
  • Credentials: apiKey only. The adapter uses https://ai-gateway.vercel.sh/v1 by default; baseUrl can override it for a compatible proxy.
  • Model ids: use Vercel's complete creator/model id, such as openai/gpt-5.6-sol, anthropic/claude-opus-5, or google/gemini-3.1-pro-preview.
  • Text transports: Responses and Chat Completions. The public Responses and Chat endpoints prefer their matching upstream wire; the public Anthropic Messages endpoint continues through the canonical text core and uses the adapter's default Responses transport.
  • Other operations: OpenAI-compatible embeddings and image generation/editing, plus the Cohere-compatible POST /rerank transport used internally by the public OpenRouter-shaped /v1/rerank endpoint. Audio transcription and video generation are not advertised because Vercel's current protocols do not match the transports implemented by this gateway.
  • Owned catalog: Vercel does not borrow a first-party provider's entry. Its committed catalog is generated from Vercel's unauthenticated /v1/models API, keyed by the complete creator/model id. Limits, modalities, parameters, reasoning controls, base token pricing, and context tiers therefore describe the Vercel route rather than the creator's direct API.
  • Catalog coverage: the sync emits language, embedding, image, and reranking operations implemented by this adapter. It reports Vercel models whose operation families are not implemented (currently video, transcription, realtime, and speech) instead of publishing unusable catalog entries. Rerank profiles remain text-only and ambiguous zero pricing is reported rather than treated as free.
  • Reasoning: Vercel's source-provided effort values are preserved exactly through its normalized REST reasoning object; max and xhigh are never aliases. A source toggle becomes the canonical none | high control. Models with a reasoning tag or budget but no effort levels are described as fixed reasoners; the sync reports them rather than inventing a ladder.
  • Reasoning state: Chat Completions reasoning_details are retained under provider_specific_fields.vercel.reasoning_details and replayed when the client echoes the assistant message, preserving signatures and encrypted reasoning in tool loops.
  • Gateway extensions: Vercel request extensions can be supplied through the gateway's extra_body, including providerOptions and models. They remain provider-shaped passthrough; operators should not allow untrusted clients to submit request-scoped BYOK credentials.

On this page