公告MiMo-V2.6 Flash 正在维护,暂时无法使用。MiniMax H3 视频模型即将升级,升级期间暂停视频生成,预计北京时间 11 月 2 日(周一)08:00 恢复。其他模型一切正常。
新模型DeepSeek V4.1 Flash 与 MiniMax M3.1 Flash 已上线
Inferway
登录注册
跳转至正文
开发者文档

一分钟快速接入 API

通过可直接运行的示例快速发起请求,并根据实际业务场景选择最佳接入方案。

按需导航

选择您当下需要完成的任务

标准流程

从零开始完成一次已验证的 API 调用

  1. 1. 注册账号。 无需信用卡或邀请码,随时直接注册:inferway.ai。
  2. 2. 获取 API Key。 首次登录控制台时,系统会自动生成一把默认密钥(明文只显示一次)。之后可以随时在 API 密钥页轮换或新增。
  3. 3. 发起调用。 设置环境变量 $INFERWAY_API_KEY,并在终端运行下方的流式调用命令。
  4. 4. 验证调用。 在控制台 → 请求中查看请求状态、响应延迟、Token 用量以及模型标识。

首次调用

一条命令跑通流式调用bash
export INFERWAY_API_KEY="inferway_live_..."

curl 'https://api.inferway.ai/v1/chat/completions' \
  -H "Authorization: Bearer $INFERWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "minimax/minimax-m3.1-flash",
  "stream": true,
  "messages": [
    {
      "role": "user",
      "content": "Say hello in one short sentence."
    }
  ]
}'
curl 'https://api.inferway.ai/v1/chat/completions' \
  -H "Authorization: Bearer $INFERWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "minimax/minimax-m3.1-flash",
  "stream": true,
  "messages": [
    {
      "role": "user",
      "content": "Say hello in one short sentence."
    }
  ]
}'
流式传输

非流式请求经由 CDN 网关代理,首字节存在约 100 秒超时限制,长文本生成建议设置 stream=true;短文本补全使用非流式请求完全不受影响。IDE/智能体客户端可以在内部自行选择非流式,而无需暴露任何设置项:Inferway 会将未显式指定上限的非流式请求候选输出总量限制在 4,096 token(且访客若显式传入 max_tokens > 4,096 将被 400 拒绝),并通过 X-Inferway-Max-Tokens-Applied 与 X-Inferway-Max-Tokens-Reason 响应头报告实际应用的单候选上限;客户端支持流式时,更长的输出仍建议使用流式。

无缝接入

沿用您所熟悉的 Chat Completions 接口规范

  • Base URLhttps://api.inferway.ai/v1
  • API 密钥$INFERWAY_API_KEY
  • 模型标识minimax/minimax-m3.1-flash

响应数据结构

流式分片结构示例json
data: {
  "id": "chatcmpl_...",
  "object": "chat.completion.chunk",
  "model": "minimax/minimax-m3.1-flash",
  "choices": [
    {
      "index": 0,
      "delta": { "role": "assistant", "content": "Hello" },
      "finish_reason": null
    }
  ]
}

data: [DONE]

首次调用未成功的排查指引

绝大多数初次调用异常通常源自环境或参数配置,在修改业务代码前请先核对以下常见问题。

异常现象可能原因排查与修复建议
401API Key 缺失、已被吊销、输入有误,或未在当前终端会话中正确 export。前往 控制台 → API 密钥里重新复制一份,重试前先执行 echo $INFERWAY_API_KEY 确认。
404客户端指向了错误的 Base URL,或把 /v1 拼了两次。Base URL 用 https://api.inferway.ai/v1,请求路径 /chat/completions 只写一次。
429触发了账户额度、匿名试玩限额,或单次请求大小限制。查看错误中的 dimension。单次大小超限请缩短输入或调低 max_tokens;其他限额按响应中的 Retry-After 等待。
504 / 超时非流式请求的长文本生成耗时超出了 CDN 网关约 100 秒的首字节超时限制。在请求参数中设置 stream=true。
平滑迁移

已在使用 OpenAI 官方客户端?

OpenAI 兼容环境变量配置bash
# For OpenAI-compatible clients that read OpenAI env vars
export OPENAI_API_KEY="$INFERWAY_API_KEY"
export OPENAI_BASE_URL='https://api.inferway.ai/v1'
export INFERWAY_MODEL='minimax/minimax-m3.1-flash'
复制配置指令给 AI 助手引导您的助手安装 SDK、设置 base_url 与模型 ID、自环境变量读取密钥,并编写流式冒烟测试。指令中仅包含占位符,绝不包含真实密钥。

对话补全示例 — Python

