SDKs
SDKs
Official SDKs wrap the same REST API in four common backend languages — Node.js, Python, Go, and Rust. Every SDK maps to the same documented request and response objects.
Verified packages
Each sample below calls a member verified present in the package a customer installs, not in our source tree: verifex 0.4.0 (npm), verifex 0.5.0 (PyPI), github.com/Verifex-dev/verifex-go-sdk v0.4.0 (proxy.golang.org), verifex 0.4.0 (crates.io). Checked 2026-08-19.
Branch on the clearance check, never on the risk band alone. When a result does not clear, the blockers list says why, and the vocabulary is closed: matches_found, screening_unavailable, coverage_incomplete, restricted_matches, plan_scoped_clear, exact_only_not_a_clearance.
Install and screen
import { Verifex } from "verifex";
const verifex = new Verifex({ apiKey: "vfx_your_api_key" });
const result = await verifex.screen({
name: "Alejandro García López",
type: "person",
country: "MX",
});
// isClear is fail-closed: it is false unless nothing matched, every in-plan
// source was screened, the candidate set was complete and the mode could earn
// a clearance. riskLevel alone can be "clear" when none of that holds.
if (result.isClear) {
proceed();
} else {
escalate(result.clearBlockers); // e.g. ["exact_only_not_a_clearance"]
}from verifex import VerifexClient
client = VerifexClient("vfx_your_api_key")
result = client.screen(
"Alejandro García López",
type="person",
country="MX",
)
# is_clear is fail-closed; risk_level on its own is not a clearance.
if result.is_clear:
proceed()
else:
escalate(result.clear_blockers) # e.g. ["coverage_incomplete"]import (
"context"
verifex "github.com/Verifex-dev/verifex-go-sdk"
)
client := verifex.New("vfx_your_api_key")
result, err := client.Screen(context.Background(), verifex.ScreenRequest{
Name: "Alejandro García López",
Type: "person",
})
// IsClear is fail-closed; RiskLevel on its own is not a clearance.
if result.IsClear() {
proceed()
} else {
escalate(result.ClearBlockers()) // e.g. ["restricted_matches"]
}use verifex::{Verifex, ScreenRequest};
let client = Verifex::new("vfx_your_api_key");
let result = client
.screen(ScreenRequest {
name: "Alejandro García López".into(),
type_: Some("person".into()),
..Default::default()
})
.await?;
// is_clear() is fail-closed; risk_level on its own is not a clearance.
if result.is_clear() {
proceed();
} else {
escalate(result.clear_blockers()); // e.g. ["plan_scoped_clear"]
}SDK or REST
Use the official SDKs for faster integration, or call the REST API directly from any backend. The API remains REST-first, and every SDK maps to the same documented request and response objects.