Mistral Small 3 API: toman pricing and code

mistralai/mistral-small-24b-instruct-2501

JSON output
Input · per 1M tokens
17,311 toman
Output · per 1M tokens
27,698 toman
One 1,000-word request ≈
59 toman

You are billed for the usage the request actually reported. Prices follow the market.Pricing and top-ups

Mistral Small 3 example: JSON output against a schema

The example is picked from this model's own capabilities. Drop in your key and it runs as is.

from openai import OpenAI
import json

client = OpenAI(base_url="https://api.uttapen.ir/v1", api_key="sk-up-…")

schema = {
    "name": "ticket",
    "schema": {
        "type": "object",
        "properties": {
            "category": {"type": "string", "enum": ["fani", "mali", "forush"]},
            "priority": {"type": "integer", "minimum": 1, "maximum": 5},
            "summary": {"type": "string"},
        },
        "required": ["category", "priority", "summary"],
        "additionalProperties": False,
    },
    "strict": True,
}

resp = client.chat.completions.create(
    model="mistralai/mistral-small-24b-instruct-2501",
    messages=[{"role": "user", "content": "Ticket: "For two days I cannot download my invoice and I was charged twice.""}],
    response_format={"type": "json_schema", "json_schema": schema},
)
print(json.loads(resp.choices[0].message.content))
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.uttapen.ir/v1", apiKey: "sk-up-…" });

const resp = await client.chat.completions.create({
  model: "mistralai/mistral-small-24b-instruct-2501",
  messages: [{ role: "user", content: "Ticket: "For two days I cannot download my invoice and I was charged twice."" }],
  response_format: {
    type: "json_schema",
    json_schema: {
      name: "ticket",
      strict: true,
      schema: {
        type: "object",
        properties: {
          category: { type: "string", enum: ["fani", "mali", "forush"] },
          priority: { type: "integer", minimum: 1, maximum: 5 },
          summary: { type: "string" },
        },
        required: ["category", "priority", "summary"],
        additionalProperties: false,
      },
    },
  },
});
console.log(JSON.parse(resp.choices[0].message.content));
curl https://api.uttapen.ir/v1/chat/completions \
  -H "Authorization: Bearer sk-up-…" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "mistralai/mistral-small-24b-instruct-2501",
    "messages": [{"role": "user", "content": "Classify the ticket and give it a priority from 1 to 5."}],
    "response_format": {"type": "json_object"}
  }'

What is Mistral Small 3 good for?

Mistral publishes this model; we expose it under the id "mistralai/mistral-small-24b-instruct-2501". Its context window is 32,768 tokens, roughly 25k English words in one request. A single response can run to 16,384 tokens. On price it sits in the "very cheap" band — cheaper than 388 and dearer than 9 of the other paid models in the catalogue.

What you get on top of text in, text out: it returns schema-valid JSON through response_format, ready to hand to your code. All of it works through the standard parameters of the official OpenAI SDK — no custom client, no wrapper.

Input runs at 17,311 toman per 1M tokens and output at 27,698 — output costs 1.6× input, so trimming the answer saves more than trimming the prompt. You are always charged for the usage the request actually reported, never for the estimate, and a failed request costs nothing.

The closest alternative with the same capabilities from a different provider is MythoMax 13B: Mistral Small 3 works out about 33% cheaper, and its context window is larger. Both run on the same key and the same code, so trying the other one is a single string change.

To make the figure concrete: 100,000 toman of credit buys roughly 1,695 thousand-word requests on Mistral Small 3, and every 1,000 toman is about 16,949 words of round trip. A job with one million input tokens and one million output tokens comes to 45,009 toman in total. Filling this model's 32,768-token window costs 567 toman on the input side alone, which is the real reason to keep conversation history short.

Mistral has 21 models in our catalogue; the cheapest is Mistral Nemo at 27 toman per thousand words and the dearest Mistral Medium 3.5 at 4,051. Among the less common parameters it accepts logit_bias, min_p, presence_penalty, repetition_penalty, top_k — all through the standard request body. It does not support include_reasoning, reasoning, tool_choice, tools, which most models here do, so test before switching if your code relies on them. By context size the nearest option from another provider is Aion-RP 1.0 (8B) at 32,768 tokens.

Where it makes sense: high-volume work such as classification, tagging and bulk summarising, extracting data against a fixed schema.

Provider's own description

Mistral Small 3 is a 24B-parameter language model optimized for low-latency performance across common AI tasks. Released under the Apache 2.0 license, it features both pre-trained and instruction-tuned versions designed...

Three real jobs, priced on this model

Each figure is derived from the prices above and moves when they do.

JobTokensCost
One chat turn with a medium history1,500 in + 400 out37 toman
Summarising a ten-page document4,000 in + 600 out86 toman
Classifying a thousand short rows120,000 in + 20,000 out2,631 toman

Frequently asked

How do I call Mistral Small 3 from Iran?
Sign up with your mobile number, top the wallet up in toman, create an API key, then in the official OpenAI SDK point base_url at https://api.uttapen.ir/v1 and set model to "mistralai/mistral-small-24b-instruct-2501". Nothing else in your code changes.
What does Mistral Small 3 cost in toman?
17,311 toman per 1M input tokens and 27,698 toman per 1M output tokens; a 1,000-word request is around 59 toman. You pay for the usage that request actually reported, and a failed request costs nothing.
How much input does Mistral Small 3 take?
Up to 32,768 tokens per request, roughly 25k words. A single answer can reach 16,384 tokens.
Can I stream Mistral Small 3's output?
Yes — with stream=true you get SSE events as the tokens are produced. This model has no tool calling and no image input, so pick a different one if you need either.