官方 OpenAI Python SDK 原生支持任何兼容接口。仅需替换 base_url 与 API Key 即可。非流式请求适用于短文本生成;长文本任务建议使用流式传输。

Pythonpython
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.inferway.ai/v1",
    api_key=os.environ["INFERWAY_API_KEY"],
)

resp = client.chat.completions.create(
    model="minimax/minimax-m3.1-flash",
    messages=[{"role": "user", "content": "Say hello in one short sentence."}],
    max_tokens=64,
)

print(resp.choices[0].message.content)
客户端接入指南

开发工具集成

MCP(模型上下文协议)

已上线

MCP 端点现已开放。将支持 MCP 规范的客户端配置至下方服务地址,并使用同一把 API Key 进行鉴权即可;工具调用遵循官方标准协议,对话内容同样不落盘。

无可用余额的账户会自动走免费档,而不是收到 402 错误——与 REST API 相同的免费档(90 次/分钟)。注册用户的待遇绝不会低于匿名访客。

MCP 服务接入端点json
{
  "mcpServers": {
    "inferway": {
      "url": "https://api.inferway.ai/v1/mcp/sse",
      "headers": {
        "Authorization": "Bearer $INFERWAY_API_KEY"
      }
    }
  }
}

生产环境上线检查清单

  • API Key 严格限定于服务端 切勿将生产密钥(inferway_live_…)暴露于前端浏览器、客户端应用或公开代码仓库中。
  • 长文本生成推荐流式传输 生成时间可能接近 CDN 首字节超时(约 100 秒)的长任务,请开启 stream=true。
  • 合理设置 max_tokens 上限 根据具体业务场景配置输出上限,以确保费用支出与响应延迟均处于预期范围内。
  • 仅采集与监控元数据 只记录 HTTP 状态、延迟、Token 用量和模型标识;业务日志里不要记录用户的提示词和生成内容。
透明度保障

把业务流量接到 Inferway 之前,建议先看透明度中心,再看服务状态。

API 端点参考

OpenAI 兼容路径保持精简、行为确定;账户、账单、用量统计和智能体相关的操作,由一组独立的自有端点提供。

OpenAI 兼容接口/v1/chat/completions

支持对话交互、工具调用、结构化输出与流式响应,可直接搭配各类官方 SDK 使用。

异步交互接口/v1/interactions

用于视频生成:提交一次即持久化的后台任务,随后轮询直至成片可取回。

控制台管理接口/v1/keys · /v1/billing · /v1/usage · /v1/requests

用于服务端的 API 密钥管理、余额与账单查询、用量统计及请求元数据审计。

端点路径请求方法功能说明
/v1/chat/completionsPOSTOpenAI 兼容的对话补全接口
/v1/interactionsPOST异步视频生成任务(同一路由下的五种操作)
/v1/modelsGET获取已发布模型列表及能力、价格元数据
/v1/mcp/sse · /v1/mcp/messagesGET · POSTMCP 服务协议接入端点(已上线)
/v1/keysGET / POST / DELETE管理直连 API 密钥
/v1/billingGET钱包余额与近期用量统计
/v1/billing/transactionsGET钱包充值与消费交易明细
/v1/billing/checkoutPOST创建在线充值收银台会话
/v1/usageGET按时间聚合的 Token 用量统计
/v1/requestsGET请求元数据历史明细(不含交互正文)
/healthGET网关与核心后端健康检查
/v1/statsGET服务聚合统计数据

异步交互:一个路由,五种操作

视频生成不会在请求内直接返回成片。所有调用都发往 POST /v1/interactions,并在请求体的 op 字段中指明操作;任务本身持久化,连接中断不会丢失已扣费的工作。

op 取值功能说明
prepare_upload为一张输入图片申请一次性上传凭证:JPEG、PNG 或 WebP,单张不超过 10 MiB。
create提交生成任务,返回 interaction ID。下单时按所选时长冻结额度,成片后才扣费,生成失败不收费。
get读取持久化状态与当前阶段;成片交付落定后,返回结果及其下载地址。
cancel尽力而为地取消排队中或执行中的任务。
list按分页和状态过滤查询历史交互任务列表。
  • mode 必须为 background。同步与流式模式一律以 422 拒绝,本路由没有实时返回的变体。
  • create 操作必须携带 Idempotency-Key。同一 Key 配同一请求会返回原始回执且不重复扣费;同一 Key 配不同请求则以 409 失败拒绝。
  • model、mode、duration_seconds 与 prompt 都是请求体的顶层字段。duration_seconds 为必填,且只接受已公布的整秒档位——计费正是按它结算。
  • 使用 get 操作轮询直至状态进入终态。我们自己的控制台每 2 秒轮询一次;本接口不提供 Webhook,也没有长轮询。

