Mexico โ INE Validation
Validate a Mexican INE (Credencial para Votar) against the electoral registry. Send documentType=INE and a primary identifier in documentNumber. The API auto-detects whether the value is a CIC (9 digits), OCR (13 digits), or clave de elector (18 characters).
Optional fields cover card-model combinations required by the official source:
citizenIdentifierโ required for models E, F, G, H together with CICemissionNumberโ required for model C together with OCR and clave de electormodelโ optional hint (CโH) to select the correct field combination
For name and biographical lookup by CURP, use Mexican Citizen (CURP) (v2/mx/curp). To extract fields from INE images, use Mexico โ INE OCR (v2/mx/ine/ocr).
API referenceโ
Endpointโ
https://api.verifik.co/v2/mx/ine
Submit an INE identifier to obtain electoral status, validity, emission metadata, and related registry fields when the credential is recognized.
Headersโ
| Name | Value |
|---|---|
| Accept | application/json |
| Authorization | Bearer <token> |
Parametersโ
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
documentType | string | Yes | Allowed value: INE. | INE |
documentNumber | string | Yes | CIC (9 digits), OCR (13 digits), or clave de elector (18 alphanumeric). | 187639699 |
citizenIdentifier | string | No | Citizen identifier from the back of the card. Needed for models EโH with CIC. | 031206745 |
emissionNumber | string | No | Emission number. Needed for model C. | 1 |
model | string | No | Optional card model hint: C, D, E, F, G, or H. | E |
Requestโ
- Node.js
- Python
import axios from "axios";
const { data } = await axios.get("https://api.verifik.co/v2/mx/ine", {
params: {
documentType: "INE",
documentNumber: "187639699",
},
headers: { Accept: "application/json", Authorization: `Bearer ${process.env.VERIFIK_TOKEN}` },
});
console.log(data);
import os, requests
url = "https://api.verifik.co/v2/mx/ine"
headers = {"Accept": "application/json", "Authorization": f"Bearer {os.getenv('VERIFIK_TOKEN')}"}
params = {"documentType": "INE", "documentNumber": "187639699"}
r = requests.get(url, headers=headers, params=params)
print(r.json())
Responseโ
- 200
- 404
- 409
{
"data": {
"cic": "187639699",
"documentNumber": "187639699",
"documentType": "INE",
"electorKey": "CSFTGV76061131H400",
"emissionNumber": "1",
"emissionYear": "2018",
"federalDistrict": "04",
"identifierType": "cic",
"localDistrict": "03",
"message": "Vigente como medio de identificacion y puede votar",
"messageCode": "3",
"ocr": "0276031206745",
"registrationYear": "2010",
"status": "OK",
"validity": "31 de diciembre de 2030"
},
"signature": {
"dateTime": "July 14, 2026 10:00 AM",
"message": "Certified by Verifik.co"
}
}
{
"code": "NotFound",
"message": "Record not found."
}
{
"code": "MissingParameter",
"message": "missing documentNumber\n"
}
Notesโ
documentTypemust beINE.documentNumberauto-detects CIC (9 digits), OCR (13 digits), or clave de elector (18 alphanumeric).- Models EโH typically need
citizenIdentifierwith CIC; model C needsemissionNumberwith OCR and clave de elector. - Negative electoral verdicts (for example not vigente) still return HTTP 200 with
statusandmessagereflecting the registry result. - Sandbox fixtures:
187639699,0276031206745,CSFTGV76061131H400. Document900404019returns 404. - Related: Mexican Citizen (CURP), Mexico โ INE OCR.