Skip to main content
ZDR es una garantía contractual del proveedor del modelo: el request y la respuesta no se almacenan en ninguna forma (logs, telemetría, caché, fine-tuning). Geek Hub mantiene una lista de endpoints donde esa garantía está firmada y verificada, y rechaza requests con ZDR activo dirigidas a endpoints fuera de la lista.

Tres niveles de activación

1

Por request

Pasa zdr: true en el body de tu llamada. El gateway verifica el modelo destino contra la lista. Si está verificado, procede; si no, HTTP 422 con motivo.
2

Por cuenta

En /dashboard/settings → Zero Data Retention activas ZDR permanente por grupo de proveedor (Anthropic, OpenAI, Google, Otros). Cuando un grupo tiene ZDR activo, todas las requests de tu organización a ese grupo se verifican.
3

Por guardrail

Los guardrails permiten configurar ZDR por usuario o por API key. Útil para equipos con políticas diferentes en la misma org.

Ejemplo de request

Endpoints con ZDR verificado

Lista generada del catálogo en tiempo real. Cuando agregamos un proveedor con ZDR firmado, aparece automáticamente.

Formato del rechazo

GDPR — art. 5(1)(e) data minimization

ZDR es parte de tu estrategia de cumplimiento del artículo 5(1)(e) del GDPR (limitación del plazo de conservación). Si tu proveedor no retiene la conversación, la conservación en esa capa es efectivamente cero, lo cual reduce el alcance de tus obligaciones de tratamiento upstream.
ZDR cubre la retención del proveedor del modelo. Geek Hub sí almacena metadatos de facturación (model id, tokens, costo, latency) para emisiones CFDI/Stripe. El contenido de los mensajes no se persiste a nivel gateway.

Qué se persiste vs qué no

Sin ambigüedad — así separamos contenido (prompt/respuesta) de metadatos (facturación y auditoría): Regla clara: cualquier campo capturado a nivel requests es metadata numérica o de identificación. Nunca guardamos el content de messages[] ni el prompt de /images, /videos, /audio, ni siquiera hasheado, ni siquiera con ZDR desactivado. Si necesitas retener conversaciones tú, usa un webhook request.completed desde tu propio backend (ver Webhooks).