inference-providers

GPT-5.6

by openai · family gpt

Facts

Release date2026-06-25
Retired date
Knowledge cutoff2026-02-16
Context (max)1,050,000
Max output128,000
Modalitiestext, image → text
Aliases
Open weightsno
DescriptionAdds xhigh everywhere and max on Responses; Chat Completions rejects tools unless effort is none.

Unknown values are shown as —.

Intelligence Index v4.1.1: 61 · Sol variant, max effort · Source: Artificial Analysis (accessed 2026-08-20)

Offerings

ProviderWire IDVariantEndpointProtocolStatusPrice (USD / Mtok)Reasoning
Azure AI Foundrygpt-5.6v1-responsesopenai-responsesga2.00 / 12.00effort · default on · returns reasoning_summary · round-trips encrypted_content
NEAR AI Cloudopenai/gpt-5.6-lunalunachatopenai-chatga0.20 / 1.20effort · default on · returns reasoning_content
NEAR AI Cloudopenai/gpt-5.6-solsolchatopenai-chatga4.00 / 20.00effort · default on · returns reasoning_content
OpenAIgpt-5.6-lunalunacodex-backendopenai-responsesga0.20 / 1.20effort · default on · returns reasoning_summary · round-trips encrypted_content
OpenAIgpt-5.6-solsolcodex-backendopenai-responsesga5.00 / 30.00effort · default on · returns reasoning_summary · round-trips encrypted_content
OpenAIgpt-5.6-terraterracodex-backendopenai-responsesga2.00 / 12.00effort · default on · returns reasoning_summary · round-trips encrypted_content
OpenAIgpt-5.6v1-chat-completionsopenai-chatga2.00 / 12.00effort · default on · returns hidden
OpenAIgpt-5.6v1-responsesopenai-responsesga2.00 / 12.00effort · default on · returns reasoning_summary · round-trips encrypted_content
OpenCode Gogpt-5.6-lunalunago-responsesopenai-responsesgaeffort · default on · returns reasoning_summary · round-trips encrypted_content
OpenCode Zengpt-5.6-lunalunaresponsesopenai-responsesga0.20 / 1.20effort · default on · returns reasoning_summary · round-trips encrypted_content
OpenCode Zengpt-5.6-solsolresponsesopenai-responsesga5.00 / 30.00effort · default on · returns reasoning_summary · round-trips encrypted_content
OpenCode Zengpt-5.6-terraterraresponsesopenai-responsesga2.00 / 12.00effort · default on · returns reasoning_summary · round-trips encrypted_content
OpenRouteropenai/gpt-5.6-luna-prolunachat-completionsopenai-chatga0.20 / 1.20effort · default on · returns reasoning_content · round-trips reasoning_content
OpenRouteropenai/gpt-5.6-lunalunachat-completionsopenai-chatga0.20 / 1.20effort · default on · returns reasoning_content · round-trips reasoning_content
OpenRouteropenai/gpt-5.6-sol-prosolchat-completionsopenai-chatga2.00 / 10.00effort · default on · returns reasoning_content · round-trips reasoning_content
OpenRouteropenai/gpt-5.6-solsolchat-completionsopenai-chatga2.00 / 10.00effort · default on · returns reasoning_content · round-trips reasoning_content
OpenRouteropenai/gpt-5.6-terra-proterrachat-completionsopenai-chatga2.00 / 12.00effort · default on · returns reasoning_content · round-trips reasoning_content
OpenRouteropenai/gpt-5.6-terraterrachat-completionsopenai-chatga2.00 / 12.00effort · default on · returns reasoning_content · round-trips reasoning_content

Reasoning controls

Azure AI Foundry· gpt-5.6· v1-responses effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_summary · round-trips encrypted_content

Incompatible with: temperature, top_p, max_tokens

NEAR AI Cloud· openai/gpt-5.6-luna· chat effort

reasoning_effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_content

NEAR AI Cloud· openai/gpt-5.6-sol· chat effort

reasoning_effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_content

OpenAI· gpt-5.6-luna· codex-backend effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_summary · round-trips encrypted_content

OpenAI· gpt-5.6-sol· codex-backend effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_summary · round-trips encrypted_content

OpenAI· gpt-5.6-terra· codex-backend effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_summary · round-trips encrypted_content

OpenAI· gpt-5.6· v1-chat-completions effort

reasoning_effort nonelowmedium●highxhigh

effort · default on · returns hidden

OpenAI· gpt-5.6· v1-responses effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_summary · round-trips encrypted_content

Incompatible with: temperature, top_p

OpenCode Go· gpt-5.6-luna· go-responses effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_summary · round-trips encrypted_content

Incompatible with: temperature, top_p

