# MiniMax M3.1 Flash — API pricing & integration guide | Y-API

> MiniMax M3.1 Flash is listed with a 1,048,576-token window and text, image and video input. The publisher describes an open-weight mixture-of-experts model built around agentic work, coding and cybersecurity.

This is the markdown representation of https://y-api.bestvirtualgoods.com/models/minimax/minimax-m3.1-flash. Generated by `scripts/generate-seo-assets.mjs` from the same copy the page renders — do not edit by hand.

Model ID: `minimax/minimax-m3.1-flash`

Sources reviewed: 2026-11-06. Y-API catalog snapshot: 2026-11-05.

## Choosing this model

Selection advice by Y-API. The checks below are suggested evaluations, not published test results.

### Where to start

Start with visual-to-code work — a screenshot of a dashboard or a slide plus a written spec — where you can compare the rendered result against the input, rather than on open-ended chat.

### What to watch for

Video input and the million-token window are model specifications, not proof that a given gateway forwards video or accepts a maximal request. The catalog also lists a `-preview` string for this generation at a different price, so pin the exact ID your client sends.

## Model specifications

These are OpenRouter model-level specifications, not a Y-API compatibility test. A particular route may accept fewer input formats, parameters or tokens. Verify the features you need with a small request; a successful text response does not validate vision or tool calling.

| Field | Value |
| --- | --- |
| Context window | 1,048,576 tokens |
| Input | Text, Image, Video |
| Output | Text |
| Listed on OpenRouter | 2026-10-19 |
| Parameters listed by OpenRouter | `frequency_penalty`, `include_reasoning`, `logit_bias`, `logprobs`, `max_tokens`, `min_p`, `presence_penalty`, `reasoning`, `reasoning_effort`, `repetition_penalty`, `response_format`, `seed`, `stop`, `structured_outputs`, `temperature`, `tool_choice`, `tools`, `top_k`, `top_logprobs`, `top_p` |

## API pricing & cost estimate

| Price basis | Input / 1M tokens | Output / 1M tokens |
| --- | --- | --- |
| Account credit | $0.15 | $0.60 |
| Cash equivalent | $0.015 | $0.06 |

$1 paid adds $10 of credit. Cash equivalent = credit consumed ÷ 10; this is not the model publisher’s list price.

Input tokens / request: 1000. Output tokens / request: 500. Number of requests: 1000.

Estimated credit consumed: $0.45. Estimated cash equivalent: $0.045.

Illustrative token budget, not measured usage or a quote. Includes input and output; excludes separate media charges, cache discounts and retries. Include billed reasoning tokens in your output budget where applicable. Actual billing follows usage returned by the service.

### Same token budget, different models

