Documentación de la API

Introducción

La API de Extraer Datos de INE te permite extraer datos de credenciales de elector mexicanas (INE/IFE) de manera programática. Utiliza inteligencia artificial para procesar las imágenes y extraer todos los campos visibles de la credencial.

URL Base: https://extraerdatosdeine.com/api/v1

Autenticación

Todas las peticiones a la API requieren autenticación mediante una API key. Incluye tu API key en el header X-API-Key de cada petición.

curl -H "X-API-Key: ine_tu_api_key" \
  https://extraerdatosdeine.com/api/v1/balance

Puedes generar y administrar tus API keys desde el dashboard.

Métodos de Upload

La API soporta múltiples métodos para enviar imágenes. El método se detecta automáticamente del header Content-Type.

MétodoContent-TypeUso recomendado
Recomendado
Multipart
multipart/form-datacurl, Postman, formularios HTML
Base64 JSONapplication/jsonJavaScript, apps moviles
URL Fetchapplication/jsonImágenes hospedadas en la nube
Binarioimage/jpeg, image/png, image/webpCLI tools, streaming

Endpoints

POST/api/v1/extract

Extrae datos de una imagen de credencial INE/IFE.

RecomendadoMultipart Form-Data

Envía archivos directamente. Ideal para curl y Postman.

CampoTipoDescripción
image_frontfileImagen frontal (requerido)
image_backfileImagen trasera (opcional)
curl -X POST https://extraerdatosdeine.com/api/v1/extract \
  -H "X-API-Key: ine_tu_api_key" \
  -F "image_front=@./ine_frente.jpg" \
  -F "image_back=@./ine_reverso.jpg"

Base64 JSON

Envía imágenes codificadas en base64. El prefijo data URL es opcional.

CampoTipoDescripción
image_frontstringBase64 de imagen frontal (requerido)
image_backstringBase64 de imagen trasera (opcional)
# Codificar imagen a base64
IMAGE_BASE64=$(base64 -i ine_frente.jpg)

curl -X POST https://extraerdatosdeine.com/api/v1/extract \
  -H "X-API-Key: ine_tu_api_key" \
  -H "Content-Type: application/json" \
  -d "{\"image_front\": \"$IMAGE_BASE64\"}"

URL Fetch

Envía URLs de imágenes hospedadas. Solo se permiten URLs HTTPS.

CampoTipoDescripción
image_front_urlstringURL HTTPS de imagen frontal (requerido)
image_back_urlstringURL HTTPS de imagen trasera (opcional)
curl -X POST https://extraerdatosdeine.com/api/v1/extract \
  -H "X-API-Key: ine_tu_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "image_front_url": "https://storage.example.com/ine_frente.jpg",
    "image_back_url": "https://storage.example.com/ine_reverso.jpg"
  }'

Upload Binario

Envía la imagen como body binario. Solo soporta una imagen por petición.

curl -X POST https://extraerdatosdeine.com/api/v1/extract \
  -H "X-API-Key: ine_tu_api_key" \
  -H "Content-Type: image/jpeg" \
  --data-binary @./ine_frente.jpg

Respuesta exitosa

{
  "success": true,
  "extraction_id": "clx1234567890",
  "data": {
    "nombre": "JUAN",
    "apellidoPaterno": "PEREZ",
    "apellidoMaterno": "GARCIA",
    "curp": "PEGJ850101HDFRRL09",
    "claveElector": "PRGRJN85010109H100",
    "fechaNacimiento": "01/01/1985",
    "sexo": "H",
    "domicilio": "CALLE EJEMPLO 123",
    "colonia": "CENTRO",
    "codigoPostal": "06000",
    "municipio": "CUAUHTEMOC",
    "estado": "CIUDAD DE MEXICO",
    "seccion": "1234",
    "vigencia": "2029",
    "numeroVertical": "1234567890123",
    "ocr": "1234567890123",
    "cic": "123456789",
    "emision": "01"
  },
  "tokens_remaining": 19,
  "upload_method": "multipart"
}
GET/api/v1/balance

Obtiene el saldo actual de tokens de tu cuenta.

Ejemplo

curl https://extraerdatosdeine.com/api/v1/balance \
  -H "X-API-Key: ine_tu_api_key"

Respuesta

{
  "success": true,
  "balance": 20
}

Ejemplos de Integración

SDKs oficiales

Intégralo en minutos: tipos para los 20 campos, manejo de errores y cero dependencias.

JavaScript / TypeScript

