API Documentation

The Identify API provides a unified interface to verify identities using document analysis, biometric matching, and sanctions screening — all in a single API call.

Overview

Base URL:

https://api.tech4life.pro/identify

All requests and responses use JSON. Include Content-Type: application/json in all requests.

Authentication

Authenticate using a Bearer token obtained from the login or register endpoints.

Authorization: Bearer <your_jwt_token>

POST /auth/register

Create a new account and receive a JWT token + API key.
ParamType
namestringrequired
emailstringrequired
passwordstringrequired min 6 chars
planstringfree | starter | pro | enterprise

POST /auth/login

Sign in and receive a JWT token (7-day expiry).
ParamType
emailstringrequired
passwordstringrequired

POST /identify/verify

POST /identify/verify
Run the full identity verification pipeline: Document analysis + Biometric matching + Sanctions screening. Costs 1 credit.
ParamTypeDescription
doc_imagestringrequired Base64-encoded document image (passport, ID card)
face_imagestringrequired Base64-encoded selfie/face photo
consentbooleanrequired Must be true (LGPD/GDPR)
purposestringOptional. e.g. "kyc_onboarding"
curl -X POST https://api.tech4life.pro/identify/identify/verify \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_TOKEN" \ -d '{ "doc_image": "data:image/jpeg;base64,/9j/4AAQ...", "face_image": "data:image/jpeg;base64,/9j/4AAQ...", "consent": true, "purpose": "kyc_onboarding" }'
const res = await fetch('https://api.tech4life.pro/identify/identify/verify', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + token }, body: JSON.stringify({ doc_image: docBase64, face_image: faceBase64, consent: true, purpose: 'kyc_onboarding' }) }); const data = await res.json();
import requests res = requests.post( "https://api.tech4life.pro/identify/identify/verify", headers={ "Content-Type": "application/json", "Authorization": f"Bearer {token}" }, json={ "doc_image": doc_base64, "face_image": face_base64, "consent": True, "purpose": "kyc_onboarding" } ) data = res.json()

Response

{ "success": true, "data": { "ref": "IDN3A7F8C02", "decision": "APPROVED", "identity_level": 5, "document": { "verdict": "AUTHENTIC", "score": 92.5, "mrz_valid": true, "country": "BR", "name": "Joao Silva", "number": "AB123456" }, "biometric": { "decision": "APPROVED", "score": 0.91, "arcface": 0.89, "antispoof": 0.97 }, "sanctions": { "match": false, "score": 0, "label": "CLEAR" }, "risk_score": 0, "ms": 2340 } }

POST /biosignature/verify

POST /biosignature/verify
Biometric-only verification. Compares a document photo against a selfie using ArcFace embeddings, 3D morphology (BFM), and anti-spoof detection.
ParamType
image1stringrequired Document face (base64)
image2stringrequired Selfie (base64)
consentbooleanrequired
purposestringrequired

POST /verifychain/check

POST /verifychain/check
AML/Sanctions screening. Screens an entity against 56,000+ sanctioned individuals, 15,000+ PEPs, and 18+ authoritative sources (OFAC, UN, EU, Interpol, FBI).
ParamType
namestringrequired Full entity name
countrystringISO 2-letter code
dobstringYYYY-MM-DD
tierstringbasic | standard | premium

GET /verifications/{ref}

GET /verifications/{ref_code}
Retrieve a previously completed verification result by its reference code.

Error Codes

CodeMeaning
200Success
400Bad request — missing or invalid parameters
401Unauthorized — invalid or expired token
402Insufficient credits
409Email already registered
429Rate limit exceeded
500Internal server error

Rate Limits

300 requests per hour per IP address. Rate-limited responses return HTTP 429.

For higher limits, contact us at admin@tech4life.pro.

Identity Levels

LevelRequirementsDescription
L1Email verifiedBasic registration
L2L1 + BioSignatureBiometric verified
L3L2 + National IDNational ID verified
L4L2 + Passport (MRZ)Passport verified
L5L4 + AML ClearFull KYC / AML clear