Providers
Configure providers in the dashboard under Providers or via the SDK.
Popular Providers
| Provider | ID | Credentials | Example Models |
|---|---|---|---|
| OpenAI | openai | OPENAI_API_KEY | gpt-4o, gpt-4o-mini, o1, o3-mini |
| Anthropic | anthropic | ANTHROPIC_API_KEY | claude-sonnet-4-20250514, claude-3.5-haiku |
| Google AI Studio | google | GOOGLE_GENERATIVE_AI_API_KEY | gemini-2.0-flash, gemini-1.5-pro |
| DeepSeek | deepseek | DEEPSEEK_API_KEY | deepseek-chat, deepseek-reasoner |
| Mistral | mistral | MISTRAL_API_KEY | mistral-large, mistral-small |
| Grok (xAI) | xai | XAI_API_KEY | grok-2, grok-3 |
| Groq | groq | GROQ_API_KEY | llama-3.3-70b, mixtral-8x7b |
| Deepgram | deepgram | DEEPGRAM_API_KEY | aura, aura-2, flux, nova-3 |
| ElevenLabs | elevenlabs | ELEVENLABS_API_KEY | eleven_flash_v2, eleven_v3, scribe_v2 |
| Cartesia | cartesia | CARTESIA_API_KEY | sonic-3.6, ink-whisper |
| Azure OpenAI | azure | AZURE_RESOURCE_NAME, AZURE_API_KEY | gpt-4o (Azure deployments) |
| Amazon Bedrock | amazon-bedrock | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, AWS_BEARER_TOKEN_BEDROCK | claude-3, titan |
| OpenRouter | openrouter | OPENROUTER_API_KEY | Any model via OpenRouter |
All Providers
| Provider | ID | Required Credentials |
|---|---|---|
| OpenAI | openai | OPENAI_API_KEY |
| Anthropic | anthropic | ANTHROPIC_API_KEY |
| Google AI Studio | google | GOOGLE_GENERATIVE_AI_API_KEY |
| Google Vertex AI | google-vertex | GOOGLE_VERTEX_PROJECT, GOOGLE_VERTEX_LOCATION, GOOGLE_APPLICATION_CREDENTIALS |
| Azure OpenAI | azure | AZURE_RESOURCE_NAME, AZURE_API_KEY |
| Amazon Bedrock | amazon-bedrock | AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION, AWS_BEARER_TOKEN_BEDROCK |
| Mistral | mistral | MISTRAL_API_KEY |
| Groq | groq | GROQ_API_KEY |
| Deepgram | deepgram | DEEPGRAM_API_KEY |
| DeepSeek | deepseek | DEEPSEEK_API_KEY |
| Grok (xAI) | xai | XAI_API_KEY |
| Perplexity | perplexity | PERPLEXITY_API_KEY |
| Cohere | cohere | COHERE_API_KEY |
| OpenRouter | openrouter | OPENROUTER_API_KEY |
| Cerebras | cerebras | CEREBRAS_API_KEY |
| Baseten | baseten | BASETEN_API_KEY |
| Hugging Face | huggingface | HF_TOKEN |
| Adobe Firefly | adobe-firefly | FIREFLY_SERVICES_CLIENT_ID, FIREFLY_SERVICES_CLIENT_SECRET |
| Cartesia | cartesia | CARTESIA_API_KEY |
| ElevenLabs | elevenlabs | ELEVENLABS_API_KEY |
| Fal AI | fal | FAL_KEY |
| Ideogram | ideogram | IDEOGRAM_API_KEY |
| Parallel | parallel | PARALLEL_API_KEY |
| Replicate | replicate | REPLICATE_API_TOKEN |
OpenAI serves speech, transcription, and translation with OPENAI_API_KEY. Groq serves speech with its Orpheus models (WAV only), transcription, and translation with GROQ_API_KEY. Deepgram serves speech with aura, aura-2, and flux, plus transcription with nova-3 and nova-3-multi. ElevenLabs serves speech with eleven_flash_v2, eleven_flash_v2_5, eleven_multilingual_v2, and eleven_v3, plus transcription with scribe_v2. Cartesia serves speech with sonic-3.6 and transcription with ink-whisper. These three vendors require their own provider keys; voice in a speech request carries the selected vendor's voice ID or name. See Audio for response formats and billing units.
Aggregator Accounts
An aggregator delivers other providers' models under one key. Connecting one lets the gateway serve models whose provider you have not configured, on your account instead of the platform's.
| Aggregator | ID | Credentials | Serves |
|---|---|---|---|
| Vercel AI Gateway | vercel | AI_GATEWAY_API_KEY | Listed catalog models on chat completions, responses, messages, embeddings, image generation, speech, and transcription |
| OpenRouter | openrouter | OPENROUTER_API_KEY | Its own listings and catalog models it lists on chat completions, completions, speech, and transcription |
A provider key of your own takes precedence: with an OPENAI_API_KEY configured, OpenAI models go to OpenAI directly whether or not an aggregator is connected.
Fish Audio speech models such as s1 and Microsoft voices such as mai-voice-2 are reachable only through Vercel AI Gateway. Audio on a project's Vercel AI Gateway or OpenRouter account uses that account. Vercel AI Gateway does not serve streaming speech or transcription through these endpoints, and translation requires an OpenAI or Groq provider key.
Add a Provider
Dashboard
- Go to Providers in your project dashboard
- Click Add Provider
- Select the provider and enter credentials
- Enable the models you want to offer
SDK (BYOK)
Customers can add their own provider credentials:
// Set credentials
await billing.providerKeys.set('openai', {
OPENAI_API_KEY: 'sk-proj-...',
});
// Test credentials
const result = await billing.providerKeys.test('openai');
// -> { valid: true }See Provider Keys for the full API.
Provider Routing
When multiple providers offer the same model, the gateway selects based on your routing strategy:
| Strategy | Behavior | Status |
|---|---|---|
priority | Use highest-priority provider (default) | Available |
round-robin | Rotate across providers | Planned |
weighted | Distribute by assigned weights | Planned |
latency-based | Use fastest provider | Planned |
cost-optimized | Use cheapest provider | Planned |
Configure routing strategies per model route in the dashboard under Rules. Currently, priority is the active strategy -- additional strategies are planned for a future release.
BYOK Priority
When a customer sets their own provider key via the SDK, their key is stored at the workspace level. The intended resolution order is:
- Operator key (project-level) -- primary credentials, normal billing applies
- Platform provider -- if no project credentials available
Customer workspace-level key priority is planned for a future release. Currently, customers can manage their provider keys via the SDK, but the gateway resolves credentials from the project-level operator configuration.
Credentials
All provider credentials are encrypted at rest using AES-256-GCM. The encryption key is configured via the ENCRYPTION_KEY environment variable.
Credentials are stored as flexible key-value objects. Each provider requires specific credential fields (listed above). The gateway resolves the API key from credentials in this order:
- Provider-specific field (e.g.,
OPENAI_API_KEY) - Generic
API_KEYfield - First credential value