A Developer's Guide to the OpenAI Deep Research API

Mark Ponomarev

Mark Ponomarev

27 June 2025

A Developer's Guide to the OpenAI Deep Research API

In the age of information overload, the ability to conduct fast, accurate, and comprehensive research is a superpower. Developers, analysts, and strategists spend countless hours sifting through documents, verifying sources, and synthesizing findings. What if you could automate this entire workflow? OpenAI's Deep Research API is a significant step in that direction, offering a powerful tool to transform high-level questions into structured, citation-rich reports.

The Deep Research API isn't just another large language model. It's an agentic system designed to tackle complex research tasks. It can autonomously decompose a query, perform web searches, execute code to analyze data, and synthesize the results into a coherent, verifiable report. It's built for depth, nuance, and trust, providing not just answers, but also the evidence behind them.

This guide will provide a developer-focused walkthrough of the Deep Research API. We'll cover everything from making your first API call to advanced prompting techniques. We'll primarily focus on two models available through the API:

By the end of this article, you'll have a solid understanding of how to integrate this powerful research agent into your own applications.

💡
Want a great API Testing tool that generates beautiful API Documentation?

Want an integrated, All-in-One platform for your Developer Team to work together with maximum productivity?

Apidog delivers all your demands, and replaces Postman at a much more affordable price!
button

OpenAI Deep Research API Pricing, Rate Limits

Choosing the right model and understanding the costs are crucial for production applications.

Choosing Your Model

Understanding the Costs

As of late 2024, the pricing for the powerful o3-deep-research model is token-based:

The higher cost for output tokens reflects the intensive synthesis and generation work the model performs.

Key Specifications (o3-deep-research)

Make Your First OpenAI Deep Research API Call

Let's dive right in. Before you can use the API, you'll need the OpenAI Python SDK.

Setup

If you haven't already, install the latest version of the library:

pip install --upgrade openai

Next, you'll need to authenticate. Import the OpenAI client and initialize it with your API key.

from openai import OpenAI
import os

# It's best practice to use an environment variable for your API key
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))

Making the Request

A Deep Research task can take several minutes to complete, especially for complex queries. To avoid timeouts, it's highly recommended to run requests in the background. The API makes this easy.

Let's imagine we're building a tool for a healthcare financial services firm. The task is to produce a report on the economic impact of new diabetes and obesity medications. Here’s how you would structure that request:

system_message = """
You are a professional researcher preparing a structured, data-driven report on behalf of a global health economics team. Your task is to analyze the health question the user poses.

Do:
- Focus on data-rich insights: include specific figures, trends, statistics, and measurable outcomes.
- When appropriate, summarize data in a way that could be turned into charts or tables.
- Prioritize reliable, up-to-date sources: peer-reviewed research, health organizations (e.g., WHO, CDC), etc.
- Include inline citations and return all source metadata.

Be analytical, avoid generalities, and ensure that each section supports data-backed reasoning.
"""

user_query = "Research the economic impact of semaglutide on global healthcare systems."

response = client.responses.create(
  model="o3-deep-research", # Or "o3-deep-research-2025-06-26"
  input=[
    {
      "role": "developer",
      "content": [
        {
          "type": "input_text",
          "text": system_message,
        }
      ]
    },
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": user_query,
        }
      ]
    }
  ],
  reasoning={
    "summary": "auto"
  },
  tools=[
    {
      "type": "web_search_preview"
    },
    {
      "type": "code_interpreter"
    }
  ]
)

Let's break down this call:

The true power of the Deep Research API lies in the structured, detailed response object it returns. It's more than just a block of text; it's a transparent record of the research process.

The Final Report

The main output is, of course, the final report. You can access it from the last item in the output array:

# Access the final report from the response object
print(response.output[-1].content[0].text)

This will give you the complete, synthesized text generated by the model.

Citations and Sources

One of the most critical features for any serious research is citation. The Deep Research API embeds citation metadata directly into the response. Each citation is linked to a specific part of the text, allowing for easy verification.

Here's how you can extract and display the citations:

annotations = response.output[-1].content[0].annotations
for i, citation in enumerate(annotations):
    print(f"Citation {i+1}:")
    print(f"  Title: {citation.title}")
    print(f"  URL: {citation.url}")
    print(f"  Location: chars {citation.start_index}–{citation.end_index}")

This structure is invaluable for building applications that require high degrees of trust and transparency. You can use it to create clickable footnotes, build a bibliography, or programmatically trace claims back to their original source.

Peeking Under the Hood: Intermediate Steps

The API also exposes the agent's entire thought process. The response.output contains a log of all intermediate steps taken to arrive at the final answer. This is incredibly useful for debugging, analysis, or simply understanding how the agent works.

reasoning = next(item for item in response.output if item.type == "reasoning")
for s in reasoning.summary:
    print(s.text)
search = next(item for item in response.output if item.type == "web_search_call")
print("Query:", search.action["query"])
code_step = next((item for item in response.output if item.type == "code_interpreter_call"), None)
if code_step:
    print("Code Input:", code_step.input)
    print("Code Output:", code_step.output)

Using OpenAI Deep Research with MCP Servers

Advanced Research with MCP Servers


While web search gives the Deep Research agent access to a vast repository of public information, its true power is unlocked when you connect it to your own private data.

This is where the Model Context Protocol (MCP) comes in. MCP allows you to build custom tools that extend the agent's capabilities, enabling it to query your internal knowledge bases, databases, or other proprietary services.

One of the popular MCP Server currently is Apidog MCP Server, which allows you to connect to your API Documentation within Cursor and other AI Coding tools, and greatly reduces AI hallucination by pulling from the factual API Specs.

button

Conclusion: The Future of Automated Research

The OpenAI Deep Research API is more than just an incremental improvement. It represents a fundamental shift in how we can leverage AI for knowledge work. By providing an agent that can reason, plan, execute tools, and produce verifiable results, OpenAI has created a building block for a new generation of research applications.

Whether you're building competitive intelligence dashboards, automating literature reviews, or creating sophisticated market analysis reports, the Deep Research API provides the power, transparency, and trust required for serious, real-world use cases. As the cookbook hints, the next step is likely fully-fledged "Deep Research Agents," suggesting an even more autonomous and capable future. For now, the API gives developers an incredible new tool to explore. Start building with it today.

Explore more

Amazon’s Kiro AI Coding IDE: Cursor & Claude Code Alternative?

Amazon’s Kiro AI Coding IDE: Cursor & Claude Code Alternative?

AI Coding IDEs has become a game-changer, streamlining workflows, automating repetitive tasks, and enabling developers to focus on innovation. Amazon Web Services (AWS) has entered this competitive landscape with Kiro, an AI-powered Integrated Development Environment (IDE) launched in preview on July 14, 2025. Pronounced “keer-oh,” Kiro introduces a novel approach called “spec-driven development,” aiming to transform how developers move from concept to production-ready software. Unlike traditio

17 July 2025

How to Use Grok Companion Mode and Talk with Ani

How to Use Grok Companion Mode and Talk with Ani

Grok AI introduces the Companions feature with a new companion mode, letting you meet animated AI avatars like Ani and enjoy interactive 3D conversations. Delve into Grok companion mode and discover how to interact with this 3D AI character.

17 July 2025

What is Microcks?

What is Microcks?

Discover what Microcks is and how this open-source API mocking and testing tool revolutionizes contract testing, microservices development, and cloud-native applications.

17 July 2025

Practice API Design-first in Apidog

Discover an easier way to build and use APIs