必须严格匹配签名认证、请求头与JSON结构,否则返回401/400;需在火山引擎控制台创建API密钥并安全保存Access Key ID和Secret Access Key;Postman中配置正确地域URL、Content-Type/x-content-sha256/X-Date三头,并通过Pre-request Script动态生成HMAC-SHA256签名Authorization头。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Postman中成功调用火山引擎豆包API并拿到有效响应,必须严格匹配签名认证要求、请求头格式与JSON体结构,漏掉任意一项都会返回401或400错误。
获取并配置API密钥
登录火山引擎控制台 → 进入“火山方舟” → 左侧菜单点击“API密钥管理” → 点击“创建密钥”。
创建成功后,页面会一次性显示【Access Key ID】和【Secret Access Key】,后者仅显示一次,关闭页面即不可再查,务必立即复制保存到安全位置。
注意:这两个密钥不能直接用于Postman的Authorization字段——豆包API不支持Bearer Token或Basic Auth,必须参与HMAC-SHA256签名计算。
立即进入“豆包AI人工智官网入口”;
立即学习“豆包AI人工智能在线问答入口”;
构造合法的POST请求
在Postman中新建一个请求,将请求方法设为POST。
URL栏填入正式调用地址:https://ark.cn-beijing.volces.com/api/v3/chat/completions(区域需与你创建应用时选择的地域一致,如华南区应替换为cn-guangzhou)。
这一步若填错地域域名,会直接返回503 Service Unavailable,且错误信息不提示具体原因。
设置必需的Headers
切换到Headers标签页,手动添加以下三项:
Content-Type → application/json
x-content-sha256 → 对空字符串做SHA256哈希后取十六进制小写值(即e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855)
X-Date → 使用GMT格式的时间戳,例如Tue, 19 Aug 2026 19:23:00 GMT,必须与你本地系统时间误差在±15分钟内,否则签名验证失败。
填写带签名的请求体(Body)
切换到Body → 选择raw → JSON。
粘贴如下结构(请按实际模型名和对话内容修改):
{
"model": "doubao-1.5-pro-32k-250115",
"messages": [
{"role": "system", "content": "你是一个严谨的技术助手。"},
{"role": "user", "content": "请用一句话解释HMAC签名原理。"}
]
}
注意:model字段必须使用你在火山方舟中已开通权限的具体模型ID,不可用占位符或旧版本名称,否则返回404 Not Found。
手动补全签名头(关键步骤)
Postman原生不支持动态生成豆包所需的Authorization头,必须借助Pre-request Script补全。
点击请求右上角“…”,选择“Edit” → 切换到“Pre-request Script”标签页。
粘贴以下JavaScript代码(需提前在环境变量中存入AccessKey和SecretKey):
const cryptoJS = require('crypto-js');
const accessKey = pm.environment.get("access_key");
const secretKey = pm.environment.get("secret_key");
const date = new Date().toUTCString();
pm.request.headers.upsert({key:'X-Date', value:date});
const contentHash = "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855";
pm.request.headers.upsert({key:'x-content-sha256', value:contentHash});
const signature = cryptoJS.enc.Base64.stringify(cryptoJS.HmacSHA256(`POST\n/api/v3/chat/completions\nX-Date:${date}\nx-content-sha256:${contentHash}`, secretKey));
const authHeader = `HMAC-SHA256 Credential=${accessKey}/20260819/cn-beijing/ark/request, SignedHeaders=content-type;host;x-content-sha256;x-date, Signature=${signature}`;
pm.request.headers.upsert({key:'Authorization', value:authHeader});
这段脚本会自动注入X-Date、x-content-sha256和Authorization三组头,其中Authorization值含日期、密钥派生签名及固定服务路径,缺一不可。


