OpenCode Zen· gpt-5.6-luna· responses effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_summary · round-trips encrypted_content

Incompatible with: temperature, top_p

OpenCode Zen· gpt-5.6-sol· responses effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_summary · round-trips encrypted_content

Incompatible with: temperature, top_p

OpenCode Zen· gpt-5.6-terra· responses effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_summary · round-trips encrypted_content

Incompatible with: temperature, top_p

OpenRouter· openai/gpt-5.6-luna-pro· chat-completions effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_content · round-trips reasoning_content

OpenRouter· openai/gpt-5.6-luna· chat-completions effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_content · round-trips reasoning_content

OpenRouter· openai/gpt-5.6-sol-pro· chat-completions effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_content · round-trips reasoning_content

OpenRouter· openai/gpt-5.6-sol· chat-completions effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_content · round-trips reasoning_content

OpenRouter· openai/gpt-5.6-terra-pro· chat-completions effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_content · round-trips reasoning_content

OpenRouter· openai/gpt-5.6-terra· chat-completions effort

reasoning.effort nonelowmedium●highxhighmax

effort · default on · returns reasoning_content · round-trips reasoning_content

Example requests

Azure AI Foundry · openai-responses · gpt-5.6

curl 'https://{resource}.openai.azure.com/openai/v1/responses' \
  -H 'api-key: <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "gpt-5.6",
  "input": "Tell me about the weather.",
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://{resource}.openai.azure.com/openai/v1/responses",
    headers={
      "api-key": "<YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "gpt-5.6",
      "input": "Tell me about the weather.",
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://{resource}.openai.azure.com/openai/v1/responses", {
  method: "POST",
  headers: {
    "api-key": "<YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "gpt-5.6",
    "input": "Tell me about the weather.",
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include encrypted_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p, max_tokens.

NEAR AI Cloud · openai-chat · openai/gpt-5.6-luna

curl 'https://cloud-api.near.ai/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "openai/gpt-5.6-luna",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning_effort": "medium"
}'
Python (requests)
import requests

resp = requests.post(
    "https://cloud-api.near.ai/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "openai/gpt-5.6-luna",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning_effort": "medium"
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://cloud-api.near.ai/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "openai/gpt-5.6-luna",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning_effort": "medium"
  }),
})
console.log(await resp.json())

NEAR AI Cloud · openai-chat · openai/gpt-5.6-sol

curl 'https://cloud-api.near.ai/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "openai/gpt-5.6-sol",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning_effort": "medium"
}'
Python (requests)
import requests

resp = requests.post(
    "https://cloud-api.near.ai/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "openai/gpt-5.6-sol",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning_effort": "medium"
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://cloud-api.near.ai/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "openai/gpt-5.6-sol",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning_effort": "medium"
  }),
})
console.log(await resp.json())

OpenAI · openai-responses · gpt-5.6-luna

curl 'https://chatgpt.com/backend-api/codex/responses' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "gpt-5.6-luna",
  "input": "Tell me about the weather.",
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://chatgpt.com/backend-api/codex/responses",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "gpt-5.6-luna",
      "input": "Tell me about the weather.",
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://chatgpt.com/backend-api/codex/responses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "gpt-5.6-luna",
    "input": "Tell me about the weather.",
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include encrypted_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

OpenAI · openai-responses · gpt-5.6-sol

curl 'https://chatgpt.com/backend-api/codex/responses' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "gpt-5.6-sol",
  "input": "Tell me about the weather.",
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://chatgpt.com/backend-api/codex/responses",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "gpt-5.6-sol",
      "input": "Tell me about the weather.",
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://chatgpt.com/backend-api/codex/responses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "gpt-5.6-sol",
    "input": "Tell me about the weather.",
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include encrypted_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

OpenAI · openai-responses · gpt-5.6-terra

curl 'https://chatgpt.com/backend-api/codex/responses' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "gpt-5.6-terra",
  "input": "Tell me about the weather.",
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://chatgpt.com/backend-api/codex/responses",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "gpt-5.6-terra",
      "input": "Tell me about the weather.",
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://chatgpt.com/backend-api/codex/responses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "gpt-5.6-terra",
    "input": "Tell me about the weather.",
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include encrypted_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

OpenAI · openai-chat · gpt-5.6

curl 'https://api.openai.com/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "gpt-5.6",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning_effort": "medium"
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.openai.com/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "gpt-5.6",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning_effort": "medium"
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.openai.com/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "gpt-5.6",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning_effort": "medium"
  }),
})
console.log(await resp.json())

OpenAI · openai-responses · gpt-5.6

