---
title: "Aadhaar OCR"
method: POST
path: "/verify/aadhaar_ocr"
tags: ["OCR"]
---

# Aadhaar OCR

`POST /verify/aadhaar_ocr`

Performs OCR on an uploaded Aadhaar card image or PDF and returns parsed Aadhaar fields. Accepts `multipart/form-data` with `file` (binary). Requires `X-API-KEY` and `X-Client-ID` headers.

## Response `200`

Successful Aadhaar OCR

- AadhaarOCRResponse
  - `status` string, required
  - `data` OCRDataItem[], required
    - `document_type` string, required — Normalized document section or page type
    - `full_name` OCRField
      - `value` string
      - `confidence` integer
      - `is_masked` boolean
      - `input_validation` boolean
      - `yob` boolean — Indicates if value is only year-of-birth
    - `gender` OCRField
      - `value` string
      - `confidence` integer
      - `is_masked` boolean
      - `input_validation` boolean
      - `yob` boolean — Indicates if value is only year-of-birth
    - `mother_name` OCRField
      - `value` string
      - `confidence` integer
      - `is_masked` boolean
      - `input_validation` boolean
      - `yob` boolean — Indicates if value is only year-of-birth
    - `father_name` OCRField
      - `value` string
      - `confidence` integer
      - `is_masked` boolean
      - `input_validation` boolean
      - `yob` boolean — Indicates if value is only year-of-birth
    - `dob` OCRField
      - `value` string
      - `confidence` integer
      - `is_masked` boolean
      - `input_validation` boolean
      - `yob` boolean — Indicates if value is only year-of-birth
    - `aadhaar_number` OCRField
      - `value` string
      - `confidence` integer
      - `is_masked` boolean
      - `input_validation` boolean
      - `yob` boolean — Indicates if value is only year-of-birth
    - `image_url` string, nullable
    - `uniqueness_id` string
    - `address` AddressObject
      - `value` string
      - `confidence` integer
      - `first_line` string
      - `second_line` string
      - `locality` string
      - `landmark` string
      - `house_number` string
      - `district` string
      - `city` string
      - `state` string
      - `country` string
      - `zip` string
    - `zip` OCRField
      - `value` string
      - `confidence` integer
      - `is_masked` boolean
      - `input_validation` boolean
      - `yob` boolean — Indicates if value is only year-of-birth
    - `care_of` OCRField
      - `value` string
      - `confidence` integer
      - `is_masked` boolean
      - `input_validation` boolean
      - `yob` boolean — Indicates if value is only year-of-birth
  - `verification` object
    - `qr_found` boolean
    - `name_match` boolean
    - `aadhaar_match` boolean
  - `chargeble` string — Billing flag (string for backward compatibility)
  - `user_consent` string

## Other responses

- `400` — Invalid request or missing file
- `401` — Unauthorized - Invalid or missing API key or client ID
- `415` — Unsupported Media Type - file format not accepted
- `500` — Internal server error

---

[API](https://skmtc.dev/idto/apis/verification-api.md) · [All operations](https://skmtc.dev/idto/apis/verification-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/idto/verification-api/revisions/e3d57dab8db4/schema)
