火山引擎api字段类型错误需据响应提示确认:含“invalid parameter type”等才属类型不匹配;字符串字段须带双引号,数组字段须套中括号,布尔值字段须为小写字符串"true"/"false"。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

确认错误是否真由参数类型引发
当火山引擎API返回400错误且响应体含“invalid parameter type”或“expected string but got number”类提示时,才说明是字段类型不匹配;若只报“bad request”或空错误信息,需先用jsonlint验证整个payload语法是否合法。
字符串型字段误传为数字或布尔值
方法一:检查JSON中带引号的字段是否被代码自动转义或省略
例如Python用json.dumps({"temperature": 0.8})生成的是{"temperature":0.8}——这在火山引擎看来是number类型;而接口文档明确要求temperature为字符串时,必须写成{"temperature":"0.8"}。【漏掉双引号会导致400且无明确提示】
方法二:前端JavaScript中避免用+拼接导致类型丢失
错误写法:const body = '{"model":"' + modelId + '","temperature":' + temp + '}' → 若temp=0.75,结果变成"temperature":0.75(数字);正确写法应统一用JSON.stringify()包裹整个对象。
数组字段传了单个对象而非数组
第一步:定位文档中标注为Array或array of object的字段
常见于input_materials、tools、stop_sequences等字段。
第二步:确认实际发送内容是否套了方括号
错误示例(传单个对象):"input_materials":{"url":"https://a.mp4","duration":12.3}
正确示例(必须为数组):"input_materials":[{"url":"https://a.mp4","duration":12.3}]。【少一层中括号是400高频原因,尤其在调试时手动构造JSON易忽略】
第三步:检查SDK封装层是否隐式降维
某些低版本SDK会把单元素数组自动展平,建议打印出最终发出的raw body再比对。
布尔值字段未按文档要求转为小写字符串
部分接口(如智能创作混剪的enable_watermark)明确要求值为"true"或"false"字符串,而非JSON原生true/false布尔字面量。直接传true会被解析为布尔类型,触发类型校验失败。
这一步最容易在TypeScript或Java等强类型语言中踩坑:即使变量声明为String enableWatermark = "true",若后续被Jackson/Gson自动序列化为布尔值,就前功尽弃。【务必在最终HTTP请求体里确认该字段两侧有英文双引号】











