Przejdź do treści

Documentation API

Intégrez l'anonymisation de texte respectueuse de la vie privée d'ANOXY dans vos applications avec notre API REST simple.

Démarrage rapide

1

Obtenir votre clé API

Inscrivez-vous au tableau de bord et créez une clé API.

2

Première requête

Utilisez l'endpoint /v1/anonymize pour protéger les données sensibles.

3

Restaurer le texte original

Utilisez le même ID de session avec /v1/deanonymize pour récupérer le texte original.

Authentification

Toutes les requêtes API nécessitent une authentification. ANOXY supporte deux méthodes :

Clé API

Incluez votre clé API dans l'en-tête X-API-Key. Créez des clés dans votre tableau de bord.

X-API-Key: YOUR_API_KEY

Jeton JWT Bearer

Pour les intégrations SSO et OAuth, passez un jeton JWT dans l'en-tête Authorization. Les jetons sont émis par le fournisseur d'identité ANOXY.

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

Anonymisez le texte en détectant et remplaçant les informations personnelles (PII) par des jetons cohérents.

Corps de la requête

textstringrequis

Le texte à anonymiser.

languagestringoptionnel

Code langue (ex. "en", "fr"). Par défaut : "en".

session_idstringoptionnel

ID de session personnalisé. Si non fourni, un sera généré.

Exemple de requête

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"
  }'

Exemple de réponse

{
  "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

Restaurez le texte original en utilisant la correspondance de session. Nécessite un ID de session valide d'une anonymisation précédente.

Corps de la requête

textstringrequis

Le texte anonymisé à restaurer.

session_idstringrequis

L'ID de session de la requête d'anonymisation.

Exemple de requête

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"
  }'

Exemple de réponse

{
  "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

Détecter les entités PII dans le texte sans anonymiser. Retourne les positions, types et scores de confiance des entités tout en préservant le texte original.

Corps de la requête

textstringrequis

Le texte à analyser pour les entités PII.

languagestringoptionnel

Code langue (ex. "en", "fr"). Par défaut : "en".

entity_typesstring[] | stringoptionnel

Filtrer des types d'entités spécifiques. Accepte un tableau JSON ou une chaîne séparée par des virgules (ex. "PERSON,EMAIL_ADDRESS").

Exemple de requête

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"
  }'

Exemple de réponse

{
  "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

Télécharger un fichier document pour anonymisation. Prend en charge PDF, DOCX, XLSX, CSV, PPTX, images (OCR) et plus de 10 autres formats. Retourne un ID de tâche pour télécharger le résultat.

Corps de la requête

Content-Type: multipart/form-data

filebinaryrequis

Le fichier document à anonymiser (max 50 Mo).

modestringoptionnel

Mode d'anonymisation : "anonymize" (par défaut, irréversible) ou "pseudonymize" (réversible avec session).

languagestringoptionnel

Code langue (ex. "en", "fr"). Par défaut : "en".

Exemple de requête

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"

Formats pris en charge

PDFDOCXXLSXCSVPPTXRTFHTMLTXTXMLJSONEMLMDPNGJPGTIFFBMP

Exemple de réponse

{
  "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"
  }
}

Format de réponse

Toutes les réponses API suivent une structure d'enveloppe JSON cohérente. Les réponses de succès enveloppent les données dans un champ "data", les réponses d'erreur fournissent un objet d'erreur structuré.

Succès

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

Erreur

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

Catalogue des endpoints

Liste complète des endpoints API disponibles.

MéthodeEndpointDescriptionAuth
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

Codes d'erreur

400 Bad Request

Paramètres de requête invalides ou JSON malformé.

401 Unauthorized

Clé API manquante ou invalide.

402 Payment Required

Quota dépassé. Mettez à niveau votre forfait ou attendez la réinitialisation.

404 Not Found

Session introuvable ou expirée (pour la désanonymisation).

429 Too Many Requests

Limite de débit dépassée. Consultez l'en-tête X-RateLimit-Reset pour savoir quand réessayer.

500 Internal Server Error

Erreur serveur. Veuillez réessayer ou contacter le support.

Limites de débit

Les limites de débit varient selon le forfait :

  • 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

En-têtes de limite de débit

Chaque réponse authentifiée inclut des en-têtes de limite de débit :

X-RateLimit-Limit

Nombre maximum de requêtes autorisées par minute pour votre forfait.

X-RateLimit-Remaining

Nombre de requêtes restantes dans la fenêtre actuelle.

X-RateLimit-Reset

Horodatage Unix (secondes) de la réinitialisation de la fenêtre.

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

Besoin d'aide ?

Notre équipe est là pour vous accompagner dans votre intégration.

v4.14.71 (production)API Documentation | ANOXY