UAE documents
Emirates ID, Ejari, Title Deed, Trade License — extraction + validation checks in one call. Not identity verification.
POST /v1/docs/ae/{type} extracts structured data from the documents UAE
developers handle every day, then runs deterministic validation checks
on the result — number formats, check digits, expiry, date coherence. One
call, typed JSON out, itemized cost, typically under $0.03 per
document.
| Endpoint | Document | Key checks |
|---|---|---|
/v1/docs/ae/emirates-id | Emirates ID (front/back) | ID format, check-digit consistency, expiry, MRZ cross-check |
/v1/docs/ae/ejari | Ejari tenancy certificate | contract number, date coherence, rent plausibility, Madmoun reference |
/v1/docs/ae/title-deed | DLD title deed | deed number format, owners present, area plausibility |
/v1/docs/ae/trade-license | Trade license (any emirate) | license format, expiry, activities present |
curl https://api.gopura.net/v1/docs/ae/emirates-id \
-H "Authorization: Bearer $GOPURA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"input": {"type": "image_url", "image_url": "data:image/jpeg;base64,<PHOTO>"}}'
{
"object": "document",
"region": "ae",
"type": "emirates-id",
"data": {
"id_number": "784-1990-1234567-1",
"name_en": "…", "name_ar": "…",
"nationality": "…",
"date_of_birth": "1990-05-01",
"expiry_date": "2031-01-01"
},
"checks": [
{ "name": "id_number_format", "pass": true },
{ "name": "check_digit_consistent", "pass": true,
"detail": "Luhn variant used by community validators; the official algorithm is not published — treat as a signal" },
{ "name": "not_expired", "pass": true }
],
"checks_passed": true,
"authority_hint": "Authoritative verification is only available from ICP (icp.gov.ae / UAE PASS)…",
"usage": { "cost": 0.0153, "steps": [ … ] }
}
What this is — and is not
This is document intelligence: extraction plus consistency checks. It is
not identity verification. No API can verify a document from pixels —
only the issuing authority can (ICP for Emirates ID, DLD/Madmoun for Ejari,
the issuing DED for trade licenses). Every response's authority_hint
tells you where authoritative verification lives, and Ejari responses
extract the Madmoun reference so you can complete that check. If you are
building regulated KYC, use these endpoints for data capture and pre-checks
— with a licensed IDV provider or the authority channel for the
verification step itself.
Inputs, models, privacy
inputaccepts{type:"image_url"}(photos/scans as data URLs or https),{type:"document_url"}(PDFs), or{type:"text"}.- Bilingual fields (
name_en/name_ar) are extracted where the document carries both. modelis optional — any chat model can be used; the default is tuned for accuracy/cost balance.- A failed check returns
pass: falsewith detail — the request still succeeds (checks_passedsummarizes). A document that can't be read as the requested type returns422with the billed work itemized. - Documents are processed in-flight and never stored — consistent with the platform-wide no-content-logging policy.
Pricing: the underlying OCR/model steps at their normal rates plus a $0.01
pack fee per successfully extracted document, all itemized in
usage.steps. Roadmap: India (with legally required Aadhaar masking by
default), Saudi Arabia, and authority-integration checks where government
APIs permit.