Documentación de la API
InicioConseguir una clave
API v1 · estable

Construye con Tamizia.

Mete la IA de tu empresa en tu CRM, tu intranet o un bot. Tú mandas el texto tal cual; a la IA le llega tapado y tú recibes la respuesta con los datos reales.

/
POST/api/v1/chat
Tu CRM manda

Resume la ficha del cliente Juan Pérez Gil[PERSONA_1], DNI 12345678Z[DNI_1]

La IA recibe

Resume la ficha del cliente [PERSONA_1], DNI [DNI_1]

Tú recibes

Juan Pérez Gil (DNI 12345678Z) es cliente desde 2019 y tiene dos contratos activos…

Chat POSTPregunta a vuestra IA con los datos tapados y recibe la respuesta completa.Empezar → Política GETLas reglas de la empresa: qué se tapa, qué se avisa y qué se bloquea.Ver → Eventos POSTQue lo que tapa tu aplicación aparezca en el panel de la empresa.Ver → ErroresQué significa cada código y qué hacer cuando algo se bloquea.Ver →

En tres pasos

  1. 01Genera la claveEn el panel, Chat → Proveedores. Empieza por tzc_.
  2. 02Haz la llamadaUn POST a /v1/chat con el texto tal cual.
  3. 03Usa la respuestaLlega con los datos reales y la lista de lo que se tapó.

Autenticación

Dirección base: https://tamizia.com/api/v1 (o la vuestra, si tenéis Tamizia instalado en vuestros servidores). Todo va por HTTPS, en JSON, y cada respuesta trae "ok".

Cada petición lleva la clave en la cabecera Authorization: Bearer …. Hay dos claves, para dos usos distintos:

ClaveParaDónde se genera
tzc_…El chat por API (CRM, intranet, bots). Gasta la cuenta de IA de la empresa.Panel → Chat → Proveedores
tz_…La extensión, el hook de Claude Code y las apps que solo leen la política y mandan eventos.Panel → Instalación
La clave tzc_ es como una contraseña: guárdala en el servidor de tu CRM, nunca en una web o una app que se descargue la gente. Se enseña una sola vez; si se pierde, se genera otra y la vieja deja de funcionar al momento.
Cabecera
Authorization: Bearer tzc_3f9a…
Sin clave o con una mala401
{ "ok": false, "error": "clave no válida" }

Qué pasa con el texto

Con la extensión, el texto se tapa en el navegador de cada persona y a Tamizia no llega nunca. Con la API no hay navegador: el texto llega a nuestro servidor, se tapa en memoria, sale tapado hacia vuestra IA y la respuesta se destapa antes de devolvértela.

No se guarda ni el texto ni la respuesta. Lo único que queda es lo mismo que con la extensión: qué tipo de dato se tapó o se paró, cuándo y, si lo mandas, quién. Lo veis en el panel, en Actividad, como «Aplicación propia».

¿Queréis que el texto no salga de vuestra red ni para taparlo? Tamizia se puede instalar en vuestros servidores, con el modelo de IA que ya uséis.
POST/v1/chat

Enviar un mensaje

Manda la conversación con el texto en claro. Tamizia tapa lo sensible según las reglas de vuestra empresa, pregunta a vuestra IA y te devuelve la respuesta con los datos reales ya puestos.

Cuerpo

  • mensajeslistaobligatorio

    La conversación, de la más antigua a la más reciente (hasta 60). Empieza y acaba con un mensaje de user.

    • rol: user o assistant
    • texto: el texto tal cual, sin tapar
  • modelotexto

    Proveedor y modelo, por ejemplo anthropic|claude-opus-5-5 o azure|gpt-4o-empresa. Si no lo mandas, se usa el que la empresa tiene por defecto.

  • usuariocorreo

    Quién pregunta. Solo sirve para que en Actividad se vea quién fue.

Respuesta

  • respuestatexto

    Lo que contestó la IA, con los datos reales en su sitio.

  • modelotexto

    El modelo que ha contestado.

  • tapadoslista

    Qué se tapó: tipo y cantidad.

  • avisoslista

    Lo que la regla solo avisa: salió tal cual, pero conviene saberlo.

  • fintexto

    Por qué terminó la respuesta (end_turn, stop, max_tokens…).

curl https://tamizia.com/api/v1/chat \
  -H "Authorization: Bearer $TAMIZIA_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "mensajes": [
      {"rol": "user", "texto": "Resume la ficha del cliente Juan Pérez Gil, DNI 12345678Z"}
    ],
    "usuario": "ana@tuempresa.es"
  }'
Respuesta200
{
  "ok": true,
  "respuesta": "Juan Pérez Gil (DNI 12345678Z) es cliente desde 2019…",
  "modelo": "anthropic|claude-opus-5-5",
  "fin": "end_turn",
  "tapados": [
    { "tipo": "PERSONA", "cantidad": 1 },
    { "tipo": "DNI", "cantidad": 1 }
  ],
  "avisos": []
}
Lo que recibió la IA
Resume la ficha del cliente [PERSONA_1], DNI [DNI_1]

Cuando algo se bloquea

