Para desarrolladores
API de REDACTA
Envía un texto y recibe el mismo texto con los datos personales cambiados por etiquetas como [PERSONA], [CORREO] o [DOCUMENTO]. Pensada para ERP, CRM, historias clínicas y flujos internos de las empresas que necesitan quitar datos personales de sus textos (por ejemplo, como apoyo a sus obligaciones bajo la Ley 1581 de 2012 u otra ley de su país). La responsabilidad de revisar el resultado y de cumplir la ley es de quien publica el texto.
1. Consigue una llave
Disponible en los planes Empresa y Anual Premium. Entra a Mi cuenta → Acceso por API y pulsa «Crear llave». Se muestra una sola vez: guárdala en un lugar seguro (por ejemplo, una variable de entorno). Puedes tener hasta 3 llaves y borrarlas cuando quieras; al borrarla deja de servir al instante.
2. Autenticación
Todas las llamadas llevan la llave en la cabecera Authorization. Nunca la pongas en la dirección (quedaría en los registros).
Authorization: Bearer rk_0123456789abcdef0123456789abcdef01234567
3. Comprobar que la llave funciona
curl https://redactacol.online/api/index.php?accion=api_estado \
-H "Authorization: Bearer $REDACTA_LLAVE"
Respuesta:
{ "ok": true, "plan": "empresa", "creditos": 940, "vence": "2026-11-08" }
4. Anonimizar un texto
POST /api/index.php?accion=api_anonimizar
| Campo | Tipo | Qué es |
|---|---|---|
texto | texto | Obligatorio. Hasta 12.000 caracteres por llamada (divide los textos más largos). |
ia | true / false | Por defecto true: además de la red de seguridad, la IA busca nombres de personas. Cuesta 1 crédito. Con false es gratis, pero los nombres no se detectan. |
pais | texto | Opcional. La jurisdicción cuyas reglas de búsqueda se usan: CO (Colombia), MX, BR, AR, CL, PE, EC, UY, PA, CR, SV, DO, PR, UE (Unión Europea) o US, o TODOS. Cada país usa sus propios identificadores (por ejemplo, BR busca CPF y CO busca cédulas). Si no lo mandas, se usan las reglas de todos los países a la vez, como siempre. Un código que no existe se ignora. Con ia: true, el país también se le indica a la IA. |
montos | true / false | Por defecto true: también tapa cantidades de dinero. Pon false para dejarlas. |
curl -X POST "https://redactacol.online/api/index.php?accion=api_anonimizar" \
-H "Authorization: Bearer $REDACTA_LLAVE" \
-H "Content-Type: application/json" \
-d '{"texto": "Contrato de María Quintero, correo mq@correo.com, cel 300 123 4567, C.C. 1.023.456.789."}'
Respuesta:
{
"ok": true,
"texto_anonimo": "Contrato de [PERSONA], correo [CORREO], cel [TELEFONO], C.C. [DOCUMENTO].",
"detecciones": [
{ "tipo": "nombre", "texto": "María Quintero" },
{ "tipo": "email", "texto": "mq@correo.com" },
{ "tipo": "telefono", "texto": "300 123 4567" },
{ "tipo": "dni", "texto": "1.023.456.789" }
],
"pais": null,
"coste": 1,
"creditos_restantes": 939
}
El campo pais devuelve el código que se usó (o null si no mandaste uno).
Qué detecta
| Tipo | Etiqueta | Cómo se encuentra |
|---|---|---|
nombre | [PERSONA] | Los que traen etiqueta («Paciente:», «Arrendador:», «Mr.», «Dr.», «Nome:»…) siempre; el resto, con IA (ia: true) |
dni | [DOCUMENTO] | Cédulas y documentos con su etiqueta (C.C., C.E., T.I., NUIP…) y los de cada país, verificando sus dígitos cuando se puede: CPF y RG (Brasil), CUIL/CUIT y DNI (Argentina, Perú), RUT (Chile), CURP, RFC, clave de elector y NSS (México), cédulas de Ecuador, Uruguay, Panamá, Costa Rica y República Dominicana, DUI (El Salvador), RUC de Perú y Ecuador, DNI y NIE (España), NIR (Francia), Codice Fiscale (Italia), National Insurance (Reino Unido), Seguro Social, ITIN, licencia de conducir y MRN (EE. UU.) |
email | [CORREO] | Siempre |
telefono | [TELEFONO] | Celulares colombianos; fijos con su etiqueta; internacionales con «+»; de EE. UU., Puerto Rico, República Dominicana y Brasil; y con etiqueta (Tel., Cel., Móvil…) en los demás países |
direccion | [DIRECCION] | Direcciones colombianas (Calle 45 # 12-30…), de barrio (Manzana C Casa 12), de España y Brasil (Calle Mayor 12, Rua das Flores 123), de EE. UU. (123 Main St, Apt 4B) y la IA |
tarjeta | [TARJETA] | Números que pasan la validación de tarjetas |
iban | [CUENTA] | Cuentas con la palabra «cuenta» o el nombre del banco, CLABE de México, CBU de Argentina, CCI de Perú y IBAN europeos (verificados con módulo 97) |
matricula, radicado | [MATRICULA], [RADICADO] | Placas de vehículos y matrículas inmobiliarias; radicados de procesos judiciales (siempre con su etiqueta) |
fecha_nacimiento, pasaporte | [FECHA_NACIMIENTO], [PASAPORTE] | Con su etiqueta |
monto | [MONTO] | Cantidades de dinero ($ 2.500.000, COP…); se puede apagar |
Próximamente
Todavía no existen: avisos automáticos (webhooks) cuando termina un trabajo, integraciones nativas con Google Drive, Dropbox o SharePoint, y procesamiento de PDF por la API. Hoy los PDF se procesan en el navegador (lote de hasta 200 documentos con ZIP) y la API anonimiza texto. Si necesitas una de estas integraciones, escríbenos a gerencia@reichtumgroup.com.
5. Errores y límites
| Código | Significa |
|---|---|
400 | Falta el campo texto. |
401 | Llave ausente, inválida, borrada, o tu plan venció. |
402 | Sin créditos. Con "ia": false sigue siendo gratis. |
413 | El texto pasa de 12.000 caracteres. |
429 | Demasiadas llamadas: máximo 120 por minuto por llave. |
502 / 503 | La IA no respondió. No se descuenta ningún crédito; reintenta en un momento. |
Toda respuesta de error trae { "ok": false, "error": "…" } con un mensaje en español.
Ejemplo en JavaScript
const r = await fetch("https://redactacol.online/api/index.php?accion=api_anonimizar", {
method: "POST",
headers: { "Authorization": "Bearer " + process.env.REDACTA_LLAVE, "Content-Type": "application/json" },
body: JSON.stringify({ texto: historiaClinica, montos: false }),
});
const { texto_anonimo } = await r.json();
Ejemplo en PHP
$ch = curl_init("https://redactacol.online/api/index.php?accion=api_anonimizar");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("REDACTA_LLAVE"), "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode(["texto" => $texto]),
]);
$respuesta = json_decode(curl_exec($ch), true);
echo $respuesta["texto_anonimo"];
Privacidad
El texto se analiza al momento y no se guarda: en tu cuenta solo queda cuántos créditos se gastaron. Con "ia": true el texto viaja al proveedor de IA para encontrar nombres; con "ia": false no sale de nuestro servidor. Revisa siempre el resultado: ninguna detección automática es perfecta y la responsabilidad final es de quien publica el documento. Esto no es asesoría jurídica.