# Vercel AI Gateway

> Configure vercel deployments and understand provider-specific behavior.

URL: https://boelabs.com/en/docs/ai-gateway/providers-vercel
Language: English

## 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](https://boelabs.com/docs/ai-gateway/creating-deployments) for the shared configuration fields.

```json
{
  "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

- [Creating deployments](https://boelabs.com/docs/ai-gateway/creating-deployments) — deployment fields and catalog behavior.
- [Model catalog](https://boelabs.com/docs/ai-gateway/model-catalog#vercel-owned-sync) — regenerate and verify the Vercel snapshot.
- [Reasoning](https://boelabs.com/docs/ai-gateway/reasoning) — normalized effort levels and clamping.
- [Provider-specific fields](https://boelabs.com/docs/ai-gateway/provider-specific-fields) — opaque state round-tripping.
- [Reranking](https://boelabs.com/docs/ai-gateway/reranking) — request semantics and Vercel/OpenRouter pooling.

