MixMedia API
RUEN
API keys Sign inTry it
Open as Markdown
← Try it on the website
OpenAI

GPT-5.6

OpenAI · ~15 s on average
$2.38 / 1M input · $14.28 / 1M outputper picture

OpenAI's GPT-5.6 flagship (ChatGPT): code, analysis, documents and hard tasks. You can attach pictures.

GPT-5.6 (Sol) is the OpenAI flagship of the 5.6 generation: programming, data and document analysis, design and complex multi-step work. You pay for the actual tokens. Up to 10 pictures can be attached.

A question or task as text — the model answers with text. Pictures in input_urls are optional.

ID: gpt-5.6 · $2.38 / 1M input · $14.28 / 1M output · ~15 s on average

Parameters (field input)

ParameterRequiredDescriptionValues (default in bold)
promptyesYour question or tasktext, up to 30000 chars
input_urlsnoPictures to analyse (https links), up to 10; each is 560 input tokens["https://…"]
reasoningnoReasoning level (default medium): none/off answers at once, low fast, medium balanced, high deeper and slower, xhigh maximum (where offered). Same per-token price; reasoning tokens are part of the output and are billednone low medium high xhigh
system_promptnoInstruction for the model (role, style, rules), up to 10,000 characters
messagesnoConversation history: [{"role":"user","content":"…"},{"role":"assistant","content":"…"}] — alternating, starting with user, ending with assistant; the new question goes to prompt. Up to 40 messages, 60,000 characters, billed as input tokens[{role, content}]
response_formatnojson — the answer is one valid JSON objecttext json

Example

curl -X POST https://mixmedia.tech/api/v1/jobs/createTask \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.6","input":{"prompt":"Explain in simple words why the sky is blue","reasoning":"medium","response_format":"text"}}'
import os, requests

r = requests.post(
    "https://mixmedia.tech/api/v1/jobs/createTask",
    headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
    json={
      "model": "gpt-5.6",
      "input": {
        "prompt": "Explain in simple words why the sky is blue",
        "reasoning": "medium",
        "response_format": "text"
      }
    },
)
print(r.json())  # {"code": 200, "data": {"taskId": "..."}}
const r = await fetch("https://mixmedia.tech/api/v1/jobs/createTask", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "model": "gpt-5.6",
    "input": {
      "prompt": "Explain in simple words why the sky is blue",
      "reasoning": "medium",
      "response_format": "text"
    }
  }),
});
console.log(await r.json()); // { code: 200, data: { taskId: "..." } }

Price: per token

Input, per 1M tokensOutput, per 1M tokens (incl. thinking)
$2.38$14.28

An average request costs ~$0.0035 (a short question, a one-page answer or a question with a photo). The price depends on length: fewer words and photos cost less.

  • Tokens are actual: counted by the model itself. Input = prompt, instruction and pictures; output = the answer including the model's reasoning.
  • Cost = input × input price / 1M + output × output price / 1M, rounded up to $0.0001.
  • On create, a reserve for your question and up to 16384 output tokens is held (an answer never costs more than that). When the answer is ready the actual amount is charged and the rest is returned at once. A failed task returns the whole reserve.
  • recordInfo and the callback return usage: input_tokens, output_tokens, total_tokens, cost (USD), estimated: false.

Example: a 400-character question (100 tokens) and a 4,000-character answer (1,000 tokens) = 100 × $2.38/1M + 1 000 × $14.28/1M = $0.0146.

Result

Same as any task: call recordInfo or receive a callback. The answer is in resultJson.text, token usage and the charge are in usage (input_tokens, output_tokens, cost).

Upload your photos via files/upload or pass any public https links.

Error handling

API responses are JSON {"code", "msg", "data"}; errors also have a string error field (type). On /api/v1/* the HTTP status matches body code.

Example response bodies

400

{
  "code": 400,
  "msg": "input.duration: must be between 4 and 30, or \"auto\" / -1",
  "data": null,
  "error": "invalid_request_error"
}

401

{
  "code": 401,
  "msg": "Authentication failed. Please check your API key",
  "data": null,
  "error": "authentication_error"
}

402

{
  "code": 402,
  "msg": "Insufficient balance. Please top up and try again. Available: $0.01, required: $0.015. Top up at https://mixmedia.tech/cabinet/billing",
  "data": {
    "balance": "0.0100",
    "required": "0.0150",
    "currency": "USD",
    "topUpUrl": "https://mixmedia.tech/cabinet/billing"
  },
  "error": "payment_required"
}

429

{
  "code": 429,
  "msg": "Rate limit exceeded: 10 createTask/upload requests per 10 s per key. Retry after 8s",
  "data": null,
  "error": "rate_limit_error"
}

500

{
  "code": 500,
  "msg": "Internal server error",
  "data": null,
  "error": "server_error"
}

Codes on createTask / upload

codeerrorMeaningWhat to do
400invalid_request_errorInvalid parameter or bodySee msg
400unsupported_modelUnknown modelModel list
401authentication_errorMissing or invalid keyCheck the key
402payment_requiredNot enough balanceTop up
403permission_errorNo accessContact support
429rate_limit_errorToo many requestsWait for Retry-After
505model_disabledModel temporarily disabledPick another
500server_errorOur failureRetry later

Example msg values: Authentication failed. Please check your API key (401); Insufficient balance. Please top up and try again… (402).

Task errors (recordInfo)

If the task was created and then failed: state: "fail" (alias status: "failed"), failCode / failMsg, and error: { code, message, type }. Money is refunded (refunded: true).

failCodeerror.typeMeaning
400nsfw_content_detected / invalid_request_errorModeration — failMsg is upstream text verbatim
422invalid_request_errorThe model rejected the parameters (e.g. a photo could not be downloaded)
501server_errorThe model could not generate (failMsg)
504timeout_errorTimed out — retry
500 / 503server_errorService temporarily unavailable

Rate limits

WhatLimit
createTask and upload20 per 10 s per key
recordInfo / list / balance100 per 10 s per key

Over the limit — HTTP 429 and Retry-After.

Try the same models on the website or see prices.

© 2026 MixMedia