API Референца
Интегрирајте анонизација во вашите апликации
Комплетен REST API за програмастко откривање и анонизација на PII.
Основен URL
https://anonymize.today/apiСите API крајни точки се релативни на овој основен URL. На пример, крајната точка за анализа е https://anonymize.today/api/presidio/analyze.
Автентикација
Автентирајте ги API барањата користејќи Bearer токени:
Authorization: Bearer YOUR_API_TOKENДобијање на API Токен
- Најавете се на вашиот акаунт на anonymize.today
- Оди на Поставки → Акаунт → API Токени
- Кликнете на Генерирај Нов Токен
- Копирајте и безбедно зачувајте го вашиот токен (нема да биде повторно прикажан)
Безбедносна Напомена
Никогаш не откривајте го вашиот API токен во код на клиентска страна или јавни репозиториуми. Користете променливи на средина и барања на серверска страна.
Токен во Барања
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 барања |
|---|---|---|
| Authentication | 3 requests/second | 5 requests |
| Analysis & Anonymization | 30 requests/second | 50 requests |
| Presets & Settings | 10 requests/second | 20 requests |
Кога е ограничен, API враќа 429 Премногу Многу Барања со заглавие Retry-After кое укажува кога можете да повторите.
Основни Крајни Точки
Анализирај Текст
Детектирајте PII ентитети во текстот. Враќа позиции и типови на детектирани ентитети.
Анонимизирај Текст
Анонимизирајте детектирани PII ентитети користејќи различни оператори.
Деанонимизирај Текст
Вратете шифрирани ентитети на нивните оригинални вредности користејќи го истиот клуч за шифрирање.
Оператори за Анонизација
| Оператор | Опис | Обратлив | Пример |
|---|---|---|---|
| replace | Замени со замена | No | John → [PERSON] |
| mask | Делумно маскирајте знаци | No | john@email.com → j***@email.com |
| redact | Комплетно отстрани | No | John → (empty) |
| hash | Еднонасочен SHA-256 хаш | No | John → a3f2b1c4... |
| encrypt | AES-256-GCM шифрирање | Yes | John → [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 препознавање:
| Код | Јазик | Машина |
|---|---|---|
| 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 |
Додатни јазици: Романски, Грчки, Хрватски, Словенечки, Македонски, Шведски, Датски, Норвешки, Фински, Украински, Литвански, Каталонски
Управување со грешки
Стандардни HTTP статус кодови:
| Статус | Значење | Опис |
|---|---|---|
| 200 | OK | Request succeeded |
| 201 | Created | Resource created successfully |
| 400 | Bad Request | 400 - Лошо барање (невалидни параметри) |
| 401 | Unauthorized | 401 - Неовластен (невалиден или недостигнат токен) |
| 402 | Payment Required | Insufficient tokens |
| 403 | Forbidden | Access denied to resource |
| 404 | Not Found | Resource not found |
| 429 | Too Many Requests | 429 - Ограничена стапка (превише барања) |
| 500 | Internal Error | 500 - Грешка на серверот (контактирајте поддршка) |
Формат на Одговор за Грешка
{
"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