Cliente Node.js para buscar personas en cuitonline.com por DNI, CUIT, CUIL o nombre y leer los datos visibles en resultados y detalle.
npm install cuitonlineconst { search, searchByName, getByCuit, getByDni } = require('cuitonline');
async function run() {
// Buscar por nombre, DNI, CUIT o CUIL
const hits = await searchByName('Juan Perez');
console.log(hits);
// Traer datos completos por CUIT
const detail = await getByCuit('20-11111111-2');
console.log(detail);
// Alias que busca por DNI y devuelve el primer resultado con detalle
const byDni = await getByDni('20111111');
console.log(byDni);
}
run().catch(console.error);search(query)/searchByName(name)-> array de coincidencias{ name, cuit, personType, detailUrl, constanciaUrl }getByCuit(cuit)-> resultado que coincide (o el primero) con los campos desearchmas los obtenidos en el detalle:name,cuit,personType,gender,nationality,locality,employer,afipErrors(array),detailUrl
getByDni(dni)-> usasearch(dni)y descarga el detalle del primer resultado.getDetail(url)-> parsea una URL absoluta o relativa de detalle.
Todos los metodos aceptan options con http o client para pasar tu propia instancia de Axios (proxy, timeouts, etc.).
El scraping no puede correrse directo en el navegador por CORS y restricciones del sitio. Crea un endpoint en tu backend y consumilo desde la UI.
Ejemplo Express minimo:
const express = require('express');
const { search } = require('cuitonline');
const app = express();
app.use((req, res, next) => {
res.set('Access-Control-Allow-Origin', '*');
res.set('Access-Control-Allow-Headers', 'Content-Type');
if (req.method === 'OPTIONS') return res.sendStatus(204);
next();
});
app.get('/api/search', async (req, res) => {
const q = (req.query.q || '').trim();
if (!q) return res.status(400).json({ error: 'q is required' });
res.json({ results: await search(q) });
});
app.listen(3000, () => console.log('proxy listo en http://localhost:3000'));Luego en el frontend llama http://tu-backend/api/search?q=20111111112 y procesa el JSON.
- Respeta los terminos de uso y privacidad del sitio origen.
- Verifica siempre contra fuentes oficiales (AFIP, ANSES, etc.) antes de usar la informacion en produccion.