@ai-sdk/openai-compatible breaking changes
Every breaking API change we have recorded in @ai-sdk/openai-compatible on npm: 65 breaking changes in 2 versions. Below are its newest 2 versions, removals and renames first, each with its source.
Newest change June 25, 2026

On this page
3.0.0
- Signature changed
internal:convertOpenAICompatibleChatUsage
Was function convertOpenAICompatibleChatUsage(usage: {prompt_tokens?: number | null; completion_tokens?: number | null; prompt_tokens_details?: {cached_tokens?: number | null;} | null; completion_tokens_details?: {reasoning_tokens?: number... npmjs.com - Signature changed
internal:convertToOpenAICompatibleChatMessages
Was function convertToOpenAICompatibleChatMessages(prompt: LanguageModelV3Prompt): OpenAICompatibleChatPrompt; now function convertToOpenAICompatibleChatMessages(prompt: LanguageModelV4Prompt): OpenAICompatibleChatPrompt. npmjs.com - Signature changed
internal:mapOpenAICompatibleFinishReason
Was function mapOpenAICompatibleFinishReason(finishReason: string | null | undefined): LanguageModelV3FinishReason['unified']; now function mapOpenAICompatibleFinishReason(finishReason: string | null | undefined)... npmjs.com - Signature changed
internal:OpenAICompatibleChatConfig
Was type OpenAICompatibleChatConfig = {provider: string; headers: () => Record<string, string | undefined>; url: (options: {modelId: string; path: string;}) => string; fetch?: FetchFunction; includeUsage?: boolean; errorStructure?... npmjs.com - Signature changed
internal:OpenAICompatibleChatConfig.convertUsage
Was convertUsage?: (usage: z.infer<ReturnType<typeof openaiCompatibleTokenUsageSchema>>) => LanguageModelV3Usage; now convertUsage?: (usage: z.infer<typeof openaiCompatibleTokenUsageSchema>) => LanguageModelV4Usage. npmjs.com - Signature changed
internal:OpenAICompatibleChatConfig.headers
Was headers: () => Record<string, string | undefined>; now headers?: () => Record<string, string | undefined>. npmjs.com - Signature changed
internal:OpenAICompatibleChatConfig.supportedUrls
Was supportedUrls?: () => LanguageModelV3['supportedUrls']; now supportedUrls?: () => LanguageModelV4['supportedUrls']. npmjs.com - Signature changed
internal:prepareTools
Was function prepareTools({tools, toolChoice}: {tools: LanguageModelV3CallOptions['tools']; toolChoice?: LanguageModelV3CallOptions['toolChoice'];}): {tools: undefined | Array<{type: 'function'; function: {name: string; description: string... npmjs.com - Signature changed
MetadataExtractor
Was type MetadataExtractor = {extractMetadata: ({parsedBody}: {parsedBody: unknown;}) => Promise<SharedV3ProviderMetadata | undefined>; createStreamExtractor: () => {processChunk(parsedChunk: unknown): void; buildMetadata()... npmjs.com - Signature changed
MetadataExtractor.createStreamExtractor
Was createStreamExtractor: () => {processChunk(parsedChunk: unknown): void; buildMetadata(): SharedV3ProviderMetadata | undefined;}; now createStreamExtractor: () => {processChunk(parsedChunk: unknown): void; buildMetadata()... npmjs.com
And 23 more in this version.
2.0.0
- Removed
internal:OpenAICompatibleChatConfig.convertUsage
OpenAICompatibleChatConfig.convertUsage was removed in @ai-sdk/openai-compatible 2.0.0 npmjs.com - Removed
internal:OpenAICompatibleChatConfig.transformRequestBody
OpenAICompatibleChatConfig.transformRequestBody was removed in @ai-sdk/openai-compatible 2.0.0 npmjs.com - Removed
OpenAICompatibleProviderSettings.convertUsage
OpenAICompatibleProviderSettings.convertUsage was removed in @ai-sdk/openai-compatible 2.0.0 npmjs.com - Removed
OpenAICompatibleProviderSettings.metadataExtractor
OpenAICompatibleProviderSettings.metadataExtractor was removed in @ai-sdk/openai-compatible 2.0.0 npmjs.com - Removed
OpenAICompatibleProviderSettings.supportedUrls
OpenAICompatibleProviderSettings.supportedUrls was removed in @ai-sdk/openai-compatible 2.0.0 npmjs.com - Removed
OpenAICompatibleProviderSettings.transformRequestBody
OpenAICompatibleProviderSettings.transformRequestBody was removed in @ai-sdk/openai-compatible 2.0.0 npmjs.com - Signature changed
internal:convertToOpenAICompatibleChatMessages
Was function convertToOpenAICompatibleChatMessages(prompt: LanguageModelV2Prompt): OpenAICompatibleChatPrompt; now function convertToOpenAICompatibleChatMessages(prompt: LanguageModelV3Prompt): OpenAICompatibleChatPrompt. npmjs.com - Signature changed
internal:mapOpenAICompatibleFinishReason
Was function mapOpenAICompatibleFinishReason(finishReason: string | null | undefined): LanguageModelV2FinishReason; now function mapOpenAICompatibleFinishReason(finishReason: string | null | undefined)... npmjs.com - Signature changed
internal:OpenAICompatibleChatConfig
Was type OpenAICompatibleChatConfig = {provider: string; headers: () => Record<string, string | undefined>; url: (options: {modelId: string; path: string;}) => string; fetch?: FetchFunction; includeUsage?: boolean; errorStructure?... npmjs.com - Signature changed
internal:OpenAICompatibleChatConfig.supportedUrls
Was supportedUrls?: () => LanguageModelV2['supportedUrls']; now supportedUrls?: () => LanguageModelV3['supportedUrls']. npmjs.com
And 22 more in this version.
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp