First: we have to ask the API and the models to “flex” their brains:
gpt-5-mini
tier: flex
{'input_tokens': 34, 'input_tokens_details': {'cached_tokens': 0}, 'output_tokens': 86, 'output_tokens_details': {'reasoning_tokens': 0}, 'total_tokens': 120}
gpt-5.2
tier: flex
{'input_tokens': 34, 'input_tokens_details': {'cached_tokens': 0}, 'output_tokens': 6, 'output_tokens_details': {'reasoning_tokens': 0}, 'total_tokens': 40}
gpt-5.3-codex FAIL! Error code: 400 - {'error': {'message': 'Flex is not available for this model.', 'type': 'invalid_request_error', 'param': None, 'code': None}}
gpt-5.4
tier: flex
{'input_tokens': 34, 'input_tokens_details': {'cached_tokens': 0}, 'output_tokens': 20, 'output_tokens_details': {'reasoning_tokens': 12}, 'total_tokens': 54}
gpt-5.4-mini
tier: flex
{'input_tokens': 34, 'input_tokens_details': {'cached_tokens': 0}, 'output_tokens': 19, 'output_tokens_details': {'reasoning_tokens': 11}, 'total_tokens': 53}
gpt-5.5
tier: flex
{'input_tokens': 34, 'input_tokens_details': {'cached_tokens': 0}, 'output_tokens': 6, 'output_tokens_details': {'reasoning_tokens': 0}, 'total_tokens': 40}
You’ll see how being denied the “flex” tier looks on my attempt at codex.
How did I make the API calls? Through the default project - at default:
You can try my same snippet, see what the API is returning back at you for making the same API calls - and you can throw in a check of the API key in your environment and the associated project in the OpenAI platform site that contains it.
from openai import OpenAI
client = OpenAI(timeout=240, max_retries=0)
models = ["gpt-5-mini", "gpt-5.2", "gpt-5.4", "gpt-5.4-mini", "gpt-5.5"]
input_messages = [
{
"type": "message",
"role": "user",
"content": [
{
"type": "input_text",
"text": ("What is the Answer to the Ultimate Question of Life, "
"the Universe, and Everything?"),
}
],
}
]
for model in models:
response = None
try:
response = client.responses.with_raw_response.create(
model=model,
input=input_messages,
instructions="Answer helpfully - and coyly",
max_output_tokens=3456,
store=False,
reasoning={"effort": "low"},
text={"verbosity": "low"},
service_tier="flex",
)
print(f"{model}")
#print(f"Request: {response.headers.get("x-request-id")}")
#print(f"Response:\n{response.parse().output_text}")
print(f"tier: {response.parse().service_tier}")
print(response.parse().usage.model_dump())
except Exception as e:
print(f"{model} FAIL! {e}")
try:
print(f"Request: {response.headers.get("x-request-id")}")
except:
pass
Hopefully the diagnosis and fix is all in your control!