common.skipToContent

Αναφορά API

Ενσωματώστε την ανωνυμοποίηση στις εφαρμογές σας

Πλήρες REST API για προγραμματική ανίχνευση και ανωνυμοποίηση PII.


Βασική Διεύθυνση URL

https://anonymize.today/api

Όλες οι τελικές διευθύνσεις API είναι σχετικές με αυτή τη βασική διεύθυνση URL. Για παράδειγμα, η τελική διεύθυνση ανάλυσης είναι https://anonymize.today/api/presidio/analyze.


Αυθεντικοποίηση

Αυθεντικοποιήστε τα αιτήματα API χρησιμοποιώντας Bearer tokens:

Authorization: Bearer YOUR_API_TOKEN

Λήψη API Token

  1. Συνδεθείτε στον λογαριασμό σας στο anonymize.today
  2. Μεταβείτε στις Ρυθμίσεις → Λογαριασμός → API Tokens
  3. Κάντε κλικ στην επιλογή Δημιουργία Νέου Token
  4. Αντιγράψτε και αποθηκεύστε με ασφάλεια το token σας (δεν θα εμφανιστεί ξανά)

Σημείωση Ασφαλείας

Ποτέ μην εκθέτετε το API token σας σε κώδικα πελάτη ή δημόσιες αποθήκες. Χρησιμοποιήστε μεταβλητές περιβάλλοντος και αιτήματα από τον διακομιστή.

Token σε Αιτήματα

TypeScript

const response = await fetch('https://anonymize.today/api/presidio/analyze', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.ANONYMIZE_API_TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ text, entities }),
});

Python

import os
import requests

headers = {
    "Authorization": f"Bearer {os.environ['ANONYMIZE_API_TOKEN']}",
    "Content-Type": "application/json"
}

response = requests.post(
    "https://anonymize.today/api/presidio/analyze",
    headers=headers,
    json={"text": text, "entities": entities}
)

cURL

curl -X POST https://anonymize.today/api/presidio/analyze \
  -H "Authorization: Bearer $ANONYMIZE_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"text": "John Doe works at Acme Corp", "entities": ["PERSON", "ORGANIZATION"]}'

Όρια Ρυθμού

Τύπος Τελικής ΔιεύθυνσηςΌριο ΡυθμούΆδεια έκρηξης: 10 αιτήματα
Authentication3 requests/second5 requests
Analysis & Anonymization30 requests/second50 requests
Presets & Settings10 requests/second20 requests

Όταν υπάρχει περιορισμός ρυθμού, το API επιστρέφει 429 Πάρα πολλές Αιτήσεις με επικεφαλίδα Retry-After που υποδεικνύει πότε μπορείτε να ξαναδοκιμάσετε.


Βασικές Τελικές Διευθύνσεις

Ανάλυση Κειμένου

Ανίχνευση PII οντοτήτων στο κείμενο. Επιστρέφει θέσεις και τύπους ανιχνευμένων οντοτήτων.

Ανώνυμο Κείμενο

Ανώνυμοι ανιχνευμένες PII οντότητες χρησιμοποιώντας διάφορους τελεστές.

Αποανώνυμο Κείμενο

Ανακτήστε τις κρυπτογραφημένες οντότητες στις αρχικές τους τιμές χρησιμοποιώντας το ίδιο κλειδί κρυπτογράφησης.


Τελεστές Ανωνυμοποίησης

ΤελεστήςΠεριγραφήΑναστρέψιμοςΠαράδειγμα
replaceΑντικατάσταση με placeholderNoJohn → [PERSON]
maskΜερική απόκρυψη χαρακτήρωνNojohn@email.com → j***@email.com
redactΑφαίρεση εντελώςNoJohn → (empty)
hashΜονοδρομική SHA-256 κατακερματισμόςNoJohn → a3f2b1c4...
encryptAES-256-GCM κρυπτογράφησηYesJohn → [ENC:...]

Ρυθμίσεις Τελεστών

// Replace operator
{ "type": "replace", "new_value": "[PERSON]" }

// Mask operator
{
  "type": "mask",
  "masking_char": "*",
  "chars_to_mask": 5,
  "from_end": false
}

// Hash operator
{ "type": "hash", "hash_type": "sha256" }

// Encrypt operator (requires encryption key in user settings)
{ "type": "encrypt" }

// Redact operator
{ "type": "redact" }

API Προκαθορισμένων Ρυθμίσεων


Τύποι Οντοτήτων

Το anonymize.today υποστηρίζει 256 τύπους οντοτήτων σε 10 κατηγορίες:

Personal

PERSON, EMAIL_ADDRESS, PHONE_NUMBER

Financial

CREDIT_CARD, IBAN_CODE, SWIFT_CODE, CRYPTO

Location

LOCATION, ADDRESS, COORDINATES

Government

SSN, PASSPORT, DRIVER_LICENSE, NATIONAL_ID

Contact

