Kimi k2.5

kimi-k2.5

Use the Kimi K2.5 API for chat and reasoning. Send conversation messages and add tools on routes that support tool calling. Build an assistant that can answer questions and coordinate application actions. Compare the available provider routes, request examples, and usage prices on OpenAny.

Published price
From $0.587 / 1M tokens
Billing unit
/ 1M tokens
Context / Max output
256K / 256K
Listed routes
2
Base URL
https://api.openany.si/v1
POST
/v1/chat/completions
Authentication
Authorization: Bearer $OPENANY_API_KEY

Provider

Published price $0.587 / 1M tokens

Request parameters

ParameterType / rangeDefault valueRequiredDescription
messagesarray—YesThe conversation messages
modelstring—YesThe model to use
frequency_penaltynumber · -2 ~ 20NoPenalty for repeated tokens
max_completion_tokensinteger · >= 1—NoMaximum visible completion tokens
max_tokensinteger · >= 1—NoMaximum completion tokens
ninteger · 1 ~ 1281NoNumber of choices to generate
presence_penaltynumber · -2 ~ 20NoPenalty for previously used tokens
response_formatobject—NoFormat constraint for the response
routeobject—NoOpenAny route configuration, including provider and other routing parameters
route_modestring—NoThe mode for routing the request
seedinteger—NoSeed for deterministic sampling
stopstring | array—NoSequences that stop generation
streambooleanfalseNoWhether to stream the response
stream_optionsobject—NoStreaming options, such as include_usage.
temperaturenumber · 0 ~ 21NoSampling temperature
thinkingobject—NoKimi thinking configuration. K2.6 supports enabled or disabled; K2.7 Code only supports enabled.
tool_choicestring | object—NoTool selection policy: string modes none, auto, or required, or an object selecting a specific tool
toolsarray—NoTools available to the model
top_pnumber · 0 ~ 11NoNucleus sampling probability

Request example

curl 'https://api.openany.si/v1/chat/completions' \
  -H "Authorization: Bearer $OPENANY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "messages": [
    {
      "content": "hello",
      "role": "user"
    }
  ],
  "model": "kimi-k2.5",
  "frequency_penalty": 0,
  "n": 1,
  "presence_penalty": 0,
  "stream": false,
  "temperature": 1,
  "top_p": 1
}'

Response example

Configured response example · not a live result

JSON
{
  "id": "cc0e9f7a7bbe0ead34787584381dd1d4",
  "model": "kimi-k2.5",
  "usage": {
    "total_tokens": 102,
    "prompt_tokens": 8,
    "completion_tokens": 94,
    "prompt_tokens_details": {
      "cached_tokens": 8
    },
    "completion_tokens_details": {
      "reasoning_tokens": 83
    }
  },
  "object": "chat.completion",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?",
        "reasoning_content": "The user said \"hello\". This is a simple greeting. I should respond in a friendly, helpful manner. Since there's no specific question or task yet, I'll keep it open-ended to invite further conversation.\n\nI should:\n1. Greet them back\n2. Ask how I can help them today\n3. Keep it concise and warm\n\nNo complex reasoning needed here - just a standard polite greeting response."
      },
      "finish_reason": "stop"
    }
  ],
  "created": 1793805552,
  "openmodels_cost": 277
}

Error handling

400Check the model ID and request fields.
429Retry with exponential backoff.
5xxRetry only temporary provider failures.

JSON Schema

{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "model",
    "messages"
  ],
  "properties": {
    "n": {
      "type": "integer",
      "default": 1,
      "maximum": 128,
      "minimum": 1,
      "description": "Number of choices to generate"
    },
    "seed": {
      "type": "integer",
      "description": "Seed for deterministic sampling"
    },
    "stop": {
      "type": [
        "string",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Sequences that stop generation"
    },
    "model": {
      "type": "string",
      "description": "The model to use"
    },
    "route": {
      "type": "object",
      "description": "OpenAny route configuration, including provider and other routing parameters"
    },
    "tools": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "Tools available to the model"
    },
    "top_p": {
      "type": "number",
      "default": 1,
      "maximum": 1,
      "minimum": 0,
      "description": "Nucleus sampling probability"
    },
    "stream": {
      "type": "boolean",
      "default": false,
      "description": "Whether to stream the response"
    },
    "messages": {
      "type": "array",
      "items": {
        "type": "object"
      },
      "description": "The conversation messages"
    },
    "thinking": {
      "type": "object",
      "description": "Kimi thinking configuration. K2.6 supports enabled or disabled; K2.7 Code only supports enabled."
    },
    "max_tokens": {
      "type": "integer",
      "minimum": 1,
      "description": "Maximum completion tokens"
    },
    "route_mode": {
      "type": "string",
      "description": "The mode for routing the request"
    },
    "temperature": {
      "type": "number",
      "default": 1,
      "maximum": 2,
      "minimum": 0,
      "description": "Sampling temperature"
    },
    "tool_choice": {
      "anyOf": [
        {
          "enum": [
            "none",
            "auto",
            "required"
          ],
          "type": "string"
        },
        {
          "type": "object"
        }
      ],
      "description": "Tool selection policy: string modes none, auto, or required, or an object selecting a specific tool"
    },
    "stream_options": {
      "type": "object",
      "description": "Streaming options, such as include_usage."
    },
    "response_format": {
      "type": "object",
      "description": "Format constraint for the response"
    },
    "presence_penalty": {
      "type": "number",
      "default": 0,
      "maximum": 2,
      "minimum": -2,
      "description": "Penalty for previously used tokens"
    },
    "frequency_penalty": {
      "type": "number",
      "default": 0,
      "maximum": 2,
      "minimum": -2,
      "description": "Penalty for repeated tokens"
    },
    "max_completion_tokens": {
      "type": "integer",
      "minimum": 1,
      "description": "Maximum visible completion tokens"
    }
  }
}

Model API questions

How do I call Kimi k2.5 through OpenAny?

Use model ID kimi-k2.5 with an OpenAny key and the operation published in this model's API tab. The model API base is https://api.openany.si/v1. Confirm the protocol and request schema; model availability does not imply every OpenAI API operation is supported.

How is Kimi k2.5 billed?

Compare the published rate and billing unit of the selected provider route. Input, output and cache token rates may differ. Image, audio and video models can use other units. Recorded usage determines the charge under that route's billing contract.

Are Community and Verified routes the same as an official publisher API?

No. Inspect the provider name and supply classification for the specific route. A marketplace listing or a supply label is not a claim of publisher endorsement, identical service or measured uptime. Different route prices may reflect different supply and conditions.

Where do these prices come from, and when were they updated?

Rates come from the provider routes in OpenAny's public model catalog, not an independent quote from the model publisher. The catalog does not supply a price update timestamp. A page or catalog snapshot date is not a price revision date. Compare supply, billing units, tiers and conditions; a lower listed rate alone does not establish equivalent service or explain the price difference.

Use Kimi k2.5 with your agent

Inspect endpoint contracts and confirm availability and pricing before a paid call.