{
 "spec_version": 1,
 "model": "xiaomi/mimo-v2.6-flash",
 "type": "chat",
 "input_modalities": [
  "text",
  "image",
  "audio",
  "video"
 ],
 "output_modalities": [
  "text"
 ],
 "context_window": 1050000,
 "max_output_tokens": 131072,
 "endpoint": {
  "method": "POST",
  "path": "/v1/chat/completions"
 },
 "also_on": [
  "/v1/responses",
  "/v1/messages"
 ],
 "parameters": [
  {
   "name": "model",
   "type": "string",
   "required": true,
   "description": "This model's ID."
  },
  {
   "name": "messages",
   "type": "array",
   "required": true,
   "description": "The conversation so far: objects with a `role` (`system`, `user`, `assistant` or `tool`) and a `content`, a string or a list of content parts: text, and images, video, audio or files on models that take them."
  },
  {
   "name": "stream",
   "type": "boolean",
   "default": false,
   "description": "Send the answer as server-sent events as it is written."
  },
  {
   "name": "stream_options",
   "type": "object",
   "description": "With `stream`: `{\"include_usage\": true}` adds a last event with the token counts."
  },
  {
   "name": "max_tokens",
   "type": "integer",
   "minimum": 1,
   "description": "The most tokens to write, reasoning included. `max_completion_tokens` is accepted as the same thing.",
   "maximum": 131072
  },
  {
   "name": "temperature",
   "type": "number",
   "minimum": 0,
   "maximum": 2,
   "description": "Randomness: lower is more focused, higher more varied.",
   "default": 1
  },
  {
   "name": "top_p",
   "type": "number",
   "minimum": 0,
   "maximum": 1,
   "description": "Nucleus sampling: only the most likely tokens whose probabilities add up to this are considered.",
   "default": 0.95
  },
  {
   "name": "top_k",
   "type": "integer",
   "minimum": 1,
   "description": "Only the `top_k` most likely tokens are considered at each step."
  },
  {
   "name": "min_p",
   "type": "number",
   "minimum": 0,
   "maximum": 1,
   "description": "Drop tokens less likely than this fraction of the most likely one."
  },
  {
   "name": "frequency_penalty",
   "type": "number",
   "minimum": -2,
   "maximum": 2,
   "description": "Positive values make the model less likely to repeat the same words.",
   "default": 0
  },
  {
   "name": "presence_penalty",
   "type": "number",
   "minimum": -2,
   "maximum": 2,
   "description": "Positive values make the model more likely to move to new topics."
  },
  {
   "name": "repetition_penalty",
   "type": "number",
   "minimum": 0,
   "maximum": 2,
   "description": "Above 1 discourages repeating tokens already in the text."
  },
  {
   "name": "stop",
   "type": [
    "string",
    "array"
   ],
   "description": "Up to 4 strings; the answer ends before any of them."
  },
  {
   "name": "seed",
   "type": "integer",
   "description": "Ask for the same answer to the same request (best effort)."
  },
  {
   "name": "response_format",
   "type": "object",
   "description": "`{\"type\": \"json_object\"}` for JSON output, or `{\"type\": \"json_schema\", \"json_schema\": {\"name\": ..., \"schema\": {...}}}` for output that matches your schema.",
   "types": [
    "json_object",
    "json_schema"
   ]
  },
  {
   "name": "tools",
   "type": "array",
   "description": "Functions the model may call: `{\"type\": \"function\", \"function\": {\"name\", \"description\", \"parameters\"}}`."
  },
  {
   "name": "tool_choice",
   "type": [
    "string",
    "object"
   ],
   "description": "`auto` (default), `none`, `required`, or `{\"type\": \"function\", \"function\": {\"name\": ...}}`."
  },
  {
   "name": "parallel_tool_calls",
   "type": "boolean",
   "description": "`false` asks for at most one tool call per turn."
  },
  {
   "name": "reasoning_effort",
   "type": "string",
   "description": "How much the model thinks before answering. `none` no reasoning; `low` less reasoning, faster; `medium` balanced; `high` more reasoning, slower.",
   "enum": [
    "none",
    "low",
    "medium",
    "high"
   ]
  },
  {
   "name": "logprobs",
   "type": "boolean",
   "description": "Return the log probability of each output token."
  },
  {
   "name": "top_logprobs",
   "type": "integer",
   "minimum": 0,
   "maximum": 20,
   "description": "With `logprobs`: how many alternatives to return per token."
  },
  {
   "name": "logit_bias",
   "type": "object",
   "description": "Token ID to a bias from -100 to 100."
  },
  {
   "name": "user",
   "type": "string",
   "description": "Your own ID for the end user, for your records."
  }
 ],
 "model_parameters": [],
 "content_types": [
  {
   "type": "text",
   "description": "Text.",
   "example": {
    "type": "text",
    "text": "Describe this."
   },
   "fields": [
    {
     "name": "text",
     "type": "string",
     "required": true,
     "description": "The text."
    }
   ]
  },
  {
   "type": "image_url",
   "description": "An image, as a public https:// URL or a data URL.",
   "example": {
    "type": "image_url",
    "image_url": {
     "url": "https://example.com/photo.jpg"
    }
   },
   "fields": [
    {
     "name": "image_url.url",
     "type": "string",
     "required": true,
     "description": "https:// URL or `data:image/...;base64,...`."
    }
   ]
  },
  {
   "type": "input_audio",
   "description": "Audio, base64-encoded.",
   "example": {
    "type": "input_audio",
    "input_audio": {
     "data": "<base64>",
     "format": "mp3"
    }
   },
   "fields": [
    {
     "name": "input_audio.data",
     "type": "string",
     "required": true,
     "description": "The audio, base64-encoded."
    },
    {
     "name": "input_audio.format",
     "type": "string",
     "enum": [
      "mp3",
      "wav"
     ],
     "required": true,
     "description": "The audio format."
    }
   ]
  },
  {
   "type": "video_url",
   "description": "A video, as a public https:// URL (a YouTube link works on models that take one) or a data URL.",
   "example": {
    "type": "video_url",
    "video_url": {
     "url": "https://example.com/clip.mp4"
    }
   },
   "fields": [
    {
     "name": "video_url.url",
     "type": "string",
     "required": true,
     "description": "https:// URL or `data:video/mp4;base64,...`."
    }
   ]
  }
 ],
 "response": {
  "fields": [
   {
    "name": "id",
    "type": "string",
    "description": "The request's ID."
   },
   {
    "name": "choices[].message.content",
    "type": "string",
    "description": "The answer."
   },
   {
    "name": "choices[].message.reasoning_content",
    "type": "string",
    "description": "The model's reasoning, on models that return it."
   },
   {
    "name": "choices[].message.tool_calls",
    "type": "array",
    "description": "The tools the model wants called, with JSON arguments."
   },
   {
    "name": "choices[].finish_reason",
    "type": "string",
    "description": "`stop`, `length` (hit max_tokens), `tool_calls` or `content_filter`."
   },
   {
    "name": "usage.prompt_tokens",
    "type": "integer",
    "description": "Input tokens, media included."
   },
   {
    "name": "usage.completion_tokens",
    "type": "integer",
    "description": "Output tokens, reasoning included."
   },
   {
    "name": "usage.prompt_tokens_details.cached_tokens",
    "type": "integer",
    "description": "Input tokens read from the prompt cache."
   },
   {
    "name": "usage.completion_tokens_details.reasoning_tokens",
    "type": "integer",
    "description": "Output tokens spent reasoning."
   }
  ],
  "example": {
   "id": "chatcmpl-...",
   "object": "chat.completion",
   "created": 1792000000,
   "model": "xiaomi/mimo-v2.6-flash",
   "choices": [
    {
     "index": 0,
     "message": {
      "role": "assistant",
      "content": "...",
      "reasoning_content": null,
      "tool_calls": null
     },
     "finish_reason": "stop"
    }
   ],
   "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 20,
    "total_tokens": 32,
    "prompt_tokens_details": {
     "cached_tokens": 0
    },
    "completion_tokens_details": {
     "reasoning_tokens": 0
    }
   }
  },
  "streaming": "With `stream: true`, `chat.completion.chunk` events carry `choices[].delta`; the stream ends with `data: [DONE]`."
 },
 "examples": [
  {
   "title": "Basic",
   "request": {
    "model": "xiaomi/mimo-v2.6-flash",
    "messages": [
     {
      "role": "user",
      "content": "Write a haiku about the ocean."
     }
    ]
   }
  },
  {
   "title": "Video input",
   "request": {
    "model": "xiaomi/mimo-v2.6-flash",
    "messages": [
     {
      "role": "user",
      "content": [
       {
        "type": "text",
        "text": "What happens in this video?"
       },
       {
        "type": "video_url",
        "video_url": {
         "url": "https://example.com/clip.mp4"
        }
       }
      ]
     }
    ]
   }
  }
 ],
 "input_schema": {
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": [
   "model",
   "messages"
  ],
  "properties": {
   "model": {
    "type": "string",
    "description": "This model's ID."
   },
   "messages": {
    "type": "array",
    "description": "The conversation so far: objects with a `role` (`system`, `user`, `assistant` or `tool`) and a `content`, a string or a list of content parts: text, and images, video, audio or files on models that take them."
   },
   "stream": {
    "type": "boolean",
    "description": "Send the answer as server-sent events as it is written.",
    "default": false
   },
   "stream_options": {
    "type": "object",
    "description": "With `stream`: `{\"include_usage\": true}` adds a last event with the token counts."
   },
   "max_tokens": {
    "type": "integer",
    "description": "The most tokens to write, reasoning included. `max_completion_tokens` is accepted as the same thing.",
    "minimum": 1,
    "maximum": 131072
   },
   "temperature": {
    "type": "number",
    "description": "Randomness: lower is more focused, higher more varied.",
    "default": 1,
    "minimum": 0,
    "maximum": 2
   },
   "top_p": {
    "type": "number",
    "description": "Nucleus sampling: only the most likely tokens whose probabilities add up to this are considered.",
    "default": 0.95,
    "minimum": 0,
    "maximum": 1
   },
   "top_k": {
    "type": "integer",
    "description": "Only the `top_k` most likely tokens are considered at each step.",
    "minimum": 1
   },
   "min_p": {
    "type": "number",
    "description": "Drop tokens less likely than this fraction of the most likely one.",
    "minimum": 0,
    "maximum": 1
   },
   "frequency_penalty": {
    "type": "number",
    "description": "Positive values make the model less likely to repeat the same words.",
    "default": 0,
    "minimum": -2,
    "maximum": 2
   },
   "presence_penalty": {
    "type": "number",
    "description": "Positive values make the model more likely to move to new topics.",
    "minimum": -2,
    "maximum": 2
   },
   "repetition_penalty": {
    "type": "number",
    "description": "Above 1 discourages repeating tokens already in the text.",
    "minimum": 0,
    "maximum": 2
   },
   "stop": {
    "type": [
     "string",
     "array"
    ],
    "description": "Up to 4 strings; the answer ends before any of them."
   },
   "seed": {
    "type": "integer",
    "description": "Ask for the same answer to the same request (best effort)."
   },
   "response_format": {
    "type": "object",
    "description": "`{\"type\": \"json_object\"}` for JSON output, or `{\"type\": \"json_schema\", \"json_schema\": {\"name\": ..., \"schema\": {...}}}` for output that matches your schema."
   },
   "tools": {
    "type": "array",
    "description": "Functions the model may call: `{\"type\": \"function\", \"function\": {\"name\", \"description\", \"parameters\"}}`."
   },
   "tool_choice": {
    "type": [
     "string",
     "object"
    ],
    "description": "`auto` (default), `none`, `required`, or `{\"type\": \"function\", \"function\": {\"name\": ...}}`."
   },
   "parallel_tool_calls": {
    "type": "boolean",
    "description": "`false` asks for at most one tool call per turn."
   },
   "reasoning_effort": {
    "type": "string",
    "description": "How much the model thinks before answering. `none` no reasoning; `low` less reasoning, faster; `medium` balanced; `high` more reasoning, slower.",
    "enum": [
     "none",
     "low",
     "medium",
     "high"
    ]
   },
   "logprobs": {
    "type": "boolean",
    "description": "Return the log probability of each output token."
   },
   "top_logprobs": {
    "type": "integer",
    "description": "With `logprobs`: how many alternatives to return per token.",
    "minimum": 0,
    "maximum": 20
   },
   "logit_bias": {
    "type": "object",
    "description": "Token ID to a bias from -100 to 100."
   },
   "user": {
    "type": "string",
    "description": "Your own ID for the end user, for your records."
   }
  },
  "$defs": {
   "content_part": {
    "oneOf": [
     {
      "type": "object",
      "properties": {
       "type": {
        "const": "text"
       },
       "text": {
        "type": "string",
        "description": "The text."
       }
      },
      "required": [
       "type"
      ]
     },
     {
      "type": "object",
      "properties": {
       "type": {
        "const": "image_url"
       },
       "image_url": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "https:// URL or `data:image/...;base64,...`."
         }
        }
       }
      },
      "required": [
       "type"
      ]
     },
     {
      "type": "object",
      "properties": {
       "type": {
        "const": "input_audio"
       },
       "input_audio": {
        "type": "object",
        "properties": {
         "data": {
          "type": "string",
          "description": "The audio, base64-encoded."
         },
         "format": {
          "type": "string",
          "description": "The audio format.",
          "enum": [
           "mp3",
           "wav"
          ]
         }
        }
       }
      },
      "required": [
       "type"
      ]
     },
     {
      "type": "object",
      "properties": {
       "type": {
        "const": "video_url"
       },
       "video_url": {
        "type": "object",
        "properties": {
         "url": {
          "type": "string",
          "description": "https:// URL or `data:video/mp4;base64,...`."
         }
        }
       }
      },
      "required": [
       "type"
      ]
     }
    ]
   }
  }
 }
}
