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
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 (H/M)

domicilio

Domicilio completo

calle

Calle

colonia

Colonia

codigoPostal

Código postal

municipio

Municipio/Alcaldia

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