common.skipToContent

API Referansı

Anonimleştirmeyi uygulamalarınıza entegre edin

Programatik PII tespiti ve anonimleştirme için tam REST API.


Temel URL

https://anonymize.today/api

Tüm API uç noktaları bu temel URL'ye göredir. Örneğin, analiz uç noktası https://anonymize.today/api/presidio/analyze.


Kimlik Doğrulama

API isteklerini Bearer token'ları kullanarak kimlik doğrulayın:

Authorization: Bearer YOUR_API_TOKEN

API Token Alınıyor

  1. anonymize.today hesabınıza giriş yapın
  2. Ayarlar → Hesap → API Token'larına gidin
  3. Yeni Token Oluştur'a tıklayın
  4. Token'ınızı kopyalayın ve güvenli bir yerde saklayın (bir daha gösterilmeyecek)

Güvenlik Notu

API token'ınızı istemci tarafı kodunda veya genel depolarda asla açığa çıkarmayın. Ortam değişkenleri ve sunucu tarafı istekleri kullanın.

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

Hız Sınırlamaları

Uç Nokta TürüHız SınırıPatlama izni: 10 istek
Authentication3 requests/second5 requests
Analysis & Anonymization30 requests/second50 requests
Presets & Settings10 requests/second20 requests

Hız sınırına ulaşıldığında, API 429 Çok Fazla İstek hatası döner ve ne zaman tekrar deneyebileceğinizi belirten bir Retry-After başlığı içerir.


Temel Uç Noktalar

Metni Analiz Et

Metindeki PII varlıklarını tespit edin. Tespit edilen varlıkların konumlarını ve türlerini döner.

Metni Anonimleştir

Tespit edilen PII varlıklarını çeşitli operatörler kullanarak anonimleştirin.

Metni Yeniden Anonimleştir

Aynı şifreleme anahtarını kullanarak şifrelenmiş varlıkları orijinal değerlerine geri döndürün.


Anonimleştirme Operatörleri

OperatörAçıklamaTersine ÇevrilebilirÖrnek
replaceYer tutucu ile değiştirNoJohn → [PERSON]
maskKarakterleri kısmen maskeleNojohn@email.com → j***@email.com
redactTamamen kaldırNoJohn → (empty)
hashTek yönlü SHA-256 hashNoJohn → a3f2b1c4...
encryptAES-256-GCM şifrelemesiYesJohn → [ENC:...]

Operatör Konfigürasyonları

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

Ayarlar API'si


Varlık Türleri

anonymize.today, 10 kategoriye yayılmış 256 varlık türünü desteklemektedir:

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

Ayarlar belgelerinde varlık türlerinin tam listesini görün. Presets documentation.


Desteklenen Diller

API, PII tanıma için 27 dili desteklemektedir:

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

Ek diller: Romence, Yunanca, Hırvatça, Slovence, Makedonca, İsveççe, Danca, Norveççe, Fince, Ukraynaca, Litvanyaca, Katalanca


Hata Yönetimi

Standart HTTP durum kodları:

DurumAnlamAçıklama
200OKRequest succeeded
201CreatedResource created successfully
400Bad Request400 - Geçersiz İstek (geçersiz parametreler)
401Unauthorized401 - Yetkisiz (geçersiz veya eksik token)
402Payment RequiredInsufficient tokens
403ForbiddenAccess denied to resource
404Not FoundResource not found
429Too Many Requests429 - Hız Sınırlı (çok fazla istek)
500Internal Error500 - Sunucu Hatası (destekle iletişime geçin)

Hata Yanıt Formatı

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

Tam Örnekler

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

Son Güncelleme: Mart 2026