common.skipToContent

API Nuoroda

Integruokite anonymizavimą į savo programas

Pilnas REST API programiniam PII aptikimui ir anonymizavimui.


Pagrindinis URL

https://anonymize.today/api

Visi API galiniai taškai yra santykyje su šiuo pagrindiniu URL. Pavyzdžiui, analizės galinis taškas yra https://anonymize.today/api/presidio/analyze.


Autentifikacija

Autentifikuokite API užklausas naudodami Bearer žetonus:

Authorization: Bearer YOUR_API_TOKEN

Gaunamas API žetonas

  1. Prisijunkite prie savo anonymize.today paskyros
  2. Eikite į Nustatymai → Paskyra → API Žetonai
  3. Paspauskite Sukurti naują žetoną
  4. Kopijuokite ir saugiai laikykite savo žetoną (jis nebus rodomas vėl)

Saugumo pastaba

Niekada neatskleiskite savo API žetono kliento pusėje esančiame kode ar viešuose saugyklose. Naudokite aplinkos kintamuosius ir serverio užklausas.

Žetonas užklausose

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

Užklausų Apribojimai

Galinių taškų tipasUžklausų limitasSprogimo leidimas: 10 užklausų
Authentication3 requests/second5 requests
Analysis & Anonymization30 requests/second50 requests
Presets & Settings10 requests/second20 requests

Kai limitas pasiektas, API grąžina 429 Per daug užklausų su Retry-After antrašte, nurodančia, kada galite bandyti vėl.


Pagrindiniai galiniai taškai

Analizuoti tekstą

Aptikti PII subjektus tekste. Grąžina aptiktų subjektų pozicijas ir tipus.

Anonymizuoti tekstą

Anonymizuoti aptiktus PII subjektus naudojant įvairius operatorius.

Atkurti tekstą

Atkurti užšifruotus subjektus į jų originalias vertes naudojant tą patį šifravimo raktą.


Anonymizavimo operatoriai

OperatoriusAprašymasAtvirkštinisPavyzdys
replacePakeisti su vietos žymekliuNoJohn → [PERSON]
maskIš dalies užmaskuoti simboliusNojohn@email.com → j***@email.com
redactVisiškai pašalintiNoJohn → (empty)
hashVienpusis SHA-256 hashNoJohn → a3f2b1c4...
encryptAES-256-GCM šifravimasYesJohn → [ENC:...]

Operatoriaus konfigūracija

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

Išankstiniai nustatymai API


Subjektų tipai

anonymize.today palaiko 256 subjektų tipus 10 kategorijų:

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

Žiūrėkite visą subjektų tipų sąrašą Išankstinių nustatymų dokumentacijoje. Presets documentation.


Palaikomos kalbos

API palaiko 27 kalbas PII atpažinimui:

KodasKalbaVariklis
enEnglishspaCy
deGermanspaCy
esSpanishspaCy
frFrenchspaCy
itItalianspaCy
ptPortuguesespaCy
nlDutchspaCy
plPolishspaCy
ruRussianspaCy
jaJapanesespaCy
zhChinesespaCy
koKoreanspaCy
arArabicTransformer
hiHindiTransformer
trTurkishTransformer

Papildomos kalbos: Rumunų, Graikų, Kroatų, Slovėnų, Makedonų, Švedų, Danų, Norvegų, Suomių, Ukrainiečių, Lietuvių, Katalonų


Klaidų Tvarkymas

Standartiniai HTTP statuso kodai:

StatusasReikšmėAprašymas
200OKRequest succeeded
201CreatedResource created successfully
400Bad Request400 - Bloga Užklausa (neteisingi parametrai)
401Unauthorized401 - Neautorizuota (neteisingas arba trūkstamas žetonas)
402Payment RequiredInsufficient tokens
403ForbiddenAccess denied to resource
404Not FoundResource not found
429Too Many Requests429 - Apribota Užklausų (per daug užklausų)
500Internal Error500 - Serverio Klaida (susisiekite su palaikymo tarnyba)

Klaidos atsako formatas

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

Pilni pavyzdžiai

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

Paskutinį kartą atnaujinta: 2026 m. kovo mėn.