> ## Documentation Index
> Fetch the complete documentation index at: https://narev.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# CreateOpenAIV4Middleware

[**@ai-billing/openai**](../index)

***

[@ai-billing/openai](/docs/sdk/ai-billing/reference/openai/typedoc/index) / createOpenAIV4Middleware

# Function: createOpenAIV4Middleware()

> **createOpenAIV4Middleware**\<`TTags`>(`options`): `LanguageModelV4Middleware`

Defined in: [openai/src/ai-sdk/language-model-middleware/v4/language-model-v4-openai-billing-middleware.ts:90](https://github.com/narevai/ai-billing/blob/main/packages/openai/src/ai-sdk/language-model-middleware/v4/language-model-v4-openai-billing-middleware.ts#L90)

Creates a V4 billing middleware for the OpenAI provider (`@ai-sdk/openai`).
Maps AI SDK usage into billing fields and resolves cost from pricing plus usage.

## Type Parameters

### TTags

`TTags` *extends* `JSONObject`

The shape of the tags object, extending DefaultTags.

## Parameters

### options

[`OpenAIV4MiddlewareOptions`](/docs/sdk/ai-billing/reference/openai/typedoc/interfaces/OpenAIV4MiddlewareOptions)\<`TTags`>

Billing options; see [OpenAIV4MiddlewareOptions](/docs/sdk/ai-billing/reference/openai/typedoc/interfaces/OpenAIV4MiddlewareOptions).

## Returns

`LanguageModelV4Middleware`

A V4 billing middleware instance for OpenAI.

## Example

Targets AI SDK v7 (`LanguageModelV4Middleware`).

```ts theme={null}
import { createOpenAI } from '@ai-sdk/openai';
import { wrapLanguageModel } from 'ai';
import { createOpenAIV4Middleware } from '@ai-billing/openai';
import {
  consoleDestination,
  createObjectPriceResolver,
  type ModelPricing,
} from '@ai-billing/core';

const openai = createOpenAI({ apiKey: process.env.OPENAI_API_KEY });

const customPricingMap: Record<string, ModelPricing> = {
  'gpt-5': {
    promptTokens: 1.25 / 1_000_000,
    completionTokens: 10.0 / 1_000_000,
    inputCacheReadTokens: 0.125 / 1_000_000,
  },
  'gpt-4o': {
    promptTokens: 5.0 / 1_000_000,
    completionTokens: 15.0 / 1_000_000,
  },
};

const priceResolver = createObjectPriceResolver(customPricingMap);

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

const wrappedModel = wrapLanguageModel({
  model: openai('gpt-5'),
  middleware: billingMiddleware,
});
```
