Can't access o1 or o3 models

I am a tier 1 api user trying to access to o1, o1-mini and o3-mini models but none of them work. I keep getting this error message:
openai.NotFoundError: Error code: 404 - {'error': {'message': 'The model o1-2024-12-17 does not exist or you do not have access to it.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}

Worth noting is that I did not specify a date for the model yet it specifies it in the error message meaning it found something at least.

In my rates the o1 and o1-mini models are listed (o1-mini with 200k tpm) anyone know why I can’t access them?
gpt models such as 4o works fine.

1 Like

Are you developing using the responses endpoint?

response = client.responses.create()

That is in contrast to the older chat completions endpoint:

response = client.chat.completions.create()

There are disallowed models, likely not supported because they don’t align with the endpoint capabilities, such as developer message (“instructions”) support.

Those include “o1-preview” and “o1-mini”

The model name “o1” and “o3-mini” is available, however its deployment was released gradually and might not be automatic. Try generating a new project API key if you do see them in your own “limits” screen.


The annoyance with reasoning models is then that this shortcut to the output_text, good for examples, doesn’t work on that model, because the first output item is a reasoning summary (that cannot actually be requested):

response.output[0].content[0].text

While the endpoint is better for its streaming events, this code will get you a reasoning model’s output language after a Python SDK call:

from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="o3-mini",
    max_output_tokens=2048,
    store=False,
    reasoning={
        "effort": "low",
        #"generate_summary": "detailed", # computer model only
        },
    input=[
        {
          "role": "developer",
          "content": [
            {
              "type": "input_text",
              "text": "An AI assistant writes one sentence.",
            }
          ]
        },
        {
          "role": "user",
          "content": [
            {
              "type": "input_text",
              "text": "Any fruit better than Sumo Citrus?",
            }
          ]
        }
    ]
)
for out_item in response.output:
    # Safely iterate if the attribute "content" exists
    if hasattr(out_item, "content"):
        for element in out_item.content:
            # Print text if available without raising errors
            if hasattr(element, "text"):
                print(element.text)

Thank you for the swift reply. I tried your code but I am still getting a similar error even after creating a new key…
Here is the complete error log I get:

  File "c:\Users\persj\Downloads\openai test\from openai import OpenAI.py", line 6, in <module>
    response = client.responses.create(
               ^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\persj\Downloads\openai test\openai\_utils\_utils.py", line 279, in wrapper
    return func(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\persj\Downloads\openai test\openai\resources\responses\responses.py", line 602, in create
    return self._post(
           ^^^^^^^^^^^
  File "c:\Users\persj\Downloads\openai test\openai\_base_client.py", line 1242, in post
    return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "c:\Users\persj\Downloads\openai test\openai\_base_client.py", line 919, in request
    return self._request(
           ^^^^^^^^^^^^^^
  File "c:\Users\persj\Downloads\openai test\openai\_base_client.py", line 1023, in _request
    raise self._make_status_error_from_response(err.response) from None
openai.NotFoundError: Error code: 404 - {'error': {'message': 'The model `o1-2024-12-17` does not exist or you do not have access to it.', 'type': 'invalid_request_error', 'param': None, 'code': 'model_not_found'}}
type or paste code here

this is how my usage limits looks