Vercel xAI IntegrationNative Integration

Learn how to add the xAI native integration with Vercel.

xAI provides language, chat and vision AI capabilities with integrated billing through Vercel.

You can use the Vercel and xAI integration to:

  • Perform text generation, translation and question answering in your Vercel projects.
  • Use the language with vision model for advanced language understanding and visual processing.

xAI provides language and language with vision AI models.

Grok-2

Type: Chat

Grok-2 is a large language model that can be used for a variety of tasks, including text generation, translation, and question answering.

Grok-2 Vision

Type: Image

Grok-2 Vision is a multimodal AI model that combines advanced language understanding with powerful visual processing capabilities.

Grok 2 Image

Type: Image

A text-to-image model that can generate high-quality images across several domains where other image generation models often struggle. It can render precise visual details of real-world entities, text, logos, and can create realistic portraits of humans.

The Vercel xAI integration can be accessed through the AI tab on your Vercel dashboard.

To follow this guide, you'll need the following:

  1. Navigate to the AI tab in your Vercel dashboard
  2. Select xAI from the list of providers, and press Add
  3. Review the provider information, and press Add Provider
  4. You can now select which projects the provider will have access to. You can choose from All Projects or Specific Projects
    • If you select Specific Projects, you'll be prompted to select the projects you want to connect to the provider. The list will display projects associated with your scoped team
    • Multiple projects can be selected during this step
  5. Select the Connect to Project button
  6. You'll be redirected to the provider's website to complete the connection process
  7. Once the connection is complete, you'll be redirected back to the Vercel dashboard, and the provider integration dashboard page. From here you can manage your provider settings, view usage, and more
  8. Pull the environment variables into your project using Vercel CLI
    terminal
    vercel env pull
  9. Install the providers package
    pnpm i @ai-sdk/xai ai
  10. Connect your project using the code below:
    app/api/chat/route.ts
    // app/api/chat/route.ts
    import { xai } from '@ai-sdk/xai';
    import { streamText } from 'ai';
    // Allow streaming responses up to 30 seconds
    export const maxDuration = 30;
    export async function POST(req: Request) {
    // Extract the `messages` from the body of the request
    const { messages } = await req.json();
    // Call the language model
    const result = streamText({
    model: xai('grok-2-1212'),
    messages,
    });
    // Respond with the stream
    return result.toDataStreamResponse();
    }
  1. Add the provider to your page using the code below:
    app/chat/page.tsx
    // app/chat/page.tsx
    'use client';
    import { useChat } from '@ai-sdk/react';
    export default function Chat() {
    const { messages, input, handleInputChange, handleSubmit } = useChat();
    return (
    <div>
    {messages.map((m) => (
    <div key={m.id}>
    {m.role === 'user' ? 'User: ' : 'AI: '}
    {m.content}
    </div>
    ))}
    <form onSubmit={handleSubmit}>
    <input
    value={input}
    placeholder="Say something..."
    onChange={handleInputChange}
    />
    </form>
    </div>
    );
    }
    If you're using useChat, install the @ai-sdk/react package:
    pnpm i @ai-sdk/react
  1. Add the provider to your project using the Vercel CLI install command
    terminal
    vercel install xai
    During this process, you will be asked to open the dashboard to accept the marketplace terms if you have not installed this integration before. You can also choose which project(s) the provider will have access to.
  2. Install the providers package
    pnpm i @ai-sdk/xai ai
  3. Connect your project using the code below:
    app/api/chat/route.ts
    // app/api/chat/route.ts
    import { xai } from '@ai-sdk/xai';
    import { streamText } from 'ai';
    // Allow streaming responses up to 30 seconds
    export const maxDuration = 30;
    export async function POST(req: Request) {
    // Extract the `messages` from the body of the request
    const { messages } = await req.json();
    // Call the language model
    const result = streamText({
    model: xai('grok-2-1212'),
    messages,
    });
    // Respond with the stream
    return result.toDataStreamResponse();
    }
  1. Add the provider to your page using the code below:
app/chat/page.tsx
// app/chat/page.tsx
'use client';
import { useChat } from '@ai-sdk/react';
export default function Chat() {
const { messages, input, handleInputChange, handleSubmit } = useChat();
return (
<div>
{messages.map((m) => (
<div key={m.id}>
{m.role === 'user' ? 'User: ' : 'AI: '}
{m.content}
</div>
))}
<form onSubmit={handleSubmit}>
<input
value={input}
placeholder="Say something..."
onChange={handleInputChange}
/>
</form>
</div>
);
}
If you're using useChat, install the @ai-sdk/react package:
pnpm i @ai-sdk/react
Last updated on March 21, 2025