Przejdź do treści

Dokumentacja API

Zintegruj anonimizację tekstu ANOXY chroniącą prywatność w swoich aplikacjach dzięki prostemu REST API.

Szybki Start

1

Uzyskaj klucz API

Zarejestruj się w panelu i utwórz klucz API.

2

Wyślij pierwsze żądanie

Użyj endpointu /v1/anonymize, aby zacząć chronić wrażliwe dane.

3

Przywróć oryginalny tekst

Użyj tego samego ID sesji z /v1/deanonymize, aby odzyskać oryginalny tekst.

Uwierzytelnianie

Wszystkie żądania API wymagają uwierzytelniania. ANOXY obsługuje dwie metody:

Klucz API

Dodaj klucz API w nagłówku X-API-Key. Utwórz klucze w panelu.

X-API-Key: YOUR_API_KEY

Token JWT Bearer

Dla integracji SSO i OAuth, przekaż token JWT w nagłówku Authorization. Tokeny wydawane przez dostawcę tożsamości ANOXY.

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

Anonimizuj tekst wykrywając i zastępując dane osobowe (PII) spójnymi tokenami.

Treść Żądania

textstringwymagane

Tekst do anonimizacji.

languagestringopcjonalne

Kod języka (np. "en", "pl"). Domyślnie "en".

session_idstringopcjonalne

Niestandardowe ID sesji. Jeśli nie podano, zostanie wygenerowane.

Przykładowe Żądanie

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

Przykładowa Odpowiedź

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

Przywróć oryginalny tekst używając mapowania sesji. Wymaga prawidłowego ID sesji z wcześniejszej anonimizacji.

Treść Żądania

textstringwymagane

Zanonimizowany tekst do przywrócenia.

session_idstringwymagane

ID sesji z żądania anonimizacji.

Przykładowe Żądanie

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

Przykładowa Odpowiedź

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

Wykrywanie encji PII w tekście bez anonimizacji. Zwraca lokalizacje, typy i poziomy pewności encji, zachowując oryginalny tekst.

Treść Żądania

textstringwymagane

Tekst do przeskanowania pod kątem encji PII.

languagestringopcjonalne

Kod języka (np. "en", "pl"). Domyślnie "en".

entity_typesstring[] | stringopcjonalne

Filtrowanie konkretnych typów encji. Akceptuje tablicę JSON lub ciąg rozdzielony przecinkami (np. "PERSON,EMAIL_ADDRESS").

Przykładowe Żądanie

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

Przykładowa Odpowiedź

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

Przesyłanie pliku dokumentu do anonimizacji. Obsługuje PDF, DOCX, XLSX, CSV, PPTX, obrazy (OCR) i ponad 10 innych formatów. Zwraca ID zadania do pobrania wyniku.

Treść Żądania

Content-Type: multipart/form-data

filebinarywymagane

Plik dokumentu do anonimizacji (maks. 50 MB).

modestringopcjonalne

Tryb anonimizacji: "anonymize" (domyślny, nieodwracalny) lub "pseudonymize" (odwracalny z sesją).

languagestringopcjonalne

Kod języka (np. "en", "pl"). Domyślnie "en".

Przykładowe Żądanie

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"

Obsługiwane formaty

PDFDOCXXLSXCSVPPTXRTFHTMLTXTXMLJSONEMLMDPNGJPGTIFFBMP

Przykładowa Odpowiedź

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

Wszystkie odpowiedzi API mają spójną strukturę koperty JSON. Odpowiedzi sukcesu opakowują dane w pole "data", odpowiedzi błędów dostarczają ustrukturyzowany obiekt błędu.

Sukces

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

Błąd

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

Katalog Endpointów

Pełna lista dostępnych endpointów API.

MetodaEndpointOpisAuth
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

Kody Błędów

400 Bad Request

Nieprawidłowe parametry żądania lub zniekształcony JSON.

401 Unauthorized

Brakujący lub nieprawidłowy klucz API.

402 Payment Required

Limit wyczerpany. Zmień plan lub poczekaj na reset limitu.

404 Not Found

Sesja nie znaleziona lub wygasła (dla deanonimizacji).

429 Too Many Requests

Przekroczono limit żądań. Sprawdź nagłówek X-RateLimit-Reset.

500 Internal Server Error

Błąd serwera. Spróbuj ponownie lub skontaktuj się z pomocą.

Limity Żądań

Limity żądań różnią się w zależności od planu:

  • 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

Nagłówki Limitu Żądań

Każda uwierzytelniona odpowiedź zawiera nagłówki limitu żądań:

X-RateLimit-Limit

Maksymalna liczba żądań na minutę dla Twojego planu.

X-RateLimit-Remaining

Liczba pozostałych żądań w bieżącym oknie.

X-RateLimit-Reset

Znacznik czasu Unix (sekundy) resetu okna limitu żądań.

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

Potrzebujesz Pomocy?

Nasz zespół jest gotowy wspomóc Twoją integrację.

v4.14.71 (production)API Documentation | ANOXY