# Filtralo — contenido completo > Generado el 2026-09-20 desde el código del producto por `apps/landing/scripts/seo.ts`. > Fuente: https://filtralo.es Filtralo es un **proxy inverso delante de las APIs de IA** que usa una empresa (OpenAI, Anthropic, Google Gemini y ocho proveedores más). Revisa cada petición con las reglas de la organización antes de que salga, guarda el historial cifrado, reparte una clave por persona y suma en una sola pantalla el gasto de todos los proveedores. El principio de diseño que explica el resto: **no hay SDK propio**. El cliente sigue usando el SDK oficial del proveedor y solo cambia dos valores, la URL base y la clave. Por eso el gateway habla el dialecto de cada proveedor en lugar de exponer una API propia, y por eso los errores se devuelven en el formato que espera el SDK del cliente. ## Quién está detrás - Razón social: **AP Interactive Solutions S.L.** (nombre comercial AP Interactive) - CIF: B56483407 - Domicilio: C/ Esteban Salazar Chapela 115, 29004 Málaga (España) - Correo: contacto@apinteractive.es · Teléfono: +34 900 433 337 · Web: https://www.apinteractive.es - Certificaciones **de la sociedad titular**, no del producto por separado: ISO/IEC 27001 y ENS nivel Medio (Esquema Nacional de Seguridad, el marco que exige la administración pública española a sus proveedores). - Los servidores, la base de datos y los adjuntos están en **España**. El prompt sí viaja al proveedor que elija el cliente: para eso pasa antes por las reglas. ## Cómo se integra Cambian dos líneas. Con el SDK de OpenAI en Python: ```python # El proveedor recibirá [EMAIL_1] y [DNI_1], no los datos. from openai import OpenAI client = OpenAI( base_url="https://api.filtralo.es/openai/v1", api_key="sk-flt-…", ) respuesta = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": "Escribe a laura.mendez@ejemplo.es, DNI 12345678Z"}], ) ``` Los SDK oficiales leen la dirección de una variable de entorno, así que también basta con: ```bash export OPENAI_BASE_URL="https://api.filtralo.es/openai/v1" export OPENAI_API_KEY="sk-flt-…" export ANTHROPIC_BASE_URL="https://api.filtralo.es/anthropic" export ANTHROPIC_API_KEY="sk-flt-…" ``` Modelos, streaming, funciones, visión y embeddings siguen igual. Si una regla bloquea la petición, el SDK recibe un error con la forma que espera, más las cabeceras `x-filtralo-error`, `x-filtralo-policy` y `X-Filtralo-Request-Id`. ## Por dónde pasa una petición 1. **Clave virtual**: la clave `sk-flt-…` llega por Bearer, `x-api-key` o `api-key` y se busca por hash SHA-256 en una caché Redis. Revocada o caducada, corta aquí. 2. **Organización y usuario**: suspensión, pertenencia, actividad y la lista de IP permitidas de la clave. 3. **Proveedor**: del prefijo de la ruta, del proveedor por defecto de la clave o autodetectado; tiene que estar conectado y permitido por las listas de organización, equipo, usuario y clave. 4. **Límite y presupuesto**: límite por minuto en Redis y presupuestos con bloqueo, que responden 402 si se han superado. 5. **Cuerpo**: se extraen los textos del cuerpo según el dialecto del proveedor. 6. **Reglas DLP**: se mezclan las reglas de organización, equipo y usuario (gana la más estricta), se detecta, y se bloquea, se enmascara con un marcador numerado o se deja pasar avisando. 7. **Uso en streaming**: se inyecta `stream_options.include_usage` en el dialecto OpenAI para poder contar tokens. 8. **Reenvío**: se reenvía al proveedor con sus cabeceras de autenticación reales. La clave del cliente nunca llega arriba. 9. **Respuesta y registro**: se transmite tal cual, o se retiene completa si el escaneo de respuestas está en modo bloqueo. Al terminar se guardan evento, contenido cifrado, incidentes, tokens y coste. El chat del propio panel no es un camino aparte: usa una clave interna contra el mismo gateway, así que pasa por los mismos nueve pasos. ## Proveedores | Proveedor | `base_url` que se pone en el SDK | Se reenvía a | | --- | --- | --- | | OpenAI | `https://api.filtralo.es/openai/v1` | api.openai.com | | Azure OpenAI | `https://api.filtralo.es/azure_openai/openai/v1` | vuestro recurso de Azure | | Anthropic | `https://api.filtralo.es/anthropic` | api.anthropic.com | | Google Gemini | `https://api.filtralo.es/gemini` | generativelanguage.googleapis.com | | Mistral | `https://api.filtralo.es/mistral/v1` | api.mistral.ai | | Cohere | `https://api.filtralo.es/cohere/compatibility/v1` | api.cohere.ai | | DeepSeek | `https://api.filtralo.es/deepseek` | api.deepseek.com | | xAI (Grok) | `https://api.filtralo.es/xai/v1` | api.x.ai | | Groq | `https://api.filtralo.es/groq/openai/v1` | api.groq.com | | OpenRouter | `https://api.filtralo.es/openrouter/api/v1` | openrouter.ai | | Compatible con OpenAI | `https://api.filtralo.es/openai_compatible/v1` | la que indiquéis | La clave real del proveedor se guarda cifrada en el servidor (AES-256-GCM con una clave derivada por organización) y el cliente solo ve su clave `sk-flt-`, que se puede revocar sola. ## Detectores 25 detectores predefinidos, con validación real y no solo con expresiones regulares: tarjetas con Luhn, IBAN con mod 97, y DNI, NIE, CIF y NSS con su dígito o letra de control. Por categoría: Financiero 2, Identidad 4, Contacto 2, Red 3, Secretos 14. Cada organización cambia la acción que quiera y añade los suyos por expresión regular. Hay cinco plantillas de partida: observación, RGPD básico, financiero, sanitario y desarrollo. | Detector | Categoría | Acción por defecto | Severidad | Marcador | | --- | --- | --- | --- | --- | | Tarjeta de crédito o débito | Financiero | Bloquear | Crítica | `[TARJETA_1]` | | IBAN | Financiero | Bloquear | Crítica | `[IBAN_1]` | | DNI | Identidad | Enmascarar | Alta | `[DNI_1]` | | NIE | Identidad | Enmascarar | Alta | `[NIE_1]` | | CIF / NIF de empresa | Identidad | Avisar | Baja | `[CIF_1]` | | Número de la Seguridad Social | Identidad | Enmascarar | Alta | `[NSS_1]` | | Correo electrónico | Contacto | Enmascarar | Media | `[EMAIL_1]` | | Teléfono | Contacto | Avisar | Media | `[TELEFONO_1]` | | Dirección IPv4 | Red | Avisar | Baja | `[IP_1]` | | Dirección IPv6 | Red | Avisar | Baja | `[IP_1]` | | URL interna | Red | Avisar | Media | `[URL_INTERNA_1]` | | AWS Access Key ID | Secretos | Bloquear | Crítica | `[AWS_KEY_1]` | | AWS Secret Access Key | Secretos | Bloquear | Crítica | `[AWS_SECRET_1]` | | Google API key | Secretos | Bloquear | Crítica | `[GOOGLE_KEY_1]` | | Token de GitHub | Secretos | Bloquear | Crítica | `[GITHUB_TOKEN_1]` | | Token de GitLab | Secretos | Bloquear | Crítica | `[GITLAB_TOKEN_1]` | | Token de Slack | Secretos | Bloquear | Crítica | `[SLACK_TOKEN_1]` | | Clave de Stripe | Secretos | Bloquear | Crítica | `[STRIPE_KEY_1]` | | Clave de Twilio | Secretos | Bloquear | Alta | `[TWILIO_KEY_1]` | | Clave de Anthropic | Secretos | Bloquear | Crítica | `[API_KEY_1]` | | Clave de API sk-… | Secretos | Bloquear | Crítica | `[API_KEY_1]` | | Token JWT | Secretos | Bloquear | Alta | `[JWT_1]` | | Clave privada | Secretos | Bloquear | Crítica | `[CLAVE_PRIVADA_1]` | | Contraseña o secreto asignado | Secretos | Bloquear | Alta | `[SECRETO_1]` | | Cadena de alta entropía | Secretos | Avisar | Media | `[TOKEN_1]` | Las acciones son tres: **bloquear** la petición, **enmascarar** el dato sustituyéndolo por un marcador numerado (`[DNI_1]`), o dejarla pasar **avisando**. El mismo motor puede revisar la respuesta del modelo, en modo aviso o bloqueo. ## Qué más hace - 25 detectores de datos sensibles con validación (tarjetas con Luhn, IBAN con mod 97, DNI, NIE, CIF y NSS con dígito de control, claves de API y secretos de alta entropía) - Tres acciones por regla: bloquear la petición, enmascarar el dato con un marcador numerado o dejarla pasar avisando - Escaneo también de la respuesta del modelo, en modo aviso o bloqueo - Reglas propias por expresión regular y excepciones por equipo y por persona - Historial de cada petición con el contenido cifrado (AES-256-GCM con clave derivada por organización) y retención configurable - Una clave por persona o por proceso, revocable sola, con modelos, lista de IP y caducidad propios - Coste y consumo por persona, equipo, clave y modelo, con el coste real del proveedor cuando hay Admin key - Presupuestos mensuales con aviso y bloqueo, por organización, equipo, persona o clave - Chat de empresa con las mismas reglas que la API, con carpetas, asistentes y adjuntos - Verificación en dos pasos, exigible a toda la organización, y auditoría de cada cambio sensible ## Precio - **Free**: 0 €/mes, para siempre. 6 asientos (el propietario y 5 personas más), los 11 proveedores y todos sus modelos, los 25 detectores con reglas propias y excepciones, historial cifrado de hasta 30 días, y el chat, las claves, los presupuestos y la auditoría incluidos. Sin tarjeta y sin caducidad. - **Enterprise**: asientos sin límite, historial de hasta 365 días, equipos y políticas por equipo, soporte directo. Precio por acordar en contacto@apinteractive.es. No hay contrato ni permanencia: el historial y el uso se exportan a CSV o JSON y la organización se puede borrar con todos sus datos desde los ajustes. ## Preguntas ### ¿Tenemos que cambiar nuestro código? No. En el cliente que ya usáis cambian dos valores: la URL base pasa a ser la del gateway con el prefijo del proveedor y la clave pasa a ser vuestra clave de Filtralo. El resto del programa no se toca, porque la petición se reenvía tal cual, con el texto ya revisado. ### ¿Pedís tarjeta para empezar? No. El plan gratuito no pide tarjeta y no caduca: el propietario y 5 personas más, con todos los proveedores, las reglas completas y el chat incluido. ### ¿Qué hacéis con nuestros prompts? Vosotros decidís cuánto se guarda: solo metadatos, metadatos con fragmentos ya enmascarados, o el contenido completo cifrado con AES-256-GCM y una clave derivada distinta para cada organización. La retención se elige entre 7, 30, 90 o 365 días según el plan y el borrado es automático. Dentro de vuestra organización solo lo leen los roles con ese permiso, y no se usa para entrenar ningún modelo. ### ¿En qué se diferencia de llamar a la API del proveedor directamente? El proveedor no sabe qué es un dato sensible para vuestra empresa ni quién lo ha enviado. Filtralo revisa el texto antes de que salga, guarda el historial de toda la organización, reparte una clave por persona y suma en una sola pantalla el gasto de todos los proveedores. ### ¿Y si una regla se equivoca? El probador enseña qué haría cada regla antes de activarla, y se pueden poner excepciones por equipo o por persona. Si alguien necesita saltarse la política en un caso concreto, se le da permiso de bypass: la petición pasa entera y queda registrada en la auditoría con su nombre. ### ¿Funciona con streaming y con las herramientas que ya usamos? Sí. Las respuestas en streaming se leen al vuelo, también para contar los tokens, y la documentación del panel trae ejemplos ya rellenos para los SDK de Python y JavaScript, LangChain, LibreChat y llamadas HTTP directas. ### ¿Hace falta instalar algo en los ordenadores? No. El gateway y el panel son un servicio al que se accede por Internet. Quien no programa entra al chat del panel en lugar de a ChatGPT y trabaja con las mismas reglas que la API. ### ¿Podemos irnos cuando queramos? Sí, no hay contrato ni permanencia. Desde los ajustes se exporta el historial y el uso a CSV o JSON y se puede borrar la organización con todos sus datos. ## Enlaces - Crear cuenta gratis: https://app.filtralo.es/registro - Entrar: https://app.filtralo.es/entrar - Documentación de integración (requiere cuenta): https://app.filtralo.es/documentacion - Índice corto para modelos: https://filtralo.es/llms.txt