npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

mercado-pago-scraper

v1.0.0

Published

Una librería ligera y tipada en TypeScript para Node.js que permite extraer las cookies de sesión oficiales manipulando un navegador transparente (mediante Puppeteer). Especialmente diseñada para auditorías, lectura de saldo y conciliación automática inte

Readme

MercadoPago scraper 🤖💸

Una librería ligera y tipada en TypeScript para Node.js que permite extraer las cookies de sesión oficiales manipulando un navegador transparente (mediante Puppeteer). Especialmente diseñada para auditorías, lectura de saldo y conciliación automática interactuando directamente de manera no oficial con las APIs internas web de Mercado Pago.


🚀 Características

  • Inicio de sesión humano-asistido: Permite saltar barreras como SMS o 2FA manejando Puppeteer de manera interactiva.
  • Cacheo Inteligente: Guarda la información temporal en disco para evitar iniciar un navegador de Chrome cada vez que llamas a tu script.
  • Tipado estricto (TypeScript): Resultados ya consolidados en Data Transfer Objects (DTO) predictivos para trabajar.
  • Extracción de Tokens CSRF: Intercepta requests backend transparentemente para entregarte el cabezal x-csrf-token infalible para tus futuros Fetch/Axios.

📦 Instalación

Puedes instalarlo mediante NPM:

npm install mp-scraper puppeteer

Nota importante para entornos Linux / Docker: Puppeteer necesita instalar Chromium. Asegúrate de tener los permisos y bibliotecas C++ correspondientes si estas montándolo desde un servidor limpio.


🔧 Uso Básico y Prueba

Aquí tienes un ejemplo rápido de cómo instanciar e inicializar la librería, y listar las transacciones más recientes.

import { MercadoPagoScraper } from "mp-scraper";

const mps = new MercadoPagoScraper({
  timeout: 300000,
  cacheDir: "./.mp_cache", // Recomendado: evitar abrir el login múltiples veces
});

// Evento que se dispara al detectar ingreso exitoso.
mps.on("logged", async (data) => {
  console.log("¡Login detectado con éxito!");

  try {
    // Ya puedes pedir actividades directamente
    const listado = await mps.getActivities(1);

    console.log(`Página actual trajo ${listado.results.length} resultados.`);
    console.log(
      `El usuario tiene un histórico de ${listado.totalResults} transacciones.`,
    );

    // listado.results es un array completamente tipado:
    listado.results.forEach((tr) => {
      console.log(
        `[${tr.date.toLocaleDateString()}] ${tr.category}: $${tr.amount} | ID: ${tr.id}`,
      );
    });
  } catch (error) {
    console.error("Falló la obtención:", error);
  }
});

// Eventos de manejo de fallos
mps.on("login_error", (err) => console.error("Error en login:", err));
mps.on("browser_closed", () => console.log("Navegador finalizado"));

// Comando disparador
mps.init();

El Objeto TransactionDTO (Para getActivities)

Cada transacción devuelta en .results contiene un tipado sumamente limpio e inferido:

export interface TransactionDTO {
  id: string; // ID alfanumérico largo
  title: string; // Ej: "Ingreso de dinero" o "Mercado Libre"
  counterparty: string; // Destinario o remitente de la operación
  description: string; // Ej: "Compra", "Pago Automático"
  category: string; // "in_money", "purchases", "pays", "transfers"
  date: Date; // Objeto fecha parseado original
  amount: number; // Float numérico. Positivo para ingreso, negativo para salidas.
  currency: string; // Ej: "ARS"
  status: string; // Ej: "Aprobado", "Rechazado"
  paymentMethod: string; // Medio de pago original (Visa, Dinero en cuenta, etc)
}

📝 Scripts Útiles

Si quieres probar, o modificar la librería, puedes usar los siguientes comandos de forma nativa clonando este repositorio:

# Instalar dependencias
npm install

# Compilar Typescript
npm run build

# Abrir el Playground de Pruebas
npm run playground

🔐 Licencia y exención de responsabilidad

Uso bajo tu propia discreción. Esta no es una librería oficial de MercadoLibre/MercadoPago. Está desarrollada únicamente para propósitos educativos y de automatización interna de herramientas en los que al usuario le es legalmente permitido participar usando sus propios medios. No intentes eludir mecanismos de seguridad que prohíban o expongan datos a terceros sin autorización de las guías correspondientes.

Distribuido bajo licencia ISC.