/v1/ine/verify
Check a voter ID (credencial para votar) with INE's Lista Nominal service and get back whether it is current, with the record INE has for it. Takes 15 to 40 seconds and costs 10 credits.
Use it to confirm that a credential someone shows you was issued by INE and is still valid as identification. The answer covers the credential, not the person: compare the elector key and the photo on the card with the person in front of you.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
cic |
string | Yes | The credential identification code (CIC), up to 9 digits. On the back of the card, it is the nine digits after IDMEX on the first line. |
id_ciudadano |
string | One of the two | The citizen identifier, up to 9 digits, for models E to J: the last nine digits of the first line on the back. |
ocr |
string | One of the two | The 13-digit OCR, for model D credentials. Send it instead of id_ciudadano. |
Where to find the identifiers
Both identifiers are on the first line of the machine-readable zone on the back of the credential. INE's own diagrams:
Try it
/v1/ine/verify
Sign in to send a real request from this page.
New accounts get a $5 USD signup credit, no card required.
Example request
curl -X POST https://inecheck.com/v1/ine/verify \
-H "x-api-key: rfc_your_api_key" \
-H "Content-Type: application/json" \
-d '{"cic": "123456789", "id_ciudadano": "987654321"}'
Response (200)
{
"cic": "123456789",
"found": true,
"status": "vigente",
"message": "INE reports this credential is current.",
"credential": {
"modelo": "e",
"status": "vigente",
"found": true,
"vigente": true,
"puede_votar": true,
"en_padron_electoral": true,
"en_lista_nominal": true,
"cic": "123456789",
"clave_elector": "PRMRJN80010109H400",
"numero_emision": "2",
"distrito_federal": "1",
"distrito_local": "19",
"ocr": "1234567890123",
"anio_registro": "2011",
"anio_emision": "2022",
"fecha_actualizacion": "2026-11-04T04:29:00",
"fecha_consulta": "2026-11-04",
"vigencia": "2032-12-31",
"mensaje": "Esta vigente como medio de identificación."
}
}
found is true (INE returned the record in credential), false (INE answered without a record: status says whether the identifiers matched nothing or the credential is no longer valid, and message carries INE's own sentence), or null (INE could not be reached, retry later). A false answer costs 10 credits. A null answer is not charged.
INE answers no_encontrada both for mistyped identifiers and for a credential that was replaced by a newer one (a later trámite), so an old card the person still carries comes back as not found. Ask for the most recent credential.
Reading the credential
-
vigente: INE reports the credential as valid identification. vigencia is the date it expires. -
en_padron_electoral,en_lista_nominal: whether INE places the holder in the electoral register and in the list of voters. -
puede_votar: true only when INE also places the holder in the Lista Nominal. A credential can be current as identification while its holder is not on the list, so check vigente for identity flows. -
fecha_actualizacion,fecha_consulta: when INE last updated the record and the day the lookup ran, as INE prints them.
Errors
-
422 invalid_fields: fields lists what to fix: a missing or non-numeric cic, or not exactly one of id_ciudadano and ocr. Not charged.