URL, DOMAIN_NAME

Technical

IP_ADDRESS, MAC_ADDRESS

Temporal

DATE_TIME, AGE

Organizational

ORGANIZATION, JOB_TITLE

Medical

MEDICAL_LICENSE, HEALTH_ID

Custom

User-defined patterns

Δείτε τη πλήρη λίστα τύπων οντοτήτων στην τεκμηρίωση Προκαθορισμένων Ρυθμίσεων. Presets documentation.


Υποστηριζόμενες Γλώσσες

Το API υποστηρίζει 27 γλώσσες για αναγνώριση PII:

ΚωδικόςΓλώσσαΜηχανή
enEnglishspaCy
deGermanspaCy
esSpanishspaCy
frFrenchspaCy
itItalianspaCy
ptPortuguesespaCy
nlDutchspaCy
plPolishspaCy
ruRussianspaCy
jaJapanesespaCy
zhChinesespaCy
koKoreanspaCy
arArabicTransformer
hiHindiTransformer
trTurkishTransformer

Επιπλέον γλώσσες: Ρουμανικά, Ελληνικά, Κροατικά, Σλοβενικά, Μακεδονικά, Σουηδικά, Δανικά, Νορβηγικά, Φινλανδικά, Ουκρανικά, Λιθουανικά, Καταλανικά


Διαχείριση Σφαλμάτων

Τυπικοί κωδικοί κατάστασης HTTP:

ΚατάστασηΣημασίαΠεριγραφή
200OKRequest succeeded
201CreatedResource created successfully
400Bad Request400 - Κακή Αίτηση (μη έγκυρες παράμετροι)
401Unauthorized401 - Μη εξουσιοδοτημένο (μη έγκυρο ή λείπον token)
402Payment RequiredInsufficient tokens
403ForbiddenAccess denied to resource
404Not FoundResource not found
429Too Many Requests429 - Περιορισμένος Ρυθμός (πάρα πολλές αιτήσεις)
500Internal Error500 - Σφάλμα Διακομιστή (επικοινωνήστε με την υποστήριξη)

Μορφή Απόκρισης Σφάλματος

{
  "error": {
    "code": "INSUFFICIENT_TOKENS",
    "message": "You need 5 tokens but only have 2 remaining",
    "details": {
      "required": 5,
      "available": 2
    }
  }
}

Πλήρη Παραδείγματα

TypeScript/Node.js

import fetch from 'node-fetch';

const API_BASE = 'https://anonymize.today/api';
const API_TOKEN = process.env.ANONYMIZE_API_TOKEN;

async function analyzeAndAnonymize(text: string) {
  // Step 1: Analyze
  const analyzeResponse = await fetch(`${API_BASE}/presidio/analyze`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_TOKEN}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      text,
      entities: ['PERSON', 'EMAIL_ADDRESS', 'PHONE_NUMBER'],
      language: 'en',
    }),
  });

  const { results } = await analyzeResponse.json();

  if (results.length === 0) {
    return { text, anonymized: false };
  }

  // Step 2: Anonymize
  const anonymizeResponse = await fetch(`${API_BASE}/presidio/anonymize`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${API_TOKEN}`,
      'Content-Type': 'application/json',
    },
    body: JSON.stringify({
      text,
      analyzer_results: results,
      anonymizers: {
        DEFAULT: { type: 'replace', new_value: '[REDACTED]' },
      },
    }),
  });

  return anonymizeResponse.json();
}

// Usage
const result = await analyzeAndAnonymize('Contact John Doe at john@example.com');
console.log(result.text); // "Contact [REDACTED] at [REDACTED]"

Python

import os
import requests

API_BASE = "https://anonymize.today/api"
API_TOKEN = os.environ["ANONYMIZE_API_TOKEN"]

def analyze_and_anonymize(text: str) -> dict:
    headers = {
        "Authorization": f"Bearer {API_TOKEN}",
        "Content-Type": "application/json"
    }

    # Step 1: Analyze
    analyze_response = requests.post(
        f"{API_BASE}/presidio/analyze",
        headers=headers,
        json={
            "text": text,
            "entities": ["PERSON", "EMAIL_ADDRESS", "PHONE_NUMBER"],
            "language": "en"
        }
    )
    results = analyze_response.json()["results"]

    if not results:
        return {"text": text, "anonymized": False}

    # Step 2: Anonymize
    anonymize_response = requests.post(
        f"{API_BASE}/presidio/anonymize",
        headers=headers,
        json={
            "text": text,
            "analyzer_results": results,
            "anonymizers": {
                "DEFAULT": {"type": "replace", "new_value": "[REDACTED]"}
            }
        }
    )

    return anonymize_response.json()

# Usage
result = analyze_and_anonymize("Contact John Doe at john@example.com")
print(result["text"])  # "Contact [REDACTED] at [REDACTED]"

Related Documentation

Τελευταία Ενημέρωση: Μάρτιος 2026