API-documentatie
Integreer ANOXY's privacy-beschermende tekstanonimisering in je applicaties met onze eenvoudige REST API.
Snelstart
Haal je API-sleutel op
Meld je aan bij het dashboard en maak een API-sleutel aan.
Doe je eerste verzoek
Gebruik het /v1/anonymize endpoint om gevoelige gegevens te beschermen.
Herstel originele tekst
Gebruik dezelfde sessie-ID met /v1/deanonymize om de originele tekst terug te krijgen.
Authenticatie
Alle API-verzoeken vereisen authenticatie. ANOXY ondersteunt twee authenticatiemethoden:
API-sleutel
Voeg je API-sleutel toe in de X-API-Key header. Maak sleutels aan in je dashboard.
X-API-Key: YOUR_API_KEYJWT Bearer Token
Voor SSO- en OAuth-integraties, stuur een JWT-token mee in de Authorization-header. Tokens worden uitgegeven door ANOXY's identity provider.
Authorization: Bearer eyJhbGciOiJSUzI1NiIs.../v1/anonymizeAnonimiseer tekst door persoonsgegevens (PII) te detecteren en te vervangen door consistente tokens.
Request Body
textstringverplichtDe tekst om te anonimiseren.
languagestringoptioneelTaalcode (bijv. "en", "nl"). Standaard: "en".
session_idstringoptioneelAangepaste sessie-ID. Indien niet opgegeven, wordt er een gegenereerd.
Voorbeeldverzoek
curl -X POST https://app.anoxy.ai/v1/anonymize \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "John Smith lives at 123 Main St, New York. His email is john@example.com.",
"language": "en",
"session_id": "optional-session-id"
}'Voorbeeldrespons
{
"session_id": "abc-123-def-456",
"anonymized_text": "<PERSON_1> lives at <LOCATION_1>. His email is <EMAIL_1>.",
"entities_found": [
{
"entity_type": "PERSON",
"start": 0,
"end": 10,
"text": "John Smith",
"anonymized_token": "<PERSON_1>"
},
{
"entity_type": "LOCATION",
"start": 20,
"end": 42,
"text": "123 Main St, New York",
"anonymized_token": "<LOCATION_1>"
},
{
"entity_type": "EMAIL_ADDRESS",
"start": 57,
"end": 76,
"text": "john@example.com",
"anonymized_token": "<EMAIL_1>"
}
],
"quota_used": 1250,
"quota_remaining": 8750,
"processing_time_ms": 45.2
}/v1/deanonymizeHerstel de originele tekst met behulp van de sessietoewijzing. Vereist een geldige sessie-ID van een eerdere anonimisering.
Request Body
textstringverplichtDe geanonimiseerde tekst om te herstellen.
session_idstringverplichtDe sessie-ID van het anonimiseringsverzoek.
Voorbeeldverzoek
curl -X POST https://app.anoxy.ai/v1/deanonymize \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "<PERSON_1> lives at <LOCATION_1>. His email is <EMAIL_1>.",
"session_id": "your-session-id"
}'Voorbeeldrespons
{
"original_text": "John Smith lives at 123 Main St, New York. His email is john@example.com.",
"session_id": "abc-123-def-456",
"processing_time_ms": 12.4
}/v1/text/detectPII-entiteiten in tekst detecteren zonder te anonimiseren. Retourneert entiteitslocaties, typen en betrouwbaarheidsscores met behoud van de originele tekst.
Request Body
textstringverplichtDe tekst die gescand moet worden op PII-entiteiten.
languagestringoptioneelTaalcode (bijv. "en", "nl"). Standaard: "en".
entity_typesstring[] | stringoptioneelFilter specifieke entiteitstypen. Accepteert een JSON-array of door komma's gescheiden string (bijv. "PERSON,EMAIL_ADDRESS").
Voorbeeldverzoek
curl -X POST https://app.anoxy.ai/v1/text/detect \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "John Smith lives at 123 Main St. Email: john@example.com",
"language": "en"
}'Voorbeeldrespons
{
"status": "success",
"data": {
"text": "John Smith lives at 123 Main St. Email: john@example.com",
"entities_found": [
{"entity_type": "PERSON", "start": 0, "end": 10, "text": "John Smith", "score": 0.95},
{"entity_type": "LOCATION", "start": 20, "end": 31, "text": "123 Main St", "score": 0.88},
{"entity_type": "EMAIL_ADDRESS", "start": 40, "end": 56, "text": "john@example.com", "score": 0.99}
],
"entity_summary": {"PERSON": 1, "LOCATION": 1, "EMAIL_ADDRESS": 1}
}
}/v1/documents/anonymizeUpload een documentbestand voor anonimisering. Ondersteunt PDF, DOCX, XLSX, CSV, PPTX, afbeeldingen (OCR) en meer dan 10 andere formaten. Retourneert een taak-ID voor het downloaden van het resultaat.
Request Body
Content-Type: multipart/form-data
filebinaryverplichtHet te anonimiseren documentbestand (max 50 MB).
modestringoptioneelAnonimiseringsmodus: "anonymize" (standaard, onomkeerbaar) of "pseudonymize" (omkeerbaar met sessie).
languagestringoptioneelTaalcode (bijv. "en", "nl"). Standaard: "en".
Voorbeeldverzoek
curl -X POST https://app.anoxy.ai/v1/documents/anonymize \
-H "X-API-Key: YOUR_API_KEY" \
-F "file=@contract.pdf" \
-F "mode=anonymize" \
-F "language=en"Ondersteunde formaten
Voorbeeldrespons
{
"status": "success",
"data": {
"job_id": "550e8400-e29b-41d4-a716-446655440000",
"filename": "contract_anonymized.pdf",
"entities_count": 23,
"processing_time_ms": 1250.5,
"download_url": "/v1/history/550e8400.../download"
}
}Responsformaat
Alle API-responses volgen een consistente JSON-envelopstructuur. Succesresponses verpakken gegevens in een "data"-veld, foutresponses bieden een gestructureerd foutobject.
Succes
{
"status": "success",
"data": { ... },
"meta": {
"version": "4.10.10",
"processing_time_ms": 45.2
}
}Fout
{
"status": "error",
"error": {
"type": "validation_error",
"message": "Text is required."
}
}Endpointcatalogus
Volledige lijst met beschikbare API-endpoints.
| Methode | Endpoint | Beschrijving | Auth |
|---|---|---|---|
| POST | /v1/anonymize | Anonymize text, replacing PII with tokens | Required |
| POST | /v1/deanonymize | Restore original text using session mapping | Required |
| POST | /v1/text/detect | Detect PII entities without anonymizing | Required |
| POST | /v1/documents/anonymize | Upload and anonymize a document file | Required |
| POST | /v1/text/anonymize-batch | Anonymize up to 20 text items in one request | Required |
| GET | /v1/countries | List supported countries and entity types | None |
| GET | /v1/history | List anonymization history (paginated, sortable) | Required |
| GET | /v1/history/{job_id} | Get job detail with entity breakdown | Required |
| GET | /v1/history/{job_id}/download | Download anonymized result file | Required |
| POST | /v1/history/batch-delete | Batch delete jobs | Required |
| GET | /v1/quota | Check current quota usage and limits | Required |
| GET | /v1/api-keys | List your API keys | Required |
| POST | /v1/api-keys | Create a new API key | Required |
| DELETE | /v1/api-keys/{id} | Revoke an API key | Required |
| GET | /v1/billing/subscription | Get current subscription details | Required |
| GET | /health | Health check endpoint | None |
Foutcodes
400 Bad RequestOngeldige verzoekparameters of onjuist JSON-formaat.
401 UnauthorizedOntbrekende of ongeldige API-sleutel.
402 Payment RequiredQuotum overschreden. Upgrade je abonnement of wacht op quotumreset.
404 Not FoundSessie niet gevonden of verlopen (voor deanonimisering).
429 Too Many RequestsLimiet overschreden. Controleer de X-RateLimit-Reset header voor wanneer je opnieuw kunt proberen.
500 Internal Server ErrorServerfout. Probeer het opnieuw of neem contact op met support.
Limieten
Limieten variëren per abonnement:
- Free: 10 requests/minute, 1,000 tokens/month
- Pro: 100 requests/minute, 100,000 tokens/month
- Team: 1,000 requests/minute, 1,000,000 tokens/month
- Enterprise: 1,000 requests/minute, unlimited tokens
Limiet-headers
Elke geauthenticeerde respons bevat limiet-headers:
X-RateLimit-LimitMaximum aantal verzoeken per minuut voor je abonnement.
X-RateLimit-RemainingAantal resterende verzoeken in het huidige venster.
X-RateLimit-ResetUnix-tijdstempel (seconden) wanneer het limietvenster reset.
HTTP/1.1 200 OK
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1707523260Hulp nodig?
Ons team staat klaar om je integratie te ondersteunen.