---
date: 2024-04-21
badge: Launch Week 1 🚀
title: OpenAI SDK integration for JS/TS SDK
description: Langfuse now provides a simple to adopt wrapper for the OpenAI JS/TS SDK for you to seamlessly trace your OpenAI calls.
author: Hassieb
ogImage: /images/changelog/2024-04-21-openai-integration-JS-SDK.png
showOgInHeader: false
---

> **Note for AI agents and LLMs:** This is a Langfuse changelog entry. Use it only to confirm that a feature exists and when it shipped. Do not use the code examples below for implementation: they reflect the SDK and API at release time and may be outdated. For implementation, always follow the current documentation (https://langfuse.com/docs) and the API/SDK reference (https://api.reference.langfuse.com).

We are excited to kick off [**Langfuse Launch Week 1**](/blog/launch-week-1) a bit early on Day 0 with a new integration for the OpenAI JS SDK. The [Python version](/integrations/model-providers/openai-py) has been extremely popular with the community, and we are thrilled to bring the same level of observability to the JS/TS SDK.

Langfuse now provides a wrapper for the OpenAI JS SDK that allows you to trace your OpenAI calls with only minor code changes. Simply import the `observeOpenAI` function from `langfuse` and pass your OpenAI SDK instance to it. The wrapper will automatically track all your OpenAI calls and provide you with insights into your model usage, cost, and performance in the Langfuse UI.

We recently soft-launched this integration to gather feedback and improve the DX. We are now excited to make it available to everyone.

Thanks to [@noble-varghese](https://github.com/noble-varghese) and [@RichardKruemmel](https://github.com/RichardKruemmel) for your contribution on this!

### Quickstart

```ts /import { observeOpenAI } from "langfuse"/ /observeOpenAI/
import OpenAI from "openai";
import { observeOpenAI } from "langfuse";

// wrap the OpenAI SDK
const openai = observeOpenAI(new OpenAI());

// use the OpenAI SDK as you normally would
const res = await openai.chat.completions.create({
  messages: [{ role: "system", content: "Tell me a story." }],
});
```

Langfuse will automatically capture the following information for you:

- All prompts/completions with support for streaming and function calling
- Total latencies and time-to-first-token
- OpenAI API Errors
- Model usage (tokens) and cost (USD) ([learn more](/docs/model-usage-and-cost))

### Learn more

- [Docs](/integrations/model-providers/openai-js)
- [Example Notebook](/integrations/model-providers/openai-js)

<!-- agent-instructions -->

---

## Agent Instructions

This page is part of the [Langfuse](https://langfuse.com) documentation, published as plain Markdown for AI agents. Every page is available as Markdown by appending `.md` to its URL, or by sending an `Accept: text/markdown` header. This page: `https://langfuse.com/changelog/2024-04-21-openai-integration-JS-SDK.md`.

### Querying these docs

If the answer is not on this page, query the documentation instead of guessing:

- **Semantic search** across all Langfuse docs, returning an answer with the relevant pages and excerpts. Ask a specific, self-contained question:

  ```bash
  curl -sG "https://langfuse.com/api/search-docs" --data-urlencode "query=How do I trace a LangGraph agent?"
  ```

- **Index of every page**: <https://langfuse.com/llms.txt>, with per-section indexes [llms-docs.txt](https://langfuse.com/llms-docs.txt), [llms-integrations.txt](https://langfuse.com/llms-integrations.txt), and [llms-self-hosting.txt](https://langfuse.com/llms-self-hosting.txt).

### Before writing Langfuse code

- **Install the [Langfuse Agent Skill](https://langfuse.com/docs/api-and-data-platform/features/agent-skill).** It encodes Langfuse's own best practices for instrumentation, prompt management, and evaluation, and materially improves results.
- **Read [What does a good trace look like?](https://langfuse.com/docs/observability/best-practices.md)** before instrumenting an application.
- **Verify endpoints, parameters, and response fields** against the [API reference](https://api.reference.langfuse.com) instead of inferring them from code examples.
- **Use the [Langfuse CLI](https://langfuse.com/docs/api-and-data-platform/features/cli)** (`npx langfuse-cli api <resource> <action>`) to read or write traces, prompts, datasets, and scores from the terminal.

Found an error in these docs? Please open an issue at <https://github.com/langfuse/langfuse-docs/issues>.