curl 'https://api.openai.com/v1/responses' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "gpt-5.6",
  "input": "Tell me about the weather.",
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://api.openai.com/v1/responses",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "gpt-5.6",
      "input": "Tell me about the weather.",
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://api.openai.com/v1/responses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "gpt-5.6",
    "input": "Tell me about the weather.",
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include encrypted_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p.

OpenCode Go · openai-responses · gpt-5.6-luna

curl 'https://opencode.ai/zen/go/v1/responses' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "gpt-5.6-luna",
  "input": "Tell me about the weather.",
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://opencode.ai/zen/go/v1/responses",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "gpt-5.6-luna",
      "input": "Tell me about the weather.",
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://opencode.ai/zen/go/v1/responses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "gpt-5.6-luna",
    "input": "Tell me about the weather.",
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include encrypted_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p.

OpenCode Zen · openai-responses · gpt-5.6-luna

curl 'https://opencode.ai/zen/v1/responses' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "gpt-5.6-luna",
  "input": "Tell me about the weather.",
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://opencode.ai/zen/v1/responses",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "gpt-5.6-luna",
      "input": "Tell me about the weather.",
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://opencode.ai/zen/v1/responses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "gpt-5.6-luna",
    "input": "Tell me about the weather.",
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include encrypted_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p.

OpenCode Zen · openai-responses · gpt-5.6-sol

curl 'https://opencode.ai/zen/v1/responses' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "gpt-5.6-sol",
  "input": "Tell me about the weather.",
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://opencode.ai/zen/v1/responses",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "gpt-5.6-sol",
      "input": "Tell me about the weather.",
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://opencode.ai/zen/v1/responses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "gpt-5.6-sol",
    "input": "Tell me about the weather.",
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include encrypted_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p.

OpenCode Zen · openai-responses · gpt-5.6-terra

curl 'https://opencode.ai/zen/v1/responses' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "gpt-5.6-terra",
  "input": "Tell me about the weather.",
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://opencode.ai/zen/v1/responses",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "gpt-5.6-terra",
      "input": "Tell me about the weather.",
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://opencode.ai/zen/v1/responses", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "gpt-5.6-terra",
    "input": "Tell me about the weather.",
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include encrypted_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).
  • Reported incompatible with thinking controls: temperature, top_p.

OpenRouter · openai-chat · openai/gpt-5.6-luna-pro

curl 'https://openrouter.ai/api/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "openai/gpt-5.6-luna-pro",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "openai/gpt-5.6-luna-pro",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "openai/gpt-5.6-luna-pro",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

OpenRouter · openai-chat · openai/gpt-5.6-luna

curl 'https://openrouter.ai/api/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "openai/gpt-5.6-luna",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "openai/gpt-5.6-luna",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "openai/gpt-5.6-luna",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

OpenRouter · openai-chat · openai/gpt-5.6-sol-pro

curl 'https://openrouter.ai/api/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "openai/gpt-5.6-sol-pro",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "openai/gpt-5.6-sol-pro",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "openai/gpt-5.6-sol-pro",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

OpenRouter · openai-chat · openai/gpt-5.6-sol

curl 'https://openrouter.ai/api/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "openai/gpt-5.6-sol",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "openai/gpt-5.6-sol",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "openai/gpt-5.6-sol",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

OpenRouter · openai-chat · openai/gpt-5.6-terra-pro

curl 'https://openrouter.ai/api/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "openai/gpt-5.6-terra-pro",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "openai/gpt-5.6-terra-pro",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "openai/gpt-5.6-terra-pro",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).

OpenRouter · openai-chat · openai/gpt-5.6-terra

curl 'https://openrouter.ai/api/v1/chat/completions' \
  -H 'Authorization: Bearer <YOUR_API_KEY>' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "openai/gpt-5.6-terra",
  "messages": [
    {
      "role": "user",
      "content": "Tell me about the weather."
    }
  ],
  "reasoning": {
    "effort": "medium"
  }
}'
Python (requests)
import requests

resp = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
    },
    json={
      "model": "openai/gpt-5.6-terra",
      "messages": [
        {
          "role": "user",
          "content": "Tell me about the weather."
        }
      ],
      "reasoning": {
        "effort": "medium"
      }
    },
)
print(resp.json())
TypeScript (fetch)
const resp = await fetch("https://openrouter.ai/api/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <YOUR_API_KEY>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "model": "openai/gpt-5.6-terra",
    "messages": [
      {
        "role": "user",
        "content": "Tell me about the weather."
      }
    ],
    "reasoning": {
      "effort": "medium"
    }
  }),
})
console.log(await resp.json())
  • ⚠ Responses include reasoning_content artifacts — pass them back unmodified on subsequent turns (dropping them triggers 400s or quality loss).