公开支持的端点是 POST /v1/chat/completions、POST /v1/interactions 和 GET /v1/models。旧版 POST /v1/completions 不提供:它返回 501(未实现),并在错误信息里指明应改用的 chat completions 路由。POST /v1/messages(Anthropic 格式)已提供并对 API key 开放:每个请求都需带 anthropic-version: 2023-06-01 头。

模型

10

选择模型,查看其已发布的能力事实。API 示例和工具配置会使用同一个模型。

MiniMax M3.1 Flash

对话模型

此模型可用充值本金、充值赠金、邀请奖励和反馈奖励支付;注册赠金、运营赠金和历史发放的赠金不能用于此模型。

模型 ID
minimax/minimax-m3.1-flash
上下文
1,048,576
最大输出
512,000
精度
FP8
工具调用
支持

认证与鉴权

认证请求头格式http
Authorization: Bearer $INFERWAY_API_KEY
  • API 密钥 密钥统一以 inferway_live_… 开头,签发给服务端负载使用。
  • 密钥有效期 在控制台新建密钥时,可以定一个固定的到期时间,也可以设成首次调用后过一段时间到期。倒计时从密钥第一次真正用于请求时开始,查询模型列表、查看视频任务进度都不算;开始后既不会暂停,也不会重置。倒计时还没开始的密钥轮换后,新密钥沿用同样的倒计时。密钥过期后,请求会收到 401,和无效密钥一样。
  • 浏览器应用安全规范 切勿把直连密钥暴露在客户端,请求应走您自有的后端代理。

错误代码

Inferway 返回 OpenAI 兼容的错误对象:{"error": { "type": "...", "message": "...", "code": "..." }}

付费请求在派发前会预留费用:预估输入 Token × 输入价 + max_tokens × 输出价。运营赠送等赠金只在每个 UTC 日的前 300M tokens 内可用;当天用量超过 300M 后,本金、首充奖励、充值活动奖励、邀请奖励和被采纳的反馈奖励仍可照常使用。可用余额耗尽时,符合条件的请求可使用注册免费额度;免费请求不扣钱包。402 表示请求在派发前被拒绝,不产生费用。已认证请求在派发前被 400 拒绝时,会以零 Token、零费用记录在控制台请求历史中,便于事后排查故障。余额以 4 位小数展示;单价以实时价目表为准。

命中缓存的输入 Token 记在 usage.prompt_tokens_details.cached_tokens 中,按缓存价计费。缓存按整块 Token 匹配,较短的提示词可能完全无法命中,此时全部按标准输入价计费。

错误码目录(实时)

/v1/chat/completions 与 /v1/agent/chat 可能返回的全部错误码,直接取自网关自己的目录,不是抄写。每一行都带 HTTP 状态、是否可以安全重试,以及 API 实际发出的原文。结账、账单与密钥管理相关的端点会返回它们各自的错误码,不在本表中。

错误码HTTP 状态码可否重试错误含义
account_benefits_restricted403不可此账户的免费文本额度暂时受限,不会扣减已充值余额;如需复核请联系支持。
admission_paused503可以,先退避服务调整期间暂停接收付费请求,请稍后重试;这个请求本身没有问题。
authentication_error401不可身份验证失败。
conflict409不可与资源的当前状态冲突。
context_length_exceeded400不可提示词超出了模型的上下文窗口。请缩短或压缩对话后重试。
free_quota_exhausted429可以,先退避免费额度已用完,请稍后再试。
free_tier_unavailable503可以,先退避免费通道暂时不可用,请稍后再试。
internal_error500不可网关内部错误
internal_tool_failure500不可内部工具出错。
invalid_image_input400不可The image input was invalid. Check the image rejection code and message.
invalid_request400不可请求格式错误或参数非法
malformed_upstream502不可上游服务返回了无效的响应。
model_unavailable503可以,先退避该模型暂停服务,其他模型不受影响,请稍后再试。
payment_required402不可余额不足,请到控制台的「账单与钱包」页充值。
playground_allowance_exhausted402不可Your daily Playground allowance is used up. Top up at https://inferway.ai/console/billing to continue, or try again after 00:00 UTC.
promotional_credit_not_supported402不可此模型可用充值本金、充值赠金、邀请奖励和反馈奖励支付,不能使用注册赠金、运营赠金和历史发放的赠金。充值后即可使用。
rate_limited429可以,先退避超出速率限制或并发限额
service_unavailable503不可服务出现故障,实时状态见 inferway.ai/status。
upstream_rejected422不可上游服务拒绝了这个请求。
upstream_timeout504可以,先退避上游服务响应超时,请重试。
upstream_unavailable503可以,先退避服务暂时不可用。
错误码、状态与重试策略取自 GET /v1/public/errors

