I’m trying to use the OpenAI compatibility layer with Gemini 3 Flash Preview and the reasoning_effort parameter. According to the official documentation, minimal should be a valid value that maps to thinking_level=minimal for Gemini 3 Flash:
However, when I try to use reasoning_effort=“minimal”, I get:
`BadRequestError: Error code: 400 - [{‘error’: {‘code’: 400, ‘message’: ‘Invalid reasoning_effort: minimal. Valid values are: high, low, medium, none’, ‘status’: ‘INVALID_ARGUMENT’}}]
Minimal reproduction:
import asyncio
from openai import AsyncOpenAI
GOOGLE_AI_API_KEY = "your-api-key"
GOOGLE_AI_OPENAI_BASE = "https://generativelanguage.googleapis.com/v1beta/openai/"
async def test_reasoning_effort(effort: str):
print(f"\n--- Testing reasoning_effort='{effort}' ---")
client = AsyncOpenAI(
api_key=GOOGLE_AI_API_KEY,
base_url=GOOGLE_AI_OPENAI_BASE,
max_retries=0,
)
try:
response = await client.chat.completions.create(
model="gemini-3-flash-preview",
reasoning_effort=effort,
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "What is 2+2?"},
],
)
print(f"SUCCESS: {response.choices[0].message.content[:100]}...")
except Exception as e:
print(f"FAILED: {type(e).__name__}: {e}")
async def main():
for effort in ["minimal", "low", "medium", "high", "none"]:
await test_reasoning_effort(effort)
if __name__ == "__main__":
asyncio.run(main())
Result:
--- Testing reasoning_effort='minimal' ---
FAILED: BadRequestError: Invalid reasoning_effort: minimal. Valid values are: high, low, medium, none
--- Testing reasoning_effort='low' ---
SUCCESS: 2 + 2 = 4...
--- Testing reasoning_effort='medium' ---
SUCCESS: 2 + 2 = 4...
--- Testing reasoning_effort='high' ---
SUCCESS: 2 + 2 = 4...
--- Testing reasoning_effort='none' ---
SUCCESS: 2 + 2 = 4...
he API error message explicitly says valid values are high, low, medium, none - but minimal is not in that list despite being documented.
Environment:
-
openai SDK version: 2.15.0 (current)
-
Date: January 22, 2026
Is this a documentation error, or is minimal support not yet deployed? Its quite unfortunate as for our use-case more thinking often correlates to higher errors.
