Screening Appliance docs

Overview & Architecture

What the ProofAML Screening Appliance is, the trust model (everything stays in your VPC), and how it fits together with the persistent data volume and the updates endpoint.

Last updated 2026-08-02

Overview & Architecture

The ProofAML Screening Appliance is a self-hosted Docker image β€” proofaml/screening-appliance β€” that runs entirely inside your own VPC or network. It exposes the same name-screening engine that powers search on proofaml.com, packaged so a compliance or engineering team can run it without sending any query, subject, or match data outside their own infrastructure.

  • Image: proofaml/screening-appliance:2026-08-02 (also tagged :latest)
  • Port: 8400
  • Persistent volume: /var/lib/proofaml
  • Matcher: the same TypeScript matching engine used by this site's own /search and /screening β€” same normalization, fuzzy/phonetic matching, and nickname/transliteration handling.

Trust model

The appliance is designed so a subject's name never has to leave your network to be screened:

  • Everything stays in your VPC. The container, the matcher, the API, and the persistent data volume all run on infrastructure you control. Search requests, batch files, and monitored-subject lists are never transmitted to ProofAML or any third party.
  • The only outbound dependency is the updates endpoint. The appliance periodically fetches new sanctions/PEP/watchlist data from https://www.proofaml.com/updates/v1. That connection carries data into the appliance (a versioned manifest and delta files) β€” it never carries your query or subject data out. See Updates & synchronization.
  • Even that egress is optional. Set OFFLINE=true and the appliance never calls the updates endpoint at all. Air-gapped deployments side-load updates into the volume manually β€” see Air-gapped / offline operation.
  • Zero network access from first boot. The image ships with a baked-in data snapshot, so a freshly started container can answer searches immediately, before it has ever reached the network.

Architecture

                     Your VPC / network
   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
   β”‚                                                        β”‚
   β”‚   your apps ──POST /v1/search──┐                       β”‚
   β”‚   your apps ──POST /v1/batch────                       β”‚
   β”‚   your apps ──/v1/monitor/*────┼──▢  Screening          β”‚
   β”‚   orchestrator ──GET /healthzβ”€β”€β”˜     Appliance          β”‚
   β”‚                                       (port 8400)       β”‚
   β”‚                                          β”‚               β”‚
   β”‚                                          β–Ό               β”‚
   β”‚                              /var/lib/proofaml           β”‚
   β”‚                              (persistent volume:         β”‚
   β”‚                               data snapshot + deltas)    β”‚
   β”‚                                                        β”‚
   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                             β”‚
                 outbound only, and only if OFFLINE≠true
                             β–Ό
              https://www.proofaml.com/updates/v1
              (versioned manifest + per-dataset deltas)

Nothing initiates a connection into your network. The single outbound path β€” appliance β†’ updates/v1 β€” is a periodic pull the appliance makes on its own schedule (SYNC_INTERVAL); ProofAML never connects to your deployment.

What's inside the container

  • The matcher. Name normalization, phonetic and fuzzy matching, DOB and country scoring, and identifier matching β€” the same engine behind this site's interactive screening tool.
  • The data snapshot. A point-in-time export of every dataset selected by DATASETS (see Dataset selection & reference), stored on the persistent volume so it survives container restarts and upgrades.
  • The API server. Search, batch, monitoring, status, and admin endpoints β€” see Search API reference, Batch screening, and Monitoring.
  • The sync client. Fetches, verifies, and atomically applies data updates from UPDATE_URL on the configured interval β€” see Updates & synchronization.

Where to go next

Not ready to self-host? The same underlying data and matcher are also available as a hosted API β€” see API for this data.


More Screening Appliance docs

← All Screening Appliance docs