{
  "x-generated-from": "en/api-reference/openapi_infercom.yml",
  "openapi": "3.1.1",
  "info": {
    "title": "Infercom Inference Service API",
    "description": "Infercom Inference Service API Specification",
    "version": "1.0.0",
    "termsOfService": "https://infercom.ai/terms-of-service",
    "contact": {
      "email": "support@infercom.ai",
      "name": "Infercom Support"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    }
  },
  "externalDocs": {
    "description": "Find out more in the official Infercom docs",
    "url": "/en/api-reference/overview"
  },
  "servers": [
    {
      "url": "https://api.infercom.ai/v1"
    }
  ],
  "components": {
    "securitySchemes": {
      "api_key": {
        "type": "http",
        "description": "Infercom API Key",
        "scheme": "bearer",
        "bearerFormat": "apiKey"
      }
    },
    "headers": {
      "InferenceId": {
        "description": "Unique identifier for this inference request, useful for debugging and support.",
        "schema": {
          "type": "string",
          "example": "a0b08d8a-1893-45d6-a0f4-7ad6fdeb5443"
        }
      },
      "RateLimitRequests": {
        "description": "Maximum requests allowed per minute.",
        "schema": {
          "type": "integer",
          "example": 250
        }
      },
      "RateLimitRequestsDay": {
        "description": "Maximum requests allowed per day.",
        "schema": {
          "type": "integer",
          "example": 50000
        }
      },
      "RateLimitRemainingRequests": {
        "description": "Remaining requests in the current minute window.",
        "schema": {
          "type": "integer",
          "example": 247
        }
      },
      "RateLimitRemainingRequestsDay": {
        "description": "Remaining requests in the current day.",
        "schema": {
          "type": "integer",
          "example": 49988
        }
      },
      "RateLimitResetRequests": {
        "description": "Unix timestamp when the per-minute limit resets.",
        "schema": {
          "type": "integer",
          "example": 1776937132
        }
      },
      "RateLimitResetRequestsDay": {
        "description": "Unix timestamp when the daily limit resets.",
        "schema": {
          "type": "integer",
          "example": 1777023472
        }
      }
    },
    "schemas": {
      "ModelOutputError": {
        "title": "ModelOutputError",
        "type": "object",
        "description": "error in model output generation",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "title": "code",
                "type": "string",
                "description": "error code",
                "nullable": true
              },
              "message": {
                "title": "message",
                "type": "string",
                "description": "error message"
              },
              "model_output": {
                "title": "model_output",
                "type": "string",
                "description": "raw output with errors generated by the model",
                "x-stainless-naming": {
                  "python": {
                    "property_name": "raw_output"
                  }
                }
              },
              "param": {
                "title": "param",
                "type": "string",
                "description": "error params",
                "nullable": true
              },
              "type": {
                "title": "type",
                "type": "string",
                "description": "error type"
              }
            }
          }
        },
        "required": [
          "error"
        ]
      },
      "GeneralError": {
        "title": "GeneralError",
        "type": "object",
        "description": "other kind of errors",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "title": "code",
                "type": "string",
                "description": "error code",
                "nullable": true
              },
              "message": {
                "title": "message",
                "type": "string",
                "description": "error message"
              },
              "param": {
                "title": "param",
                "type": "string",
                "description": "error params",
                "nullable": true
              },
              "type": {
                "title": "type",
                "type": "string",
                "description": "error type"
              }
            }
          }
        },
        "required": [
          "error"
        ]
      },
      "SimpleError": {
        "title": "SimpleError",
        "type": "object",
        "description": "other kind of simple schema errors",
        "properties": {
          "error": {
            "title": "error",
            "type": "string",
            "description": "error detail.",
            "nullable": true
          }
        },
        "required": [
          "error"
        ]
      },
      "TextContent": {
        "title": "Text Content",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "type": {
            "title": "Type",
            "type": "string",
            "description": "type of content to send. in this case `text`.",
            "enum": [
              "text"
            ],
            "const": "text"
          },
          "text": {
            "title": "Text",
            "type": "string",
            "description": "string content of the message"
          }
        },
        "required": [
          "type",
          "text"
        ]
      },
      "ImageContent": {
        "title": "Image Content",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "type": {
            "title": "Type",
            "type": "string",
            "description": "type of content to send. in this case `image_url`.",
            "enum": [
              "image_url"
            ],
            "const": "image_url"
          },
          "image_url": {
            "title": "Image Url",
            "type": "object",
            "properties": {
              "url": {
                "title": "Url",
                "type": "string",
                "description": "Either a URL of the image or the base64 encoded image data.  currently only base64 encoded image supported"
              }
            }
          }
        },
        "required": [
          "type",
          "image_url"
        ]
      },
      "AudioContent": {
        "title": "Audio Content",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "type": {
            "title": "Type",
            "type": "string",
            "description": "type of content to send. in this case `audio_content`.",
            "enum": [
              "audio_content"
            ],
            "const": "audio_content"
          },
          "audio_content": {
            "title": "Audio Content",
            "type": "object",
            "properties": {
              "content": {
                "title": "Content",
                "type": "string",
                "description": "the base64 encoded audio data."
              }
            }
          }
        },
        "required": [
          "type",
          "audio_content"
        ]
      },
      "JSONSchema": {
        "title": "JSONSchema",
        "type": "object",
        "additionalProperties": true,
        "description": "A JSON Schema definition the model's structured output. Follows standard JSON Schema syntax.",
        "properties": {
          "description": {
            "type": "string",
            "title": "Description",
            "description": "description the json schema",
            "nullable": true
          },
          "name": {
            "title": "Name",
            "type": "string",
            "description": "name of the object schema"
          },
          "schema": {
            "type": "object",
            "title": "Schema",
            "description": "Actual json schema object",
            "nullable": true
          },
          "strict": {
            "type": "boolean",
            "title": "Strict",
            "description": "whether or not to do an strict validation of the schema",
            "nullable": true,
            "default": false
          }
        },
        "required": [
          "name"
        ]
      },
      "ResponseFormatJSONObject": {
        "title": "ResponseFormatJSONObject",
        "type": "object",
        "description": "Specifies that the model should produce output as a raw JSON object.",
        "additionalProperties": true,
        "properties": {
          "type": {
            "const": "json_object",
            "enum": [
              "json_object"
            ],
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type"
        ],
        "example": {
          "type": "json_object"
        }
      },
      "ResponseFormatJSONSchema": {
        "title": "ResponseFormatJSONSchema",
        "type": "object",
        "additionalProperties": true,
        "description": "Specifies that the model should produce output conforming to a given JSON schema.",
        "properties": {
          "json_schema": {
            "$ref": "#/components/schemas/JSONSchema"
          },
          "type": {
            "const": "json_schema",
            "enum": [
              "json_schema"
            ],
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "json_schema",
          "type"
        ],
        "example": {
          "type": "json_schema",
          "json_schema": {
            "name": "User",
            "description": "JSON schema for a simple user object",
            "strict": false,
            "schema": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Unique identifier for the user"
                },
                "name": {
                  "type": "string",
                  "description": "Full name of the user"
                }
              },
              "required": [
                "id",
                "name"
              ]
            }
          }
        }
      },
      "ResponseFormatText": {
        "title": "ResponseFormatText",
        "type": "object",
        "description": "Specifies that the model should produce output as plain text.",
        "additionalProperties": true,
        "properties": {
          "type": {
            "const": "text",
            "enum": [
              "text"
            ],
            "title": "Type",
            "type": "string"
          }
        },
        "required": [
          "type"
        ]
      },
      "FunctionParameters": {
        "title": "Function Parameters",
        "type": "object",
        "additionalProperties": true,
        "description": "The parameters the functions accepts, described as a JSON Schema object. see the [JSON Schema reference](https://json-schema.org/understanding-json-schema/) for documentation about the format.  Omitting `parameters` defines a function with an empty parameter list."
      },
      "FunctionObject": {
        "title": "Function Object",
        "additionalProperties": true,
        "type": "object",
        "properties": {
          "name": {
            "title": "Name",
            "type": "string",
            "description": "The name of the function to be called. Must be a-z, A-Z, 0-9, or contain underscores and dashes."
          },
          "description": {
            "title": "Description",
            "type": "string",
            "description": "A description of what the function does, used by the model to choose when and how to call the function.",
            "nullable": true
          },
          "parameters": {
            "$ref": "#/components/schemas/FunctionParameters"
          }
        },
        "required": [
          "name"
        ]
      },
      "Tool": {
        "title": "Tool",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "function": {
            "$ref": "#/components/schemas/FunctionObject"
          },
          "type": {
            "title": "Type",
            "type": "string",
            "description": "The type of the tool. Currently, only `function` is supported."
          }
        },
        "required": [
          "type",
          "function"
        ]
      },
      "ToolChoiceObject": {
        "title": "ToolChoiceObject",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "function": {
            "title": "Function",
            "type": "object",
            "description": "Specifies a tool the model should use. Use it to force the model to call that specific tool.",
            "additionalProperties": true,
            "properties": {
              "name": {
                "title": "Name",
                "type": "string",
                "description": "the name of the tool expected to be used by the model"
              }
            },
            "required": [
              "name"
            ]
          },
          "type": {
            "type": "string",
            "description": "The type of the tool. only `function` is supported.",
            "enum": [
              "function"
            ]
          }
        },
        "required": [
          "function",
          "type"
        ]
      },
      "AssistantToolCallFunction": {
        "title": "AssistantToolCallFunction",
        "type": "object",
        "description": "The tool that the model called.",
        "additionalProperties": true,
        "properties": {
          "name": {
            "title": "Name",
            "type": "string",
            "description": "The name of the function to call."
          },
          "arguments": {
            "title": "Arguments",
            "type": "string",
            "description": "The arguments to call the function with, as generated by the model in JSON format. Note that the model does not always generate valid JSON, and may hallucinate parameters not defined by your function schema. Validate the arguments in your code before calling your function."
          }
        },
        "required": [
          "name",
          "arguments"
        ]
      },
      "AssistantToolCall": {
        "title": "AssistantToolCall",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "function": {
            "$ref": "#/components/schemas/AssistantToolCallFunction"
          },
          "id": {
            "title": "Id",
            "type": "string",
            "description": "ID of the tool call."
          },
          "type": {
            "title": "Type",
            "type": "string",
            "description": "type of the tool cal. only `function` is supported.",
            "enum": [
              "function"
            ],
            "const": "function"
          },
          "index": {
            "title": "index",
            "description": "index of tool call chunk only used when using streaming",
            "type": "integer",
            "nullable": true
          }
        },
        "required": [
          "id",
          "type",
          "function"
        ]
      },
      "SystemMessage": {
        "title": "System Message",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "role": {
            "title": "Role",
            "type": "string",
            "description": "The role of the messages author, in this case `system`.",
            "enum": [
              "system"
            ],
            "const": "system"
          },
          "content": {
            "title": "Content",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "title": "Text Content Part Array",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TextContent"
                }
              }
            ],
            "description": "The contents of the system message.",
            "nullable": true
          }
        },
        "required": [
          "role",
          "content"
        ]
      },
      "UserMessage": {
        "title": "User Message",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "role": {
            "title": "Role",
            "type": "string",
            "description": "The role of the messages author, in this case `user`.",
            "enum": [
              "user"
            ],
            "const": "user"
          },
          "content": {
            "title": "Content",
            "description": "The contents of the user message.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "title": "Multicontent Part Array",
                "type": "array",
                "items": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/TextContent"
                    },
                    {
                      "$ref": "#/components/schemas/ImageContent"
                    },
                    {
                      "$ref": "#/components/schemas/AudioContent"
                    }
                  ]
                }
              }
            ],
            "nullable": true
          }
        },
        "required": [
          "role",
          "content"
        ]
      },
      "AssistantMessage": {
        "title": "Assistant Message",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "role": {
            "title": "Role",
            "type": "string",
            "description": "The role of the messages author, in this case `assistant`.",
            "enum": [
              "assistant"
            ],
            "const": "assistant"
          },
          "content": {
            "title": "Content",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "title": "Text Content Part Array",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TextContent"
                }
              }
            ],
            "description": "The contents of the assistant message.",
            "nullable": true
          },
          "reasoning": {
            "title": "Reasoning",
            "type": "string",
            "description": "Chain-of-thought reasoning output from reasoning-capable models (e.g., gpt-oss-120b, MiniMax-M2.7). **Note:** The `reasoning_details` array and `usage.completion_tokens_details.reasoning_tokens` fields from the OpenAI Harmony format are not currently supported. Only the `reasoning` string is returned.",
            "nullable": true
          },
          "channel": {
            "title": "Channel",
            "type": "string",
            "description": "Internal channel identifier used during streaming for reasoning models. May contain values like `analysis` (chain-of-thought) or `final` (output).",
            "nullable": true
          },
          "tool_calls": {
            "title": "Tool Calls",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssistantToolCall"
            },
            "description": "The tool calls generated by the model.",
            "nullable": true
          }
        },
        "required": [
          "role",
          "content"
        ]
      },
      "ToolMessage": {
        "title": "Tool Message",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "role": {
            "title": "Role",
            "type": "string",
            "description": "The role of the messages author, in this case `tool`.",
            "enum": [
              "tool"
            ],
            "const": "tool"
          },
          "content": {
            "title": "Content",
            "description": "The contents of the tool message.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "title": "Text Content Part Array",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/TextContent"
                }
              }
            ]
          }
        },
        "required": [
          "content",
          "role"
        ]
      },
      "EnableThinking": {
        "title": "Enable Thinking",
        "type": "boolean",
        "default": false,
        "description": "Enables the model's internal reasoning or \"thinking\" mode, if supported by the chat template.  On Infercom this applies to `gemma-4-31B-it`, where thinking is off by default - set this to `true` to turn it on, or `false` for a direct answer.  Models that reason by default, such as `MiniMax-M2.7` and the DeepSeek models, do not need this flag.",
        "example": true
      },
      "ChatCompletionRequest": {
        "title": "Chat Completion Request",
        "type": "object",
        "description": "chat completions request object",
        "additionalProperties": true,
        "properties": {
          "model": {
            "title": "Model",
            "type": "string",
            "description": "The model ID to use. Call `GET /v1/models` to retrieve the current list of available models. See [available models](/en/models/infercomcloud-models) for details.",
            "example": "MiniMax-M2.7"
          },
          "messages": {
            "title": "Messages",
            "type": "array",
            "description": "A list of messages comprising the conversation so far.",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SystemMessage"
                },
                {
                  "$ref": "#/components/schemas/UserMessage"
                },
                {
                  "$ref": "#/components/schemas/AssistantMessage"
                },
                {
                  "$ref": "#/components/schemas/ToolMessage"
                }
              ]
            },
            "minItems": 1,
            "examples": [
              [
                {
                  "role": "user",
                  "content": "create a poem using palindromes"
                }
              ]
            ]
          },
          "max_tokens": {
            "title": "Max Tokens",
            "type": "integer",
            "description": "The maximum number of tokens that can be generated in the chat completion.  The total length of input tokens and generated tokens is limited by  the model's context length.",
            "nullable": true,
            "example": 2048
          },
          "max_completion_tokens": {
            "title": "Max Completion Tokens",
            "type": "integer",
            "description": "The maximum number of tokens that can be generated in the chat completion.  The total length of input tokens and generated tokens is limited by  the model's context length.",
            "nullable": true,
            "example": 2048
          },
          "temperature": {
            "title": "Temperature",
            "type": "number",
            "description": "What sampling temperature to use, determines the degree of randomness in the response.  between 0 and 2, Higher values like 0.8 will make the output more random,  while lower values like 0.2 will make it more focused and deterministic.  Is recommended altering this, top_p or top_k but not more than one of these.",
            "minimum": 0,
            "maximum": 1,
            "default": 0.7,
            "nullable": true,
            "example": 0.7
          },
          "top_p": {
            "title": "Top P",
            "type": "number",
            "description": "Cumulative probability for token choices. An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. Is recommended altering this, top_k or temperature but  not more than one of these.",
            "minimum": 0,
            "maximum": 1,
            "nullable": true,
            "example": 1
          },
          "top_k": {
            "title": "Top K",
            "type": "integer",
            "description": "Amount limit of token choices. An alternative to sampling with temperature, the model considers the results of the first K tokens with higher probability.  So 10 means only the first 10 tokens with higher probability are considered. Is recommended altering this, top_p or temperature but not more than one of these.",
            "minimum": 1,
            "maximum": 100,
            "nullable": true,
            "example": 5
          },
          "presence_penalty": {
            "title": "Presence Penalty",
            "type": "number",
            "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.",
            "maximum": 2,
            "minimum": -2,
            "default": 0,
            "nullable": true
          },
          "frequency_penalty": {
            "title": "Frequency Penalty",
            "type": "number",
            "description": "Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.",
            "maximum": 2,
            "minimum": -2,
            "default": 0
          },
          "do_sample": {
            "title": "do_sample",
            "type": "boolean",
            "description": "If true, sampling is enabled during output generation. If false, deterministic decoding is used.",
            "nullable": true
          },
          "stop": {
            "title": "Stop",
            "description": "Sequences where the API will stop generating tokens. The returned text will not contain the stop sequence.",
            "oneOf": [
              {
                "type": "string",
                "example": "\n",
                "nullable": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "[\"\\n\"]"
                }
              }
            ],
            "nullable": true
          },
          "stream": {
            "title": "Stream",
            "type": "boolean",
            "description": "If set, partial message deltas will be sent. Tokens will be sent as data-only  [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format) as they become available, with the stream terminated by a `data: [DONE]` message.",
            "default": false,
            "nullable": true
          },
          "stream_options": {
            "title": "StreamOptions",
            "type": "object",
            "description": "Options for streaming response. Only set this when setting stream as true",
            "additionalProperties": true,
            "properties": {
              "include_usage": {
                "anyOf": [
                  {
                    "type": "boolean"
                  }
                ],
                "title": "Include Usage",
                "description": "Whether to include the usage metrics in a final chunk or not",
                "nullable": true
              }
            },
            "nullable": true
          },
          "response_format": {
            "title": "Response Format",
            "description": "An object specifying the format that the model must output.   Setting to `{ \"type\": \"json_object\"}` enables JSON mode,    which will check the message the model generates is valid JSON.  **Important:** when using JSON mode, you **must** also instruct the model to produce JSON yourself  via a system or user message. Setting to `{ \"type\": \"json_schema\", \"json_schema\": {<your_schema>}\"}` enables JSON schema mode,    which will check the message the model generates is valid object of type <your_schema>.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/ResponseFormatText"
              },
              {
                "$ref": "#/components/schemas/ResponseFormatJSONObject"
              },
              {
                "$ref": "#/components/schemas/ResponseFormatJSONSchema"
              }
            ],
            "discriminator": {
              "propertyName": "type",
              "mapping": {
                "json_object": "#/components/schemas/ResponseFormatJSONObject",
                "json_schema": "#/components/schemas/ResponseFormatJSONSchema",
                "text": "#/components/schemas/ResponseFormatText"
              }
            },
            "nullable": true
          },
          "reasoning_effort": {
            "title": "Reasoning Effort",
            "type": "string",
            "description": "Value specifying the amount of reasoning the model is allowed to do. Increasing it increases the number of output reasoning tokens and latency, but improves quality of the responses. Allowed values are 'low', 'medium', 'high'.  On Infercom this parameter is implemented by `gpt-oss-120b`, where the default is `medium`. Reasoning cannot be switched off - `low` is the minimum, and 'none' or 'off' are rejected with a 400.  Other models accept the parameter for OpenAI compatibility and ignore it. See the Reasoning guide for per-model behavior.",
            "enum": [
              "low",
              "medium",
              "high"
            ],
            "nullable": true
          },
          "tool_choice": {
            "title": "Tool Choice",
            "anyOf": [
              {
                "enum": [
                  "none",
                  "auto",
                  "required"
                ],
                "type": "string"
              },
              {
                "$ref": "#/components/schemas/ToolChoiceObject"
              }
            ],
            "description": "Controls which (if any) tool is called by the model.  `none` means the model will not call any tool and instead generates a message.  `auto` means the model can pick between generating a message or calling one or more tools.  `required` means the model must call one or more tools.  Specifying a particular tool via `{\"type\": \"function\", \"function\": {\"name\": \"my_function\"}}` forces  the model to call that tool.",
            "nullable": true
          },
          "parallel_tool_calls": {
            "title": "Parallel Tool Calls",
            "type": "boolean",
            "description": "Whether to enable parallel function calling during tool use.",
            "nullable": true
          },
          "tools": {
            "description": "A list of tools the model may call.  Use this to provide a list of functions the model may generate JSON inputs for.",
            "items": {
              "$ref": "#/components/schemas/Tool"
            },
            "maxItems": 128,
            "nullable": true,
            "type": "array"
          },
          "chat_template_kwargs": {
            "title": "Chat Template Kwargs",
            "type": "object",
            "description": "A dictionary of additional keyword arguments to pass into the chat template.  Use this to provide extra context or parameters that the model's chat template  can process. Keys must be strings; values may be any valid JSON type.",
            "properties": {
              "enable_thinking": {
                "$ref": "#/components/schemas/EnableThinking"
              }
            },
            "additionalProperties": true,
            "nullable": true,
            "example": {
              "enable_thinking": true
            }
          },
          "logprobs": {
            "title": "Logprobs",
            "type": "boolean",
            "description": "This is not yet supported by our models.  Whether to return log probabilities of the output tokens or not. If true, returns the log  probabilities of each output token returned in the `content` of `message`.",
            "default": false,
            "nullable": true
          },
          "top_logprobs": {
            "title": "Top Logprobs",
            "type": "integer",
            "description": "This is not yet supported by our models.  An integer between 0 and 20 specifying the number of most likely tokens to return at each token  position, each with an associated log probability. `logprobs` must be set to `true` if this parameter is used.",
            "maximum": 20,
            "minimum": 0,
            "nullable": true
          },
          "n": {
            "title": "N",
            "type": "integer",
            "description": "How many completions to generate for each prompt. **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens`.",
            "maximum": 8,
            "minimum": 1,
            "default": 1,
            "nullable": true,
            "example": 1
          },
          "logit_bias": {
            "title": "Logit Bias",
            "type": "object",
            "description": "This is not yet supported by our models.  Modify the likelihood of specified tokens appearing in the completion.",
            "additionalProperties": {
              "type": "integer"
            },
            "nullable": true
          },
          "seed": {
            "title": "Seed",
            "description": "If specified, the system will make a best effort to sample deterministically, such that repeated requests with the same `seed` and parameters should return the same result. Determinism is not guaranteed, and you should refer to the `system_fingerprint` response parameter to monitor changes in the backend.",
            "nullable": true,
            "type": "integer"
          }
        },
        "required": [
          "model",
          "messages"
        ],
        "examples": [
          {
            "messages": [
              {
                "role": "user",
                "content": "create a poem using palindromes"
              }
            ],
            "model": "MiniMax-M2.7"
          },
          {
            "messages": [
              {
                "role": "system",
                "content": "You are a helpful assistant"
              },
              {
                "role": "user",
                "content": "create a poem using palindromes"
              }
            ],
            "max_tokens": 2048,
            "model": "MiniMax-M2.7",
            "stream": false,
            "temperature": 0.7,
            "top_p": 1
          }
        ]
      },
      "Usage": {
        "title": "Usage",
        "type": "object",
        "description": "Usage metrics for the completion, embeddings,transcription or translation request",
        "additionalProperties": true,
        "properties": {
          "acceptance_rate": {
            "title": "Acceptance Rate",
            "type": "number",
            "description": "acceptance rate"
          },
          "completion_tokens": {
            "title": "Completion Tokens",
            "type": "integer",
            "description": "number of tokens generated in completion"
          },
          "completion_tokens_after_first_per_sec": {
            "title": "Completion Tokens After First Per Sec",
            "type": "number",
            "description": "completion tokens per second after first token generation"
          },
          "completion_tokens_after_first_per_sec_first_ten": {
            "title": "Completion Tokens After First Per Sec First Ten",
            "type": "number",
            "description": "completion tokens per second after first token generation first ten"
          },
          "completion_tokens_after_first_per_sec_graph": {
            "title": "Completion Tokens After First Per Sec Graph",
            "type": "number",
            "description": "completion tokens per second after first token generation"
          },
          "completion_tokens_per_sec": {
            "title": "Completion Tokens Per Sec",
            "type": "number",
            "description": "completion tokens per second"
          },
          "end_time": {
            "title": "End Time",
            "type": "number",
            "description": "The Unix timestamp (in seconds) of when the generation finished."
          },
          "is_last_response": {
            "title": "Is Last Response",
            "type": "boolean",
            "description": "whether or not is last response, always true for non streaming response",
            "const": true
          },
          "prompt_tokens_details": {
            "title": "Prompt tokens details",
            "type": "object",
            "description": "Extra tokens details",
            "additionalProperties": true,
            "properties": {
              "cached_tokens": {
                "title": "Cached tokens",
                "description": "amount of cached tokens",
                "type": "integer"
              }
            }
          },
          "prompt_tokens": {
            "title": "Prompt Tokens",
            "type": "integer",
            "description": "number of tokens used in the prompt sent"
          },
          "start_time": {
            "title": "Start Time",
            "type": "number",
            "description": "The Unix timestamp (in seconds) of when the generation started."
          },
          "time_to_first_token": {
            "title": "Time To First Token",
            "type": "number",
            "description": "also TTF, time (in seconds) taken to generate the first token"
          },
          "time_to_first_token_graph": {
            "title": "Time To First Token Graph",
            "type": "number",
            "description": "time to first token measurement for graphing/monitoring purposes"
          },
          "stop_reason": {
            "title": "Stop Reason",
            "type": "string",
            "description": "The reason generation stopped. Values include `stop` (natural end or stop sequence), `length` (max_tokens reached), `tool_calls` (model invoked a tool).",
            "nullable": true
          },
          "total_latency": {
            "title": "Total Latency",
            "type": "number",
            "description": "total time (in seconds) taken to generate the full generation"
          },
          "total_tokens": {
            "title": "Total Tokens",
            "type": "integer",
            "description": "prompt tokens + completion tokens"
          },
          "total_tokens_per_sec": {
            "title": "Total Tokens Per Sec",
            "type": "number",
            "description": "tokens per second including prompt and completion"
          }
        },
        "nullable": true,
        "examples": [
          {
            "acceptance_rate": 4.058139324188232,
            "completion_tokens": 350,
            "completion_tokens_after_first_per_sec": 248.09314856382406,
            "completion_tokens_after_first_per_sec_first_ten": 249.67922929952655,
            "completion_tokens_after_first_per_sec_graph": 452.5030493415834,
            "completion_tokens_per_sec": 238.91966176995348,
            "end_time": 1737583289.7345645,
            "is_last_response": true,
            "prompt_tokens_details": {
              "cached_tokens": 0
            },
            "prompt_tokens": 43,
            "start_time": 1737583288.264706,
            "time_to_first_token": 0.06312894821166992,
            "total_latency": 1.4649275719174653,
            "total_tokens": 393,
            "total_tokens_per_sec": 268.27264878740493
          },
          {
            "prompt_tokens": 43,
            "total_tokens": 393
          }
        ]
      },
      "TopLogProbs": {
        "title": "TopLogProbs",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "bytes": {
            "title": "Bytes",
            "anyOf": [
              {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              },
              {
                "type": "null"
              }
            ]
          },
          "logprob": {
            "title": "Logprob",
            "type": "number"
          },
          "token": {
            "title": "Token",
            "type": "string"
          }
        },
        "required": [
          "token",
          "logprob"
        ]
      },
      "LogProbsContent": {
        "title": "Log Probs Content",
        "additionalProperties": true,
        "properties": {
          "bytes": {
            "title": "Bytes",
            "anyOf": [
              {
                "items": {
                  "type": "integer"
                },
                "type": "array"
              }
            ],
            "nullable": true
          },
          "logprob": {
            "title": "Logprob",
            "type": "number"
          },
          "token": {
            "title": "Token",
            "type": "string"
          },
          "top_logprobs": {
            "$ref": "#/components/schemas/TopLogProbs"
          }
        },
        "required": [
          "token",
          "logprob",
          "top_logprobs"
        ]
      },
      "LogProbs": {
        "title": "Completion Log Probs",
        "type": "object",
        "description": "Completion Log Probs object",
        "additionalProperties": true,
        "properties": {
          "content": {
            "$ref": "#/components/schemas/LogProbsContent"
          }
        },
        "required": [
          "content"
        ]
      },
      "CompletionResponseMessage": {
        "title": "Completion Response Message",
        "type": "object",
        "Description": "completion response message object",
        "additionalProperties": true,
        "properties": {
          "role": {
            "title": "Role",
            "type": "string",
            "description": "The role of the messages author",
            "enum": [
              "assistant",
              "user",
              "system",
              "tool"
            ]
          },
          "content": {
            "title": "Content",
            "type": "string",
            "description": "The contents of the assistant message.",
            "nullable": true
          },
          "tool_calls": {
            "title": "Tool Calls",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssistantToolCall"
            },
            "description": "The tool calls generated by the model.",
            "nullable": true
          }
        },
        "required": [
          "role",
          "content"
        ]
      },
      "ChatCompletionChoice": {
        "title": "Chat Completion Choice",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "message": {
            "$ref": "#/components/schemas/CompletionResponseMessage"
          },
          "finish_reason": {
            "title": "Finish Reason",
            "type": "string",
            "description": "The reason the model stopped generating tokens.  Will be `stop` if the model hit a natural stop point or a provided stop sequence,  `length` if the maximum number of tokens specified in the request was reached,  `tool_calls` if the model called a tool.",
            "enum": [
              "stop",
              "length",
              "tool_calls"
            ]
          },
          "index": {
            "title": "Index",
            "type": "integer",
            "description": "The index of the choice in the list of choices"
          },
          "logprobs": {
            "title": "Logprobs",
            "anyOf": [
              {
                "$ref": "#/components/schemas/LogProbs"
              }
            ],
            "description": "currently not supported, always null will be returned",
            "nullable": true
          }
        },
        "required": [
          "finish_reason",
          "index",
          "message"
        ]
      },
      "ChatCompletionResponse": {
        "title": "Chat Completion Response",
        "type": "object",
        "description": "chat completion response returned by the model",
        "properties": {
          "choices": {
            "title": "Choices",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChatCompletionChoice"
            },
            "minItems": 1
          },
          "created": {
            "title": "Created",
            "type": "number",
            "description": "The Unix timestamp (in seconds) of when the chat completion was created."
          },
          "id": {
            "title": "Id",
            "type": "string",
            "description": "A unique identifier for the chat completion."
          },
          "model": {
            "title": "Model",
            "description": "The model used for the chat completion.",
            "type": "string"
          },
          "object": {
            "title": "Object",
            "type": "string",
            "description": "The object type, always `chat.completion`.",
            "enum": [
              "chat.completion"
            ],
            "const": "chat.completion"
          },
          "system_fingerprint": {
            "title": "System fingerprint",
            "type": "string",
            "description": "Backend configuration that the model runs with."
          },
          "usage": {
            "$ref": "#/components/schemas/Usage"
          }
        },
        "required": [
          "choices",
          "created",
          "id",
          "model",
          "object",
          "system_fingerprint",
          "usage"
        ],
        "examples": [
          {
            "choices": [
              {
                "finish_reason": "stop",
                "index": 0,
                "message": {
                  "content": "In madam moon's silver glow,  Aha, a palindrome to know,  Radar spins, a circular tale,  Level heads prevail, without fail.  A man, a plan, a canal, Panama!  Able was I ere I saw Elba,  A Santa at NASA, a curious sight,  Do geese see God, in the pale moonlight?  Mr. Owl ate my metal worm,  Do nine men interpret? Nine men, I nod,  Never odd or even, a palindrome's might,  Madam, in Eden, I'm Adam.  Aibohphobia, a fear to confess,  A palindrome's symmetry, I must address,  Refer, a word that reads the same,  A palindrome's beauty, in its circular game.  In the stillness of the night,  Ava, a palindrome, shining bright,  Hannah, a name that reads the same,  A palindrome's magic, in its circular flame.  Note: Please keep in mind that creating a poem using palindromes can be a challenging task,  and the resulting poem may not be as cohesive or flowing as one that doesn't rely on palindromes.  However, I hope you enjoy the attempt!",
                  "role": "assistant"
                }
              }
            ],
            "created": 1737583288.6076705,
            "id": "83a7809d-e18f-44f9-9ab7-2bc494c6c661",
            "model": "MiniMax-M2.7",
            "object": "chat.completion",
            "system_fingerprint": "fastcoe",
            "usage": {
              "acceptance_rate": 4.058139324188232,
              "completion_tokens": 350,
              "completion_tokens_after_first_per_sec": 248.09314856382406,
              "completion_tokens_after_first_per_sec_first_ten": 249.67922929952655,
              "completion_tokens_per_sec": 238.91966176995348,
              "end_time": 1737583289.7345645,
              "is_last_response": true,
              "prompt_tokens": 43,
              "start_time": 1737583288.264706,
              "time_to_first_token": 0.06312894821166992,
              "total_latency": 1.4649275719174653,
              "total_tokens": 393,
              "total_tokens_per_sec": 268.27264878740493
            }
          }
        ]
      },
      "CompletionResponseDelta": {
        "title": "Completion Response Delta",
        "type": "object",
        "description": "completion response delta chunk generated by streamed model responses.",
        "additionalProperties": true,
        "properties": {
          "role": {
            "title": "Role",
            "type": "string",
            "description": "The role of the messages author",
            "enum": [
              "assistant",
              "user",
              "system",
              "tool"
            ],
            "nullable": true
          },
          "content": {
            "title": "Content",
            "type": "string",
            "description": "The contents of the assistant message.",
            "nullable": true
          },
          "reasoning": {
            "title": "Reasoning",
            "type": "string",
            "description": "Chain-of-thought reasoning output from reasoning-capable models (e.g., gpt-oss-120b, MiniMax-M2.7). **Note:** The `reasoning_details` array and `usage.completion_tokens_details.reasoning_tokens` fields from the OpenAI Harmony format are not currently supported. Only the `reasoning` string is returned.",
            "nullable": true
          },
          "channel": {
            "title": "Channel",
            "type": "string",
            "description": "Internal channel identifier used during streaming for reasoning models. May contain values like `analysis` (chain-of-thought) or `final` (output).",
            "nullable": true
          },
          "tool_calls": {
            "title": "Tool Calls",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssistantToolCall"
            },
            "description": "The tool calls generated by the model.",
            "nullable": true
          }
        }
      },
      "ChatCompletionChunkChoice": {
        "title": "Chat Completion Chunk Choice",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "delta": {
            "$ref": "#/components/schemas/CompletionResponseDelta"
          },
          "finish_reason": {
            "title": "Finish Reason",
            "type": "string",
            "description": "The reason the model stopped generating tokens.  Will be `stop` if the model hit a natural stop point or a provided stop sequence,  `length` if the maximum number of tokens specified in the request was reached,  `tool_calls` if the model called a tool.",
            "enum": [
              "stop",
              "length",
              "tool_calls"
            ],
            "nullable": true
          },
          "index": {
            "title": "Index",
            "type": "integer",
            "description": "The index of the choice in the list of choices"
          },
          "logprobs": {
            "title": "Logprobs",
            "anyOf": [
              {
                "$ref": "#/components/schemas/LogProbs"
              }
            ],
            "description": "currently not supported, always null will be returned",
            "nullable": true
          }
        },
        "required": [
          "index",
          "delta"
        ]
      },
      "ChatCompletionStreamResponse": {
        "title": "Chat Completion Stream Response",
        "type": "object",
        "description": "streamed chunk of a chat completion response returned by the model",
        "additionalProperties": true,
        "properties": {
          "choices": {
            "title": "Choices",
            "type": "array",
            "description": "A list of chat completion choices.",
            "items": {
              "$ref": "#/components/schemas/ChatCompletionChunkChoice"
            },
            "minItems": 0,
            "nullable": true
          },
          "created": {
            "title": "Created",
            "type": "number",
            "description": "The Unix timestamp (in seconds) of when the chat completion was created."
          },
          "id": {
            "title": "Id",
            "type": "string",
            "description": "A unique identifier for the chat completion."
          },
          "model": {
            "title": "Model",
            "description": "The model used for the chat completion.",
            "type": "string"
          },
          "object": {
            "title": "Object",
            "type": "string",
            "description": "The object type, always `chat.completion.chunk`.",
            "enum": [
              "chat.completion.chunk"
            ],
            "const": "chat.completion.chunk"
          },
          "system_fingerprint": {
            "title": "System fingerprint",
            "type": "string",
            "description": "Backend configuration that the model runs with."
          },
          "usage": {
            "$ref": "#/components/schemas/Usage"
          }
        },
        "required": [
          "choices",
          "created",
          "id",
          "model",
          "object",
          "system_fingerprint"
        ],
        "examples": [
          {
            "choices": [
              {
                "delta": {
                  "role": "assistant",
                  "content": ""
                },
                "index": 0,
                "finish_reason": null,
                "logprobs": null
              }
            ],
            "created": 1737642515.6076705,
            "id": "15fcaba4-1c4a-48fc-bc6e-05b55ddfb30b",
            "model": "MiniMax-M2.7",
            "object": "chat.completion.chunk",
            "system_fingerprint": "fastcoe"
          },
          {
            "choices": [
              {
                "delta": {
                  "role": "assistant",
                  "content": "in"
                },
                "index": 0,
                "finish_reason": null,
                "logprobs": null
              }
            ],
            "created": 1737642515.6076705,
            "id": "15fcaba4-1c4a-48fc-bc6e-05b55ddfb30b",
            "model": "MiniMax-M2.7",
            "object": "chat.completion.chunk",
            "system_fingerprint": "fastcoe"
          },
          {
            "choices": [
              {
                "delta": {
                  "content": ""
                },
                "index": 0,
                "finish_reason": "length",
                "logprobs": null
              }
            ],
            "created": 1737642515.6076705,
            "id": "15fcaba4-1c4a-48fc-bc6e-05b55ddfb30b",
            "model": "MiniMax-M2.7",
            "object": "chat.completion.chunk",
            "system_fingerprint": "fastcoe"
          },
          {
            "choices": [],
            "created": 1737642515.6076705,
            "id": "15fcaba4-1c4a-48fc-bc6e-05b55ddfb30b",
            "model": "MiniMax-M2.7",
            "object": "chat.completion.chunk",
            "system_fingerprint": "fastcoe",
            "usage": {
              "acceptance_rate": 3,
              "completion_tokens": 100,
              "completion_tokens_after_first_per_sec": 262.2771255106759,
              "completion_tokens_after_first_per_sec_first_ten": 266.98193514986144,
              "completion_tokens_after_first_per_sec_graph": 266.98193514986144,
              "completion_tokens_per_sec": 217.87260449707574,
              "end_time": 1737642515.9077535,
              "is_last_response": true,
              "prompt_tokens": 43,
              "prompt_tokens_details": {
                "cached_tokens": 0
              },
              "start_time": 1737642515.4458635,
              "time_to_first_token": 0.0844266414642334,
              "total_latency": 0.4589838186899821,
              "total_tokens": 143,
              "total_tokens_per_sec": 311.55782443081836
            }
          }
        ]
      },
      "ModelMetadata": {
        "title": "Model Metadata",
        "type": "object",
        "description": "model metadata",
        "additionalProperties": true,
        "properties": {
          "id": {
            "title": "Id",
            "type": "string",
            "description": "model id"
          },
          "object": {
            "title": "Object",
            "type": "string",
            "description": "type",
            "const": "model",
            "default": "model",
            "enum": [
              "model"
            ]
          },
          "owned_by": {
            "title": "OwnedBy",
            "type": "string",
            "description": "model owner"
          },
          "context_length": {
            "title": "context length",
            "type": "integer",
            "description": "model context length"
          },
          "max_completion_tokens": {
            "title": "max completion tokens",
            "type": "integer",
            "description": "model max completion tokens"
          },
          "sn_metadata": {
            "title": "sn metadata",
            "type": "object",
            "description": "Additional metadata provided by SambaNova. Use the `?verbose=true` query parameter on `/v1/models` to ensure this field is populated.",
            "properties": {
              "region": {
                "title": "region",
                "type": "string",
                "description": "Hosting region for the model. `\"EU\"` indicates the model runs on Infercom's EU infrastructure (Equinix Munich 4, Germany) with full data sovereignty.",
                "example": "EU"
              },
              "is_external": {
                "title": "is_external",
                "type": "boolean",
                "description": "`false` = EU-hosted on Infercom infrastructure (sovereign). `true` = routed to SambaNova's global infrastructure (US).",
                "example": false
              },
              "architecture": {
                "title": "architecture",
                "type": "string",
                "description": "Model architecture identifier"
              },
              "provider": {
                "title": "provider",
                "type": "string",
                "description": "Model provider (e.g., Meta, DeepSeek, MiniMax, OpenAI)"
              },
              "capabilities": {
                "title": "capabilities",
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Model capabilities (e.g., text, reasoning, vision)"
              },
              "license": {
                "title": "license",
                "type": "string",
                "description": "Model license type"
              },
              "status": {
                "title": "status",
                "type": "string",
                "description": "Model availability status (e.g., active)"
              },
              "hf_link": {
                "title": "hf_link",
                "type": "string",
                "description": "Hugging Face model page URL"
              },
              "overview": {
                "title": "overview",
                "type": "string",
                "description": "Brief model description"
              }
            }
          },
          "pricing": {
            "title": "pricing",
            "type": "object",
            "description": "pricing details",
            "additionalProperties": true,
            "properties": {
              "prompt": {
                "title": "prompt",
                "type": "number",
                "description": "price per prompt token in USD"
              },
              "completion": {
                "title": "completion",
                "type": "number",
                "description": "price per completion token in USD"
              },
              "duration_per_hour": {
                "title": "duration per hour",
                "type": "number",
                "description": "price per input hour",
                "nullable": true
              }
            }
          }
        },
        "required": [
          "id"
        ]
      },
      "ModelMetadataList": {
        "title": "Model Metadata List",
        "type": "object",
        "description": "object containing available models and metadata",
        "additionalProperties": true,
        "properties": {
          "data": {
            "title": "Data",
            "type": "array",
            "description": "array of model metadata list",
            "items": {
              "$ref": "#/components/schemas/ModelMetadata"
            }
          },
          "object": {
            "title": "Object",
            "type": "string",
            "const": "list",
            "default": "list",
            "enum": [
              "list"
            ]
          }
        },
        "required": [
          "data"
        ]
      },
      "EmbeddingsRequest": {
        "title": "Embeddings Request",
        "type": "object",
        "description": "embeddings request object",
        "additionalProperties": true,
        "properties": {
          "model": {
            "title": "Model",
            "description": "The model ID to use See available [models](/en/models/infercomcloud-models)",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "enum": [
                  "E5-Mistral-7B-Instruct"
                ]
              }
            ]
          },
          "input": {
            "title": "input",
            "description": "Input text to embed. to embed multiple inputs in a single request,  pass an array of strings. The input must not exceed the max input tokens for the model",
            "oneOf": [
              {
                "type": "string",
                "description": "The string that will be turned into an embedding."
              },
              {
                "type": "array",
                "description": "The array of strings that will be turned into an embeddings.",
                "minItems": 1,
                "items": {
                  "type": "string"
                }
              }
            ]
          }
        },
        "required": [
          "model",
          "input"
        ],
        "example": {
          "input": [
            "text to embed number 1",
            "text to embed number 2"
          ],
          "model": "E5-Mistral-7B-Instruct"
        }
      },
      "Embedding": {
        "type": "object",
        "title": "Embedding",
        "description": "Represents an embedding vector returned by embeddings endpoint.",
        "properties": {
          "index": {
            "type": "integer",
            "title": "index",
            "description": "The index of the embedding in the list of embeddings."
          },
          "object": {
            "type": "string",
            "title": "object",
            "description": "Object type, always embedding.",
            "enum": [
              "embedding"
            ]
          },
          "embedding": {
            "type": "array",
            "items": {
              "type": "number"
            },
            "title": "embedding",
            "description": "List of floats containing the embedding vector.",
            "nullable": true
          }
        },
        "required": [
          "index",
          "object",
          "embedding"
        ]
      },
      "EmbeddingsResponse": {
        "title": "Embeddings Response",
        "type": "object",
        "description": "Embeddings response returned by the model",
        "properties": {
          "object": {
            "title": "object",
            "type": "string",
            "description": "The object type, which is always \"list\".",
            "enum": [
              "list"
            ]
          },
          "model": {
            "type": "string",
            "description": "The name of the model used to generate the embedding."
          },
          "usage": {
            "$ref": "#/components/schemas/Usage"
          },
          "data": {
            "type": "array",
            "description": "The list of embeddings generated by the model.",
            "items": {
              "$ref": "#/components/schemas/Embedding"
            }
          }
        },
        "required": [
          "object",
          "model",
          "usage",
          "data"
        ],
        "example": {
          "data": [
            {
              "index": 0,
              "object": "embedding",
              "embedding": [
                0.024864232167601585,
                -0.01452154759317636,
                0.008880083449184895
              ]
            },
            {
              "index": 1,
              "object": "embedding",
              "embedding": [
                0.010919672437012196,
                0.0016351072117686272,
                0.008019134402275085
              ]
            }
          ],
          "model": "E5-Mistral-7B-Instruct",
          "object": "list",
          "usage": {
            "prompt_tokens": 716,
            "total_tokens": 716
          }
        }
      },
      "TranscriptionTranslationRequestProperties": {
        "title": "Transcription Translation Request Properties",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "model": {
            "title": "Model",
            "description": "The model ID to use See available [models](/en/models/infercomcloud-models)",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "enum": [
                  "Whisper-Large-v3"
                ]
              }
            ]
          },
          "file": {
            "title": "file",
            "description": "The audio file object to transcribe or translate, in one of these formats: FLAC, MP3, MP4, MPEG, MPGA, M4A, Ogg, WAV, or WebM format.  File size limit is 25MB.",
            "type": "string",
            "format": "binary"
          },
          "prompt": {
            "title": "prompt",
            "description": "Optional text prompt provided to influence transcription Translation style or vocabulary. Example: “Please transcribe carefully, including pauses and hesitations.”",
            "type": "string",
            "nullable": true
          },
          "language": {
            "title": "language",
            "description": "Optional language of the input audio.  Supplying the input language in ISO-639-1 (e.g. en) format will improve accuracy and latency.",
            "nullable": true,
            "type": "string",
            "enum": [
              "en",
              "zh",
              "de",
              "es",
              "ru",
              "ko",
              "fr",
              "ja",
              "pt",
              "tr",
              "pl",
              "ca",
              "nl",
              "ar",
              "sv",
              "it",
              "id",
              "hi",
              "fi",
              "vi",
              "he",
              "uk",
              "el",
              "ms",
              "cs",
              "ro",
              "da",
              "hu",
              "ta",
              "no",
              "th",
              "ur",
              "hr",
              "bg",
              "lt",
              "la",
              "mi",
              "ml",
              "cy",
              "sk",
              "te",
              "fa",
              "lv",
              "bn",
              "sr",
              "az",
              "sl",
              "kn",
              "et",
              "mk",
              "br",
              "eu",
              "is",
              "hy",
              "ne",
              "mn",
              "bs",
              "kk",
              "sq",
              "sw",
              "gl",
              "mr",
              "pa",
              "si",
              "km",
              "sn",
              "yo",
              "so",
              "af",
              "oc",
              "ka",
              "be",
              "tg",
              "sd",
              "gu",
              "am",
              "yi",
              "lo",
              "uz",
              "fo",
              "ht",
              "ps",
              "tk",
              "nn",
              "mt",
              "sa",
              "lb",
              "my",
              "bo",
              "tl",
              "mg",
              "as",
              "tt",
              "haw",
              "ln",
              "ha",
              "ba",
              "jw",
              "su",
              "yue"
            ]
          },
          "response_format": {
            "title": "response format",
            "description": "Output format JSON or text.",
            "type": "string",
            "enum": [
              "json",
              "text"
            ],
            "default": "json"
          },
          "stream": {
            "title": "stream",
            "description": "Enables streaming responses.",
            "type": "boolean",
            "default": false
          },
          "stream_options": {
            "title": "stream options",
            "description": "Optional settings that apply when `stream` is true.",
            "type": "object",
            "properties": {
              "include_usage": {
                "title": "include usage",
                "description": "If true and `stream` is enabled, optional usage metadata will be included in the last streamed response event.",
                "type": "boolean",
                "nullable": true
              }
            },
            "nullable": true
          }
        }
      },
      "TranscriptionRequest": {
        "type": "object",
        "title": "Transcription Request",
        "description": "Transcription request object",
        "allOf": [
          {
            "$ref": "#/components/schemas/TranscriptionTranslationRequestProperties"
          }
        ],
        "required": [
          "model",
          "file"
        ],
        "example": {
          "model": "Whisper-Large-v3",
          "file": "(binary audio file, e.g. \"sample.wav\")",
          "prompt": "Please transcribe carefully, including pauses and hesitations.",
          "language": "es",
          "response_format": "json",
          "stream": true,
          "stream_options": {
            "include_usage": true
          }
        }
      },
      "TranslationRequest": {
        "type": "object",
        "title": "Translation Request",
        "description": "Translation request object",
        "allOf": [
          {
            "$ref": "#/components/schemas/TranscriptionTranslationRequestProperties"
          }
        ],
        "required": [
          "model",
          "file"
        ],
        "example": {
          "model": "Whisper-Large-v3",
          "file": "(binary audio file, e.g. \"sample.wav\")",
          "prompt": "Please translate carefully, including pauses and hesitations.",
          "language": "es",
          "response_format": "json",
          "stream": true,
          "stream_options": {
            "include_usage": true
          }
        }
      },
      "TranscriptionResponse": {
        "type": "object",
        "title": "Transcription Response",
        "description": "Transcription response json object",
        "additionalProperties": true,
        "properties": {
          "text": {
            "title": "text",
            "description": "audio file text transcription",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "example": {
          "text": "Es un efecto de sonido de una campana sonando, específicamente una campana de iglesia."
        }
      },
      "TranslationResponse": {
        "type": "object",
        "title": "Translation Response",
        "description": "Translation response json object",
        "additionalProperties": true,
        "properties": {
          "text": {
            "title": "text",
            "description": "audio file english text translation",
            "type": "string"
          }
        },
        "required": [
          "text"
        ],
        "example": {
          "text": "It's a sound effect of a bell chiming, specifically a church bell."
        }
      },
      "TranscriptionTranslationResponseDelta": {
        "title": "Transcription Response Delta",
        "type": "object",
        "description": "Transcription or translation response delta chunk generated by streamed model responses.",
        "additionalProperties": true,
        "properties": {
          "role": {
            "title": "Role",
            "type": "string",
            "description": "The role of the messages author",
            "enum": [
              "assistant"
            ],
            "const": "assistant",
            "nullable": true
          },
          "content": {
            "title": "Content",
            "type": "string",
            "description": "The content delta of the transcription or translation.",
            "nullable": true
          }
        },
        "required": [
          "content"
        ]
      },
      "TranscriptionTranslationChunkChoice": {
        "title": "Transcription Translation Chunk Choice",
        "type": "object",
        "description": "Transcription or translation chunk choice generated by streamed model responses.",
        "additionalProperties": true,
        "properties": {
          "delta": {
            "$ref": "#/components/schemas/TranscriptionTranslationResponseDelta"
          },
          "finish_reason": {
            "title": "Finish Reason",
            "type": "string",
            "description": "The reason the model stopped generating tokens",
            "enum": [
              "stop"
            ],
            "nullable": true
          },
          "index": {
            "title": "Index",
            "type": "integer",
            "description": "The index of the choice in the list of choices"
          },
          "logprobs": {
            "title": "Logprobs",
            "anyOf": [
              {
                "$ref": "#/components/schemas/LogProbs"
              }
            ],
            "description": "currently not supported, always null will be returned",
            "nullable": true
          }
        },
        "required": [
          "index",
          "delta"
        ]
      },
      "TranscriptionTranslationResponseProperties": {
        "title": "Transcription Translation Response Properties",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "choices": {
            "title": "Choices",
            "type": "array",
            "description": "A list of transcription or translation choices.",
            "items": {
              "$ref": "#/components/schemas/TranscriptionTranslationChunkChoice"
            },
            "minItems": 0,
            "nullable": true
          },
          "created": {
            "title": "Created",
            "type": "number",
            "description": "The Unix timestamp (in seconds) of when the chat completion was created."
          },
          "id": {
            "title": "Id",
            "type": "string",
            "description": "A unique identifier for the chat completion."
          },
          "model": {
            "title": "Model",
            "description": "The model used for the chat completion.",
            "type": "string"
          },
          "object": {
            "title": "Object",
            "type": "string",
            "description": "The object type, always `chat.completion.chunk`.",
            "enum": [
              "chat.completion.chunk"
            ],
            "const": "chat.completion.chunk"
          },
          "system_fingerprint": {
            "title": "System fingerprint",
            "type": "string",
            "description": "Backend configuration that the model runs with."
          },
          "usage": {
            "$ref": "#/components/schemas/Usage"
          }
        }
      },
      "TranscriptionStreamResponse": {
        "type": "object",
        "title": "Transcription  Stream Response",
        "description": "streamed chunk of a transcription response returned by the model",
        "allOf": [
          {
            "$ref": "#/components/schemas/TranscriptionTranslationResponseProperties"
          }
        ],
        "required": [
          "choices",
          "created",
          "id",
          "model",
          "object",
          "system_fingerprint"
        ],
        "examples": [
          {
            "choices": [
              {
                "delta": {
                  "content": "es un sonido"
                },
                "index": 0,
                "finish_reason": null,
                "logprobs": null
              }
            ],
            "created": 1737642515.3407679,
            "custom_id": 0,
            "id": "15fcaba4-1c4a-48fc-bc6e-05b55ddfb30b",
            "model": "MiniMax-M2.7",
            "object": "chat.completion.chunk",
            "system_fingerprint": "fastcoe"
          },
          {
            "choices": [],
            "created": 1737642515.3407679,
            "custom_id": 0,
            "id": "15fcaba4-1c4a-48fc-bc6e-05b55ddfb30b",
            "model": "MiniMax-M2.7",
            "object": "chat.completion.chunk",
            "system_fingerprint": "fastcoe",
            "usage": {
              "completion_tokens": 100,
              "completion_tokens_after_first_per_sec": 262.2771255106759,
              "completion_tokens_after_first_per_sec_first_ten": 266.98193514986144,
              "completion_tokens_after_first_per_sec_graph": 53.16720674817285,
              "completion_tokens_per_sec": 217.87260449707574,
              "end_time": 1737642515.9077535,
              "is_last_response": true,
              "prompt_tokens": 43,
              "start_time": 1737642515.4458635,
              "time_to_first_token": 0.0844266414642334,
              "total_latency": 0.4589838186899821,
              "total_tokens": 143,
              "total_tokens_per_sec": 311.55782443081836
            }
          }
        ]
      },
      "TranslationStreamResponse": {
        "type": "object",
        "title": "Translation Stream Response",
        "description": "streamed chunk of a translation response returned by the model",
        "allOf": [
          {
            "$ref": "#/components/schemas/TranscriptionTranslationResponseProperties"
          }
        ],
        "required": [
          "choices",
          "created",
          "id",
          "model",
          "object",
          "system_fingerprint"
        ],
        "examples": [
          {
            "choices": [
              {
                "delta": {
                  "content": "It's a sound"
                },
                "index": 0,
                "finish_reason": null,
                "logprobs": null
              }
            ],
            "created": 1737642515.6076705,
            "custom_id": 0,
            "id": "15fcaba4-1c4a-48fc-bc6e-05b55ddfb30b",
            "model": "MiniMax-M2.7",
            "object": "chat.completion.chunk",
            "system_fingerprint": "fastcoe"
          },
          {
            "choices": [],
            "created": 1737642515.6076705,
            "custom_id": 0,
            "id": "15fcaba4-1c4a-48fc-bc6e-05b55ddfb30b",
            "model": "MiniMax-M2.7",
            "object": "chat.completion.chunk",
            "system_fingerprint": "fastcoe",
            "usage": {
              "completion_tokens": 100,
              "completion_tokens_after_first_per_sec": 262.2771255106759,
              "completion_tokens_after_first_per_sec_first_ten": 266.98193514986144,
              "completion_tokens_after_first_per_sec_graph": 53.16720674817285,
              "completion_tokens_per_sec": 217.87260449707574,
              "end_time": 1737642515.9077535,
              "is_last_response": true,
              "prompt_tokens": 43,
              "start_time": 1737642515.4458635,
              "time_to_first_token": 0.0844266414642334,
              "total_latency": 0.4589838186899821,
              "total_tokens": 143,
              "total_tokens_per_sec": 311.55782443081836
            }
          }
        ]
      },
      "ResponseInputItem": {
        "title": "Response Input Item",
        "description": "An input item for the Responses API conversation history.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/ResponseInputMessage"
          },
          {
            "$ref": "#/components/schemas/ResponseInputFunctionCall"
          },
          {
            "$ref": "#/components/schemas/ResponseInputFunctionCallOutput"
          }
        ]
      },
      "ResponseInputMessage": {
        "title": "Response Input Message",
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant",
              "system",
              "developer"
            ],
            "description": "The role of the message author."
          },
          "content": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ResponseContentPart"
                }
              }
            ],
            "description": "The content of the message."
          },
          "type": {
            "type": "string",
            "enum": [
              "message"
            ],
            "default": "message"
          }
        },
        "required": [
          "role",
          "content"
        ]
      },
      "ResponseInputFunctionCall": {
        "title": "Response Input Function Call",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "function_call"
            ]
          },
          "id": {
            "type": "string",
            "description": "Unique identifier for this function call."
          },
          "call_id": {
            "type": "string",
            "description": "Call ID for matching with function_call_output."
          },
          "name": {
            "type": "string",
            "description": "Name of the function."
          },
          "arguments": {
            "type": "string",
            "description": "JSON string of function arguments."
          },
          "status": {
            "type": "string",
            "enum": [
              "completed",
              "failed"
            ]
          }
        },
        "required": [
          "type",
          "call_id",
          "name",
          "arguments"
        ]
      },
      "ResponseInputFunctionCallOutput": {
        "title": "Response Input Function Call Output",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "function_call_output"
            ]
          },
          "call_id": {
            "type": "string",
            "description": "The call_id of the function_call this output corresponds to."
          },
          "output": {
            "type": "string",
            "description": "JSON string of the function result."
          }
        },
        "required": [
          "type",
          "call_id",
          "output"
        ]
      },
      "ResponseContentPart": {
        "title": "Response Content Part",
        "description": "A content part within a response output item.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/ResponseOutputText"
          },
          {
            "$ref": "#/components/schemas/ResponseReasoningText"
          }
        ]
      },
      "ResponseOutputText": {
        "title": "Response Output Text",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "output_text"
            ]
          },
          "text": {
            "type": "string",
            "description": "The text content."
          },
          "annotations": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "nullable": true
          },
          "logprobs": {
            "type": "array",
            "items": {
              "type": "object"
            },
            "nullable": true
          }
        },
        "required": [
          "type",
          "text"
        ]
      },
      "ResponseReasoningText": {
        "title": "Response Reasoning Text",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "reasoning_text"
            ]
          },
          "text": {
            "type": "string",
            "description": "The reasoning text content."
          }
        },
        "required": [
          "type",
          "text"
        ]
      },
      "ResponseTool": {
        "title": "Response Tool",
        "type": "object",
        "description": "A function tool definition for the Responses API.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "function"
            ],
            "description": "Tool type. Only \"function\" is supported."
          },
          "name": {
            "type": "string",
            "description": "The name of the function."
          },
          "description": {
            "type": "string",
            "description": "A description of what the function does."
          },
          "parameters": {
            "type": "object",
            "description": "JSON Schema describing the function parameters."
          },
          "strict": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether to enforce strict schema validation."
          }
        },
        "required": [
          "type",
          "name"
        ]
      },
      "ResponseToolChoiceOption": {
        "title": "Response Tool Choice Option",
        "description": "Controls how the model uses tools.",
        "oneOf": [
          {
            "type": "string",
            "enum": [
              "none",
              "auto",
              "required"
            ]
          },
          {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "function"
                ]
              },
              "name": {
                "type": "string",
                "description": "The name of the function to call."
              }
            },
            "required": [
              "type",
              "name"
            ]
          }
        ]
      },
      "ResponseFormatConfiguration": {
        "title": "Response Format Configuration",
        "description": "Output format configuration for structured responses.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/ResponseFormatText"
          },
          {
            "$ref": "#/components/schemas/ResponseFormatJSONObject"
          },
          {
            "$ref": "#/components/schemas/ResponseFormatJSONSchema"
          }
        ]
      },
      "ResponseRequest": {
        "title": "Response Request",
        "type": "object",
        "description": "Request body for creating a model response.",
        "properties": {
          "model": {
            "title": "Model",
            "type": "string",
            "description": "The model ID to use (e.g., MiniMax-M2.7, gpt-oss-120b).",
            "example": "MiniMax-M2.7"
          },
          "input": {
            "title": "Input",
            "description": "Text input or structured conversation history.",
            "oneOf": [
              {
                "type": "string",
                "description": "Plain text input (equivalent to a user message)."
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ResponseInputItem"
                },
                "description": "Ordered list of input items (messages, tool calls, tool results)."
              }
            ]
          },
          "instructions": {
            "title": "Instructions",
            "type": "string",
            "description": "System message prepended to input.",
            "nullable": true
          },
          "stream": {
            "title": "Stream",
            "type": "boolean",
            "description": "If true, stream response as Server-Sent Events.",
            "default": false
          },
          "max_output_tokens": {
            "title": "Max Output Tokens",
            "type": "integer",
            "description": "Maximum tokens to generate.",
            "nullable": true
          },
          "temperature": {
            "title": "Temperature",
            "type": "number",
            "description": "Randomness control (0-2).",
            "minimum": 0,
            "maximum": 2,
            "default": 0.7
          },
          "top_p": {
            "title": "Top P",
            "type": "number",
            "description": "Nucleus sampling cutoff (0-1).",
            "minimum": 0,
            "maximum": 1,
            "default": 1
          },
          "top_k": {
            "title": "Top K",
            "type": "integer",
            "description": "Top-K sampling (1-100).",
            "minimum": 1,
            "maximum": 100,
            "nullable": true
          },
          "tools": {
            "title": "Tools",
            "type": "array",
            "description": "Function tools available to the model (max 128).",
            "items": {
              "$ref": "#/components/schemas/ResponseTool"
            },
            "maxItems": 128,
            "nullable": true
          },
          "tool_choice": {
            "$ref": "#/components/schemas/ResponseToolChoiceOption"
          },
          "parallel_tool_calls": {
            "title": "Parallel Tool Calls",
            "type": "boolean",
            "description": "Allow multiple tool calls in parallel.",
            "default": true
          },
          "text": {
            "title": "Text",
            "type": "object",
            "description": "Response format configuration.",
            "properties": {
              "format": {
                "$ref": "#/components/schemas/ResponseFormatConfiguration"
              }
            }
          },
          "reasoning": {
            "title": "Reasoning",
            "type": "object",
            "description": "Reasoning configuration for supported models.",
            "properties": {
              "effort": {
                "type": "string",
                "enum": [
                  "low",
                  "medium",
                  "high"
                ],
                "default": "medium",
                "description": "Reasoning depth level."
              }
            },
            "nullable": true
          },
          "user": {
            "title": "User",
            "type": "string",
            "description": "User identifier (echoed in response).",
            "nullable": true
          }
        },
        "required": [
          "model",
          "input"
        ]
      },
      "ResponseOutputItem": {
        "title": "Response Output Item",
        "description": "An output item in the response (message, reasoning, or function_call).",
        "oneOf": [
          {
            "$ref": "#/components/schemas/ResponseMessage"
          },
          {
            "$ref": "#/components/schemas/ResponseFunctionCall"
          },
          {
            "$ref": "#/components/schemas/ResponseOutputReasoning"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "message": "#/components/schemas/ResponseMessage",
            "function_call": "#/components/schemas/ResponseFunctionCall",
            "reasoning": "#/components/schemas/ResponseOutputReasoning"
          }
        }
      },
      "ResponseMessage": {
        "title": "Response Message",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "message"
            ]
          },
          "id": {
            "type": "string",
            "description": "Unique identifier for this message."
          },
          "role": {
            "type": "string",
            "enum": [
              "assistant"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "completed",
              "in_progress"
            ]
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponseContentPart"
            }
          }
        },
        "required": [
          "type",
          "id",
          "role",
          "content"
        ]
      },
      "ResponseFunctionCall": {
        "title": "Response Function Call",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "function_call"
            ]
          },
          "id": {
            "type": "string",
            "description": "Unique identifier for this function call."
          },
          "call_id": {
            "type": "string",
            "description": "Call ID for matching with function_call_output."
          },
          "name": {
            "type": "string",
            "description": "Name of the function to call."
          },
          "arguments": {
            "type": "string",
            "description": "JSON string of function arguments."
          },
          "status": {
            "type": "string",
            "enum": [
              "completed",
              "in_progress"
            ]
          }
        },
        "required": [
          "type",
          "id",
          "call_id",
          "name",
          "arguments"
        ]
      },
      "ResponseOutputReasoning": {
        "title": "Response Output Reasoning",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "reasoning"
            ]
          },
          "id": {
            "type": "string",
            "description": "Unique identifier for this reasoning item."
          },
          "status": {
            "type": "string",
            "enum": [
              "completed",
              "in_progress"
            ]
          },
          "summary": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponseReasoningText"
            }
          }
        },
        "required": [
          "type",
          "id",
          "content"
        ]
      },
      "ResponseUsage": {
        "title": "Response Usage",
        "type": "object",
        "description": "Token usage statistics for the response.",
        "properties": {
          "input_tokens": {
            "type": "integer",
            "description": "Number of input tokens."
          },
          "output_tokens": {
            "type": "integer",
            "description": "Number of output tokens generated."
          },
          "total_tokens": {
            "type": "integer",
            "description": "Total tokens (input + output)."
          },
          "input_tokens_details": {
            "type": "object",
            "properties": {
              "cached_tokens": {
                "type": "integer",
                "description": "Tokens served from cache."
              }
            },
            "nullable": true
          },
          "output_tokens_details": {
            "type": "object",
            "properties": {
              "reasoning_tokens": {
                "type": "integer",
                "description": "Tokens used for reasoning."
              }
            },
            "nullable": true
          },
          "time_to_first_token": {
            "type": "number",
            "description": "Time to first token in seconds.",
            "nullable": true
          },
          "total_latency": {
            "type": "number",
            "description": "Total generation time in seconds.",
            "nullable": true
          },
          "output_tokens_per_sec": {
            "type": "number",
            "description": "Output throughput (tokens/second).",
            "nullable": true
          }
        },
        "required": [
          "input_tokens",
          "output_tokens",
          "total_tokens"
        ]
      },
      "ResponseResponse": {
        "title": "Response Response",
        "type": "object",
        "description": "Response object from POST /responses.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique response identifier."
          },
          "object": {
            "type": "string",
            "enum": [
              "response"
            ],
            "description": "Object type, always \"response\"."
          },
          "status": {
            "type": "string",
            "enum": [
              "completed",
              "failed",
              "in_progress",
              "incomplete"
            ],
            "description": "Response lifecycle status."
          },
          "created_at": {
            "type": "integer",
            "description": "Unix timestamp when created."
          },
          "completed_at": {
            "type": "integer",
            "description": "Unix timestamp when completed.",
            "nullable": true
          },
          "model": {
            "type": "string",
            "description": "Model ID used."
          },
          "output": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponseOutputItem"
            },
            "description": "Output items (messages, reasoning, function calls)."
          },
          "usage": {
            "$ref": "#/components/schemas/ResponseUsage"
          },
          "error": {
            "type": "object",
            "description": "Error details when status is \"failed\".",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            },
            "nullable": true
          },
          "instructions": {
            "type": "string",
            "description": "Echoed system instructions.",
            "nullable": true
          },
          "temperature": {
            "type": "number",
            "nullable": true
          },
          "top_p": {
            "type": "number",
            "nullable": true
          },
          "tools": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponseTool"
            }
          },
          "tool_choice": {
            "$ref": "#/components/schemas/ResponseToolChoiceOption"
          },
          "parallel_tool_calls": {
            "type": "boolean"
          },
          "text": {
            "type": "object",
            "properties": {
              "format": {
                "$ref": "#/components/schemas/ResponseFormatConfiguration"
              }
            }
          },
          "reasoning": {
            "type": "object",
            "properties": {
              "effort": {
                "type": "string",
                "enum": [
                  "low",
                  "medium",
                  "high"
                ],
                "nullable": true
              },
              "summary": {
                "type": "string",
                "nullable": true
              }
            },
            "nullable": true
          },
          "store": {
            "type": "boolean",
            "description": "Always false (stateless API)."
          },
          "service_tier": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "id",
          "object",
          "status",
          "created_at",
          "model",
          "output"
        ],
        "example": {
          "id": "resp_abc123",
          "object": "response",
          "status": "completed",
          "created_at": 1778845598,
          "completed_at": 1778845598,
          "model": "MiniMax-M2.7",
          "output": [
            {
              "type": "reasoning",
              "id": "rs_xyz",
              "status": "completed",
              "summary": [],
              "content": [
                {
                  "type": "reasoning_text",
                  "text": "The user asks a simple question..."
                }
              ]
            },
            {
              "type": "message",
              "id": "msg_xyz",
              "role": "assistant",
              "status": "completed",
              "content": [
                {
                  "type": "output_text",
                  "text": "2 + 2 = 4."
                }
              ]
            }
          ],
          "usage": {
            "input_tokens": 45,
            "output_tokens": 89,
            "total_tokens": 134,
            "output_tokens_details": {
              "reasoning_tokens": 77
            }
          },
          "parallel_tool_calls": true,
          "tools": [],
          "store": false
        }
      },
      "AnthropicTextBlock": {
        "title": "Text Block",
        "type": "object",
        "description": "A text content block in an Anthropic message.",
        "properties": {
          "type": {
            "type": "string",
            "const": "text",
            "description": "The type of content block."
          },
          "text": {
            "type": "string",
            "description": "The text content."
          }
        },
        "required": [
          "type",
          "text"
        ]
      },
      "AnthropicToolUseBlock": {
        "title": "Tool Use Block",
        "type": "object",
        "description": "A tool use content block, indicating the model wants to call a tool.",
        "properties": {
          "type": {
            "type": "string",
            "const": "tool_use",
            "description": "The type of content block."
          },
          "id": {
            "type": "string",
            "description": "Unique identifier for this tool use."
          },
          "name": {
            "type": "string",
            "description": "The name of the tool to call."
          },
          "input": {
            "type": "object",
            "additionalProperties": true,
            "description": "The input parameters for the tool call."
          }
        },
        "required": [
          "type",
          "id",
          "name",
          "input"
        ]
      },
      "AnthropicToolResultBlock": {
        "title": "Tool Result Block",
        "type": "object",
        "description": "A tool result content block, providing the output of a tool call.",
        "properties": {
          "type": {
            "type": "string",
            "const": "tool_result",
            "description": "The type of content block."
          },
          "tool_use_id": {
            "type": "string",
            "description": "The ID of the tool use this result is for."
          },
          "content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AnthropicTextBlock"
                }
              }
            ],
            "description": "The result content."
          },
          "is_error": {
            "type": "boolean",
            "description": "Whether this result represents an error."
          }
        },
        "required": [
          "type",
          "tool_use_id"
        ]
      },
      "AnthropicInputContentBlock": {
        "title": "Input Content Block",
        "description": "A content block in an input message.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AnthropicTextBlock"
          },
          {
            "$ref": "#/components/schemas/AnthropicToolUseBlock"
          },
          {
            "$ref": "#/components/schemas/AnthropicToolResultBlock"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "text": "#/components/schemas/AnthropicTextBlock",
            "tool_use": "#/components/schemas/AnthropicToolUseBlock",
            "tool_result": "#/components/schemas/AnthropicToolResultBlock"
          }
        }
      },
      "AnthropicOutputContentBlock": {
        "title": "Output Content Block",
        "description": "A content block in an output message.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AnthropicTextBlock"
          },
          {
            "$ref": "#/components/schemas/AnthropicToolUseBlock"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "text": "#/components/schemas/AnthropicTextBlock",
            "tool_use": "#/components/schemas/AnthropicToolUseBlock"
          }
        }
      },
      "AnthropicInputMessage": {
        "title": "Input Message",
        "type": "object",
        "description": "A message in the conversation.",
        "properties": {
          "role": {
            "type": "string",
            "enum": [
              "user",
              "assistant"
            ],
            "description": "The role of the message author."
          },
          "content": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AnthropicInputContentBlock"
                }
              }
            ],
            "description": "The content of the message."
          }
        },
        "required": [
          "role",
          "content"
        ]
      },
      "AnthropicTool": {
        "title": "Tool",
        "type": "object",
        "description": "Definition of a tool the model may use.",
        "properties": {
          "name": {
            "type": "string",
            "description": "The name of the tool.",
            "pattern": "^[a-zA-Z0-9_-]{1,128}$"
          },
          "description": {
            "type": "string",
            "description": "Description of what the tool does."
          },
          "input_schema": {
            "type": "object",
            "additionalProperties": true,
            "description": "JSON Schema for the tool's input parameters."
          }
        },
        "required": [
          "name",
          "input_schema"
        ]
      },
      "AnthropicToolChoiceAuto": {
        "title": "Tool Choice Auto",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "const": "auto"
          }
        },
        "required": [
          "type"
        ]
      },
      "AnthropicToolChoiceAny": {
        "title": "Tool Choice Any",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "const": "any"
          }
        },
        "required": [
          "type"
        ]
      },
      "AnthropicToolChoiceTool": {
        "title": "Tool Choice Tool",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "const": "tool"
          },
          "name": {
            "type": "string",
            "description": "The name of the specific tool to use."
          }
        },
        "required": [
          "type",
          "name"
        ]
      },
      "AnthropicToolChoice": {
        "title": "Tool Choice",
        "description": "How the model should use the provided tools.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AnthropicToolChoiceAuto"
          },
          {
            "$ref": "#/components/schemas/AnthropicToolChoiceAny"
          },
          {
            "$ref": "#/components/schemas/AnthropicToolChoiceTool"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "auto": "#/components/schemas/AnthropicToolChoiceAuto",
            "any": "#/components/schemas/AnthropicToolChoiceAny",
            "tool": "#/components/schemas/AnthropicToolChoiceTool"
          }
        }
      },
      "AnthropicUsage": {
        "title": "Usage",
        "type": "object",
        "description": "Token usage information.",
        "properties": {
          "input_tokens": {
            "type": "integer",
            "description": "The number of input tokens used."
          },
          "output_tokens": {
            "type": "integer",
            "description": "The number of output tokens generated."
          }
        },
        "required": [
          "input_tokens",
          "output_tokens"
        ]
      },
      "AnthropicMessageRequest": {
        "title": "Create Message Request",
        "type": "object",
        "description": "Request body for creating a message.",
        "properties": {
          "model": {
            "type": "string",
            "description": "The model ID to use. Call `GET /v1/models` to retrieve the current list of available models. See [available models](/en/models/infercomcloud-models) for details.",
            "example": "MiniMax-M2.7"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnthropicInputMessage"
            },
            "description": "The conversation messages.",
            "minItems": 1
          },
          "max_tokens": {
            "type": "integer",
            "description": "The maximum number of tokens to generate.",
            "minimum": 1,
            "example": 1024
          },
          "system": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AnthropicTextBlock"
                }
              }
            ],
            "description": "System prompt providing context and instructions."
          },
          "temperature": {
            "type": "number",
            "description": "Sampling temperature between 0 and 1.",
            "minimum": 0,
            "maximum": 1,
            "example": 1.0
          },
          "top_p": {
            "type": "number",
            "description": "Nucleus sampling parameter.",
            "minimum": 0,
            "maximum": 1
          },
          "top_k": {
            "type": "integer",
            "description": "Top-k sampling parameter.",
            "minimum": 0
          },
          "stop_sequences": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Custom stop sequences."
          },
          "stream": {
            "type": "boolean",
            "description": "Whether to stream the response.",
            "default": false
          },
          "tools": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnthropicTool"
            },
            "description": "Tools the model may use."
          },
          "tool_choice": {
            "$ref": "#/components/schemas/AnthropicToolChoice"
          }
        },
        "required": [
          "model",
          "messages",
          "max_tokens"
        ],
        "example": {
          "model": "MiniMax-M2.7",
          "max_tokens": 1024,
          "messages": [
            {
              "role": "user",
              "content": "Hello, how are you?"
            }
          ]
        }
      },
      "AnthropicMessage": {
        "title": "Message Response",
        "type": "object",
        "description": "A message response from the API.",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique message identifier.",
            "example": "msg_013Zva2CMHLNnXjNJJKqJ2EF"
          },
          "type": {
            "type": "string",
            "const": "message",
            "description": "Object type, always \"message\"."
          },
          "role": {
            "type": "string",
            "const": "assistant",
            "description": "The role of the message author, always \"assistant\"."
          },
          "content": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AnthropicOutputContentBlock"
            },
            "description": "The generated content blocks."
          },
          "model": {
            "type": "string",
            "description": "The model used to generate the response.",
            "example": "MiniMax-M2.7"
          },
          "stop_reason": {
            "type": "string",
            "enum": [
              "end_turn",
              "max_tokens",
              "stop_sequence",
              "tool_use"
            ],
            "description": "The reason generation stopped.",
            "nullable": true
          },
          "stop_sequence": {
            "type": "string",
            "description": "The stop sequence that triggered stopping, if any.",
            "nullable": true
          },
          "usage": {
            "$ref": "#/components/schemas/AnthropicUsage"
          }
        },
        "required": [
          "id",
          "type",
          "role",
          "content",
          "model",
          "stop_reason",
          "usage"
        ],
        "example": {
          "id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
          "type": "message",
          "role": "assistant",
          "content": [
            {
              "type": "text",
              "text": "Hello! I'm doing well, thank you for asking. How can I help you today?"
            }
          ],
          "model": "MiniMax-M2.7",
          "stop_reason": "end_turn",
          "stop_sequence": null,
          "usage": {
            "input_tokens": 12,
            "output_tokens": 18
          }
        }
      },
      "AnthropicError": {
        "title": "Anthropic Error",
        "type": "object",
        "description": "Error response in Anthropic format.",
        "properties": {
          "type": {
            "type": "string",
            "const": "error"
          },
          "error": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "description": "The error type.",
                "enum": [
                  "invalid_request_error",
                  "authentication_error",
                  "permission_error",
                  "not_found_error",
                  "rate_limit_error",
                  "api_error"
                ]
              },
              "message": {
                "type": "string",
                "description": "A human-readable error message."
              },
              "param": {
                "type": "string",
                "description": "The parameter that caused the error.",
                "nullable": true
              },
              "code": {
                "type": "string",
                "description": "An error code.",
                "nullable": true
              }
            },
            "required": [
              "type",
              "message"
            ]
          },
          "request_id": {
            "type": "string",
            "description": "Unique request identifier for debugging."
          }
        },
        "required": [
          "type",
          "error"
        ],
        "example": {
          "type": "error",
          "error": {
            "type": "invalid_request_error",
            "message": "The model `nonexistent-model` does not exist or you do not have access to it.",
            "param": "model"
          },
          "request_id": "2f8274e5"
        }
      }
    }
  },
  "paths": {
    "/chat/completions": {
      "post": {
        "operationId": "createChatCompletion",
        "tags": [
          "Chat completions"
        ],
        "summary": "Create chat-based completion",
        "description": "Create a chat completion from a list of messages using Infercom's OpenAI-compatible API. Supports streaming, function calling, vision, and JSON output.",
        "security": [
          {
            "api_key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChatCompletionRequest"
              }
            }
          },
          "description": "Chat prompt and parameters",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response, or model output error  (when unsuccessful tool calling or structured response generation)",
            "headers": {
              "inference-id": {
                "$ref": "#/components/headers/InferenceId"
              },
              "x-ratelimit-limit-requests": {
                "$ref": "#/components/headers/RateLimitRequests"
              },
              "x-ratelimit-limit-requests-day": {
                "$ref": "#/components/headers/RateLimitRequestsDay"
              },
              "x-ratelimit-remaining-requests": {
                "$ref": "#/components/headers/RateLimitRemainingRequests"
              },
              "x-ratelimit-remaining-requests-day": {
                "$ref": "#/components/headers/RateLimitRemainingRequestsDay"
              },
              "x-ratelimit-reset-requests": {
                "$ref": "#/components/headers/RateLimitResetRequests"
              },
              "x-ratelimit-reset-requests-day": {
                "$ref": "#/components/headers/RateLimitResetRequestsDay"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ChatCompletionResponse"
                    },
                    {
                      "$ref": "#/components/schemas/ChatCompletionStreamResponse"
                    },
                    {
                      "$ref": "#/components/schemas/ModelOutputError"
                    },
                    {
                      "$ref": "#/components/schemas/GeneralError"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Missing or invalid parameters",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Invalid request body:  - missing property 'model'\""
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                },
                "example": {
                  "error": "Model name is required"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "unauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "408": {
            "description": "Request timeout",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "410": {
            "description": "Gone - model is no longer available (deprecated or removed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error. Unexpected issue on server side.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "503": {
            "description": "Service Temporarily Unavailable",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Temporarily Unavailable"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Python",
            "source": "from openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https://api.infercom.ai/v1\",\n    api_key=\"your-infercom-api-key\",\n)\n\ncompletion = client.chat.completions.create(\n    model=\"MiniMax-M2.7\",\n    messages=[\n        {\"role\": \"user\", \"content\": \"Write a haiku about AI.\"}\n    ]\n)\n\nprint(completion.choices[0].message.content)"
          },
          {
            "lang": "JavaScript",
            "source": "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n  baseURL: 'https://api.infercom.ai/v1',\n  apiKey: process.env['INFERCOM_API_KEY'],\n});\n\nconst completion = await client.chat.completions.create({\n  model: 'MiniMax-M2.7',\n  messages: [{ role: 'user', content: 'Write a haiku about AI.' }],\n});\n\nconsole.log(completion.choices[0].message.content);"
          },
          {
            "lang": "cURL",
            "source": "curl -X POST https://api.infercom.ai/v1/chat/completions \\\n  -H \"Authorization: Bearer $INFERCOM_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"MiniMax-M2.7\",\n    \"messages\": [\n      {\"role\": \"user\", \"content\": \"Write a haiku about AI.\"}\n    ]\n  }'"
          }
        ]
      }
    },
    "/responses": {
      "post": {
        "operationId": "createResponse",
        "tags": [
          "Responses"
        ],
        "summary": "Create a model response",
        "description": "Creates a model response for the given input. Designed for agentic workflows with structured output items (messages, reasoning, function calls). Only `type: \"function\"` tools are supported. Stateless API - supply full conversation history via `input[]` on each request.",
        "security": [
          {
            "api_key": []
          }
        ],
        "requestBody": {
          "required": true,
          "description": "Response creation parameters",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResponseRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response. Returns a ResponseResponse object (non-streaming), or a stream of Server-Sent Events (when stream: true).",
            "headers": {
              "inference-id": {
                "$ref": "#/components/headers/InferenceId"
              },
              "x-ratelimit-limit-requests": {
                "$ref": "#/components/headers/RateLimitRequests"
              },
              "x-ratelimit-limit-requests-day": {
                "$ref": "#/components/headers/RateLimitRequestsDay"
              },
              "x-ratelimit-remaining-requests": {
                "$ref": "#/components/headers/RateLimitRemainingRequests"
              },
              "x-ratelimit-remaining-requests-day": {
                "$ref": "#/components/headers/RateLimitRemainingRequestsDay"
              },
              "x-ratelimit-reset-requests": {
                "$ref": "#/components/headers/RateLimitResetRequests"
              },
              "x-ratelimit-reset-requests-day": {
                "$ref": "#/components/headers/RateLimitResetRequestsDay"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResponseResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralError"
                },
                "examples": {
                  "missing_input": {
                    "summary": "Required field missing",
                    "value": {
                      "error": {
                        "message": "Missing required field: 'input'.",
                        "type": "invalid_request_error",
                        "param": "input",
                        "code": "missing_required_field"
                      }
                    }
                  },
                  "unsupported_model": {
                    "summary": "Model not supported for Responses API",
                    "value": {
                      "error": {
                        "message": "Unsupported model DeepSeek-V3.1 on Response API",
                        "type": "invalid_request_error",
                        "code": "unsupported_model"
                      }
                    }
                  },
                  "unsupported_tool": {
                    "summary": "Built-in tools not supported",
                    "value": {
                      "error": {
                        "message": "built-in/server-side tools are not supported; only \"function\" type tools are accepted",
                        "type": "invalid_request_error",
                        "code": "unsupported_tool_type"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralError"
                }
              }
            }
          },
          "404": {
            "description": "Not found - Model does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralError"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests - Rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "JavaScript",
            "source": "import OpenAI from 'openai';\n\nconst client = new OpenAI({\n  baseURL: 'https://api.infercom.ai/v1',\n  apiKey: process.env['INFERCOM_API_KEY'],\n});\n\nconst response = await client.responses.create({\n  model: 'MiniMax-M2.7',\n  input: 'Explain supervised vs unsupervised learning.',\n});\n\nconsole.log(response.output_text);"
          },
          {
            "lang": "Python",
            "source": "from openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https://api.infercom.ai/v1\",\n    api_key=\"your-infercom-api-key\",\n)\n\nresponse = client.responses.create(\n    model=\"MiniMax-M2.7\",\n    input=\"Explain supervised vs unsupervised learning.\",\n)\n\nprint(response.output_text)"
          },
          {
            "lang": "cURL",
            "source": "curl -X POST https://api.infercom.ai/v1/responses \\\n  -H \"Authorization: Bearer $INFERCOM_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"model\": \"MiniMax-M2.7\",\n    \"input\": \"Explain supervised vs unsupervised learning.\"\n  }'"
          }
        ]
      }
    },
    "/messages": {
      "post": {
        "operationId": "createMessage",
        "tags": [
          "Messages"
        ],
        "summary": "Create a message",
        "description": "Send a structured list of input messages and the model will generate the next message in the conversation. This endpoint is compatible with Anthropic's Messages API format, allowing you to use the Anthropic SDK with Infercom models.",
        "security": [
          {
            "api_key": []
          }
        ],
        "parameters": [
          {
            "name": "anthropic-version",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "example": "2023-06-01"
            },
            "description": "The API version to use. Supported but optional."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "Message creation parameters",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AnthropicMessageRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response. Returns a Message object (non-streaming), or a stream of Server-Sent Events (when stream: true).",
            "headers": {
              "inference-id": {
                "$ref": "#/components/headers/InferenceId"
              },
              "x-ratelimit-limit-requests": {
                "$ref": "#/components/headers/RateLimitRequests"
              },
              "x-ratelimit-limit-requests-day": {
                "$ref": "#/components/headers/RateLimitRequestsDay"
              },
              "x-ratelimit-remaining-requests": {
                "$ref": "#/components/headers/RateLimitRemainingRequests"
              },
              "x-ratelimit-remaining-requests-day": {
                "$ref": "#/components/headers/RateLimitRemainingRequestsDay"
              },
              "x-ratelimit-reset-requests": {
                "$ref": "#/components/headers/RateLimitResetRequests"
              },
              "x-ratelimit-reset-requests-day": {
                "$ref": "#/components/headers/RateLimitResetRequestsDay"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnthropicMessage"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Missing or invalid parameters",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnthropicError"
                },
                "examples": {
                  "missing_field": {
                    "summary": "Required field missing",
                    "value": {
                      "type": "error",
                      "error": {
                        "type": "invalid_request_error",
                        "message": "messages: field required"
                      },
                      "request_id": "abc123"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized - Invalid or missing API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnthropicError"
                }
              }
            }
          },
          "404": {
            "description": "Not found - Model does not exist",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnthropicError"
                },
                "examples": {
                  "model_not_found": {
                    "summary": "Model not found",
                    "value": {
                      "type": "error",
                      "error": {
                        "type": "not_found_error",
                        "message": "The model `nonexistent-model` does not exist or you do not have access to it.",
                        "param": "model",
                        "code": "model_not_found"
                      },
                      "request_id": "def456"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests - Rate limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnthropicError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AnthropicError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Python",
            "source": "import anthropic\n\nclient = anthropic.Anthropic(\n    base_url=\"https://api.infercom.ai\",\n    api_key=\"your-infercom-api-key\",\n)\n\nmessage = client.messages.create(\n    model=\"MiniMax-M2.7\",\n    max_tokens=1024,"
          }
        ]
      }
    },
    "/models": {
      "get": {
        "operationId": "getModelList",
        "tags": [
          "Models"
        ],
        "summary": "Get environment's available model list metadata",
        "description": "List the models available in your Infercom environment, including context length, capabilities, and EU data residency, via the OpenAI-compatible endpoint.",
        "x-mint": {
          "metadata": {
            "title": "List available models"
          }
        },
        "parameters": [
          {
            "in": "query",
            "name": "verbose",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "description": "When set to `true`, returns detailed model metadata including sovereignty information in the `sn_metadata` field (e.g., `region`, `architecture`, `category`, `license`)."
          }
        ],
        "responses": {
          "200": {
            "description": "Successful Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelMetadataList"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Python",
            "source": "from openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https://api.infercom.ai/v1\",\n    api_key=\"your-infercom-api-key\",\n)\n\nmodels = client.models.list()\nfor model in models.data:\n    print(model.id)"
          },
          {
            "lang": "cURL",
            "source": "curl https://api.infercom.ai/v1/models \\\n  -H \"Authorization: Bearer $INFERCOM_API_KEY\""
          }
        ]
      }
    },
    "/models/{model_id}": {
      "get": {
        "operationId": "getModel",
        "tags": [
          "Models"
        ],
        "summary": "Get environment's available model metadata",
        "description": "Retrieve metadata for a single model by ID, including context length, max completion tokens, capabilities, and EU sovereignty region.",
        "x-mint": {
          "metadata": {
            "title": "Get model metadata"
          }
        },
        "parameters": [
          {
            "in": "path",
            "name": "model_id",
            "required": true,
            "schema": {
              "title": "Model Id",
              "type": "string",
              "description": "model id to get metadata"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelMetadata"
                }
              }
            },
            "description": "Successful Response"
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Python",
            "source": "from openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https://api.infercom.ai/v1\",\n    api_key=\"your-infercom-api-key\",\n)\n\nmodel = client.models.retrieve(\"MiniMax-M2.7\")\nprint(model.id)"
          },
          {
            "lang": "cURL",
            "source": "curl https://api.infercom.ai/v1/models/MiniMax-M2.7 \\\n  -H \"Authorization: Bearer $INFERCOM_API_KEY\""
          }
        ]
      }
    },
    "/embeddings": {
      "post": {
        "operationId": "createEmbedding",
        "tags": [
          "Embeddings"
        ],
        "summary": "Create embeddings",
        "description": "Generate vector embeddings for input text. **Note:** This endpoint requires an embedding model to be available. Check `GET /v1/models` for current model availability.",
        "security": [
          {
            "api_key": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EmbeddingsRequest"
              }
            }
          },
          "description": "Texts to embed and parameters",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "headers": {
              "inference-id": {
                "$ref": "#/components/headers/InferenceId"
              },
              "x-ratelimit-limit-requests": {
                "$ref": "#/components/headers/RateLimitRequests"
              },
              "x-ratelimit-limit-requests-day": {
                "$ref": "#/components/headers/RateLimitRequestsDay"
              },
              "x-ratelimit-remaining-requests": {
                "$ref": "#/components/headers/RateLimitRemainingRequests"
              },
              "x-ratelimit-remaining-requests-day": {
                "$ref": "#/components/headers/RateLimitRemainingRequestsDay"
              },
              "x-ratelimit-reset-requests": {
                "$ref": "#/components/headers/RateLimitResetRequests"
              },
              "x-ratelimit-reset-requests-day": {
                "$ref": "#/components/headers/RateLimitResetRequestsDay"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmbeddingsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Missing or invalid parameters",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Invalid request body:  - missing property 'model'\""
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                },
                "example": {
                  "error": "Model name is required"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "unauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "408": {
            "description": "Request timeout",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "410": {
            "description": "Gone - model is no longer available (deprecated or removed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error. Unexpected issue on server side.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "503": {
            "description": "Service Temporarily Unavailable",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Temporarily Unavailable"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Python",
            "source": "from openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https://api.infercom.ai/v1\",\n    api_key=\"your-infercom-api-key\",\n)\n\nresponse = client.embeddings.create(\n    input=[\"text to embed\"],\n    model=\"E5-Mistral-7B-Instruct\",\n)\n\nprint(response.data[0].embedding)"
          },
          {
            "lang": "cURL",
            "source": "curl -X POST https://api.infercom.ai/v1/embeddings \\\n  -H \"Authorization: Bearer $INFERCOM_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"input\": [\"text to embed\"],\n    \"model\": \"E5-Mistral-7B-Instruct\"\n  }'"
          }
        ]
      }
    },
    "/audio/transcriptions": {
      "post": {
        "operationId": "createTranscription",
        "tags": [
          "Audio"
        ],
        "summary": "Transcribes audio into the input language.",
        "description": "Transcribe audio to text in the original language. **Note:** This endpoint requires an audio model (e.g., Whisper) to be available. Check `GET /v1/models` for current model availability.",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/TranscriptionRequest"
              }
            }
          },
          "description": "Audio to transcribe and parameters",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "headers": {
              "inference-id": {
                "$ref": "#/components/headers/InferenceId"
              },
              "x-ratelimit-limit-requests": {
                "$ref": "#/components/headers/RateLimitRequests"
              },
              "x-ratelimit-limit-requests-day": {
                "$ref": "#/components/headers/RateLimitRequestsDay"
              },
              "x-ratelimit-remaining-requests": {
                "$ref": "#/components/headers/RateLimitRemainingRequests"
              },
              "x-ratelimit-remaining-requests-day": {
                "$ref": "#/components/headers/RateLimitRemainingRequestsDay"
              },
              "x-ratelimit-reset-requests": {
                "$ref": "#/components/headers/RateLimitResetRequests"
              },
              "x-ratelimit-reset-requests-day": {
                "$ref": "#/components/headers/RateLimitResetRequestsDay"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/TranscriptionResponse"
                    },
                    {
                      "$ref": "#/components/schemas/TranscriptionStreamResponse"
                    }
                  ]
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "It's a sound effect of a bell chiming, specifically a church bell."
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Missing or invalid parameters",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Invalid request body:  - missing property 'model'\""
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                },
                "example": {
                  "error": "Model name is required"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "unauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "408": {
            "description": "Request timeout",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "410": {
            "description": "Gone - model is no longer available (deprecated or removed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error. Unexpected issue on server side.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "503": {
            "description": "Service Temporarily Unavailable",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Temporarily Unavailable"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Python",
            "source": "from openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https://api.infercom.ai/v1\",\n    api_key=\"your-infercom-api-key\",\n)\n\nwith open(\"audio.mp3\", \"rb\") as audio_file:\n    transcription = client.audio.transcriptions.create(\n        file=audio_file,\n        model=\"Whisper-Large-v3\",\n    )\n\nprint(transcription.text)"
          },
          {
            "lang": "cURL",
            "source": "curl -X POST https://api.infercom.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $INFERCOM_API_KEY\" \\\n  -F file=\"@audio.mp3\" \\\n  -F model=\"Whisper-Large-v3\""
          }
        ]
      }
    },
    "/audio/translations": {
      "post": {
        "operationId": "createTranslation",
        "tags": [
          "Audio"
        ],
        "summary": "Translate audio into English.",
        "description": "Translate audio to English text. **Note:** This endpoint requires an audio model (e.g., Whisper) to be available. Check `GET /v1/models` for current model availability.",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/TranslationRequest"
              }
            }
          },
          "description": "Audio to translate and parameters",
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful Response",
            "headers": {
              "inference-id": {
                "$ref": "#/components/headers/InferenceId"
              },
              "x-ratelimit-limit-requests": {
                "$ref": "#/components/headers/RateLimitRequests"
              },
              "x-ratelimit-limit-requests-day": {
                "$ref": "#/components/headers/RateLimitRequestsDay"
              },
              "x-ratelimit-remaining-requests": {
                "$ref": "#/components/headers/RateLimitRemainingRequests"
              },
              "x-ratelimit-remaining-requests-day": {
                "$ref": "#/components/headers/RateLimitRemainingRequestsDay"
              },
              "x-ratelimit-reset-requests": {
                "$ref": "#/components/headers/RateLimitResetRequests"
              },
              "x-ratelimit-reset-requests-day": {
                "$ref": "#/components/headers/RateLimitResetRequestsDay"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/TranslationResponse"
                    },
                    {
                      "$ref": "#/components/schemas/TranslationStreamResponse"
                    }
                  ]
                }
              },
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "It's a sound effect of a bell chiming, specifically a church bell."
                }
              }
            }
          },
          "400": {
            "description": "Bad Request - Missing or invalid parameters",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Invalid request body:  - missing property 'model'\""
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                },
                "example": {
                  "error": "Model name is required"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized access",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "unauthorized"
                }
              }
            }
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "408": {
            "description": "Request timeout",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "410": {
            "description": "Gone - model is no longer available (deprecated or removed)",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SimpleError"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "headers": {
              "x-ratelimit-limit-requests": {
                "$ref": "#/components/headers/RateLimitRequests"
              },
              "x-ratelimit-limit-requests-day": {
                "$ref": "#/components/headers/RateLimitRequestsDay"
              },
              "x-ratelimit-remaining-requests": {
                "$ref": "#/components/headers/RateLimitRemainingRequests"
              },
              "x-ratelimit-remaining-requests-day": {
                "$ref": "#/components/headers/RateLimitRemainingRequestsDay"
              },
              "x-ratelimit-reset-requests": {
                "$ref": "#/components/headers/RateLimitResetRequests"
              },
              "x-ratelimit-reset-requests-day": {
                "$ref": "#/components/headers/RateLimitResetRequestsDay"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralError"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error. Unexpected issue on server side.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "503": {
            "description": "Service Temporarily Unavailable",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string",
                  "example": "Service Temporarily Unavailable"
                }
              }
            }
          }
        },
        "x-codeSamples": [
          {
            "lang": "Python",
            "source": "from openai import OpenAI\n\nclient = OpenAI(\n    base_url=\"https://api.infercom.ai/v1\",\n    api_key=\"your-infercom-api-key\",\n)\n\nwith open(\"audio.mp3\", \"rb\") as audio_file:\n    translation = client.audio.translations.create(\n        file=audio_file,\n        model=\"Whisper-Large-v3\",\n    )\n\nprint(translation.text)"
          },
          {
            "lang": "cURL",
            "source": "curl -X POST https://api.infercom.ai/v1/audio/translations \\\n  -H \"Authorization: Bearer $INFERCOM_API_KEY\" \\\n  -F file=\"@audio.mp3\" \\\n  -F model=\"Whisper-Large-v3\""
          }
        ]
      }
    }
  },
  "security": [
    {
      "api_key": []
    }
  ]
}