| Model | Estimated credit consumed | Estimated cash equivalent |
| --- | --- | --- |
| [MiniMax M3.1 Flash](https://y-api.bestvirtualgoods.com/models/minimax/minimax-m3.1-flash) | $0.45 | $0.045 |
| [MiniMax M3.1 Flash Preview](https://y-api.bestvirtualgoods.com/models/minimax/minimax-m3.1-flash-preview) | $0.90 | $0.09 |
| [MiniMax M3](https://y-api.bestvirtualgoods.com/models/minimax/minimax-m3) | $0.90 | $0.09 |

[View LLM API pricing & billing](https://y-api.bestvirtualgoods.com/pricing)

## API integration examples

These minimal, text-only requests use the exact Y-API model ID. They do not demonstrate image, audio, video, file or tool support. The output limit also needs room for reasoning; an empty answer with finish_reason=length can mean the budget was exhausted.

Set the TOKEN environment variable to a key from your console. Run this on your server or locally; never expose a key in browser code or a public repository.

### A task to try

Here is a screenshot of a settings page and the JSON schema behind it. Build the form component with the same labels and spacing, and list any control in the screenshot that the schema cannot represent.

```bash
curl --fail-with-body --silent --show-error --max-time 120 \
  'https://api.y-api.bestvirtualgoods.com/v1/chat/completions' \
  -H "Authorization: Bearer ${TOKEN:?Set TOKEN first}" \
  -H 'Content-Type: application/json' \
  --data-binary @- <<'JSON'
{
  "model": "minimax/minimax-m3.1-flash",
  "messages": [
    {
      "role": "user",
      "content": "Here is a screenshot of a settings page and the JSON schema behind it. Build the form component with the same labels and spacing, and list any control in the screenshot that the schema cannot represent."
    }
  ],
  "max_tokens": 4096
}
JSON
```

```python
import json
import os
import sys
import urllib.error
import urllib.request

payload = {
  "model": "minimax/minimax-m3.1-flash",
  "messages": [
    {
      "role": "user",
      "content": "Here is a screenshot of a settings page and the JSON schema behind it. Build the form component with the same labels and spacing, and list any control in the screenshot that the schema cannot represent."
    }
  ],
  "max_tokens": 4096
}

request = urllib.request.Request(
    "https://api.y-api.bestvirtualgoods.com/v1/chat/completions",
    data=json.dumps(payload).encode("utf-8"),
    headers={
        "Authorization": "Bearer " + os.environ["TOKEN"],
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
    print(json.dumps(result, ensure_ascii=False, indent=2))
except urllib.error.HTTPError as error:
    print(error.read().decode("utf-8"), file=sys.stderr)
    raise SystemExit(1)
```

### How to evaluate the result

Render the component at the same viewport and compare it with the screenshot field by field. Controls the schema cannot represent should be named explicitly; silently dropping them is the failure to catch.

## Before you choose

### Should I call this ID or the `-preview` ID?

They are separate strings in the catalog with different prices. Pin the exact one your client sends and check the price table rather than assuming both bill alike; this page documents the standard ID shown above.

## Sources & scope

Technical facts come from the cited model page and, where available, its linked publisher card. A card describes that checkpoint; it is not proof of the weights a gateway serves. Prices come only from the Y-API catalog. We do not claim measured latency, uptime or benchmark scores for this endpoint.

- [OpenRouter model page & specifications](https://openrouter.ai/minimax/minimax-m3.1-flash)
- [Publisher model card linked by OpenRouter](https://huggingface.co/MiniMaxAI/MiniMax-M3.1-Flash)
- [Y-API catalog & prices (JSON)](https://y-api.bestvirtualgoods.com/models.json)

## Models to compare

Compare these alternatives on the same inputs. Their descriptions explain different roles; a lower price does not establish equivalent quality.

### [MiniMax M3.1 Flash Preview](https://y-api.bestvirtualgoods.com/models/minimax/minimax-m3.1-flash-preview)

MiniMax M3.1 Flash is the preview successor to M3, listed with a 1,000,000-token window and text, image and video input. The reference frames it around agentic tasks, coding and security work.

### [MiniMax M3](https://y-api.bestvirtualgoods.com/models/minimax/minimax-m3)

MiniMax M3 is the multimodal successor to M2.7: text, image and video input, text output, and a 1M-token window aimed at long-horizon agentic and coding work. Unlike the free M2.7 entry it is billed per token.

## Links

- HTML version of this page: https://y-api.bestvirtualgoods.com/models/minimax/minimax-m3.1-flash
- Site index for agents: https://y-api.bestvirtualgoods.com/llms.txt
- Full reference (single file): https://y-api.bestvirtualgoods.com/llms-full.txt
- OpenAPI 3.1 spec: https://y-api.bestvirtualgoods.com/openapi.json
- Model catalog (JSON, no key needed): https://y-api.bestvirtualgoods.com/models.json
- API base URL: `https://api.y-api.bestvirtualgoods.com/v1`
- Contact: support@bestvirtualgoods.com
- Model catalog: https://y-api.bestvirtualgoods.com/models
- Integration guide: https://y-api.bestvirtualgoods.com/docs
