API

Manage your firm's data-plane API key, and how to integrate directly

API key

Status
Loading…

Integrating directly

Every firm gets the same onboarding: a firm slug, a dashboard password, and an API key. Use the dashboard day-to-day, plug directly into your own backend, or both — nothing here is exclusive.

Credentials

CredentialUsed asPurpose
Firm slugX-Client-Id headerIdentifies which firm a request belongs to
API keyX-Api-Key headerAuthenticates the request — shown once when generated above, never recoverable after, only re-rotatable

Submit a verification directly

POST /api/v1/verify

curl -X POST https://18.185.59.156/api/v1/verify \ -H "X-Client-Id: your-firm-slug" \ -H "X-Api-Key: YOUR_API_KEY" \ -F "country=NG" \ -F "doc_type=passport" \ -F "mode=3" \ -F "user_ref=your_internal_applicant_id" \ -F "id_image=@id_front.jpg" \ -F "liveness_frames=@frame1.jpg" \ -F "liveness_frames=@frame2.jpg"

Every submission is automatically tagged to your firm — results show up filtered to only your data in the dashboard.

Generate a hosted capture link programmatically

If part of your flow still wants to hand off to the hosted capture page instead of building your own camera/liveness UI, generate a one-time link with the same credentials — no dashboard login needed:

POST /api/v1/admin/sessions

curl -X POST https://18.185.59.156/api/v1/admin/sessions \ -H "X-Client-Id: your-firm-slug" \ -H "X-Api-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"user_ref": "your_internal_applicant_id"}'

Redirect your user to the returned url. It's single-use and expires in 24 hours. Your API key never has to touch the customer's browser this way — only the disposable session token does.