Na ·

API Imara ya REST

Incorporate PII detection na anonymization katika programu yoyote. Mipangilio rahisi, nyaraka kamili, tayari kwa biashara.

Kuanza Haraka

Anza kutumia API kwa dakika chache

Sakinisha SDK yetu na fanya wito wako wa kwanza wa API

  • Sakinisha SDK kwa lugha yako
  • Pata token yako ya API kutoka kwenye dashibodi
  • Fanya ombi lako la kwanza la anonymization
  • Incorporate katika programu yako
// 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

Mipangilio Inayopatikana

POST/api/presidio/analyze

Analyze text to detect PII entities. Returns entity types, positions, and confidence scores.

View documentation →
POST/api/presidio/anonymize

Anonymize detected PII using your chosen method. Returns anonymized text.

View documentation →
POST/api/presidio/batch

Process 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 →
POST/api/presidio/image

Detect 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 →
GET/api/health

Check service status and runtime health. No authentication required.

Public endpoint

Vipengele vya API

JWT Uthibitishaji

Uthibitishaji salama wa msingi wa token kwa wito wote wa API

Kikomo cha Kiwango

Kikomo cha kiwango cha haki na vichwa wazi. Mipaka ya juu kwa biashara

Mifano ya Kode

Mifano tayari kwa matumizi katika lugha nyingi za programu

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/json

Endpoints

MethodEndpointDescription
POST/api/presidio/analyzeDetect PII entities in text
POST/api/presidio/anonymizeAnonymize detected PII entities
POST/api/presidio/batchProcess multiple files in one request
POST/api/presidio/imageDetect or redact PII in PNG/JPEG images (mode=analyze|redact)
GET/api/presidio/entitiesList supported entity types
GET/api/healthService health (no auth required)
GET/api/presetsList saved presets
POST/api/presetsCreate a new preset
PUT/api/presets/{id}Update a preset
DELETE/api/presets/{id}Delete a preset
GET/api/encryption-keysList 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: 4

Operator Reference

Configure per-entity anonymization using the operators field. Each entity type can use a different operator.

OperatorDescriptionParametersExample Output
replaceReplace with custom value or tokennew_value (string, max 100 chars)<PERSON_1>
redactPermanently removeNone[REDACTED]
hashOne-way hashhash_type: SHA256 | SHA512a3f2b8c1...
encryptAES reversible encryption with your keykey (16-32 chars)ENC:base64...
maskPartial character maskingchars_to_mask, masking_char, from_endJohn ****
keepKeep original (skip anonymization)NoneJohn Smith

Rate Limits & Token Costs

PlanMonthly TokensDeveloper Access
Free200—
Basic1,000REST endpoints
Pro4,000REST endpoints + MCP Server
Business10,000REST endpoints + MCP Server + Priority

Error Codes

CodeDescriptionResponse Format
400Invalid request (missing text, bad parameters){ "error": "Text is required" }
401Missing or invalid API token{ "error": "Unauthorized" }
403Feature not available on current plan{ "error": "Upgrade required" }
429Token balance exhausted or rate limited{ "error": "Insufficient tokens", "details": {...} }
500Internal server error{ "error": "Internal server error" }

Anza Kujenga Leo

Ufikiaji wa API unaanzia kwenye mpango wa Basic. Mpango wa Free (tokeni 200 kwa kila mzunguko wa siku 30 kwenye programu ya wavuti) hauna ufikiaji wa 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 &mdash; validate before automated downstream use.
  • This documentation is informational and is not legal or compliance advice.

How we measure — our methodology