# Cursor Agent sends Responses API format to /chat/completions endpoint

**URL:** <https://forum.cursor.com/t/cursor-agent-sends-responses-api-format-to-chat-completions-endpoint/153019>\
**Category:** Bug Reports\
**Tags:** byok, openai\
**Created:** [February 26, 2026, 10:52am UTC](https://forum.cursor.com/t/cursor-agent-sends-responses-api-format-to-chat-completions-endpoint/153019 "2026-02-26T10:52:35Z")\
**Posts on this page:** 1\
**Showing post:** 20

<div class="post-metadata">

**Author:** ![tmasterman](https://avatars.discourse-cdn.com/v4/letter/t/cdc98d/32.png) [@tmasterman](https://forum.cursor.com/u/tmasterman)\
**Post date:** [July 9, 2026, 2:53am UTC](https://forum.cursor.com/t/cursor-agent-sends-responses-api-format-to-chat-completions-endpoint/153019/20 "2026-07-09T02:53:02Z")

</div>

When testing with GPT 5.5 I am still having an issue it looks like Cursor is still calling Chat Completions endpoint while sending a Responses style custom tool.

With GPT 5.5 selected, Agent mode, and an OpenAI-compatible base URL, Cursor is still calling:

POST /chat/completions

The captured request is Chat Completions shaped at the top level:

top\_level\_keys: [‘messages’, ‘model’, ‘stream’, ‘stream\_options’, ‘tools’, ‘user’]  
has input: false  
has messages: true

But one of the tools is still Responses-style:

tool[7]: {  
“type”: “custom”,  
“name”: “ApplyPatch”,  
“format”: {  
“type”: “grammar”,  
…  
}  
}

When this is sent through to OpenAI, OpenAI rejects it with:

Missing required parameter: ‘tools[7].custom’

Expected behavior should be one of:

1. If Cursor calls `/v1/chat/completions`, it should send Chat Completions-compatible custom tools, with the custom payload nested under `tools[i].custom`.

2. If Cursor wants to send Responses-style custom tools like `{ "type": "custom", "name": ..., "format": ... }`, it should call `/v1/responses` instead

---

_[View the full topic](https://forum.cursor.com/t/cursor-agent-sends-responses-api-format-to-chat-completions-endpoint/153019)._
