Gemini 4 Argon
Google's newest Gemini 4 text model for hard tasks: reasoning, code, analysis. You can attach pictures.
Gemini 4 Argon is Google's newest text model (marked «Complex tasks» in Gemini). Good for multi-step reasoning, code, document analysis and long texts. You can attach up to 10 pictures.
A question or task as text — the model answers with text. Pictures in input_urls are optional.
ID: gemini-4-argon · $2 / 1M input · $10 / 1M output · under 1 min
Parameters (field input)
| Parameter | Required | Description | Values (default in bold) |
|---|---|---|---|
prompt | yes | Your question or task | text, up to 30000 chars |
input_urls | no | Pictures to analyse (https links), up to 10; each is 560 input tokens | ["https://…"] |
reasoning | no | Gemini thinking level (the «Thinking level» menu): low — fast answer, medium — balanced, high — thinks longer. The per-token price does not change; hidden thinking is not charged | low medium high |
Example
curl -X POST https://mixmedia.tech/api/v1/jobs/createTask \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gemini-4-argon","input":{"prompt":"Explain in simple words why the sky is blue","reasoning":"low"}}'
import os, requests
r = requests.post(
"https://mixmedia.tech/api/v1/jobs/createTask",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={
"model": "gemini-4-argon",
"input": {
"prompt": "Explain in simple words why the sky is blue",
"reasoning": "low"
}
},
)
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": "gemini-4-argon",
"input": {
"prompt": "Explain in simple words why the sky is blue",
"reasoning": "low"
}
}),
});
console.log(await r.json()); // { code: 200, data: { taskId: "..." } }
Price: per token
| Input, per 1M tokens | Output, per 1M tokens (incl. thinking) |
|---|---|
| $2 | $10 |
This is Google's official introductory price through 30.11.2026; from 01.12.2026 — $4 / 1M input and $20 / 1M output.
- Tokens are estimated on our side by Google's rules: text ≈ 4 characters per token (rounded up), each attached picture = 560 tokens. The model service does not report exact usage, so the numbers may differ slightly from Google's counter.
- Input tokens = prompt + pictures; output tokens = the length of the answer. Hidden model thinking is not visible to us and is not charged.
- Cost = input × input price / 1M + output × output price / 1M, rounded up to $0.0001.
- On create, the cost of the input and 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.
recordInfoand the callback returnusage:input_tokens,output_tokens,total_tokens,cost(USD),estimated: true.
Example: a 400-character question (100 tokens) and a 4,000-character answer (1,000 tokens) = 100 × $2/1M + 1 000 × $10/1M = $0.0102.
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
| code | error | Meaning | What to do |
|---|---|---|---|
| 400 | invalid_request_error | Invalid parameter or body | See msg |
| 400 | unsupported_model | Unknown model | Model list |
| 401 | authentication_error | Missing or invalid key | Check the key |
| 402 | payment_required | Not enough balance | Top up |
| 403 | permission_error | No access | Contact support |
| 429 | rate_limit_error | Too many requests | Wait for Retry-After |
| 505 | model_disabled | Model temporarily disabled | Pick another |
| 500 | server_error | Our failure | Retry 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).
| failCode | error.type | Meaning |
|---|---|---|
| 400 | nsfw_content_detected / invalid_request_error | Moderation — failMsg is upstream text verbatim |
| 422 | invalid_request_error | The model rejected the parameters (e.g. a photo could not be downloaded) |
| 501 | server_error | The model could not generate (failMsg) |
| 504 | timeout_error | Timed out — retry |
| 500 / 503 | server_error | Service temporarily unavailable |
Rate limits
| What | Limit |
|---|---|
| createTask and upload | 20 per 10 s per key |
| recordInfo / list / balance | 100 per 10 s per key |
Over the limit — HTTP 429 and Retry-After.