# OpenAI Error

> OpenAI API error response with message, type, param, and code.

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

## Install

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

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

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

## Types

```typescript
export interface OpenAIErrorDetail {
  message: string;
  type: string;
  param: string | null;
  code: string | null;
}

export interface OpenAIErrorResponse {
  error: OpenAIErrorDetail;
}
```

## Zod validator

```typescript
import * as z from "zod";
import type { OpenAIErrorDetail, OpenAIErrorResponse } from "../types/openai-error";

export const openAIErrorDetailSchema = z.object({
  message: z.string(),
  type: z.string(),
  param: z.string().nullable(),
  code: z.string().nullable(),
}) satisfies z.ZodType<OpenAIErrorDetail>;

export const openAIErrorResponseSchema = z.object({
  error: openAIErrorDetailSchema,
}) satisfies z.ZodType<OpenAIErrorResponse>;

export type { OpenAIErrorDetail, OpenAIErrorResponse } from "../types/openai-error";
```

## Examples

```typescript
// Source: https://platform.openai.com/docs/guides/error-codes/api-errors
// Captured: 2026-05
import type {
  OpenAIErrorDetail,
  OpenAIErrorResponse,
} from "../types/openai-error";

export const openAIErrorDetailExamples = {
  invalidApiKey: {
    message: "Incorrect API key provided: sk-***. You can find your API key at https://platform.openai.com/account/api-keys.",
    type: "invalid_request_error",
    param: null,
    code: "invalid_api_key",
  } satisfies OpenAIErrorDetail,
  rateLimit: {
    message: "Rate limit reached for requests",
    type: "requests",
    param: null,
    code: "rate_limit_exceeded",
  } satisfies OpenAIErrorDetail,
  contextLength: {
    message: "This model's maximum context length is 128000 tokens.",
    type: "invalid_request_error",
    param: "messages",
    code: "context_length_exceeded",
  } satisfies OpenAIErrorDetail,
  serverError: {
    message: "The server had an error while processing your request.",
    type: "server_error",
    param: null,
    code: null,
  } satisfies OpenAIErrorDetail,
} as const;

export const openAIErrorResponseExamples = {
  invalidApiKey: { error: openAIErrorDetailExamples.invalidApiKey } satisfies OpenAIErrorResponse,
  rateLimit: { error: openAIErrorDetailExamples.rateLimit } satisfies OpenAIErrorResponse,
  contextLength: { error: openAIErrorDetailExamples.contextLength } satisfies OpenAIErrorResponse,
  serverError: { error: openAIErrorDetailExamples.serverError } satisfies OpenAIErrorResponse,
} as const;
```