Si el texto lleva algo que la regla de la empresa manda bloquear (una tarjeta, una clave de acceso, una palabra propia…), no sale nada hacia la IA. La API responde 422 y dice qué tipo de dato era en bloqueado, para que tu aplicación pueda explicárselo a la persona.

El intento queda en Actividad como bloqueado, igual que con la extensión.

Respuesta422
{
  "ok": false,
  "error": "el mensaje lleva tarjetas y las reglas de la empresa no dejan que salga",
  "bloqueado": "TARJETA"
}
GET/v1/politica

Política de la empresa

Las reglas que aplica la extensión: qué hacer con cada tipo de dato y las palabras propias. Con la clave tz_. La extensión la pide cada 15 minutos; si haces tu propia integración, guárdala y pídela de vez en cuando, no en cada mensaje.

Respuesta

  • reglasobjeto

    Para cada tipo de dato, la acción: permitir, avisar, tapar, motivo o bloquear.

  • palabraslista

    Palabras propias de la empresa con su acción (texto, accion).

  • fallo_cerradosí / no

    Si la revisión falla, ¿se para el envío? Lo decide la empresa en Ajustes.

  • departamentoslista

    Los departamentos, para atribuir los eventos.

Petición
curl https://tamizia.com/api/v1/politica \
  -H "Authorization: Bearer $TAMIZIA_CLAVE_EXTENSION"
Respuesta200
{
  "ok": true,
  "empresa": "Asesoría Norte",
  "reglas": { "DNI": "tapar", "TARJETA": "bloquear", "EMAIL": "avisar", … },
  "palabras": [{ "texto": "Proyecto Faro", "accion": "bloquear" }],
  "fallo_cerrado": true,
  "departamentos": ["Contabilidad", "Laboral"]
}
POST/v1/eventos

Registrar eventos

Para que lo que tapa tu propia aplicación aparezca en el panel de la empresa. Hasta 100 eventos por llamada. Nunca mandes el dato: solo qué tipo era y qué se hizo; lo que no encaja se descarta.

Cada evento

  • tipotextoobligatorio

    Uno de los tipos de dato.

  • acciontextoobligatorio

    avisar, tapar, motivo o bloquear.

  • sitiotextoobligatorio

    Dónde: api para tu aplicación; también chatgpt, copilot, gemini, claude…

  • cantidadnúmero

    Cuántos datos de ese tipo (1 si no se manda).

  • usuario, departamentotexto

    Quién y de qué departamento (debe llamarse igual que en el panel).

  • motivotexto

    Solo con motivo: lo que escribió la persona para poder enviar.

Petición
curl https://tamizia.com/api/v1/eventos \
  -H "Authorization: Bearer $TAMIZIA_CLAVE_EXTENSION" \
  -H "Content-Type: application/json" \
  -d '{"eventos": [
    {"tipo": "DNI", "accion": "tapar", "sitio": "api", "usuario": "ana@tuempresa.es"}
  ]}'
Respuesta200
{ "ok": true, "recibidos": 1, "descartados": 0 }

Tipos de dato

Lo que detecta Tamizia. Los números se comprueban de verdad (la letra del DNI, los dígitos de control del IBAN, el algoritmo de la tarjeta): uno inventado no se tapa.

TipoQué esMarcador
DNIDNI español, con letra de control[DNI_1]
NIENIE, con letra de control[NIE_1]
IBANCuenta bancaria, con dígitos de control[IBAN_1]
TARJETATarjeta de pago (Luhn y prefijo)[TARJETA_1]
CIFCIF de empresa[CIF_1]
NSSNúmero de la Seguridad Social[NSS_1]
CLAVEClaves de API (OpenAI, AWS, GitHub, Slack…)[CLAVE_1]
CONTRASENAContraseñas escritas tras «password:», «clave:»…[CONTRASENA_1]
EMAILCorreos electrónicos[EMAIL_1]
TELEFONOTeléfonos españoles[TELEFONO_1]
PERSONANombres, por el contexto («cliente», «paciente», «para…»)[PERSONA_1]
PROPIAPalabras propias de la empresa[PROPIA_1]

Errores

Siempre con "ok": false y un "error" escrito para una persona.

CódigoCuándo
400La petición está mal formada (falta mensajes, un rol no vale…).
401Falta la clave o no es válida (o se ha anulado).
405Método equivocado: /chat y /eventos van con POST.
409La empresa no tiene ninguna IA conectada, o no se puede leer su clave.
422El mensaje lleva algo que se bloquea. Mira bloqueado.
429Demasiadas peticiones. Espera y vuelve a intentarlo.
502El proveedor de IA ha fallado o ha rechazado la petición; el error dice por qué.

Límites

QuéLímite
/v1/chat120 peticiones cada 10 minutos por empresa · hasta 60 mensajes · unos 250 KB por petición
/v1/politica, /v1/eventos600 peticiones por minuto por empresa · 100 eventos por llamada
Claves mal puestas30 intentos fallidos cada 10 minutos desde la misma IP

¿Necesitáis más? En la instalación en vuestros servidores los límites los ponéis vosotros.

¿Lo queréis dentro de vuestra red?

Instalamos Tamizia en vuestros servidores, con el modelo de IA que ya uséis (Azure, Bedrock o uno propio). El texto no sale de casa ni para taparlo.

Hablar con nosotros