Bifrost

Vercel AI Gateway

Configure vercel deployments and understand provider-specific behavior.

Configure a deployment

Send this body to POST /admin/deployments with an operator credential. Replace the example credentials and choose a model available to your provider account. See Creating deployments for the shared configuration fields.

{
  "publicModel": "claude-through-vercel",
  "adapterKey": "vercel",
  "upstreamModel": "anthropic/claude-opus-5",
  "credentials": { "apiKey": "..." }
}

Behavior and limitations

  • 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.

Next steps

On this page