Developers

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.

quickstart · curl 200 · 384ms
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.

TypeScript
npm i @veridexa/node
Python
pip install veridexa
Go
go get github.com/veridexa/veridexa-go
Ruby
gem install veridexa
Java
implementation 'com.veridexa:sdk:1.x'

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.

Webhooks

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.completed
  • verification.flagged
  • review.assigned
  • workflow.escalated
POST https://yourapp.com/webhooks/veridexasigned
{
  "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.