Przejdź do treści

Documentación de la API

Integre la anonimización de texto respetuosa con la privacidad de ANOXY en sus aplicaciones con nuestra sencilla API REST.

Inicio rápido

1

Obtenga su clave API

Regístrese en el panel y cree una clave API.

2

Realice su primera solicitud

Use el endpoint /v1/anonymize para comenzar a proteger datos sensibles.

3

Restaure el texto original

Use el mismo ID de sesión con /v1/deanonymize para recuperar el texto original.

Autenticación

Todas las solicitudes API requieren autenticación. ANOXY admite dos métodos de autenticación:

Clave API

Incluya su clave API en el encabezado X-API-Key. Cree claves en su panel.

X-API-Key: YOUR_API_KEY

Token JWT Bearer

Para integraciones SSO y OAuth, pase un token JWT en el encabezado Authorization. Los tokens son emitidos por el proveedor de identidad de ANOXY.

Authorization: Bearer eyJhbGciOiJSUzI1NiIs...
POST/v1/anonymize

Anonimice texto detectando y reemplazando información personal (PII) con tokens consistentes.

Cuerpo de la solicitud

textstringobligatorio

El texto a anonimizar.

languagestringopcional

Código de idioma (ej. "en", "pl"). Por defecto: "en".

session_idstringopcional

ID de sesión personalizado. Si no se proporciona, se generará uno.

Solicitud de ejemplo

curl -X POST https://app.anoxy.ai/v1/anonymize \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "John Smith lives at 123 Main St, New York. His email is john@example.com.",
    "language": "en",
    "session_id": "optional-session-id"
  }'

Respuesta de ejemplo

{
  "session_id": "abc-123-def-456",
  "anonymized_text": "<PERSON_1> lives at <LOCATION_1>. His email is <EMAIL_1>.",
  "entities_found": [
    {
      "entity_type": "PERSON",
      "start": 0,
      "end": 10,
      "text": "John Smith",
      "anonymized_token": "<PERSON_1>"
    },
    {
      "entity_type": "LOCATION",
      "start": 20,
      "end": 42,
      "text": "123 Main St, New York",
      "anonymized_token": "<LOCATION_1>"
    },
    {
      "entity_type": "EMAIL_ADDRESS",
      "start": 57,
      "end": 76,
      "text": "john@example.com",
      "anonymized_token": "<EMAIL_1>"
    }
  ],
  "quota_used": 1250,
  "quota_remaining": 8750,
  "processing_time_ms": 45.2
}
POST/v1/deanonymize

Restaure el texto original usando el mapeo de sesión. Requiere un ID de sesión válido de una anonimización previa.

Cuerpo de la solicitud

textstringobligatorio

El texto anonimizado a restaurar.

session_idstringobligatorio

El ID de sesión de la solicitud de anonimización.

Solicitud de ejemplo

curl -X POST https://app.anoxy.ai/v1/deanonymize \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "<PERSON_1> lives at <LOCATION_1>. His email is <EMAIL_1>.",
    "session_id": "your-session-id"
  }'

Respuesta de ejemplo

{
  "original_text": "John Smith lives at 123 Main St, New York. His email is john@example.com.",
  "session_id": "abc-123-def-456",
  "processing_time_ms": 12.4
}
POST/v1/text/detect

Detectar entidades PII en el texto sin anonimizar. Devuelve ubicaciones, tipos y puntuaciones de confianza de las entidades preservando el texto original.

Cuerpo de la solicitud

textstringobligatorio

El texto a escanear en busca de entidades PII.

languagestringopcional

Código de idioma (ej. "en", "pl"). Por defecto: "en".

entity_typesstring[] | stringopcional

Filtrar tipos de entidades específicos. Acepta un array JSON o una cadena separada por comas (ej. "PERSON,EMAIL_ADDRESS").

Solicitud de ejemplo

curl -X POST https://app.anoxy.ai/v1/text/detect \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "text": "John Smith lives at 123 Main St. Email: john@example.com",
    "language": "en"
  }'

Respuesta de ejemplo

{
  "status": "success",
  "data": {
    "text": "John Smith lives at 123 Main St. Email: john@example.com",
    "entities_found": [
      {"entity_type": "PERSON", "start": 0, "end": 10, "text": "John Smith", "score": 0.95},
      {"entity_type": "LOCATION", "start": 20, "end": 31, "text": "123 Main St", "score": 0.88},
      {"entity_type": "EMAIL_ADDRESS", "start": 40, "end": 56, "text": "john@example.com", "score": 0.99}
    ],
    "entity_summary": {"PERSON": 1, "LOCATION": 1, "EMAIL_ADDRESS": 1}
  }
}
POST/v1/documents/anonymize

