Poe provider for the Vercel AI SDK.
Access Anthropic, OpenAI, Google, xAI, and 50+ other AI models through a single Poe API key.
npm install ai-sdk-provider-poe aiexport POE_API_KEY="your-poe-api-key"Get an API key from poe.com/api_key.
import { poe } from 'ai-sdk-provider-poe';
import { generateText } from 'ai';
const { text } = await generateText({
model: poe('anthropic/claude-sonnet-4'),
prompt: 'Hello!',
});Anthropic models use reasoningBudgetTokens to control the thinking budget.
const { text, reasoning } = await generateText({
model: poe('anthropic/claude-opus-4.6'),
prompt: 'Solve this step by step: what is 17 * 19?',
providerOptions: {
poe: { reasoningBudgetTokens: 5000 },
},
});OpenAI models use reasoningEffort and reasoningSummary.
const { text, reasoning } = await generateText({
model: poe('openai/gpt-5.4'),
prompt: 'Solve this step by step: what is 17 * 19?',
providerOptions: {
poe: { reasoningEffort: 'high', reasoningSummary: 'auto' },
},
});const { text } = await generateText({
model: poe('google/gemini-3.1-pro'),
prompt: 'Solve this step by step: what is 17 * 19?',
providerOptions: {
poe: { reasoningEffort: 'high' },
},
});const { text } = await generateText({
model: poe('grok-4-fast-reasoning'),
prompt: 'Solve this step by step: what is 17 * 19?',
providerOptions: {
poe: { reasoningEffort: 'high' },
},
});import { generateText, tool } from 'ai';
import { z } from 'zod';
const { text } = await generateText({
model: poe('openai/gpt-5.2'),
prompt: "What's the weather in San Francisco?",
tools: {
getWeather: tool({
description: 'Get the weather for a location',
parameters: z.object({ location: z.string() }),
execute: async ({ location }) => `72°F and sunny in ${location}`,
}),
},
});providerOptions.poe routes reasoning settings to the correct backend automatically:
| Option | Backend mapping | Use with |
|---|---|---|
reasoningBudgetTokens |
anthropic.thinking.budgetTokens |
Claude models |
reasoningEffort |
openai.reasoningEffort |
OpenAI, Google, xAI |
reasoningSummary |
openai.reasoningSummary |
OpenAI /v1/responses models |
Routing is resolved automatically from each model's supported_endpoints. The model catalog is bundled and refreshed at runtime via /v1/models.
For the full model list, visit poe.com/api/models.
import { createPoe } from 'ai-sdk-provider-poe';
const poe = createPoe({
apiKey: 'your-poe-api-key', // default: POE_API_KEY env var
baseURL: 'https://api.poe.com/v1', // default
});MIT