# OpenAI Shared

> Common OpenAI types: token usage tracking for prompt and completion.

- Name: `openai-shared`
- Categories: openai
- Detail page: https://open-types.dev/types/openai-shared

## Install

```bash
# Types only
npx shadcn add @open-types/openai-shared

# Types + Zod v4 validators
npx shadcn add @open-types/openai-shared-zod

# Types + real-world examples
npx shadcn add @open-types/openai-shared-examples
```

## Types

```typescript
export interface OpenAIUsage {
  prompt_tokens: number;
  completion_tokens: number;
  total_tokens: number;
}
```

## Zod validator

```typescript
import * as z from "zod";
import type { OpenAIUsage } from "../types/openai-shared";

export const openAIUsageSchema = z.object({
  prompt_tokens: z.number(),
  completion_tokens: z.number(),
  total_tokens: z.number(),
}) satisfies z.ZodType<OpenAIUsage>;

export type { OpenAIUsage } from "../types/openai-shared";
```

## Examples

```typescript
// Source: https://platform.openai.com/docs/api-reference/chat/object
// Captured: 2026-05
import type { OpenAIUsage } from "../types/openai-shared";

export const openAIUsageExamples = {
  small: { prompt_tokens: 9, completion_tokens: 12, total_tokens: 21 } satisfies OpenAIUsage,
  conversation: {
    prompt_tokens: 482,
    completion_tokens: 304,
    total_tokens: 786,
  } satisfies OpenAIUsage,
  zero: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 } satisfies OpenAIUsage,
} as const;
```
