Search sanctions data with fuzzy and regex matching

Updated

The GET /search endpoint lets you search across every enabled source list by name, alias, company, or identifier value. It is free, unauthenticated, and requires no API token. Unlike the /screen/* endpoints, it is designed for human-readable lookup and exploration — finding how a party is listed, checking whether a name appears anywhere in the data, or downloading a targeted slice of results. The same engine powers the free SDN search tool.

How to use it

  1. Send a GET request to /api/v1/search with a q query parameter containing the name, company, or identifier you want to find (between 3 and 100 characters).
  2. Choose a search mode: fuzzy (the default) uses substring matching plus trigram similarity, so a slightly misspelled name like "ivanof" can still surface "Vladimir Ivanov". regex mode treats q as a case-insensitive POSIX regular expression matched against identifier values and party names.
  3. Optionally pass ?lists= to restrict results to specific source lists, and ?limit= to control how many results come back (up to 25).
  4. On the web tool or dashboard, you can trigger regex mode by wrapping your query in forward slashes — for example /^0x098b/ — without changing any other setting.
# Fuzzy searchcurl "https://api.compliapi.com/api/v1/search?q=lazarus+group"

# Regex search — ETH addresses starting with 0x098bcurl "https://api.compliapi.com/api/v1/search?q=%5E0x098b&mode=regex"

Understanding results

Results are ranked active-before-delisted, then exact-before-partial, then by similarity score. Delisted entities are included in results (ranked last) with removed_at set, which makes them useful for historical review. The list_type field on each result is sanctions, crime, or risk, using the same semantics as the screening endpoints.

When to use screening instead

The /search endpoint is not a substitute for the /screen/* endpoints in production flows. It does not produce a sanctioned or flagged verdict, it does not write to your audit trail, and searched values are not stored. For deterministic compliance decisions with exact-match semantics and a full audit record, always use the appropriate /screen/* endpoint. Use /search for exploration, manual review, and building human-facing lookup tools.

← All articles

Powered by Shipstar