> ## Documentation Index
> Fetch the complete documentation index at: https://mixroute.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# GPT 6.1 Sol

> OpenAI reasoning model for complex coding, computer use, and professional work, with text and image input.

<link rel="alternate" hrefLang="en" href="https://mixroute.ai/docs/model-api/openai/gpt-6.1-sol" />

<link rel="alternate" hrefLang="zh-Hans" href="https://mixroute.ai/docs/zh-hans/model-api/openai/gpt-6.1-sol" />

<link rel="alternate" hrefLang="zh-Hant" href="https://mixroute.ai/docs/zh-hant/model-api/openai/gpt-6.1-sol" />

<link rel="alternate" hrefLang="ja" href="https://mixroute.ai/docs/ja/model-api/openai/gpt-6.1-sol" />

<link rel="alternate" hrefLang="x-default" href="https://mixroute.ai/docs/model-api/openai/gpt-6.1-sol" />

OpenAI reasoning model for complex coding, computer use, and professional work, with text and image input.

Use the exact model ID `gpt-6.1-sol`. This is a separate model from `gpt-6-sol`; changing the ID also requires checking reasoning and tool-call settings.

## Model Information

| Field | Description |
| - | - |
| `model` | gpt-6.1-sol |
| `context` | 1,050,000 tokens |
| `max output` | 128,000 tokens |
| `input` | Text and images; no native audio or video input. |
| `output` | Text; supports structured output and function calling through compatible endpoints. |

Context and output sizes are model specifications. Effective limits, model availability, and pricing depend on your MixRoute account and route. Hosted tools are not automatically available on every route.

## Endpoints and Reasoning

| Endpoint | Reasoning field | Allowed values | Function calling |
| - | - | - | - |
| [Responses API](/docs/api-reference/endpoint/responses-openai) | `reasoning.effort` | `low`, `medium`, `high`, `xhigh`, `max` | Supported |
| [Chat Completions API](/docs/api-reference/endpoint/chat-openai) | `reasoning_effort` | `low`, `medium`, `high`, `xhigh` | Not supported for this model |

The model defaults to `medium` reasoning effort. `low` is the lowest supported level; `none` and `minimal` are invalid. For `max`, use Responses rather than the Chat Completions route.

<Warning>
  Do not use reasoning\_effort="none" as a workaround for Chat Completions tool errors. GPT 6.1 Sol does not accept none. Move tool requests to /v1/responses and use reasoning.effort="low" or a higher supported level.
</Warning>

Omit `temperature`, `top_p`, and `top_logprobs`. Also omit `logprobs` in Chat Completions and `message.output_text.logprobs` from Responses `include`. These sampling/log-probability controls are incompatible with this model's reasoning modes.

## Responses Request

Set `MIXROUTE_API_KEY` before calling.

```bash theme={null}
curl --request POST "https://api.mixroute.ai/v1/responses" \
  --header "Authorization: Bearer $MIXROUTE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "gpt-6.1-sol",
  "input": "Explain the role of database indexes.",
  "reasoning": {
    "effort": "low"
  },
  "max_output_tokens": 1024,
  "store": false
}'
```

### Python

```python theme={null}
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["MIXROUTE_API_KEY"],
    base_url="https://api.mixroute.ai/v1",
)
response = client.responses.create(
    model="gpt-6.1-sol",
    input="Explain the role of database indexes.",
    reasoning={"effort": "low"},
    max_output_tokens=1024,
    store=False,
)
print(response.output_text)
```

| Field | Description |
| - | - |
| `model` | Required; use gpt-6.1-sol. |
| `input` | Required input text or an array of Responses input items. |
| `reasoning.effort` | low / medium / high / xhigh / max; default medium. |
| `max_output_tokens` | Optional budget covering visible output and reasoning tokens. |
| `stream` | Optional boolean; true enables Responses SSE events. |
| `store` | Optional boolean; false disables response storage in this example. |
| `tools` | Optional Responses tool definitions; function fields are not nested under function. |
| `tool_choice` | Optional tool selection policy or a named function object. |

## Chat Completions Without Tools

```bash theme={null}
curl --request POST "https://api.mixroute.ai/v1/chat/completions" \
  --header "Authorization: Bearer $MIXROUTE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "gpt-6.1-sol",
  "messages": [
    {
      "role": "user",
      "content": "Explain the role of database indexes."
    }
  ],
  "reasoning_effort": "low",
  "max_completion_tokens": 1024
}'
```

Use `messages` rather than `input`, `reasoning_effort` rather than the nested `reasoning` object, and `max_completion_tokens` rather than `max_output_tokens`. Read the text from `choices[0].message.content`. Do not attach `tools` to this model on this endpoint.

## Function Calling

```bash theme={null}
curl --request POST "https://api.mixroute.ai/v1/responses" \
  --header "Authorization: Bearer $MIXROUTE_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "gpt-6.1-sol",
  "input": "Call lookup_status for service demo.",
  "reasoning": {
    "effort": "low"
  },
  "tools": [
    {
      "type": "function",
      "name": "lookup_status",
      "description": "Return the status of a named service.",
      "parameters": {
        "type": "object",
        "properties": {
          "service": {
            "type": "string"
          }
        },
        "required": [
          "service"
        ],
        "additionalProperties": false
      },
      "strict": true
    }
  ],
  "tool_choice": {
    "type": "function",
    "name": "lookup_status"
  },
  "include": [
    "reasoning.encrypted_content"
  ],
  "max_output_tokens": 1024,
  "store": false
}'
```

A function call appears as a `function_call` item in `output`, with `name`, JSON-encoded `arguments`, and `call_id`. The application validates the arguments and runs its own function; declaring a tool does not execute it on the server.

For a stateless follow-up, append the complete returned `output` array to the conversation input, followed by a `function_call_output` item with the matching `call_id` and a string `output`. Preserve any reasoning items and encrypted content unchanged. Set `tool_choice` back to `"auto"` on the follow-up so the model can answer instead of being forced to call the function again. Do not assume `output[0]` is a text message; the Python SDK provides `response.output_text` for text responses.

```json theme={null}
{
  "type": "function_call_output",
  "call_id": "CALL_ID_FROM_RESPONSE",
  "output": "{\"service\":\"demo\",\"status\":\"ok\"}"
}
```

## Migrating from GPT 6 Sol

1. Change `model` to `gpt-6.1-sol`; keep the old ID only when you intend to use GPT 6 Sol.
2. Replace `none` or `minimal` with `low`, or choose a higher supported reasoning level.
3. Move function-tool workflows from Chat Completions to Responses and use the Responses input/tool formats.
4. Remove unsupported sampling parameters. For maximum reasoning effort, use Responses.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.