度裁 · 开放平台 / API 参考

客户开放 API 接入指南

更新时间:2026-08-08 · 适用对象:接入商家、渠道与 ISV · 协议:HTTP / JSON

能力概览

本指南面向需要集成度裁开放 API的客户。您可通过统一的 HTTP 接口完成商家入驻、尺码与商品准备、智能荐码、拍照量体、下单前适配检验与 AI 试穿等能力。 生成与建模细节由平台托管,客户只需按本文约定传参与处理响应。

能力说明典型接口
商家入驻 注册获取 API Key;查询入驻状态与清单 /merchant/register/merchant/me
尺码与商品 上传尺码表、绑定商品,供荐码使用 /merchant/size-charts/merchant/products
智能荐码 根据身高体重/围度与尺码表给出主推码与置信度 /size/recommend
下单前检验 校验用户所选尺码相对主推结果的风险等级 /fit/pre-order-check
量体与人体模型 会话化量体、生成并保存人体模型后荐码 /fitting/session/*
AI 试穿 异步合成试穿效果图 /fitting/tryon/fitting/tryon/{task_id}
说明
本文描述客户可调用的开放接口。平台管理、运维批处理及内部引擎实现不属于客户接入范围。

前提条件

  1. 通过 POST /merchant/register 完成商家注册,或由平台为您开通商家账号。
  2. 妥善保存响应中的 api_key(仅返回一次)。后续请求在 Header 中携带该 Key。
  3. 商家状态为 approvedverified 后,方可调用业务接口(荐码、尺码表、量体、试穿等)。待审核(pending)仅可查询入驻信息。
  4. 调用接口时,将本文中的 Base URL 替换为平台下发的环境地址。
环境Base URL
调试环境http://127.0.0.1:8200
生产环境以平台正式下发为准

业务接口统一前缀:/api/v1。探活:GET /health(无业务前缀)。

通用约定

鉴权

字段类型传参方式必选描述示例值
X-Merchant-Api-Key String Header 是* 商家 API Key。注册接口除外。 mk_xxxx
Content-Type String Header JSON 接口固定为 application/json;上传图片类接口为 multipart/form-data。 application/json
X-Request-Id String Header 请求追踪 ID;未传时由服务端生成并回写。 req_demo_001

终端用户身份

涉及 C 端用户的接口,须同时传递渠道身份(Query 或 Body,与接口约定一致):

字段类型传参方式必选描述示例值
channel String Body / Query 渠道标识。常用:platform_wechat、isv_taobao、isv_jd、private_youzan、private_weimob。 platform_wechat
channel_user_ref String Body / Query 渠道侧用户唯一标识(如 openid)。禁止跨渠道混用。 oXXXX

统一错误体

{
  "error": {
    "code": "UNAUTHORIZED",
    "message": "缺少 X-Merchant-Api-Key",
    "details": {}
  },
  "request_id": "uuid-or-client-id"
}

商家入驻

注册商家

发送 POST 请求完成入驻,获取 merchant_idapi_key

POST{Base URL}/api/v1/merchant/register
重要
api_key 仅在本接口响应中返回一次,请立即安全保存。服务端仅保存哈希,无法再次下发明文。

入参描述

字段类型传参方式必选描述示例值
shop_nameStringBody店铺名称,1~120 字。示例旗舰店
channelStringBody入驻渠道标签,默认 taobao。taobao
contactStringBody联系方式(邮箱/手机等)。ops@example.com

出参描述

字段类型描述示例值
merchant_idString商家唯一 ID。t_xxxx
statusString入驻状态:pending / approved / verified / rejected。pending
api_keyString商家 API Key(仅本次返回)。mk_xxxx
onboardingObject入驻清单完成情况摘要。

请求示例

curl --location '{Base URL}/api/v1/merchant/register' \
--header 'Content-Type: application/json' \
--data '{
  "shop_name": "示例旗舰店",
  "channel": "taobao",
  "contact": "ops@example.com"
}'

响应示例

{
  "merchant_id": "t_xxxx",
  "shop_name": "示例旗舰店",
  "channel": "taobao",
  "status": "pending",
  "api_key": "mk_xxxx",
  "api_key_note": "请妥善保存,服务端仅存哈希"
}

查询当前商家 / 入驻清单

GET{Base URL}/api/v1/merchant/me
GET{Base URL}/api/v1/merchant/onboarding

待审核状态亦可调用。清单项通常包括:尺码表、商品绑定、尺码映射推送等。清单齐备后可调用 POST /merchant/onboarding/submit 提交验收。

尺码表与商品

荐码依赖商家尺码表。请先上传尺码表,再将商品绑定到对应 size_chart_id

上传 / 更新尺码表

POST{Base URL}/api/v1/merchant/size-charts

入参描述

字段类型传参方式必选描述示例值
product_idStringBody商品或表业务 ID。pants_001
size_chartArrayBody尺码行列表;围度字段为 [low, high],尺码须单调递增。见示例
chart_idStringBody尺码表 ID,默认等于 product_id。chart_demo_pants
categoryStringBody品类,默认 pants。pants
fit_intentStringBody版型意图,默认 regular。regular

请求示例

curl --location '{Base URL}/api/v1/merchant/size-charts' \
--header 'Content-Type: application/json' \
--header 'X-Merchant-Api-Key: mk_xxxx' \
--data '{
  "product_id": "pants_001",
  "chart_id": "chart_demo_pants",
  "category": "pants",
  "size_chart": [
    { "size": "M", "waist_girth": [70, 74], "hip_girth": [94, 98], "inside_leg_height": [73, 75] },
    { "size": "L", "waist_girth": [74, 78], "hip_girth": [98, 102], "inside_leg_height": [74, 76] }
  ]
}'

绑定商品

POST{Base URL}/api/v1/merchant/products
字段类型传参方式必选描述示例值
product_idStringBody商品 ID。pants_001
size_chart_idStringBody须为本商家已存在的尺码表。chart_demo_pants
titleStringBody商品标题。直筒西裤
num_iidStringBody外部平台商品数字 ID(如淘宝)。123456

列表查询:GET /merchant/size-chartsGET /merchant/products

智能荐码

根据用户体征与尺码表进行规则荐码,返回主推尺码、备选尺码与置信度分流建议。

POST{Base URL}/api/v1/size/recommend
说明
product_idsize_chart_id 至少提供一个。建议同时传入腰围、臀围以提高置信度。

入参描述

字段类型传参方式必选描述示例值
statureNumberBody身高(cm),建议 140~200。165
body_mass_kgNumberBody体重(kg),建议 35~150。52
genderStringBody性别,默认 female。female
waist_girthNumberBody腰围(cm)。72
hip_girthNumberBody臀围(cm)。96
product_idStringBody条件商品 ID(与 size_chart_id 二选一)。pants_001
size_chart_idStringBody条件尺码表 ID(与 product_id 二选一)。chart_demo_pants
fit_preferenceStringBody合身偏好。regular
categoryStringBody品类;部分品类可能触发降级策略。pants

出参描述

字段类型描述示例值
assessment_idString本次评估 ID。asm_xxxx
primaryString主推尺码。M
alternativeString备选尺码,可能为空。L
confidenceNumber综合置信度,0~1。0.86
confidence_levelStringhigh / medium / low。high
confidence_actionString建议的前端分流动作。
confidence_messageString面向用户的展示文案。
per_sizeArray各尺码得分与差距明细。

请求示例

curl --location '{Base URL}/api/v1/size/recommend' \
--header 'Content-Type: application/json' \
--header 'X-Merchant-Api-Key: mk_xxxx' \
--data '{
  "stature": 165,
  "body_mass_kg": 52,
  "gender": "female",
  "waist_girth": 72,
  "hip_girth": 96,
  "product_id": "pants_001"
}'

体征估计(可选)

若需单独估计围度,可先调用:

POST{Base URL}/api/v1/body/estimate

入参含 stature(必填)、body_mass_kggender 及可选自填围度;出参返回估计腰臀胸肩等围度与置信度。

下单前检验

将用户所选尺码与荐码结果比对,返回通过 / 软警告 / 硬警告 / 阻断等级,供下单页决策。

POST{Base URL}/api/v1/fit/pre-order-check

入参描述

字段类型传参方式必选描述示例值
selected_sizeStringBody用户选择的尺码。L
primaryStringBody荐码主推尺码。M
alternativeStringBody荐码备选尺码。L
confidenceNumberBody荐码置信度。0.86
scoreNumberBody主推匹配分。0.91
allow_blockBooleanBody是否允许返回 BLOCK,默认 false。false

出参描述

字段类型描述示例值
resultStringPASS / WARN_SOFT / WARN_HARD / BLOCK。WARN_SOFT
riskString风险级别。
messageString面向用户的提示文案。
require_ackBoolean是否需要用户二次确认。true

量体与人体模型

拍照量体采用会话化调用:先创建会话,再按步骤完成量体、生成模型、保存模型,最后基于会话荐码或做下单前检验。 适合嵌入 H5 / 小程序量体组件。

推荐调用顺序

  1. POST /fitting/session — 创建会话
  2. POST .../suggest-gender(可选)— 正面照性别建议
  3. POST .../measure/start — 上传三视图并开始量体
  4. POST .../model/generate — 生成预览模型
  5. POST .../model/correct(可选)— 微调后重生成
  6. POST .../model/save — 固化人体模型,取得 body_model_id
  7. POST .../recommend / .../pre-order-check — 会话内荐码与检验

创建量体会话

POST{Base URL}/api/v1/fitting/session

入参描述

字段类型传参方式必选描述示例值
channelStringBody渠道标识。platform_wechat
channel_user_refStringBody渠道用户标识。oXXXX
genderStringBody初始性别。female
contextObjectBody业务上下文,如 product_id、size_chart_id、sku_id。{}

出参描述

字段类型描述示例值
session_idString会话 ID。fsess_xxxx
person_idString平台人物 ID。psn_xxxx
body_model_idString已有人体模型 ID;新会话通常为 null。null

开始量体

POST{Base URL}/api/v1/fitting/session/{session_id}/measure/start

Content-Type:multipart/form-data

字段类型传参方式必选描述示例值
imagesFile×3Form正 / 侧 / 背三视图,顺序与 poses 对齐。
posesStringFormJSON 数组字符串。["front","side","back"]
statureNumberForm身高 cm。165
body_mass_kgNumberForm体重 kg。52
genderStringForm用户选择的性别,默认 female。female
说明
请使用全身、光照良好、单人照片。后续 model/generatemodel/save 完成后,使用返回的 body_model_id 关联试穿与复用量体结果。

会话内荐码 / 检验

POST{Base URL}/api/v1/fitting/session/{session_id}/recommend
POST{Base URL}/api/v1/fitting/session/{session_id}/pre-order-check

基于会话当前量体与上下文尺码表执行,字段语义与独立荐码 / 检验接口一致。

AI 试穿

AI 试穿为异步接口,调用分为两步:

  1. 创建任务:提交试穿请求,获取唯一 task_id
  2. 查询结果:使用 task_id 轮询任务状态,直至完成并获取效果图 URL。

步骤 1:创建任务

POST{Base URL}/api/v1/fitting/tryon
说明
任务创建后立即返回 task_id。缺人像图且缺服装图(未传 URL、商品也无 flatlay)时返回 400 TRYON_IMAGE_MISSING
前台请轮询 GET /fitting/tryon/{task_id}不要POST /fitting/jobs/run 当试穿轮询(该接口是管理端批处理,会顺带扫授权/outbox)。

入参描述

字段类型传参方式必选描述示例值
product_idStringBody建议平台商品 ID,用于关联服饰图与业务记录。prod_demo_pants
sku_idStringBodySKU 标识。sku_001
sizeStringBody尺码快照。M
colorStringBody颜色快照。
channelStringBody渠道标识。platform_wechat
channel_user_refStringBody渠道用户标识。oXXXX
person_image_urlStringBody条件人像图公网 URL。显式传入优先;与服装图一起构成出图输入。https://…/person.jpg
garment_image_urlStringBody条件服装图公网 URL。显式传入优先;缺省则用商品已维护的 OSS flatlay。https://…/flatlay.jpg

出参描述

字段类型描述示例值
task_idString异步任务唯一 ID。ttask_xxxx
statusStringpending / processing / completed / failed。pending
image_urlString效果图 URL;创建时通常为 null。null
estimated_secondsNumber参考耗时(秒),以轮询结果为准。30

请求示例

curl --location '{Base URL}/api/v1/fitting/tryon' \
--header 'Content-Type: application/json' \
--header 'X-Merchant-Api-Key: mk_xxxx' \
--data '{
  "product_id": "prod_demo_pants",
  "person_image_url": "https://example.com/person.jpg",
  "garment_image_url": "https://example.com/flatlay.jpg",
  "channel": "platform_wechat",
  "channel_user_ref": "oXXXX"
}'

响应示例

{
  "task_id": "ttask_xxxx",
  "status": "pending",
  "image_url": null,
  "message": "试穿任务已提交",
  "estimated_seconds": 30
}

步骤 2:查询结果

GET{Base URL}/api/v1/fitting/tryon/{task_id}?channel=…&channel_user_ref=…

建议每隔 2~3 秒调用 GET /fitting/tryon/{task_id},直至 completedfailed。后台对阿里仍为 processing 的任务只刷新 last_poll_at,失败才累加 retry_count(上限 8,另有 120 分钟时间窗)。

status含义处理建议
pending / processing排队或生成中继续轮询
completed成功使用 image_url 展示
failed失败展示 error_message,可检查图片后重试
curl --location '{Base URL}/api/v1/fitting/tryon/ttask_xxxx?channel=platform_wechat&channel_user_ref=oXXXX' \
--header 'X-Merchant-Api-Key: mk_xxxx'

输入图片要求

高质量输入是高质量输出的前提。人像与服饰图须为公网可访问的 HTTP/HTTPS URL。

人像图

  • 文件大小 5KB~5MB;边长 150~4096px;JPG / JPEG / PNG / BMP / HEIC
  • 全身正面、光照良好;画面中有且仅有一人;手部尽量完整
  • 避免侧身、坐姿、半身、过暗或模糊照片

服饰图

  • 尺寸与格式要求同上
  • 建议平铺、单件、背景干净、少褶皱;主体占比宜大
  • 可通过 POST /fitting/catalog/items/{product_id}/images 维护商品图(如 main / flatlay)

历史记录:GET /fitting/tryon/records(需携带渠道身份)。

错误码

HTTPcode说明
400INVALID_ARGUMENT参数非法或缺失
400TRYON_IMAGE_MISSING试穿缺人像图与服装图(未传 URL 且商品无 flatlay)
401UNAUTHORIZED缺少或错误的商家 API Key
403FORBIDDEN商家待审核或已驳回,业务接口不可用
404CHART_NOT_FOUND / TRYON_TASK_NOT_FOUND 等资源不存在或不属于当前身份
503对应能力暂不可用,请稍后重试或联系对接支持