GOPURAM

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.

EndpointDocumentKey checks
/v1/docs/ae/emirates-idEmirates ID (front/back)ID format, check-digit consistency, expiry, MRZ cross-check
/v1/docs/ae/ejariEjari tenancy certificatecontract number, date coherence, rent plausibility, Madmoun reference
/v1/docs/ae/title-deedDLD title deeddeed number format, owners present, area plausibility
/v1/docs/ae/trade-licenseTrade 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

  • input accepts {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.
  • model is optional — any chat model can be used; the default is tuned for accuracy/cost balance.
  • A failed check returns pass: false with detail — the request still succeeds (checks_passed summarizes). A document that can't be read as the requested type returns 422 with 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.