An API you'll actually
enjoy building on.
Verify a document with one HTTP call. Type-safe SDKs, signed webhooks, a full sandbox, and OpenAPI 3.1 — ready in production the same afternoon.
curl https://api.veridexa.com/v1/verify \
-H "Authorization: Bearer $VERIDEXA_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-F "document=@passport.jpg" \
-F "type=passport"
# → { "decision": "accept", "risk_score": 0.041, "latency_ms": 384 }Five SDKs. One line to install.
Every SDK is generated from the same OpenAPI 3.1 spec, so parity across languages is guaranteed.
REST API
One idempotent endpoint for every verification. Predictable JSON, cursor pagination, and stable error codes.
Typed SDKs
Auto-generated from OpenAPI. Full type safety, async streaming, retries, and telemetry hooks in five languages.
Signed webhooks
HMAC-SHA256 signatures, replay windows, and automatic retry with exponential backoff up to 72 hours.
Sandbox
A parallel environment with synthetic documents for every fraud signal. Deterministic responses for CI.
Observability
Per-request traces, latency percentiles, and OpenTelemetry export. Ship it straight to Datadog or Honeycomb.
Versioned APIs
Date-based API versions with a 24-month deprecation window. No surprise breaking changes.
Signed. Retried. Boringly reliable.
Every event carries an HMAC-SHA256 signature and a timestamp. Failed deliveries retry with exponential backoff for up to 72 hours, and every attempt is observable from the dashboard.
verification.completedverification.flaggedreview.assignedworkflow.escalated
{
"type": "verification.flagged",
"id": "evt_2f81a4c9",
"created": 1751558400,
"data": {
"verification_id": "vx_9f2c81a4",
"decision": "reject",
"risk_score": 0.964,
"signals": [
{ "code": "MRZ_CHECKSUM_FAIL", "severity": "high" },
{ "code": "FONT_SUBSTITUTION", "severity": "high" }
]
}
}Ship verification today. Not next quarter.
Grab a sandbox key, pull the SDK, and process your first live document in under 15 minutes.