速率限制与配额

此模型适用单独的免费用量限制。达到限额时,请根据响应中的错误说明和重试提示处理。

  • X-RateLimit-Limit. 当前生效的最严限额窗口总配额(访客为并发突发、RPM、RPH 或 RPD;API Key 为密钥每分钟上限)。在 429 超限时,可通过 X-RateLimit-Scope 查看触发的具体窗口。
  • X-RateLimit-Remaining. 当前窗口内剩余的可用请求次数。
  • X-RateLimit-Reset. 当前窗口重置的 Unix 时间戳(秒);若免费每日配额耗尽,则返回 ISO 8601 UTC 时间戳。
  • Retry-After. 收到 429 后应等待的重试秒数。对应所触发窗口的剩余秒数(IP 限额兜底为 60 秒,API Key 限额兜底为 1 秒)。

聊天 API 的 OpenAI 协议兼容性

以下清单如实列出了网关对各项参数的实际支持情况,反映线上运行时的真实处理逻辑。

参数支持状态具体行为
model支持转发前会重写成后端的模型 ID。
messages支持必填且非空,校验后转发给推理引擎。
stream支持流式路径已实现;自动注入 stream_options.include_usage。
temperature支持透传给推理引擎,并记入计费元数据。
top_p支持列于 supported_sampling_parameters,整体透传。
max_tokens支持透传给推理引擎。
stop支持列于 supported_sampling_parameters,转发给推理引擎。
n未验证通过 n 和 best_of 限制在 1..8 个候选响应;钱包余额预留金额随候选数成倍计算。实际候选由下游引擎生成。
logprobs未验证网关不做处理,随原始请求体转发,未对线上响应做过验证。
tools支持supported_features 中声明 ["tools"],转发给推理引擎。
response_format未验证此模型的目录中未声明该能力。
图像输入支持模型元数据声明 input_modalities: ["text","image"];仅支持内联 data URL,每请求最多 8 张图片,对话历史中的图片也计入。

图片输入——最小示例

下面两段最小请求体分别对应两种公开协议,都以内联 base64 / data URL 的形式,把图片发给模型目录中声明了 image_input 的模型。网关在 Playground 里执行的单张图片、单类文件累计字节上限,以及 32 MiB 的请求体上限,在这里同样适用。

下方每个片段同受上方兼容性矩阵图片行的约束:仅内联 data URL,每请求最多 8 张图片;对话历史中的图片也计入。

OpenAI Chat Completions

image_url.url 填一个包含 base64 数据的 data URL,MIME 类型在模型目录允许的范围内即可。

OpenAI Chat Completionsjson
POST https://api.inferway.ai/v1/chat/completions
Authorization: Bearer $INFERWAY_API_KEY
Content-Type: application/json

{
  "model": "minimax/minimax-m3.1-flash",
  "messages": [
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "What is in this image?"},
        {
          "type": "image_url",
          "image_url": {
            "url": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="
          }
        }
      ]
    }
  ]
}

Anthropic Messages

Anthropic 使用 base64 source 对象而不是 data URL;网关会把 Anthropic 形态的请求路由到同样的 image_input 通道。Messages 端点需要带 anthropic-version: 2023-06-01 头,详见上方端点说明。

Anthropic Messagesjson
POST https://api.inferway.ai/v1/messages
Authorization: Bearer $INFERWAY_API_KEY
anthropic-version: 2023-06-01
Content-Type: application/json

{
  "model": "minimax/minimax-m3.1-flash",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": [
        {"type": "text", "text": "What is in this image?"},
        {
          "type": "image",
          "source": {
            "type": "base64",
            "media_type": "image/png",
            "data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="
          }
        }
      ]
    }
  ]
}

最小应用代码示例

最小应用代码示例python
#!/usr/bin/env python3
"""Minimal Inferway chat sample. Requires: pip install openai"""
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.inferway.ai/v1",
    api_key=os.environ["INFERWAY_API_KEY"],
)

messages = [{"role": "system", "content": "You are a helpful assistant."}]

while True:
    user = input("You: ")
    if not user:
        break
    messages.append({"role": "user", "content": user})
    stream = client.chat.completions.create(
        model="minimax/minimax-m3.1-flash",
        messages=messages,
        stream=True,
    )
    reply = ""
    print("Assistant: ", end="", flush=True)
    for chunk in stream:
        if not chunk.choices:
            continue
        piece = chunk.choices[0].delta.content
        if piece:
            reply += piece
            print(piece, end="", flush=True)
    print("\n")
    messages.append({"role": "assistant", "content": reply})

下一步建议