Dokumentacja API
Zintegruj anonimizację tekstu ANOXY chroniącą prywatność w swoich aplikacjach dzięki prostemu REST API.
Szybki Start
Uzyskaj klucz API
Zarejestruj się w panelu i utwórz klucz API.
Wyślij pierwsze żądanie
Użyj endpointu /v1/anonymize, aby zacząć chronić wrażliwe dane.
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_KEYToken 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.../v1/anonymizeAnonimizuj tekst wykrywając i zastępując dane osobowe (PII) spójnymi tokenami.
Treść Żądania
textstringwymaganeTekst do anonimizacji.
languagestringopcjonalneKod języka (np. "en", "pl"). Domyślnie "en".
session_idstringopcjonalneNiestandardowe 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
}/v1/deanonymizePrzywróć oryginalny tekst używając mapowania sesji. Wymaga prawidłowego ID sesji z wcześniejszej anonimizacji.
Treść Żądania
textstringwymaganeZanonimizowany tekst do przywrócenia.
session_idstringwymaganeID 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
}/v1/text/detectWykrywanie encji PII w tekście bez anonimizacji. Zwraca lokalizacje, typy i poziomy pewności encji, zachowując oryginalny tekst.
Treść Żądania
textstringwymaganeTekst do przeskanowania pod kątem encji PII.
languagestringopcjonalneKod języka (np. "en", "pl"). Domyślnie "en".
entity_typesstring[] | stringopcjonalneFiltrowanie 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}
}
}/v1/documents/anonymizePrzesył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
filebinarywymaganePlik dokumentu do anonimizacji (maks. 50 MB).
modestringopcjonalneTryb anonimizacji: "anonymize" (domyślny, nieodwracalny) lub "pseudonymize" (odwracalny z sesją).
languagestringopcjonalneKod 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
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.
| Metoda | Endpoint | Opis | Auth |
|---|---|---|---|
| POST | /v1/anonymize | Anonymize text, replacing PII with tokens | Required |
| POST | /v1/deanonymize | Restore original text using session mapping | Required |
| POST | /v1/text/detect | Detect PII entities without anonymizing | Required |
| POST | /v1/documents/anonymize | Upload and anonymize a document file | Required |
| POST | /v1/text/anonymize-batch | Anonymize up to 20 text items in one request | Required |
| GET | /v1/countries | List supported countries and entity types | None |
| GET | /v1/history | List anonymization history (paginated, sortable) | Required |
| GET | /v1/history/{job_id} | Get job detail with entity breakdown | Required |
| GET | /v1/history/{job_id}/download | Download anonymized result file | Required |
| POST | /v1/history/batch-delete | Batch delete jobs | Required |
| GET | /v1/quota | Check current quota usage and limits | Required |
| GET | /v1/api-keys | List your API keys | Required |
| POST | /v1/api-keys | Create a new API key | Required |
| DELETE | /v1/api-keys/{id} | Revoke an API key | Required |
| GET | /v1/billing/subscription | Get current subscription details | Required |
| GET | /health | Health check endpoint | None |
Kody Błędów
400 Bad RequestNieprawidłowe parametry żądania lub zniekształcony JSON.
401 UnauthorizedBrakujący lub nieprawidłowy klucz API.
402 Payment RequiredLimit wyczerpany. Zmień plan lub poczekaj na reset limitu.
404 Not FoundSesja nie znaleziona lub wygasła (dla deanonimizacji).
429 Too Many RequestsPrzekroczono limit żądań. Sprawdź nagłówek X-RateLimit-Reset.
500 Internal Server ErrorBłą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-LimitMaksymalna liczba żądań na minutę dla Twojego planu.
X-RateLimit-RemainingLiczba pozostałych żądań w bieżącym oknie.
X-RateLimit-ResetZnacznik czasu Unix (sekundy) resetu okna limitu żądań.
HTTP/1.1 200 OK
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1707523260Potrzebujesz Pomocy?
Nasz zespół jest gotowy wspomóc Twoją integrację.