Από George Curta ·
Δυνατό REST API
Ενοποιήστε την ανίχνευση PII και την ανωνυμοποίηση σε οποιαδήποτε εφαρμογή. Απλές διευθύνσεις, ολοκληρωμένη τεκμηρίωση, έτοιμο για επιχειρήσεις.
Γρήγορη Έναρξη
Ξεκινήστε με το API σε λίγα λεπτά
Εγκαταστήστε το SDK μας και κάντε την πρώτη σας κλήση API
- Εγκαταστήστε το SDK για τη γλώσσα σας
- Αποκτήστε το API token από τον πίνακα ελέγχου
- Κάντε το πρώτο σας αίτημα ανωνυμοποίησης
- Ενοποιήστε στην εφαρμογή σας
// Analyze text for PII
const response = await fetch('https://anonym.legal/api/presidio/analyze', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
text: 'Contact John Smith at john.smith@company.com',
language: 'en'
})
});
const results = await response.json();
// Returns detected entities with positions and confidence scoresΔιαθέσιμα Endpoints
/api/presidio/analyzeAnalyze text to detect PII entities. Returns entity types, positions, and confidence scores.
View documentation →/api/presidio/anonymizeAnonymize detected PII using your chosen method. Returns anonymized text.
View documentation →/api/presidio/batchProcess multiple texts in a single request (from the Basic plan, up to 5 texts). Business plans support up to 50 texts per batch.
View documentation →/api/presidio/imageDetect or redact PII in a PNG/JPEG image (mode=analyze|redact). Redact mode supports solid-box, label-replace, or masked-character rendering per region.
View documentation →/api/healthCheck service status and runtime health. No authentication required.
Public endpointΧαρακτηριστικά API
JWT Authentication
Ασφαλής αυθεντικοποίηση με βάση το token για όλες τις κλήσεις API
Περιορισμός Ρυθμού
Δίκαιοι περιορισμοί ρυθμού με σαφή headers. Υψηλότεροι περιορισμοί για επιχειρήσεις
Παραδείγματα Κώδικα
Έτοιμα προς χρήση παραδείγματα σε πολλές γλώσσες προγραμματισμού
Endpoint Reference
Complete REST documentation. All endpoints require Bearer token authentication unless noted.
Authentication
Every request requires a Bearer token in the Authorization header. Get your access token from Settings → Developer Access in the web app.
Authorization: Bearer YOUR_API_TOKEN
Content-Type: application/jsonEndpoints
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/presidio/analyze | Detect PII entities in text |
| POST | /api/presidio/anonymize | Anonymize detected PII entities |
| POST | /api/presidio/batch | Process multiple files in one request |
| POST | /api/presidio/image | Detect or redact PII in PNG/JPEG images (mode=analyze|redact) |
| GET | /api/presidio/entities | List supported entity types |
| GET | /api/health | Service health (no auth required) |
| GET | /api/presets | List saved presets |
| POST | /api/presets | Create a new preset |
| PUT | /api/presets/{id} | Update a preset |
| DELETE | /api/presets/{id} | Delete a preset |
| GET | /api/encryption-keys | List encryption key metadata |
| GET | /api/encryption-keys/{id} | Get key details (add ?includeKey=true for value) |
Request & Response Schemas
POST /api/presidio/analyze — Request
{
"text": "John Smith lives at 123 Main St. SSN: 123-45-6789",
"language": "en",
"entities": ["PERSON", "LOCATION", "US_SSN"],
"score_threshold": 0.5,
"ad_hoc_recognizers": [
{
"entity_type": "EMPLOYEE_ID",
"patterns": [{ "regex": "EMP-[0-9]{6}", "score": 0.9 }]
}
]
}POST /api/presidio/analyze — Response
{
"entities": [
{ "entity_type": "PERSON", "text": "John Smith", "start": 0, "end": 10, "score": 0.95 },
{ "entity_type": "LOCATION", "text": "123 Main St", "start": 20, "end": 31, "score": 0.87 },
{ "entity_type": "US_SSN", "text": "123-45-6789", "start": 38, "end": 49, "score": 0.99 }
],
"tokens_charged": 3,
"language": "en"
}POST /api/presidio/anonymize — Request with Operators
{
"text": "John Smith, SSN 123-45-6789, email john@example.com",
"language": "en",
"operators": {
"PERSON": { "type": "replace", "new_value": "<NAME>" },
"US_SSN": { "type": "mask", "chars_to_mask": 5, "from_end": false },
"EMAIL_ADDRESS": { "type": "hash", "hash_type": "SHA256" }
}
}POST /api/presidio/anonymize — Response
{
"anonymized_text": "<NAME>, SSN ***-**-6789, email a3f2b8c1d4e5f6...",
"entities_found": 3,
"tokens_charged": 5,
"replacements": [
{ "entity_type": "PERSON", "original": "John Smith", "replacement": "<NAME>" },
{ "entity_type": "US_SSN", "original": "123-45-6789", "replacement": "***-**-6789" },
{ "entity_type": "EMAIL_ADDRESS", "original": "john@example.com", "replacement": "a3f2b8c1..." }
]
}POST /api/presidio/image — Request (multipart/form-data)
curl -X POST https://anonym.legal/api/presidio/image \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-F "file=@document.png" \
-F "mode=redact" \
-F "language=en" \
-F "entities=[\"PERSON\",\"US_SSN\"]" \
-F "operator=mask" \
-F "mask_char=#"POST /api/presidio/image — Response
// mode=analyze -> application/json (bounding boxes, not text offsets)
{
"entities": [
{ "entity_type": "PERSON", "score": 0.95, "left": 120, "top": 80, "width": 140, "height": 24 }
],
"processing_time": 0.83,
"tokens_charged": 4
}
// mode=redact -> binary image/png body
// Content-Type: image/png
// X-Tokens-Charged: 4Operator Reference
Configure per-entity anonymization using the operators field. Each entity type can use a different operator.
| Operator | Description | Parameters | Example Output |
|---|---|---|---|
| replace | Replace with custom value or token | new_value (string, max 100 chars) | <PERSON_1> |
| redact | Permanently remove | None | [REDACTED] |
| hash | One-way hash | hash_type: SHA256 | SHA512 | a3f2b8c1... |
| encrypt | AES reversible encryption with your key | key (16-32 chars) | ENC:base64... |
| mask | Partial character masking | chars_to_mask, masking_char, from_end | John **** |
| keep | Keep original (skip anonymization) | None | John Smith |
Rate Limits & Token Costs
| Plan | Monthly Tokens | Developer Access |
|---|---|---|
| Free | 200 | — |
| Basic | 1,000 | REST endpoints |
| Pro | 4,000 | REST endpoints + MCP Server |
| Business | 10,000 | REST endpoints + MCP Server + Priority |
Error Codes
| Code | Description | Response Format |
|---|---|---|
| 400 | Invalid request (missing text, bad parameters) | { "error": "Text is required" } |
| 401 | Missing or invalid API token | { "error": "Unauthorized" } |
| 403 | Feature not available on current plan | { "error": "Upgrade required" } |
| 429 | Token balance exhausted or rate limited | { "error": "Insufficient tokens", "details": {...} } |
| 500 | Internal server error | { "error": "Internal server error" } |
Ξεκινήστε να Δημιουργείτε Σήμερα
Η πρόσβαση στο API ξεκινά από το πλάνο Basic. Το πλάνο Free (200 tokens ανά κύκλο 30 ημερών στην εφαρμογή web) δεν έχει πρόσβαση στο API.
Limitations / Important note
- Rate limits and available endpoints depend on your plan; integrate retry/backoff for 429 responses.
- Detection results are probabilistic confidence scores, not guarantees — validate before automated downstream use.
- This documentation is informational and is not legal or compliance advice.