Hey, thanks for the question. This is the well-known BYOK mismatch. For GPT-5 family models, Cursor builds a payload in the Responses API format (input, reasoning, include), but sends it to /chat/completions and then parses the reply as Chat Completions streaming chunks. There’s no official ETA for a native fix yet.
On the proxy side, the general workaround is:
- Forward the request to the upstream
/v1/responsesendpoint, not/chat/completions. - On the way back, translate the Responses SSE events into Chat Completions chunks (
choices[].delta), otherwise Cursor won’t render anything.
The quickest reference for handling the reasoning fields specifically, including how to pass reasoning across formats, is this community bridge. It covers your exact case: GitHub - Pil0tXia/Cursor-OpenAI-BYOK-Bridge: Bridge Cursor OpenAI-compatible BYOK requests to Responses API endpoints. · GitHub
Note: this isn’t an official solution and we don’t support it, but it works well as a workaround.
Full context with example request and response shapes from other users is here: Cursor Agent sends Responses API format to /chat/completions endpoint
If you get stuck on specifics, share an example payload and we can take a look.