o3-pro
Model Overview
Designed for deeper reasoning and tougher questions, o3-pro uses more compute to deliver higher-quality answers. It’s only available in the /responses
API, which supports multi-turn model interactions and will enable more advanced features in the future. Some complex requests may take a few minutes.
How to Make a Call
API Schema
Note: This model can ONLY be called via the /responses
endpoint!
Text, image, or file inputs to the model, used to generate a response.
A text input to the model, equivalent to a text input with the user role.
A system (or developer) message inserted into the model's context.
When using along with previous_response_id, the instructions from a previous response will not be carried over to the next response. This makes it simple to swap out system (or developer) messages in new responses.
An upper bound for the number of tokens that can be generated for a response, including visible output tokens and reasoning tokens.
512
Whether to allow the model to run tool calls in parallel.
The unique ID of the previous response to the model. Use this to create multi-turn conversations.
Whether to store the generated model response for later retrieval via API.
false
If set to true, the model response data will be streamed to the client as it is generated using server-sent events.
false
What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or top_p but not both.
How the model should select which tool (or tools) to use when generating a response.
Controls which (if any) tool is called by the model.
none means the model will not call any tool and instead generates a message.
auto means the model can pick between generating a message or calling one or more tools.
required means the model must call one or more tools.
An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or temperature but not both.
The truncation strategy to use for the model response.
- auto: If the context of this response and previous ones exceeds the model's context window size, the model will truncate the response to fit the context window by dropping input items in the middle of the conversation.
- disabled (default): If a model response will exceed the context window size for a model, the request will fail with a 400 error.
disabled
Possible values: POST /v1/responses HTTP/1.1
Host: api.aimlapi.com
Authorization: Bearer <YOUR_AIMLAPI_KEY>
Content-Type: application/json
Accept: */*
Content-Length: 672
{
"model": "openai/o3-pro",
"input": "text",
"include": [
"message.input_image.image_url"
],
"instructions": "text",
"max_output_tokens": 512,
"metadata": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"parallel_tool_calls": true,
"previous_response_id": "text",
"prompt": {
"id": "text",
"variables": {
"ANY_ADDITIONAL_PROPERTY": "text"
},
"version": "text"
},
"reasoning": {
"effort": "low",
"summary": "auto"
},
"store": false,
"stream": false,
"temperature": 1,
"text": {
"format": {
"type": "text"
}
},
"tool_choice": "none",
"tools": [
{
"type": "web_search_preview",
"search_context_size": "low",
"user_location": {
"type": "approximate",
"city": "text",
"country": "text",
"region": "text",
"timezone": "text"
}
}
],
"top_p": 1,
"truncation": "disabled"
}
No content
Code Example
import requests
import json # for getting a structured output with indentation
response = requests.post(
"https://api.aimlapi.com/v1/responses",
headers={
"Content-Type":"application/json",
# Insert your AIML API Key instead of <YOUR_AIMLAPI_KEY>:
"Authorization":"Bearer <YOUR_AIMLAPI_KEY>",
"Content-Type":"application/json"
},
json={
"model":"openai/o3-pro",
"input":"Hello" # Insert your question for the model here, instead of Hello
}
)
data = response.json()
print(json.dumps(data, indent=2, ensure_ascii=False))
Last updated
Was this helpful?