# OpenAI | Sentry for JavaScript

This integration works in the Node.js, Cloudflare Workers, Vercel Edge Functions, and browser runtimes. It requires SDK version `10.2.0` or higher.

*Import name: `Sentry.openAIIntegration`*

The `openAIIntegration` adds instrumentation for the `openai` API to capture spans by wrapping OpenAI client calls and recording LLM interactions with configurable input/output recording.

For browser applications, you need to manually instrument the OpenAI client using the `instrumentOpenAiClient` helper:

```javascript
import * as Sentry from "@sentry/browser";
import OpenAI from "openai";

const openai = new OpenAI();
const client = Sentry.instrumentOpenAiClient(openai, {
  recordInputs: true,
  recordOutputs: true,
});

// Use the wrapped client instead of the original openai instance
const response = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "Hello!" }],
});
```

## [Options](https://docs.sentry.io/platforms/javascript/configuration/integrations/openai.md#options)

### [`recordInputs`](https://docs.sentry.io/platforms/javascript/configuration/integrations/openai.md#recordinputs)

*Type: `boolean`*

Records inputs to OpenAI API method calls (such as prompts and messages).

Defaults to `true` if `sendDefaultPii` is `true`.

```javascript
Sentry.init({
  integrations: [Sentry.openAIIntegration({ recordInputs: true })],
});
```

### [`recordOutputs`](https://docs.sentry.io/platforms/javascript/configuration/integrations/openai.md#recordoutputs)

*Type: `boolean`*

Records outputs from OpenAI API method calls (such as generated text and responses).

Defaults to `true` if `sendDefaultPii` is `true`.

```javascript
Sentry.init({
  integrations: [Sentry.openAIIntegration({ recordOutputs: true })],
});
```

## [Configuration](https://docs.sentry.io/platforms/javascript/configuration/integrations/openai.md#configuration)

By default this integration adds tracing support to OpenAI API method calls including:

* `chat.completions.create()` - Chat completion requests
* `responses.create()` - Response API requests

The integration will automatically detect streaming vs non-streaming requests and handle them appropriately.

## [Supported Versions](https://docs.sentry.io/platforms/javascript/configuration/integrations/openai.md#supported-versions)

* `openai`: `>=4.0.0 <7`
