모델 제공자에 대한 동의
일부 제공자에게 동의가 필요한 이유, 동의를 제공하거나 철회하는 방법, API 클라이언트가 동의 오류를 처리하는 방법.
UnoRouter의 모델을 제공하는 일부 제공자는 입력 내용을 자체 목적에 사용합니다. 예를 들어 보관하거나 자사 모델 학습에 사용합니다. 입력 내용의 처리 방식을 공개하지 않은 제공자도 있습니다. UnoRouter은(는) 그러한 사용을 배제할 수 없으므로 이들도 동일하게 취급합니다.
이러한 제공자가 적정한 수준의 개인정보 보호가 없는 국가에 있는 경우, 귀하가 해당 제공자에게 한 번 동의한 후에만 입력 내용이 그곳으로 전송됩니다(GDPR 제49조 제1항 (a)). 동의에는 제공자와 그 국가가 명시되며, 해당 제공자가 제공하는 모든 모델에 적용됩니다.
적정한 보호 수준을 갖춘 국가의 이러한 제공자는 동의가 필요하지 않습니다. 이러한 모델을 선택하기 전에 안내가 표시됩니다.
푸터와 계정 메뉴에 링크된 동의 페이지를 엽니다. 제공자 탭에는 동의가 필요한 각 제공자가 이름과 국가, 입력 내용 처리 방식(학습, 보관 또는 알 수 없음), 활성 모델 및 연결 수, 동의 여부와 함께 표시됩니다.

모델 탭에는 모델이 표시됩니다. 모델에서 동의를 누르면 해당 모델 화면이 열려 이 모델에 아직 필요한 제공자만 정확히 보여 주며, 모두 동의를 누르면 각 제공자를 명시한 하나의 문구로 한 번에 동의합니다.

동의 대화 상자는 확인 전에 전체 문구를 보여 주며, 바로 그 문구가 동의와 함께 저장됩니다. 철회를 누르면 언제든지 제공자별 동의를 취소할 수 있으며, 해당 제공자의 모델은 다시 동의할 때까지 차단됩니다.

계정이 없으면 동의는 사용 중인 브라우저에 연결됩니다. 게스트는 같은 페이지나 채팅 메뉴의 동의 관리를 사용합니다.
입력 내용을 자체 목적에 사용하는 제공자에게 입력 내용이 전달되는 것에 이의를 제기할 수 있습니다(GDPR 제21조). 스위치는 동의 페이지 상단과 계정 설정에 있습니다. 켜져 있는 동안 요청은 이러한 제공자를 거치지 않으며, 이들만 제공하는 모델은 이용할 수 없습니다.

아직 동의가 필요한 제공자의 모델로 요청을 보내면 API는 consent_required 코드와 함께 403을 반환합니다. 메시지에는 동의가 없는 제공자와 그 국가가 표시되고 해당 모델의 동의 페이지 링크가 포함되며, param에는 그 코드가 쉼표로 구분되어 들어 있습니다.
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"
}
}키 소유자에게 링크를 보여 주세요. 동의 후에는 같은 요청이 처리됩니다. 동의는 해당 제공자의 모든 모델에 적용되므로 한 번의 동의로 여러 모델을 사용할 수 있는 경우가 많습니다.
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 | 자체 목적 사용에 이의를 제기했으며 이 모델은 그러한 제공자만 제공합니다. 다른 모델을 선택하거나 이의 제기를 철회하세요. |
동의 없는 요청의 거부는 단계적으로 적용되며 사전에 공지됩니다. 그 전까지는 요청이 거부되지 않지만, 지금 바로 동의할 수 있습니다.