Hi everyone,
I’m experiencing a significant performance issue with the OpenAI Responses API that I wanted to share with the community to see if others have encountered this or if there’s a recommended solution.
Problem
When using the Responses API with a large number of tools (100+ tools), the API response becomes extremely slow - to the point where it appears to be hanging. The root cause is that the `response.created` event includes a `tools` property that echoes back the complete array of tools that were provided in the request.
Since the response is streamed byte-by-byte over SSE (Server-Sent Events), streaming this massive tools array can take a very long time, making the API appear unresponsive during the initial phase of the response.
Technical Details
- API: OpenAI Responses API
- Event: response.created
- Behavior: The event includes a tools property containing the full list of tools from the request
- Impact: With 100+ tools, streaming the response.created event can take so long that the API appears to hang
Why This is Unexpected
This behavior is unique to the Responses API. The Chat Completion API does not echo back the tools array in its response, which is the expected behavior. The tools were already sent in the request, so there’s no clear reason why they need to be streamed back to the client in the response.
Reproduction
1. Create a Responses API request with 100+ tools
2. Observe that the initial response.created event takes an extremely long time to complete streaming
3. The API appears to hang during this phase
Workaround
The only workaround I’ve found is to dramatically reduce the number of tools provided in each request. However, this isn’t always practical depending on the application’s requirements.
Questions
1. Is this intentional behavior? Why does the Responses API echo back the tools array when the Chat Completion API doesn’t?
2. Is there a way to disable this behavior? Can the API skip including tools in the response?
3. Are there any optimizations planned? This seems like an architectural issue that affects anyone using the Responses API with many tools.
Has anyone else encountered this issue? Any suggestions or workarounds would be greatly appreciated!
Thanks!


