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/apiTü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_TOKENAPI Token Alınıyor
- anonymize.today hesabınıza giriş yapın
- Ayarlar → Hesap → API Token'larına gidin
- Yeni Token Oluştur'a tıklayın
- 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 |
|---|---|---|
| Authentication | 3 requests/second | 5 requests |
| Analysis & Anonymization | 30 requests/second | 50 requests |
| Presets & Settings | 10 requests/second | 20 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ör | Açıklama | Tersine Çevrilebilir | Örnek |
|---|---|---|---|
| replace | Yer tutucu ile değiştir | No | John → [PERSON] |
| mask | Karakterleri kısmen maskele | No | john@email.com → j***@email.com |
| redact | Tamamen kaldır | No | John → (empty) |
| hash | Tek yönlü SHA-256 hash | No | John → a3f2b1c4... |
| encrypt | AES-256-GCM şifrelemesi | Yes | John → [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:
| Kod | Dil | Motor |
|---|---|---|
| en | English | spaCy |
| de | German | spaCy |
| es | Spanish | spaCy |
| fr | French | spaCy |
| it | Italian | spaCy |
| pt | Portuguese | spaCy |
| nl | Dutch | spaCy |
| pl | Polish | spaCy |
| ru | Russian | spaCy |
| ja | Japanese | spaCy |
| zh | Chinese | spaCy |
| ko | Korean | spaCy |
| ar | Arabic | Transformer |
| hi | Hindi | Transformer |
| tr | Turkish | Transformer |
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ı:
| Durum | Anlam | Açıklama |
|---|---|---|
| 200 | OK | Request succeeded |
| 201 | Created | Resource created successfully |
| 400 | Bad Request | 400 - Geçersiz İstek (geçersiz parametreler) |
| 401 | Unauthorized | 401 - Yetkisiz (geçersiz veya eksik token) |
| 402 | Payment Required | Insufficient tokens |
| 403 | Forbidden | Access denied to resource |
| 404 | Not Found | Resource not found |
| 429 | Too Many Requests | 429 - Hız Sınırlı (çok fazla istek) |
| 500 | Internal Error | 500 - 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