Subir un archivo de documento para anonimización. Soporta PDF, DOCX, XLSX, CSV, PPTX, imágenes (OCR) y más de 10 formatos adicionales. Devuelve un ID de trabajo para descargar el resultado.

Cuerpo de la solicitud

Content-Type: multipart/form-data

filebinaryobligatorio

El archivo de documento a anonimizar (máx. 50 MB).

modestringopcional

Modo de anonimización: "anonymize" (predeterminado, irreversible) o "pseudonymize" (reversible con sesión).

languagestringopcional

Código de idioma (ej. "en", "pl"). Por defecto: "en".

Solicitud de ejemplo

curl -X POST https://app.anoxy.ai/v1/documents/anonymize \
  -H "X-API-Key: YOUR_API_KEY" \
  -F "file=@contract.pdf" \
  -F "mode=anonymize" \
  -F "language=en"

Formatos soportados

PDFDOCXXLSXCSVPPTXRTFHTMLTXTXMLJSONEMLMDPNGJPGTIFFBMP

Respuesta de ejemplo

{
  "status": "success",
  "data": {
    "job_id": "550e8400-e29b-41d4-a716-446655440000",
    "filename": "contract_anonymized.pdf",
    "entities_count": 23,
    "processing_time_ms": 1250.5,
    "download_url": "/v1/history/550e8400.../download"
  }
}

Formato de respuesta

Todas las respuestas de la API siguen una estructura de sobre JSON consistente. Las respuestas exitosas envuelven los datos en un campo "data", las respuestas de error proporcionan un objeto de error estructurado.

Éxito

{
  "status": "success",
  "data": { ... },
  "meta": {
    "version": "4.10.10",
    "processing_time_ms": 45.2
  }
}

Error

{
  "status": "error",
  "error": {
    "type": "validation_error",
    "message": "Text is required."
  }
}

Catálogo de endpoints

Lista completa de endpoints API disponibles.

MétodoEndpointDescripciónAuth
POST/v1/anonymizeAnonymize text, replacing PII with tokensRequired
POST/v1/deanonymizeRestore original text using session mappingRequired
POST/v1/text/detectDetect PII entities without anonymizingRequired
POST/v1/documents/anonymizeUpload and anonymize a document fileRequired
POST/v1/text/anonymize-batchAnonymize up to 20 text items in one requestRequired
GET/v1/countriesList supported countries and entity typesNone
GET/v1/historyList anonymization history (paginated, sortable)Required
GET/v1/history/{job_id}Get job detail with entity breakdownRequired
GET/v1/history/{job_id}/downloadDownload anonymized result fileRequired
POST/v1/history/batch-deleteBatch delete jobsRequired
GET/v1/quotaCheck current quota usage and limitsRequired
GET/v1/api-keysList your API keysRequired
POST/v1/api-keysCreate a new API keyRequired
DELETE/v1/api-keys/{id}Revoke an API keyRequired
GET/v1/billing/subscriptionGet current subscription detailsRequired
GET/healthHealth check endpointNone

Códigos de error

400 Bad Request

Parámetros de solicitud inválidos o JSON mal formado.

401 Unauthorized

Clave API faltante o inválida.

402 Payment Required

Cuota excedida. Actualice su plan o espere el reinicio de cuota.

404 Not Found

Sesión no encontrada o expirada (para desanonimización).

429 Too Many Requests

Límite de velocidad excedido. Consulte el encabezado X-RateLimit-Reset para saber cuándo reintentar.

500 Internal Server Error

Error del servidor. Inténtelo de nuevo o contacte soporte.

Límites de velocidad

Los límites de velocidad varían según el plan:

  • Free: 10 requests/minute, 1,000 tokens/month
  • Pro: 100 requests/minute, 100,000 tokens/month
  • Team: 1,000 requests/minute, 1,000,000 tokens/month
  • Enterprise: 1,000 requests/minute, unlimited tokens

Encabezados de límite de velocidad

Cada respuesta autenticada incluye encabezados de límite de velocidad:

X-RateLimit-Limit

Número máximo de solicitudes permitidas por minuto para su plan.

X-RateLimit-Remaining

Número de solicitudes restantes en la ventana actual.

X-RateLimit-Reset

Marca de tiempo Unix (segundos) cuando se reinicia la ventana de límite.

HTTP/1.1 200 OK X-RateLimit-Limit: 100 X-RateLimit-Remaining: 87 X-RateLimit-Reset: 1707523260

¿Necesita ayuda?

Nuestro equipo está aquí para apoyar su integración.

v4.14.71 (production)API Documentation | ANOXY