---
title: "@openrouter/ai-sdk-provider (npm) | Since.dev"
description: "What each @openrouter/ai-sdk-provider release removed, renamed or changed: 40 breaking changes in 2 versions on npm, each with its source."
canonical_url: https://since.dev/packages/npm/@openrouter/ai-sdk-provider
last_updated: 2026-07-06
---

# @openrouter/ai-sdk-provider breaking changes

Every breaking API change we have recorded in @openrouter/ai-sdk-provider on npm: 40 breaking changes in 2 versions. Below are its newest 2 versions, removals and renames first, each with its source.

Newest change July 6, 2026

## 3.0.0

22 breaking changes, first published July 6, 2026.

- **Removed** `LanguageModelV3`  

LanguageModelV3 was removed in @openrouter/ai-sdk-provider 3.0.0 [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/3.0.0)
- **Removed** `LanguageModelV3Prompt`  

LanguageModelV3Prompt was removed in @openrouter/ai-sdk-provider 3.0.0 [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/3.0.0)
- **Behavior changed**  

Image generation now uses a dedicated images API instead of the previous path. Code that depends on how images were generated may behave differently and should be checked. [github.com](https://github.com/OpenRouterTeam/ai-sdk-provider/releases/tag/3.0.0)
- **Signature changed** `internal:OpenRouterChatLanguageModel`  

Was class OpenRouterChatLanguageModel implements LanguageModelV3; now class OpenRouterChatLanguageModel implements LanguageModelV4. [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/3.0.0)
- **Signature changed** `internal:OpenRouterChatLanguageModel.doGenerate`  

Was doGenerate(options: LanguageModelV3CallOptions): Promise<{content: Array<LanguageModelV3Content>; finishReason: LanguageModelV3FinishReason; usage: LanguageModelV3Usage; warnings: Array<SharedV3Warning>; providerMetadata?: {openrouter... [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/3.0.0)
- **Signature changed** `internal:OpenRouterChatLanguageModel.doStream`  

Was doStream(options: LanguageModelV3CallOptions): Promise<{stream: ReadableStream<LanguageModelV3StreamPart>; warnings: Array<SharedV3Warning>; request?: {body?: unknown;}; response?: LanguageModelV3ResponseMetadata & {headers?... [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/3.0.0)
- **Signature changed** `internal:OpenRouterChatLanguageModel.specificationVersion`  

Was readonly specificationVersion: "v3"; now readonly specificationVersion: "v4". [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/3.0.0)
- **Signature changed** `internal:OpenRouterCompletionLanguageModel`  

Was class OpenRouterCompletionLanguageModel implements LanguageModelV3; now class OpenRouterCompletionLanguageModel implements LanguageModelV4. [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/3.0.0)
- **Signature changed** `internal:OpenRouterCompletionLanguageModel.doGenerate`  

Was doGenerate(options: LanguageModelV3CallOptions): Promise<Awaited<ReturnType<LanguageModelV3\['doGenerate'\]>>>; now doGenerate(options: LanguageModelV4CallOptions): Promise<Awaited<ReturnType<LanguageModelV4\['doGenerate'\]>>>. [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/3.0.0)
- **Signature changed** `internal:OpenRouterCompletionLanguageModel.doStream`  

Was doStream(options: LanguageModelV3CallOptions): Promise<Awaited<ReturnType<LanguageModelV3\['doStream'\]>>>; now doStream(options: LanguageModelV4CallOptions): Promise<Awaited<ReturnType<LanguageModelV4\['doStream'\]>>>. [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/3.0.0)

And 12 more in this version.

## 2.0.0

18 breaking changes, first published January 19, 2026.

- **Removed** `LanguageModelV2`  

The language model now implements LanguageModelV3 instead of LanguageModelV2. Update code that references the V2 type. [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/2.0.0)
- **Removed** `LanguageModelV2Prompt`  

LanguageModelV2Prompt was removed in @openrouter/ai-sdk-provider 2.0.0 [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/2.0.0)
- **Renamed** `EmbeddingModelV2`  

The embedding model now implements EmbeddingModelV3 instead of EmbeddingModelV2. Update code that references the V2 type. [github.com](https://github.com/OpenRouterTeam/ai-sdk-provider/releases/tag/2.0.0)
- **Renamed** `ProviderV2`  

The provider now implements ProviderV3 instead of ProviderV2. Update code that references the V2 provider type to use V3. [github.com](https://github.com/OpenRouterTeam/ai-sdk-provider/releases/tag/2.0.0)
- **Renamed** `SharedV2*`  

Type imports named SharedV2\* are replaced by SharedV3\* equivalents. Update imports to the V3 names. [github.com](https://github.com/OpenRouterTeam/ai-sdk-provider/releases/tag/2.0.0)
- **Behavior changed**  

The specificationVersion value is now 'v3'. Code that checks for 'v2' must be updated. [github.com](https://github.com/OpenRouterTeam/ai-sdk-provider/releases/tag/2.0.0)
- **Behavior changed**  

Token usage now uses nested inputTokens and outputTokens objects with total, cache and reasoning fields. Update code that reads usage values. [github.com](https://github.com/OpenRouterTeam/ai-sdk-provider/releases/tag/2.0.0)
- **Configuration changed**  

The package now requires zod 3.25.0 or later within 3.x, or any 4.x. Older zod versions are no longer supported. [github.com](https://github.com/OpenRouterTeam/ai-sdk-provider/releases/tag/2.0.0)
- **Configuration changed**  

The package now requires ai version 6.0.0 or later. Upgrade the ai package alongside this provider. [github.com](https://github.com/OpenRouterTeam/ai-sdk-provider/releases/tag/2.0.0)
- **Signature changed** `internal:OpenRouterChatLanguageModel`  

Was class OpenRouterChatLanguageModel implements LanguageModelV2; now class OpenRouterChatLanguageModel implements LanguageModelV3. [npmjs.com](https://www.npmjs.com/package/@openrouter/ai-sdk-provider/v/2.0.0)

And 8 more in this version.

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#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.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
