API Nuoroda
Integruokite anonymizavimą į savo programas
Pilnas REST API programiniam PII aptikimui ir anonymizavimui.
Pagrindinis URL
https://anonymize.today/apiVisi 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_TOKENGaunamas API žetonas
- Prisijunkite prie savo anonymize.today paskyros
- Eikite į Nustatymai → Paskyra → API Žetonai
- Paspauskite Sukurti naują žetoną
- 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ų tipas | Užklausų limitas | Sprogimo leidimas: 10 užklausų |
|---|---|---|
| Authentication | 3 requests/second | 5 requests |
| Analysis & Anonymization | 30 requests/second | 50 requests |
| Presets & Settings | 10 requests/second | 20 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
| Operatorius | Aprašymas | Atvirkštinis | Pavyzdys |
|---|---|---|---|
| replace | Pakeisti su vietos žymekliu | No | John → [PERSON] |
| mask | Iš dalies užmaskuoti simbolius | No | john@email.com → j***@email.com |
| redact | Visiškai pašalinti | No | John → (empty) |
| hash | Vienpusis SHA-256 hash | No | John → a3f2b1c4... |
| encrypt | AES-256-GCM šifravimas | Yes | John → [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:
| Kodas | Kalba | Variklis |
|---|---|---|
| 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 |
Papildomos kalbos: Rumunų, Graikų, Kroatų, Slovėnų, Makedonų, Švedų, Danų, Norvegų, Suomių, Ukrainiečių, Lietuvių, Katalonų
Klaidų Tvarkymas
Standartiniai HTTP statuso kodai:
| Statusas | Reikšmė | Aprašymas |
|---|---|---|
| 200 | OK | Request succeeded |
| 201 | Created | Resource created successfully |
| 400 | Bad Request | 400 - Bloga Užklausa (neteisingi parametrai) |
| 401 | Unauthorized | 401 - Neautorizuota (neteisingas arba trūkstamas žetonas) |
| 402 | Payment Required | Insufficient tokens |
| 403 | Forbidden | Access denied to resource |
| 404 | Not Found | Resource not found |
| 429 | Too Many Requests | 429 - Apribota Užklausų (per daug užklausų) |
| 500 | Internal Error | 500 - 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.