- Legal or scientific research
- Market and competitive analysis
- Reports based on large sets of internal or public data
Prerequisites
- An Azure OpenAI deployment of the o3-deep-research model.
- An authentication method:
- API key, or
- Microsoft Entra ID.
- At least one data source configured in your request:
web_search_preview(see Web search), and/or- A remote MCP server (see Research with your own data).
Start a deep research task
Replaceo3-deep-research with your model deployment name.
Deep research requests can take time. Run them in
background mode and configure a webhook to receive notifications when the task completes.Output structure
Deep research responses follow the standard Responses API format. Pay attention to the output array - it lists all tool calls made during the process, such as:- web_search_call: Actions that use the web search tool, like search, open_page, and find_in_page.
- code_interpreter_call: Steps for code execution.
- mcp_tool_call: Actions performed on remote MCP servers.
- message: The model’s final answer with inline citations.
web_search_call (search action):
message (final answer):
Best practices
- Use background mode to avoid timeouts.
- Configure webhooks for completion notifications.
- Increase timeout settings if you’re not using background mode.
- Use
max_tool_callsto control tool usage and manage cost and latency.
Creating optimized prompts
For best results, use this three-step process:- Clarify intent: Use a smaller model (for example, gpt-4.1 or gpt-5) to gather details from the user.
- Rewrite prompt: Use a smaller model to create a detailed, structured prompt.
- Run deep research: Pass the optimized prompt to o3-deep-research.
Ask clarifying questions
Optimize the prompt
Research with your own data
Deep research can use public and private data. For private data, connect a remote MCP server that supportssearch and fetch interfaces.
Remote MCP servers
Requirements:- A
searchinterface to return results for a query. - A
fetchinterface to retrieve documents by ID. - Set
require_approvaltonever.
Remote MCP server with deep research
Safety risks and mitigations
Enabling web search and MCP servers introduces security risks. Follow these best practices:- Connect only trusted MCP servers.
- Log and review all tool calls and model outputs.
- Stage workflows: run public research with web access first, then private MCP with no web access.
- Validate tool arguments with schemas or regex.
- Screen links before opening or sharing.
Troubleshooting
- Request takes too long or times out: Set
backgroundtotrue, then poll the response until completion. - No web search or MCP calls appear in the output: Confirm you include at least one tool in
tools. - MCP calls fail: Confirm the MCP server is reachable and
require_approvalis set tonever.