Skip to main content
@ai-billing/openrouter
@ai-billing/openrouter / createOpenRouterV3Middleware

Function: createOpenRouterV3Middleware()

createOpenRouterV3Middleware<TTags>(options): LanguageModelV3Middleware
Defined in: language-model-middleware/v3/language-model-v3-openrouter-billing-middleware.ts:69 Creates a V3 billing middleware for OpenRouter (@openrouter/ai-sdk-provider). Extracts cost and usage from openrouter provider metadata; requires numeric usage.cost.

Type Parameters

TTags

TTags extends JSONObject The shape of the tags object, extending DefaultTags.

Parameters

options

OpenRouterV3MiddlewareOptions<TTags> Shared billing options; see BaseBillingMiddlewareOptions.

Returns

LanguageModelV3Middleware A V3 billing middleware instance for OpenRouter.

Example

Same wiring as examples/dev-sandbox/app/api/openrouter (createOpenRouterMiddleware is this function’s export alias from @ai-billing/openrouter).
import { createOpenRouter } from '@openrouter/ai-sdk-provider';
import { wrapLanguageModel } from 'ai';
import { createOpenRouterV3Middleware } from '@ai-billing/openrouter';
import { consoleDestination } from '@ai-billing/core';

const openrouter = createOpenRouter({
  apiKey: process.env.OPENROUTER_API_KEY,
});

const billingMiddleware = createOpenRouterV3Middleware({
  destinations: [consoleDestination()],
});

const wrappedModel = wrapLanguageModel({
  model: openrouter('google/gemini-2.0-flash-001'),
  middleware: billingMiddleware,
});