● Developer Docs

接口文档

统一 Base URL、统一鉴权、统一返回结构。所有算法部署在云端函数中,前端只需关心 HTTP 调用。

快速开始

三步完成首次调用:

  1. 注册账号并使用邮箱登录控制台;
  2. 在「API 密钥」页面创建一个 Key,复制完整字符串(仅展示一次);
  3. 按下方示例发起请求,Authorization 头携带 Key。
提示:免费额度为每日 200 次,超出后接口返回 429。算法未被赋予真实后端时返回演示数据,响应中会包含 _demo: true 字段。

Base URL

环境地址
正式环境https://bahnuer.com/api/v1
算法列表GET https://bahnuer.com/api/v1/algorithms
健康检查GET https://www.bahnuer.com/healthz

鉴权方式

所有接口使用 Bearer Token 鉴权,在 HTTP Header 中传入:

request headers
Authorization: Bearer sk-xxxxxxxxxxxxxxxx
Content-Type: application/json
  • Key 仅在创建时完整展示一次,请妥善保存到服务端环境变量,不要写入前端代码或 Git 仓库。
  • 泄露时可立即在控制台吊销并重建,吊销立即生效。
  • 未携带 Key 返回 40101,Key 无效或已吊销返回 40102。

调用示例

cURL
curl -X POST "$API_BASE//vision/chest-xray" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "data:image/jpeg;base64,<你的图片 Base64>", "threshold": 0.35, "with_box": true}'
Python
import os, httpx

API_BASE = "https://你的域名/api/v1"
API_KEY = os.environ["HEALTHCARE_API_KEY"]

resp = httpx.post(
    f"{API_BASE}//vision/chest-xray",
    headers={"Authorization": f"Bearer {API_KEY}"},
    json={"image": "data:image/jpeg;base64,<你的图片 Base64>", "threshold": 0.35, "with_box": true},
    timeout=30,
)
resp.raise_for_status()
print(resp.json())
Node.js
const res = await fetch(`https://你的域名/api/v1//vision/chest-xray`, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.HEALTHCARE_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"image": "data:image/jpeg;base64,<你的图片 Base64>", "threshold": 0.35, "with_box": true}),
});

const data = await res.json();
console.log(data);
展开全部算法的调用示例

胸部 X 光影像分析 —— POST https://bahnuer.com/api/v1/vision/chest-xray

cURL
curl -X POST "$API_BASE//vision/chest-xray" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "data:image/jpeg;base64,<你的图片 Base64>", "threshold": 0.35, "with_box": true}'

心电心律失常分析 —— POST https://bahnuer.com/api/v1/signal/ecg-arrhythmia

cURL
curl -X POST "$API_BASE//signal/ecg-arrhythmia" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"signal": [0.12, 0.15, 0.09, -0.02], "sample_rate": 250, "lead": "II"}'

健康风险评估 —— POST https://bahnuer.com/api/v1/predict/health-risk

cURL
curl -X POST "$API_BASE//predict/health-risk" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"age": 46, "gender": "male", "bmi": 26.8, "indicators": {"fasting_glucose": 7.1, "systolic_bp": 138, "hdl": 0.9}, "lifestyle": {"smoking": true, "exercise_freq": 1}}'

医疗文本结构化抽取 —— POST https://bahnuer.com/api/v1/nlp/medical-extract

cURL
curl -X POST "$API_BASE//nlp/medical-extract" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text": "患者男性,52 岁,多饮多尿 3 个月,确诊 2 型糖尿病,现口服二甲双胍 0.5g 每日两次。", "doc_type": "outpatient"}'

运动姿态与动作评估 —— POST https://bahnuer.com/api/v1/vision/sport-pose

cURL
curl -X POST "$API_BASE//vision/sport-pose" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"video": "data:video/mp4;base64,<你的视频 Base64>", "action": "squat", "with_keypoints": false}'

智能计步与步长估计 —— POST https://bahnuer.com/api/v1/motion/step-count

cURL
curl -X POST "$API_BASE//motion/step-count" \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"x": [120, 118, 122, 119, 121, 117], "y": [80, 82, 79, 81, 83, 78], "z": [9810, 10320, 12410, 9900, 10380, 12460], "sample_rate": 50}'

统一返回结构

字段类型说明
request_idstring本次请求唯一 ID,排查问题时请提供
codeint0 表示成功,其余见错误码表
messagestring结果描述文案
dataobject算法业务数据,各算法字段不同

响应头同时返回 X-Request-Id、X-Quota-Limit、X-Quota-Remaining,便于客户端做配额提示。

错误码

codeHTTP含义说明
0200成功请求正常处理完成。
40101401缺少鉴权请求头未携带 Authorization,请检查 Bearer Token。
40102401Key 无效API Key 不存在或已被吊销,请到控制台确认。
40103403算法未开通当前 Key 未开通该算法,请先在控制台申请权限。
40104403来源不合法云函数侧内部凭证校验失败,请经门户网关调用,勿直连算法后端。
40105503后端未校验算法后端未通过内部凭证校验,网关已拒绝转发,需管理员在算法运维页重新校验。
42901429超出配额当日调用量已达上限,可升级套餐或次日重试。
42201422参数错误必填参数缺失或类型不正确,见 detail 字段。
50001502算法后端异常上游算法执行失败,request_id 可用于排查。
50002504算法超时单次请求超过 30 秒,请缩小输入后重试。

配额与限流

  • 免费额度:每日 200 次(按自然日统计,次日自动重置)。
  • 付费套餐:按月额度累计,超出后返回 42901,可在控制台申请提额。
  • 单请求超时 30 秒;单次 body 建议不超过 8MB,超大影像请先压缩或走对象存储 URL 方式。

计费说明

算法单次价格计费口径
胸部 X 光影像分析 /vision/chest-xray ¥0.06 成功调用计入,5xx 与超时不计费
心电心律失常分析 /signal/ecg-arrhythmia ¥0.04 成功调用计入,5xx 与超时不计费
健康风险评估 /predict/health-risk ¥0.03 成功调用计入,5xx 与超时不计费
医疗文本结构化抽取 /nlp/medical-extract ¥0.02 成功调用计入,5xx 与超时不计费
运动姿态与动作评估 /vision/sport-pose ¥0.05 成功调用计入,5xx 与超时不计费
智能计步与步长估计 /motion/step-count ¥0.02 成功调用计入,5xx 与超时不计费