Cursor is using OpenAI base url for Gemini calls

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Overriden baseurl for OpenAI models somehow makes into tab name calls as well as into autocompletions in chat. I have api which has free models in it, as well as PAYG models, and cursor spending my money in that service with gemini flash calls (I assume for chat tabs names). This is just silly tbh, please, consider adding proper support for custom endpoints (Better openAI compatible v1 endpoint support (openrouter, chutes, ...)) if you don’t want to add any opensource models yourself, because current BYOK implementation in cursor is just hillariously bad, it both disables chatGPT models, as well as using openAI api for gemini calls somehow???

Screenshot is my API billing page from 3rd party provider, I haven’t made any gemini calls myself as I never even use it.

Steps to Reproduce

Add custom endpoint(which has gemini model I assume)
See calls to gemini flash on api side

Expected Behavior

OpenAI base url should not be used for gemini that’s for sure
Ideally custom base url support so we don’t have to break OpenAI models if we want to try unsupported in cursor models…

Screenshots / Screen Recordings

Operating System

Windows 10/11

Current Cursor Version (Menu → About Cursor → Copy)

Version: 1.7.54 (user setup)
VSCode Version: 1.99.3
Commit: 5c17eb2968a37f66bc6662f48d6356a100b67be0
Date: 2025-10-21T19:07:38.476Z
Electron: 34.5.8
Chromium: 132.0.6834.210
Node.js: 20.19.1
V8: 13.2.152.41-electron.0
OS: Windows_NT x64 10.0.26200

Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

Hey, thanks for the report. This is indeed an issue: that behavior is incorrect. Overriding the OpenAI base URL shouldn’t affect Gemini calls. Because of this, unexpected charges occur on a third‑party API.

I’ve passed this to the team. For now, you might want to temporarily disable the custom base URL override to avoid further unexpected charges, though I understand this will limit the use of custom models.

I’m not sure if you fixed that or just my provider changed something, but I haven’t seen any problems with random gemini calls recently.

Also, can you please say what type of reasoning do you expect 3rd party api to return in streaming mode? Because right now some return chunks with reasoning, some return reasoning_content, and I don’t quite know what cursor expects.