Skip to main content
POST
https://console.mixroute.io
/
v1
/
responses
curl --request POST \
  --url https://console.mixroute.io/v1/responses \
  --header 'Authorization: Bearer sk-xxxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-5.2",
    "max_output_tokens": 2048,
    "input": [
      {"role": "user", "content": "Briefly introduce artificial intelligence"}
    ]
  }'
{
  "id": "resp_xxx",
  "object": "response",
  "created_at": 1768271369,
  "model": "gpt-5.2",
  "status": "completed",
  "output": [
    {
      "id": "msg_xxx",
      "type": "message",
      "status": "completed",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "Artificial Intelligence (AI) is a branch of computer science...",
          "annotations": []
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 25,
    "output_tokens": 150,
    "total_tokens": 175
  }
}

Introduction

The Responses API is OpenAI’s next-generation conversation interface, specifically designed for reasoning models (o-series, GPT-5 series) and advanced features. Compared to the traditional Chat Completions API, the Responses API provides more precise reasoning control, built-in tool support, and multimodal input capabilities.

Use Cases

  • Reasoning-intensive tasks: Using reasoning models like o1, o3-mini, o4-mini, GPT-5
  • Web search requirements: Built-in Web Search Preview tool
  • Advanced tool calls: Support for Function Call and Custom Tool Call
  • Multi-turn conversation continuation: Conversation history management via previous_response_id

Authentication

Bearer Token, e.g., Bearer sk-xxxxxxxxxx

Request Parameters

model
string
required
Model identifier, e.g., gpt-5.2, o4-mini, o3-mini
input
array
required
Input message list
max_output_tokens
integer
Maximum output tokens
stream
boolean
Enable streaming output
reasoning
object
Reasoning configuration, e.g., {"effort": "high", "summary": "detailed"}
tools
array
Tool list, supports Web Search and function calls
previous_response_id
string
Previous response ID for conversation continuation

Basic Examples

curl -X POST "https://console.mixroute.io/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "model": "gpt-5.2",
    "max_output_tokens": 2048,
    "input": [
      {"role": "user", "content": "Briefly introduce artificial intelligence"}
    ]
  }'

Advanced Features

curl -X POST "https://console.mixroute.io/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "model": "gpt-5.2",
    "stream": true,
    "input": [
      {"role": "user", "content": "What are today'\''s news headlines?"}
    ],
    "tools": [
      {
        "type": "web_search_preview"
      }
    ]
  }'

Reasoning Control

curl -X POST "https://console.mixroute.io/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "model": "o4-mini",
    "stream": true,
    "reasoning": {
      "effort": "medium",
      "summary": "auto"
    },
    "max_output_tokens": 4096,
    "input": [
      {"role": "user", "content": "Calculate the sum of 1+2+3+...+100"}
    ]
  }'
Note: summary: "auto" automatically generates a reasoning summary, suitable for quick results.

Custom Function Calls

curl -X POST "https://console.mixroute.io/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "model": "gpt-5.2",
    "input": [
      {"role": "user", "content": "What'\''s the weather like in New York today?"}
    ],
    "tools": [
      {
        "type": "function",
        "function": {
          "name": "get_weather",
          "description": "Get weather information for a specified city",
          "parameters": {
            "type": "object",
            "properties": {
              "city": {
                "type": "string",
                "description": "City name"
              },
              "unit": {
                "type": "string",
                "enum": ["celsius", "fahrenheit"],
                "description": "Temperature unit"
              }
            },
            "required": ["city"]
          }
        }
      }
    ],
    "tool_choice": "auto"
  }'

Multimodal Input

curl -X POST "https://console.mixroute.io/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "model": "gpt-5.2",
    "input": [
      {
        "role": "user",
        "content": [
          {
            "type": "input_text",
            "text": "What'\''s in this image?"
          },
          {
            "type": "input_image",
            "image_url": "https://console.mixroute.io/demo/sample-image.jpg"
          }
        ]
      }
    ]
  }'

Conversation Continuation

Use previous_response_id to maintain context across multi-turn conversations:
# First conversation turn
curl -X POST "https://console.mixroute.io/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "model": "gpt-5.2",
    "input": [
      {"role": "user", "content": "My name is John, please remember my name"}
    ]
  }'

# Response returns id: "resp_abc123"

# Second conversation turn (continuing context)
curl -X POST "https://console.mixroute.io/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "model": "gpt-5.2",
    "previous_response_id": "resp_abc123",
    "input": [
      {"role": "user", "content": "What is my name?"}
    ]
  }'

Response Format

{
  "id": "resp_xxx",
  "object": "response",
  "created_at": 1709123456,
  "model": "gpt-5.2",
  "status": "completed",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "Artificial Intelligence (AI) is a branch of computer science..."
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 25,
    "output_tokens": 150,
    "total_tokens": 175
  }
}

Comparison: Responses API vs Chat Completions API

FeatureResponses APIChat Completions API
Reasoning Model Support✅ Full support⚠️ Limited support
Built-in Web Search✅ Native support❌ Not supported
Reasoning Control✅ Fine-grained control❌ Not supported
Conversation Continuationprevious_response_id❌ Manual management required
Multimodal Input✅ Full support✅ Supported
Use CasesReasoning, search, advanced featuresGeneral conversation
curl --request POST \
  --url https://console.mixroute.io/v1/responses \
  --header 'Authorization: Bearer sk-xxxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-5.2",
    "max_output_tokens": 2048,
    "input": [
      {"role": "user", "content": "Briefly introduce artificial intelligence"}
    ]
  }'
{
  "id": "resp_xxx",
  "object": "response",
  "created_at": 1768271369,
  "model": "gpt-5.2",
  "status": "completed",
  "output": [
    {
      "id": "msg_xxx",
      "type": "message",
      "status": "completed",
      "role": "assistant",
      "content": [
        {
          "type": "output_text",
          "text": "Artificial Intelligence (AI) is a branch of computer science...",
          "annotations": []
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 25,
    "output_tokens": 150,
    "total_tokens": 175
  }
}