Are o3, o3-mini and o3 deep search really available to API users?

Hi I always get bad requests when I try to use the o3 models in my scripts. yet when i list the models available it’s def on the list.
can someone help ?

def ask_o3(batch: List[str]) → Dict[str, List[str]]:
msgs = [
{“role”: “system”, “content”: PROMPT},
{“role”: “user”, “content”: json.dumps(batch, ensure_ascii=False)}
]
for attempt in range(1, RETRIES + 1):
try:
limiter.wait()
resp = oai.chat.completions.create(
model = OPENAI_MODEL,
messages = msgs,
temperature = TEMP,
top_p = TOP_P,
response_format = {“type”: “json_object”},
)
data = json.loads(resp.choices[0].message.content)
if not isinstance(data, dict):
raise ValueError(“reply not dict”)
cleaned: Dict[str, List[str]] = {}
for k, v in data.items():
ck = canonicalize(k)
if ck in GENERIC_KEYS or not ck:
raise ValueError(f"generic/bad key ‘{ck}’")
alias = [a for a in v if a and canonicalize(a) != ck][:MAX_ALIAS]
cleaned[ck] = sorted(set(alias))
return cleaned
except (OpenAIError, json.JSONDecodeError, ValueError) as e:
logging.warning(“Retry (%s) %d/%d”, e.class.name, attempt, RETRIES)
time.sleep(BACKOFF_S)
raise RuntimeError(“o3 failed after retries”)

o1 and o3 mini are only deployed to organizations with some hidden criteria for blocking them on others that can’t be appealed.

o3 requires 3rd-party ID validation if not of a high tier, and also denies streaming to all without ID validation.

You cannot send reasoning models parameters such as temperature and top-p.

You would not want to use “JSON object” nor immediately fail if not receiving AI written content that cannot be parsed by JSON code; it is not reliably trained except for gpt-4-turbo.

Capture the error message when the API call function fails with try/except.

1 Like

thanks. didn’t know about the json thing Although using o4mini and by insisting in the prompt it seems to have worked ?
this is a script meant to clean a bunch of keywords, generate aliases and decide for canonical one in french & arabic law documents.

where do i go to get o3 unlocked then ? is it the organisation verified thingy on dashboard ?

Here’s the ID verification info I wrote up when first encountered, which is in your platform account under “profile”.

You have to have a webcam or phone, ready to visit a third-party website when launched, and prepare to give that company pictures of both sides of a government ID, then submit to intrusively videoing yourself also. Then no retry when it fails.