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/v1Organization 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
| Environment | Key prefix | Behavior |
|---|---|---|
| Sandbox | wv_test_ | Real pipeline, no quota use, up to 500 enrollments and sessions a day, captures kept one day, never used for research |
| Live | wv_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.