Versión en npm de extraer-datos-ineDescargas mensuales en npmEstrellas del repositorio en GitHub
npm install extraer-datos-ine
import { readFile } from 'node:fs/promises'
import { IneExtractorClient } from 'extraer-datos-ine'

const client = new IneExtractorClient({ apiKey: 'ine_tu_api_key' })

const front = await readFile('./ine_frente.jpg')
const back = await readFile('./ine_reverso.jpg') // opcional

const { data, tokensRemaining } = await client.extract({ front, back })
console.log(data.curp, data.claveElector)

Código fuente y documentación completa en GitHub · npm.

Python

Versión en PyPI de extraer-datos-ineVersiones de Python soportadasEstrellas del repositorio en GitHub
pip install extraer-datos-ine
from extraer_datos_ine import IneExtractorClient

client = IneExtractorClient(api_key="ine_tu_api_key")

with open("ine_frente.jpg", "rb") as f:
    front = f.read()

result = client.extract(front=front)
print(result.data["curp"], result.data["claveElector"])

Código fuente y documentación completa en GitHub · PyPI.

JavaScript / Node.js

// Usando fetch con FormData
const formData = new FormData();
formData.append('image_front', fileInput.files[0]);

const response = await fetch('https://extraerdatosdeine.com/api/v1/extract', {
  method: 'POST',
  headers: {
    'X-API-Key': 'ine_tu_api_key'
  },
  body: formData
});

const result = await response.json();
console.log(result.data);

Python

import requests

url = 'https://extraerdatosdeine.com/api/v1/extract'
headers = {'X-API-Key': 'ine_tu_api_key'}

# Usando archivos (multipart)
files = {
    'image_front': open('ine_frente.jpg', 'rb'),
    'image_back': open('ine_reverso.jpg', 'rb')
}

response = requests.post(url, headers=headers, files=files)
result = response.json()
print(result['data'])

PHP

<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://extraerdatosdeine.com/api/v1/extract',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => ['X-API-Key: ine_tu_api_key'],
    CURLOPT_POSTFIELDS => [
        'image_front' => new CURLFile('ine_frente.jpg'),
        'image_back' => new CURLFile('ine_reverso.jpg')
    ]
]);

$response = curl_exec($curl);
$result = json_decode($response, true);
print_r($result['data']);

Códigos de error

CódigoHTTPDescripción
MISSING_API_KEY401No se proporcionó API key
INVALID_API_KEY401API key inválida o revocada
MISSING_IMAGE400No se proporcionó imagen frontal
INVALID_IMAGE_FORMAT400Formato no soportado (use JPEG, PNG o WebP)
IMAGE_TOO_LARGE400Imagen excede 10 MB
INVALID_BASE64400Error al decodificar base64
INVALID_MULTIPART400Error al procesar formulario multipart
URL_FETCH_FAILED400No se pudo obtener imagen de la URL
URL_INVALID400URL inválida (debe ser HTTPS)
URL_BLOCKED400URL bloqueada por seguridad
URL_TIMEOUT400Timeout al obtener imagen (10s)
UNSUPPORTED_CONTENT_TYPE415Content-Type no soportado
INSUFFICIENT_TOKENS402Saldo insuficiente de tokens
RATE_LIMITED429Demasiadas solicitudes fallidas o en proceso por minuto; las extracciones exitosas no cuentan (ver header Retry-After)
TOO_MANY_FAILED_EXTRACTIONS429Demasiadas extracciones fallidas consecutivas; revisa la calidad de las imágenes
EXTRACTION_FAILED500Error en la extracción (token reembolsado)
INTERNAL_ERROR500Error interno del servidor

Campos extraídos

La API extrae los siguientes campos de la credencial INE/IFE:

nombre

Nombre(s)

apellidoPaterno

Apellido paterno

apellidoMaterno

Apellido materno

curp

CURP (18 caracteres)

claveElector

Clave de elector

fechaNacimiento

Fecha de nacimiento

sexo

Sexo

domicilio

Domicilio completo

calle

Calle

colonia

Colonia

codigoPostal

Código postal

municipio

Municipio/Alcaldía

estado

Estado

seccion

Sección electoral

anioRegistro

Año de registro

vigencia

Vigencia

numeroVertical

Número vertical

ocr

Código OCR

cic

Código CIC

emision

Número de emisión

Límites y cuotas

  • Cada extracción consume 1 token
  • Tamaño máximo de imagen: 10MB
  • Formatos soportados: JPEG, PNG, WebP
  • Timeout para URL fetch: 10 segundos
  • Si una extracción falla por un error del sistema, el token se reembolsa automáticamente
  • Los tokens no expiran