---
date: 2024-08-08
title: Tracing of OpenAI Structured Outputs
description: Langfuse now supports tracing OpenAI Structured Outputs.
author: Jannik
ogImage: /images/changelog/2024-08-08-openai-structured-outputs.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).

## What are structured outputs?

Generating structured data from unstructured inputs is a core AI use case today. Developers use the OpenAI API to build applications that fetch data, answer questions via function calling, extract structured data, and create multi-step workflows for LLMs to take actions. [Structured Outputs](https://openai.com/index/introducing-structured-outputs-in-the-api/) is a new capability of the OpenAI API that builds upon JSON mode and function calling to enforce a strict schema in a model output.

## How to trace structured output in Langfuse?

If you use the [OpenAI Python SDK](https://langfuse.com/integrations/model-providers/openai-py), you can use the Langfuse **drop-in OpenAI SDK replacement** to get full logging by changing only the import. With that, you can monitor the structured output generated by OpenAI in Langfuse.

```diff
- import openai
+ from langfuse.openai import openai

Alternative imports:
+ from langfuse.openai import OpenAI, AsyncOpenAI, AzureOpenAI, AsyncAzureOpenAI
```

For and end-to-end example, have a look at our cookbook on tracing structured outputs with Langfuse:

- [Cookbook: OpenAI Structured Outputs](/integrations/model-providers/openai-py#structured-output)

<!-- 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-08-08-openai-structured-outputs.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>.
