Przejdź do treści

API-documentatie

Integreer ANOXY's privacy-beschermende tekstanonimisering in je applicaties met onze eenvoudige REST API.

Snelstart

1

Haal je API-sleutel op

Meld je aan bij het dashboard en maak een API-sleutel aan.

2

Doe je eerste verzoek

Gebruik het /v1/anonymize endpoint om gevoelige gegevens te beschermen.

3

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_KEY

JWT 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...
POST/v1/anonymize

Anonimiseer tekst door persoonsgegevens (PII) te detecteren en te vervangen door consistente tokens.

Request Body

textstringverplicht

De tekst om te anonimiseren.

languagestringoptioneel

Taalcode (bijv. "en", "nl"). Standaard: "en".

session_idstringoptioneel

Aangepaste 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
}
POST/v1/deanonymize

Herstel de originele tekst met behulp van de sessietoewijzing. Vereist een geldige sessie-ID van een eerdere anonimisering.

Request Body

textstringverplicht

De geanonimiseerde tekst om te herstellen.

session_idstringverplicht

De 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
}
POST/v1/text/detect

PII-entiteiten in tekst detecteren zonder te anonimiseren. Retourneert entiteitslocaties, typen en betrouwbaarheidsscores met behoud van de originele tekst.

Request Body

textstringverplicht

De tekst die gescand moet worden op PII-entiteiten.

languagestringoptioneel

Taalcode (bijv. "en", "nl"). Standaard: "en".

entity_typesstring[] | stringoptioneel

Filter 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}
  }
}
POST/v1/documents/anonymize

Upload 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

filebinaryverplicht

Het te anonimiseren documentbestand (max 50 MB).

modestringoptioneel

Anonimiseringsmodus: "anonymize" (standaard, onomkeerbaar) of "pseudonymize" (omkeerbaar met sessie).

languagestringoptioneel

Taalcode (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

PDFDOCXXLSXCSVPPTXRTFHTMLTXTXMLJSONEMLMDPNGJPGTIFFBMP

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.

MethodeEndpointBeschrijvingAuth
POST/v1/anonymizeAnonymize text, replacing PII with tokensRequired
POST/v1/deanonymizeRestore original text using session mappingRequired
POST/v1/text/detectDetect PII entities without anonymizingRequired
POST/v1/documents/anonymizeUpload and anonymize a document fileRequired
POST/v1/text/anonymize-batchAnonymize up to 20 text items in one requestRequired
GET/v1/countriesList supported countries and entity typesNone
GET/v1/historyList anonymization history (paginated, sortable)Required
GET/v1/history/{job_id}Get job detail with entity breakdownRequired
GET/v1/history/{job_id}/downloadDownload anonymized result fileRequired
POST/v1/history/batch-deleteBatch delete jobsRequired
GET/v1/quotaCheck current quota usage and limitsRequired
GET/v1/api-keysList your API keysRequired
POST/v1/api-keysCreate a new API keyRequired
DELETE/v1/api-keys/{id}Revoke an API keyRequired
GET/v1/billing/subscriptionGet current subscription detailsRequired
GET/healthHealth check endpointNone

Foutcodes

400 Bad Request

Ongeldige verzoekparameters of onjuist JSON-formaat.

401 Unauthorized

Ontbrekende of ongeldige API-sleutel.

402 Payment Required

Quotum overschreden. Upgrade je abonnement of wacht op quotumreset.

404 Not Found

Sessie niet gevonden of verlopen (voor deanonimisering).

429 Too Many Requests

Limiet overschreden. Controleer de X-RateLimit-Reset header voor wanneer je opnieuw kunt proberen.

500 Internal Server Error

Serverfout. 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-Limit

Maximum aantal verzoeken per minuut voor je abonnement.

X-RateLimit-Remaining

Aantal resterende verzoeken in het huidige venster.

X-RateLimit-Reset

Unix-tijdstempel (seconden) wanneer het limietvenster reset.

HTTP/1.1 200 OK X-RateLimit-Limit: 100 X-RateLimit-Remaining: 87 X-RateLimit-Reset: 1707523260

Hulp nodig?

Ons team staat klaar om je integratie te ondersteunen.

v4.14.71 (production)API Documentation | ANOXY