Gemini 3.1 Pro
A smart assistant: comes up with names, writes texts and explains hard things simply. You can attach pictures.
Good for: texts, ideas, answers to questions
~$0.0021 average request
Fewer words and photos cost less
You pay for the actual tokens counted by the model: your question, instruction and pictures are input, the answer with its reasoning is output. A reserve for your question and up to 16384 answer tokens is held at start; after the answer only the actual amount is charged and the rest returns to your balance at once.
For developers →How to get a better result
Instead of "write a text" say "write a Telegram post about walking, 3 paragraphs".
"Explain how a neural network works to a schoolchild".
Say what to change and press "Create" again.
Pass this model in the request gemini-3.1-pro
1. Create a task POST /api/v1/jobs/createTask
curl -X POST https://mixmedia.tech/api/v1/jobs/createTask \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-123" \
-d '{
"model": "gemini-3.1-pro",
"callBackUrl": "https://your-app.example/callback",
"input": {
"prompt": "Suggest 5 names for a seaside coffee shop",
"input_urls": [],
"reasoning": "medium",
"response_format": "text"
}
}'import time, requests
API = "https://mixmedia.tech/api/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}
task = requests.post(f"{API}/jobs/createTask", headers=HEADERS, json={
"model": "gemini-3.1-pro",
"callBackUrl": "https://your-app.example/callback",
"input": {
"prompt": "Suggest 5 names for a seaside coffee shop",
"input_urls": [],
"reasoning": "medium",
"response_format": "text"
}
}).json()
task_id = task["data"]["taskId"]
while True:
info = requests.get(f"{API}/jobs/recordInfo", headers=HEADERS, params={"taskId": task_id}).json()["data"]
if info["state"] in ("success", "fail"):
break
time.sleep(4)
print(info["state"], info.get("resultJson") or info.get("failMsg"))const API = "https://mixmedia.tech/api/v1";
const headers = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };
const { data } = await fetch(`${API}/jobs/createTask`, {
method: "POST", headers,
body: JSON.stringify({
"model": "gemini-3.1-pro",
"callBackUrl": "https://your-app.example/callback",
"input": {
"prompt": "Suggest 5 names for a seaside coffee shop",
"input_urls": [],
"reasoning": "medium",
"response_format": "text"
}
}),
}).then((r) => r.json());
let info;
do {
await new Promise((r) => setTimeout(r, 4000));
info = (await fetch(`${API}/jobs/recordInfo?taskId=${data.taskId}`, { headers }).then((r) => r.json())).data;
} while (!["success", "fail"].includes(info.state));
console.log(info.state, info.resultJson ?? info.failMsg);Response: data.taskId. callBackUrl and Idempotency-Key are optional.
2. Status and result GET /api/v1/jobs/recordInfo
curl "https://mixmedia.tech/api/v1/jobs/recordInfo?taskId=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"
data.state: waiting, queuing, generating, success, fail. On success data.resultJson is a JSON string with resultUrls.
3. Upload a file POST /api/v1/files/upload
curl -X POST https://mixmedia.tech/api/v1/files/upload \
-H "Authorization: Bearer YOUR_API_KEY" -F "file=@photo.jpg"
The response has data.url. Pass that URL in the file field. Any public https URL works too.
About the model
Gemini 3.1 Pro is Google's most capable text model for reasoning, analysis and writing. You can attach up to 10 pictures.
Try these
Similar models
All models →
GPT-6 Astra
OpenAI's most powerful model (ChatGPT): hard reasoning, code, analysis, long texts. You can attach pictures.

GPT-6.1 Sol
OpenAI's newest everyday model (ChatGPT): fast, smart answers, texts and code. You can attach pictures.

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