Buscar documentación...

Empieza a escribir para buscar documentación

Guía de la plataforma

Consentimientos para proveedores de modelos

Por qué algunos proveedores necesitan tu consentimiento, cómo darlo o retirarlo y cómo los clientes de la API tratan el error de consentimiento.

Algunos proveedores detrás de los modelos de UnoRouter usan tus entradas para sus propios fines, por ejemplo para conservarlas o entrenar sus propios modelos. Otros no han publicado cómo tratan las entradas. UnoRouter los trata igual, porque no puede descartarse ese uso.

Si un proveedor así tiene su sede en un país sin un nivel adecuado de protección de datos, tus entradas solo llegan allí después de que hayas dado tu consentimiento una vez a ese proveedor (art. 49.1.a del RGPD). El consentimiento nombra al proveedor y su país, y cubre todos los modelos que ofrece ese proveedor.

Los proveedores de este tipo en países con protección adecuada no necesitan consentimiento. Antes de elegir un modelo así ves un aviso.

Los detalles están en la política de privacidad y en la sección 6 de las condiciones de uso.

Abre Consentimientos, enlazado en el pie de página y en el menú de la cuenta. La pestaña Proveedores muestra cada proveedor que necesita un consentimiento con su nombre y país, qué hace con las entradas (entrena, almacena o desconocido), cuántos de sus modelos y conexiones están activos y si ya has dado tu consentimiento.

Pestaña Proveedores de la página de consentimientos con nombre, país, tratamiento de las entradas y estado del consentimiento de cada proveedor

La pestaña Modelos muestra los modelos. Consentir en un modelo abre su vista: muestra exactamente los proveedores que ese modelo aún necesita, y Consentir a todos los otorga en un solo paso con un único texto que nombra a cada proveedor.

Vista de consentimiento de un modelo con los proveedores que aún necesita y el botón Consentir a todos

El diálogo de consentimiento muestra el texto completo antes de que confirmes, y se guarda exactamente ese texto con tu consentimiento. Con Retirar eliminas en cualquier momento el consentimiento para un proveedor; los modelos que ofrece quedan bloqueados para ti hasta que vuelvas a consentir.

Diálogo de consentimiento con los proveedores, sus países, los riesgos y el tratamiento de las entradas

Sin cuenta, los consentimientos pertenecen a tu navegador. Los invitados usan la misma página o Gestionar consentimientos en el menú del chat.

Puedes oponerte a que tus entradas se transmitan a proveedores que las usan para sus propios fines (art. 21 del RGPD). El interruptor está en la parte superior de la página de consentimientos y en los ajustes de tu cuenta. Mientras está activo, tus solicitudes evitan a estos proveedores y los modelos que solo ellos ofrecen no están disponibles para ti.

Interruptor de oposición en la parte superior de la página de consentimientos

Cuando una solicitud va a un modelo cuyos proveedores aún necesitan tu consentimiento, la API responde 403 con el código consent_required. El mensaje nombra a los proveedores que faltan con sus países y enlaza la página de consentimiento de ese modelo; param contiene sus códigos separados por comas.

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"
  }
}

Muestra el enlace a la persona a la que pertenece la clave. Tras el consentimiento, la misma solicitud se procesa. Un consentimiento cubre todos los modelos del proveedor, por lo que un solo consentimiento suele habilitar varios modelos.

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}`);
  }
}
CódigoSignificado
consent_requiredUn proveedor del modelo necesita tu consentimiento. Abre el enlace del mensaje, da tu consentimiento y repite la solicitud.
consent_businessEl modelo necesita un consentimiento que las cuentas de empresa no pueden dar. Elige otro modelo.
own_purpose_objectedTe opusiste al uso para fines propios y el modelo solo lo ofrecen proveedores de ese tipo. Elige otro modelo o retira la oposición.

El rechazo de solicitudes sin consentimiento se activa por etapas y se anunciará con antelación. Hasta entonces las solicitudes no se rechazan, pero ya puedes dar tus consentimientos.