Developer API

    Integreer compliancescreening in elke workflow

    Uw onboardingpijplijn, betalingsgateway en CRM nemen elke dag al risicobeslissingen. Met de API van ScreenVeritAI kunt u sanctiescreening, PEP-controles, analyse van adverse media (negatieve berichtgeving) en de identificatie van uiteindelijk belanghebbenden (UBO-mapping) rechtstreeks in die workflows integreren — geen handmatige opzoekingen, geen kopiëren-plakken, geen compliancelacunes tussen systemen. Eén API-aanroep activeert dezelfde AI-agent die ons platform aandrijft, en gestructureerde JSON komt terug, klaar voor uw beslissingsengine.

    POST/api/v1/searchbash
    curl -X POST https://screenveritai.com/api/v1/search \
      -H 'X-API-Key: YOUR_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{
        "entity_name": "Acme Trading LLC",
        "entity_type": "company",
        "country": "AE",
        "search_type": "sanctions_check"
      }'
    # 202 Accepted
    # { "search_id": "SEARCH_ID", "status": "processing",
    #   "estimated_time_seconds": 15 }

    The request

    One POST call, then your poll loop.

    Entity name, type, country, screening type. The call returns 202 with a search_id and an ETA, and the agent works in the background — you poll for the result rather than hold the connection open.

    • entity_nameRequired, 1-500 characters. Alias-aware matching
    • entity_type"person", "company" or "any" (default "any")
    • countryOptional context field; does not filter Quick Check matching
    • search_type"sanctions_check", "adverse_media" or "full_search"

    The response

    Structured JSON. Findings, not a score.

    Core-jurisdiction fields and per-source arrays, plus criminal-watchlist and PEP/RCA findings. Review the available markdown, identifiers and source references; the response does not provide a numeric risk score.

    GET/api/v1/search/{search_id}200 OK
    {
      "id": "SEARCH_ID",
      "entity_name": "Acme Trading LLC",
      "entity_type": "company",
      "status": "completed",
      "search_type": "sanctions_check",
      "ofac_sanctions": "## OFAC Sanctions Findings\n\n**Status:** *Sanctioned*\n\n**Details:**\n- **Matched entity:** ACME TRADING LLC\n- **Authority:** US Treasury OFAC\n...",
      "eu_sanctions": "## EU Sanctions Findings\n\n**Status:** *No relevant listing found*\n...",
      "sanctions_sources": [
        { "source_id": "ofac_sanctions", "title": "OFAC Sanctions",
          "authority": "US Treasury OFAC", "hit_count": 1 },
        { "source_id": "eu_sanctions", "title": "EU Sanctions",
          "authority": "", "hit_count": 0 }
      ],
      "criminal_watchlists": null,
      "pep": null,
      "news_summary": null,
      "final_report": null,
      "created_at": "2026-09-04T09:20:03.771000+00:00",
      "completed_at": "2026-09-04T09:20:19.088000+00:00"
    }
    No relevant listing found / nullSanctioned / potential matchPer-source hit_countStatus and search_type
    • "ofac_sanctions"One markdown field per jurisdiction; read the *Status:* line
    • "sanctions_sources"source_id, title, authority, details, hit_count per source
    • "criminal_watchlists"Markdown when matched, null when nothing matched
    • "pep"Markdown when matched, null when nothing matched
    • "news_summary"Adverse-media report on adverse_media and full_search
    • "status"completed when done; error_* on failure

    API reference

    Three calls cover a screening integration: queue it, poll it, or hand over a file.

    POST/api/v1/searchQueue a screening run. Returns immediately with a search_id; the work happens in the background.202 Accepted
    Requestbash
    curl -X POST https://screenveritai.com/api/v1/search \
      -H 'X-API-Key: YOUR_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{"entity_name": "Acme Trading LLC", "entity_type": "company",
           "country": "AE", "search_type": "sanctions_check"}'
    Response202 Accepted
    { "search_id": "SEARCH_ID", "status": "processing",
      "message": "Search queued successfully. Poll the GET endpoint for results.",
      "estimated_time_seconds": 15 }
    GET/api/v1/search/{search_id}Poll for the result. Terminal status is completed; failures land in an error_* status.200 OK
    Requestbash
    curl https://screenveritai.com/api/v1/search/SEARCH_ID \
      -H 'X-API-Key: YOUR_API_KEY'
    Response200 OK
    { "id": "SEARCH_ID", "status": "completed", "search_type": "sanctions_check",
      "ofac_sanctions": "## OFAC Sanctions Findings ... *Sanctioned* ...",
      "eu_sanctions": "... *No relevant listing found* ...",
      "sanctions_sources": [{ "source_id": "ofac_sanctions", "hit_count": 1 }],
      "criminal_watchlists": null, "pep": null }
    POST/api/v1/batchUpload a CSV or XLSX with a name column — up to 100 rows and 2 MB. Poll the job, then export the CSV.202 Accepted
    Requestbash
    curl -X POST https://screenveritai.com/api/v1/batch \
      -H 'X-API-Key: YOUR_API_KEY' \
      -F 'file=@portfolio.csv'
    Response202 Accepted
    { "job_id": "JOB_ID", "total_rows": 100, "credits_charged": 100,
      "search_type": "sanctions_check", "status": "pending",
      "message": "Batch job created successfully. Poll the GET endpoint for status." }

    Integration patterns

    The API sits between data entry and decision — wherever you need a risk signal.

    • Customer onboarding

      1. Customer signup
      2. POST/api/v1/search
      3. Poll until completed
      4. Approve / hold
    • Payment processing

      1. Transaction init
      2. POST/api/v1/search
      3. Poll until completed
      4. Release / hold
    • CRM re-screen

      1. Record updated
      2. Your scheduler fires
      3. POST/api/v1/search
      4. Write result back

    Zelf bouwen vs. kopen

    Zelf bouwen vs. kopen
    AspectZelf bouwenScreenVeritAI API
    Tijd tot productie6-12 maanden om lijsten te sourcen, matchinglogica te bouwen en randgevallen af te handelenDagen om te integreren; productieklaar vanaf de eerste API-aanroep
    SanctielijstdekkingHandmatige inname van elk lijstformaat; doorlopend onderhoud bij schema-wijzigingenElke grote bron, doorlopend onderhouden en bijgewerkt
    MatchingnauwkeurigheidCustom fuzzy matching vereist NLP-expertise en continue afstemmingAI-agent met fuzzy matching, transliteratie, aliasresolutie en fonetische algoritmen
    PEP en adverse mediaAfzonderlijke dataleveranciers, afzonderlijke integraties, afzonderlijke budgettenPEP, adverse media en UBO-gegevens opgenomen in hetzelfde API-antwoord
    Doorlopend onderhoudToegewijd engineeringteam voor lijstupdates, schema-wijzigingen en afstemming van false positivesVolledig beheerd — lijstupdates, modelverbeteringen en infrastructuur worden voor u afgehandeld
    AuditspoorBouw uw eigen logging, bewijs-generatie en bewaar-infrastructuurBewijspakketten met tijdstempel inclusief bronreferenties en besluitrationale inbegrepen

    Vier stappen naar productie

    1. Uw API-sleutel ophalen

      Maak een API-sleutel met beperkte rechten aan vanuit uw ScreenVeritAI-dashboard. Wijs permissies toe — search:read, search:write, batch:read, batch:write — voor least-privilege toegang.

    2. Het endpoint integreren

      Voeg een enkele POST-aanroep toe aan uw onboarding-, betalings- of CRM-workflow. Stuur de entiteitsnaam, het type en het land. De API retourneert een taak-ID voor asynchrone resultaatopvraging.

    3. Resultaten verwerken

      Poll het resultaten-endpoint voor gestructureerde JSON — bedrijfscontext, eigendom, PEP, adverse media, sanctiesignalen en risicoscores.

    4. Monitoren en waarschuwen

      Configureer doorlopende monitoring voor gescreende entiteiten. Wanneer sanctielijsten worden bijgewerkt of nieuwe adverse media opduikt, stuurt de API meldingen zodat uw systeem automatisch herscreening kan triggeren.

    Binnen enkele minuten aan de slag

    Eén API-aanroep retourneert een volledig screeningresultaat.

    Een entiteit screenenbash
    curl -X POST https://screenveritai.com/api/v1/search \
      -H 'X-API-Key: YOUR_API_KEY' \
      -H 'Content-Type: application/json' \
      -d '{"entity_name": "Acme Trading LLC", "country": "AE", "search_type": "sanctions_check"}'
    
    # 202 Accepted
    # { "search_id": "SEARCH_ID", "status": "processing", "estimated_time_seconds": 15 }
    Resultaat opvragenbash
    curl https://screenveritai.com/api/v1/search/SEARCH_ID \
      -H 'X-API-Key: YOUR_API_KEY'
    
    # 200 OK
    # { "id": "SEARCH_ID", "status": "completed",
    #   "ofac_sanctions": "## OFAC Sanctions Findings ... *No relevant listing found* ...",
    #   "criminal_watchlists": null, "pep": null }

    API-prestaties

    • €0.39

      Quick Check per aanroep, geen platformkosten

    • 202

      HTTP-status wanneer een zoekopdracht is geaccepteerd; daarna haalt u het resultaat op

    • EU

      Gehost in Finland; data in rust blijft in de EU

    Veelgestelde vragen over API-integratie

    Hoe authenticeer ik API-verzoeken?

    Alle API-verzoeken worden geauthenticeerd met een API-sleutel die wordt meegegeven in de X-API-Key header. Sleutels worden aangemaakt vanuit uw ScreenVeritAI-dashboard met beperkte permissies (search:read, search:write, batch:read, batch:write) om least-privilege toegang af te dwingen.

    Is de API synchroon of asynchroon?

    Asynchroon. U dient een verzoek in, ontvangt een taak-ID en haalt de resultaten op via polling. Uw pipeline blokkeert nooit.

    Welk responseformaat retourneert de API?

    Gestructureerde JSON met velden voor de belangrijkste jurisdicties en arrays per bron, plus bevindingen uit opsporingslijsten en PEP/RCA. Beoordeel beschikbare markdown, identificatoren en bronverwijzingen. De response bevat geen numerieke risicoscore.

    Welke rate limits gelden er?

    Rate limits worden toegewezen per abonnementsniveau en afgedwongen per API-sleutel. Response headers bevatten uw huidige limiet, resterend quotum en reset-tijdstempel. Als u hogere doorvoer nodig heeft voor bulkverwerking, accepteert het batch-endpoint CSV-/XLSX-uploads voor screenings met hoog volume.

    Kan ik entiteiten in batch screenen via de API?

    Ja. Het batch-endpoint accepteert CSV- of XLSX-bestanden met maximaal 100 rijen per verzoek. Elke rij wordt verwerkt als een individuele screening en resultaten zijn opvraagbaar per rij of als een volledige downloadbare export wanneer de taak is afgerond.

    Hoe stel ik doorlopende monitoring in via de API?

    Configureer monitoring na een initiële screening. Wanneer lijsten worden bijgewerkt of nieuwe adverse media opduikt, signaleert monitoring de wijziging en krijgt u een melding in de app.

    Welke compliancegegevens zijn opgenomen in elk screeningresultaat?

    Elk resultaat bevat sanctietreffers over elke grote bron, PEP-status met familie- en geassocieerdenconnecties, adverse media-treffers met meertalige bronvermeldingen, UBO-eigendomsgegevens, risiconiveauclassificatie en een bewijspakket met tijdstempel geschikt voor audit en toezichtbeoordeling.

    Hoe lang duurt een screening?

    Een standaard sanctiecontrole is doorgaans in seconden afgerond. Een diepteonderzoekscreening — inclusief analyse van adverse media en eigendomsmapping — duurt gemiddeld minder dan twee minuten. Het asynchrone model zorgt ervoor dat uw systeem nooit wordt geblokkeerd in afwachting van resultaten.

    API-terminologie

    REST API
    Een web-API-architectuur die standaard HTTP-methoden (GET, POST, PUT, DELETE) gebruikt om met resources te communiceren. De API van ScreenVeritAI volgt REST-conventies, waardoor deze compatibel is met elke taal of elk framework dat HTTP-verzoeken kan doen.
    Asynchrone verwerking
    De API accepteert een taak direct en verwerkt die op de achtergrond — haal de resultaten op via polling.
    API-sleutel
    Een geheim token dat wordt gebruikt om server-naar-server API-verzoeken te authenticeren. ScreenVeritAI API-sleutels zijn voorzien van specifieke permissies (search:read, search:write, batch:read, batch:write) om least-privilege toegangspatronen af te dwingen.
    Rate limiting
    Een mechanisme dat het aantal API-verzoeken beperkt dat een client binnen een bepaald tijdsvenster kan doen. Rate limits worden toegewezen per abonnementsniveau en gecommuniceerd via response headers inclusief resterend quotum en reset-tijdstempels.
    Gestructureerde response
    Een machineleesbaar API-responseformaat (JSON) met consistente veldnamen, typen en nesting. Gestructureerde responses maken geautomatiseerde parsing, beslissingslogica en audittrail-generatie mogelijk zonder handmatige data-extractie.

    REST API voor AML-screening

    Bouw screening op sancties, PEP, opsporingslijsten, adverse media (negatieve berichtgeving) en KYB/UBO rechtstreeks in uw onboarding-, monitoring- en transactieflows. De API is live: authenticeer met een API-sleutel en roep dezelfde screeningengine aan die het portaal gebruikt.

    De endpoints zijn algemeen beschikbaar met API-sleutelauthenticatie en rate limits per abonnementsniveau. Verken elk endpoint in de interactieve OpenAPI-documentatie op /api/v1/docs.

    Snel starten

    1. 1. Maak een API-sleutel aan

      Maak in uw dashboard een API-sleutel met beperkte rechten aan, of genereer er programmatisch een met uw account-bearertoken voor server-naar-server-verzoeken.

      POST/api/v1/keyscurl
      curl -X POST https://screenveritai.com/api/v1/keys \
        -H "Authorization: Bearer <SUPABASE_JWT>" \
        -H "Content-Type: application/json" \
        -d '{"name":"server-key","permissions":["search:read","search:write"]}'
    2. 2. Voer uw eerste zoekopdracht uit

      Dien een entiteit in met de X-API-Key header. De API retourneert een search-ID dat u ophaalt zodra de verwerking klaar is.

      POST/api/v1/searchcurl
      curl -X POST https://screenveritai.com/api/v1/search \
        -H "X-API-Key: <YOUR_API_KEY>" \
        -H "Content-Type: application/json" \
        -d '{"entity_name":"Acme Ltd","entity_type":"company","search_type":"full_search"}'
    3. 3. Dien een batch in

      Stuur een CSV/XLSX-bestand om meerdere entiteiten in één taak te screenen en haal daarna de rijen of exports op zodra de batch klaar is.

      POST/api/v1/batchcurl
      curl -X POST https://screenveritai.com/api/v1/batch \
        -H "X-API-Key: <YOUR_API_KEY>" \
        -F "file=@entities.csv"

    Kern-endpoints

    • POST/api/v1/search

      Maak een screeningverzoek aan voor één entiteit. Retourneert een search-ID en de verwerkingsstatus. Ook endpoints voor account, dekking en health zijn beschikbaar onder /api/v1.

      Auth: X-API-Key (search:write)

    • POST/api/v1/batch

      Dien CSV/XLSX-bestanden in voor screening met hoog volume en haal daarna de rijen of exports op zodra de taken klaar zijn.

      Auth: X-API-Key (batch:write)

    • POST/api/v1/keys

      Maak API-credentials aan en beheer ze met beperkte rechten, rate limits per abonnementsniveau en gebruiksregistratie.

      Auth: Bearer-token (account)

    Crypto address checks. Source evidence at € 0,39.

    Check an address against OFAC’s published digital-currency identifiers. Add native-USDC issuer-block status on Ethereum in the same request, at the same price.

    € 0,39 per completed address check · prepaid PAYG only

    • POST/api/v1/crypto-address/checks
    • GET/api/v1/crypto-address/checks/{id}
    OFAC address match
    Exact address lookup under the requested OFAC currency label, such as ETH, XBT, TRX, USDT or USDC. Evidence includes the publication date, source URL, export hash and matching OFAC record.
    Ethereum USDC
    Set network to ethereum to check native-USDC issuer-block status at a finalized Ethereum mainnet block. The result includes the contract address, block number, block hash and contract response. Omit network for an OFAC-only check.
    Create a check
    POST requires X-API-Key with search:write, an Idempotency-Key of 16–128 ASCII letters, digits, underscores, dots, colons or hyphens, and address, currency and integer max_prepaid_cents fields. Set max_prepaid_cents to 39 to authorize the current price. A completed request returns HTTP 200 synchronously.
    Retrieve and retry
    GET requires search:read and returns your saved check without another charge. If a POST response is lost, reuse the same Idempotency-Key and payload. Keep that key while the outcome is uncertain; create a new key only for a deliberate new check.
    Billing
    Completed checks debit € 0,39 from your EUR prepaid balance. Minimum balance top-up: €5. Subscription allowances do not apply. Source failures are unpaid.

    A negative result means no published OFAC match or no native-USDC issuer block in the checked source. It does not establish wallet ownership or clear an address of all risk.

    This is an address-level source check. Transaction tracing, exposure scoring and continuous KYT monitoring are outside its scope. Crypto checks use this separate API; they are not available through name-screening batch uploads, portal history or PDF reports.

    Waarom teams deze API gebruiken

    • Eén integratie voor screening op sancties, PEP, opsporingslijsten, adverse media en KYB/UBO
    • API-sleutelauthenticatie via de X-API-Key header, met rechtenbeperkte sleutels voor least-privilege-toegang
    • Rate limits per abonnementsniveau met gebruiksregistratie voor governance en kostenbeheersing
    • Endpoints voor search, batch, keys, account, dekking en health onder /api/v1
    • Interactieve OpenAPI-documentatie op /api/v1/docs plus een machineleesbaar OpenAPI-schema
    • Gestructureerde output, geschikt voor audittrails, dossiers en downstream beslissingen

    Integration playbooks

    API FAQ

    Hoe authenticeer ik API-verzoeken?

    Screeningverzoeken aan /api/v1/search en /api/v1/batch authenticeert u met een API-sleutel die u meestuurt in de X-API-Key header. Maak sleutels aan in uw dashboard, of programmatisch via /api/v1/keys nadat u zich met uw account-bearertoken hebt geauthenticeerd.

    Is de API algemeen beschikbaar?

    Ja. API v1 is live en algemeen beschikbaar. Authenticeer met een API-sleutel, roep de endpoints voor search, batch en sleutelbeheer aan, en verken alles in de interactieve OpenAPI-documentatie op /api/v1/docs.

    Kan ik de rechten van een API-sleutel beperken?

    Ja. Sleutels ondersteunen permissies zoals search:read, search:write, batch:read en batch:write, zodat u per integratie least-privilege-toegang kunt afdwingen.

    Welke rate limits gelden er?

    Rate limits worden toegekend per API-niveau en gehandhaafd per API-sleutel — het niveau bepaalt de verzoekdoorvoer, niet de facturering. De response-headers bevatten de limiet, het resterende quotum en reset-tijdstempels, zodat u netjes kunt afremmen.

    Waar test ik de endpoints snel?

    Gebruik de interactieve documentatie op /api/v1/docs voor Swagger-tests en /api/v1/redoc voor referentiedocumentatie. Het OpenAPI-schema wordt aangeboden op /api/v1/openapi.json.

    Begin binnen enkele minuten met screenen.

    Kies een plan en start vandaag nog met screenen.