Face recognition,
in three lines of code.
Enroll a person with one API call. Verify any image against your library in under 300 ms. Multi-image accuracy, REST + JSON, zero ML to maintain.
No credit card. 100 free verifies per month.
POST
tareef.g4t.io/api/v1/verify
$ curl -X POST https://tareef.g4t.io/api/v1/verify \
-H "Authorization: Bearer frs_live_…" \
-F "file=@selfie.jpg"
{
"success": true,
"uuid": "7a0c…",
"name": "Jane Doe",
"score": 0.18
}
Production-grade by default
Trusted by
Why teams choose us
Everything you need. Nothing you do not.
A focused face recognition stack. Sensible defaults. A clean REST surface.
Sub-300 ms verify
Quantized HNSW indexes in RAM keep every search hot. P99 latency stays predictable as your library grows.
Multi-image accuracy
Aggregate matches across every reference photo. More samples means better identity scoring out of the box.
Per-tenant isolation
Each account holds its own people and embeddings. API keys are scoped and rotatable with one click.
REST + JSON, no SDK
Multipart bodies, JSON responses, bearer auth. The shape every backend already knows how to speak.
Built-in observability
Every call is logged with a request id, latency, and a billable flag. Tail it from your dashboard.
Designed for privacy
You hold the raw photos. We store embeddings only. Delete a person and their vectors vanish.
How it works
From zero to verified in three steps
No model training. No GPU rental. No on-call rotation.
Enroll a person
POST one or more reference photos. We extract a 512-dimensional face embedding from each.
We index them
Embeddings land in a high-performance vector index kept entirely in RAM. Quantized for memory, full for recall.
Verify any time
POST a query image. We aggregate matches across every reference and return the best identity.
Try it live
See the API answer a query in real time.
Open the playground in the dashboard. Drop a face. Watch the JSON response render in under 300 ms — no setup required.
{
"success": true,
"match": {
"uuid": "7a0c-1f",
"name": "Jane Doe",
"score": 0.182
}
}
Pricing
Start at zero. Upgrade when volume demands.
Pay only for what you use. Cancel any time.
Free
Free
- 100 verifications / month
- Up to 50 enrolled people
- Community support
- REST API + dashboard playground
Pro
Most popular39,000 IQD/mo
- 10,000 verifications / month
- Up to 5,000 enrolled people
- Email support
- Multi-image enrollment
- Usage analytics
Business
129,000 IQD/mo
- 100,000 verifications / month
- Unlimited enrolled people
- Priority support
- Higher rate limits
- Dedicated onboarding
Drop-in for any language
A clean REST API. No SDK lock-in.
Multipart bodies. JSON responses. Bearer auth. The shape every backend already speaks.
marketing.samples.sdk_title PHP 8.2+composer require tareef/laravel
- Stable v1 contract with versioned headers
- Per-tenant isolation built in
- Webhooks for async verify (coming soon)
curl -X POST https://tareef.g4t.io/api/v1/verify \
-H "Authorization: Bearer frs_live_…" \
-F "file=@selfie.jpg"
const form = new FormData();
form.append('file', file);
const res = await fetch(
'https://tareef.g4t.io/api/v1/verify',
{
method: 'POST',
headers: { Authorization: 'Bearer frs_live_…' },
body: form,
}
);
// Official SDK: composer require tareef/laravel
use Tareef\Laravel\Facades\Tareef;
$result = Tareef::verify($request->file('selfie'));
if ($result->matched) {
return ['uuid' => $result->person->uuid, 'score' => $result->score];
}
import requests
with open('photo.jpg', 'rb') as f:
res = requests.post(
'https://tareef.g4t.io/api/v1/verify',
headers={'Authorization': 'Bearer frs_live_…'},
files={'file': f},
)
Common questions
Answers, before you ask.
On the 1st of every calendar month at 00:00 UTC. Unused verifies do not roll over.
Only successful matches and clean "no match" results are billed. Validation errors (no face detected, blurred input) are free.
Yes. Cancellations take effect at the end of the current billing period. Your data stays accessible until then.
The Free plan is permanent — no trial expiration. Upgrade only when your volume requires it.
You decide. By default we store embeddings only. Photos are kept just long enough to compute the vector, then discarded.
Our 512-dimensional face embeddings give us >99% accuracy on standard benchmarks. Multi-photo enrollment pushes it further.
Verify your first face in two minutes.
Sign up, generate an API key, call /api/v1/verify. No card, no commitment.