平台指南
对模型提供商的同意
为什么部分提供商需要你的同意,如何给予或撤回同意,以及 API 客户端如何处理同意错误。
打开页脚和账户菜单中的同意页面。“提供商”标签页列出每个需要同意的提供商,显示其名称和国家、如何处理输入(训练、存储或未知)、有多少模型和连接处于可用状态,以及你是否已同意。

“模型”标签页则列出模型。在某个模型上点击“同意”会打开该模型的视图:只显示该模型仍需要的提供商,点击“同意全部”即可用一段写明每个提供商的文字一次性同意。

同意对话框会在你确认前显示完整文本,与你的同意一起保存的正是这段文本。点击“撤回”可随时撤回对某个提供商的同意;在你再次同意之前,该提供商提供的模型将对你不可用。

没有账户时,同意与你的浏览器绑定。访客使用同一页面或聊天菜单中的“管理同意”。
你可以反对将你的输入传递给将其用于自身目的的提供商(GDPR 第 21 条)。开关位于同意页面顶部和账户设置中。开启期间,你的请求会绕过这些提供商,仅由它们提供的模型将对你不可用。

当请求发往其提供商仍需你同意的模型时,API 会返回 403 和代码 consent_required。消息中会写明缺少同意的提供商及其国家,并附上该模型的同意页面链接;param 中包含这些提供商的代码,以逗号分隔。
json
HTTP/1.1 403 Forbidden
{
"error": {
"code": "consent_required",
"message": "claude-opus-5.5 needs your consent for these providers: a7 (China), ih (Indonesia), pol (Hong Kong). Give it once at https://unorouter.com/consents?model=claude-opus-5.5; it covers every model these providers serve. (request id: ...)",
"param": "CN-19,ID-01,HK-01",
"type": "new_api_error"
}
}请将链接展示给密钥的所有者。同意后,同一请求即可通过。同意适用于该提供商的所有模型,因此一次同意往往可以解锁多个模型。
typescript
const model = "claude-opus-5.5";
const res = await fetch("https://api.unorouter.com/v1/chat/completions", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.UNOROUTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ model, messages: [{ role: "user", content: "Hello" }] }),
});
if (res.status === 403) {
const body = await res.json();
if (body.error?.code === "consent_required") {
// The message names the providers; the consent page for the model:
const link = `https://unorouter.com/consents?model=${encodeURIComponent(model)}`;
showToUser(`${body.error.message}\n${link}`);
}
}| 代码 | 含义 |
|---|---|
consent_required | 该模型的某个提供商需要你的同意。打开消息中的链接,给予同意后重新发送请求。 |
consent_business | 该模型需要同意,而企业账户无法给予同意。请选择其他模型。 |
own_purpose_objected | 你已反对用于自身目的,而该模型仅由此类提供商提供。请选择其他模型或撤回反对。 |
拒绝未经同意的请求将分阶段启用,并会提前公告。在此之前请求不会被拒绝,但你现在就可以给予同意。