Skip to content

Restricted pilot. The API reference is generated from the running API. Successful matches return manual_review until attack detection is validated.

Overview and quickstart

Warka is a B2B API for 1:1 face verification with presentation-attack screening. Your backend enrolls people your organization has authorized, and verifies them against their own template.

Restricted pilot: attack detection is not yet validated, so a successful match returns manual_review, never approved. Build your flow around that.

What Warka does and doesn't do

  • Warka returns technical decisions. Your application decides attendance, payroll and appeals.
  • Warka never contacts your employees and never collects their consent forms. Your organization handles that.
  • Warka matches one person against their own enrollment. It does not search for unknown people.

Base URL

base-url
https://api.warka-iq.com/v1

Organization setup

  • Create an account and confirm your email.
  • Create the organization, choose a plan and accept the agreements as its owner.
  • Pay the invoice and upload the receipt. An operator activates the organization after checking it.
  • Create API keys in the console. Sandbox keys work before activation.

Sandbox and live

EnvironmentKey prefixBehavior
Sandboxwv_test_Real pipeline, no quota use, up to 500 enrollments and sessions a day, captures kept one day, never used for research
Livewv_live_Counts against your plan and follows your retention setting

Identities in one environment are invisible from the other.

10-minute quickstart

quickstart.sh
# 1. Enroll 3 to 5 good images of one person
curl --request POST https://api.warka-iq.com/v1/identities \
  --header "Authorization: Bearer $WARKA_KEY" \
  --form external_subject_id=emp_1025 \
  --form images=@a.jpg --form images=@b.jpg --form images=@c.jpg

# 2. Start a capture session for that identity
curl --request POST https://api.warka-iq.com/v1/capture-sessions \
  --header "Authorization: Bearer $WARKA_KEY" \
  --header "Content-Type: application/json" \
  --data '{"identity_id": "idn_..."}'

# 3. Upload a frame with the capture token, as the app would
curl --request POST https://api.warka-iq.com/v1/capture-sessions/cap_.../frames \
  --header "Authorization: Capture cap_....token" \
  --form frame=@capture.jpg

# 4. Verify from your backend
curl --request POST https://api.warka-iq.com/v1/identities/idn_.../verify \
  --header "Authorization: Bearer $WARKA_KEY" \
  --form capture_session_id=cap_...

Full working versions for cURL, Python, Node and Laravel are in the repository's examples folder.