Tareef
v1 stable · REST API · Read the docs

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
200 OK
$ 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

SOC-friendly Privacy-first Sub-300ms verifies

Trusted by

Tasleem Bajat SJL

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.

01

Enroll a person

POST one or more reference photos. We extract a 512-dimensional face embedding from each.

02

We index them

Embeddings land in a high-performance vector index kept entirely in RAM. Quantized for memory, full for recall.

03

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.

live 279ms
{
  "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
Get started

Pro

Most popular

39,000 IQD/mo

  • 10,000 verifications / month
  • Up to 5,000 enrolled people
  • Email support
  • Multi-image enrollment
  • Usage analytics
Start with Pro

Business

129,000 IQD/mo

  • 100,000 verifications / month
  • Unlimited enrolled people
  • Priority support
  • Higher rate limits
  • Dedicated onboarding
Start with Business

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.