Preparar el entorno
La automatización por API y CDP está incluida en Pro y Max. Mantén Mantis abierto y la cuenta iniciada en el mismo PC donde ejecutarás el script. Prepara y prueba primero un perfil desde la interfaz.
- Consulta GET /v1/perfiles y copia el id del perfil que quieras utilizar. No es su nombre visible.
- Inícialo mediante POST /v1/perfiles/:id/start y utiliza automation.wsEndpoint de la respuesta.
- Conecta Playwright o Puppeteer al endpoint recibido; reutiliza el contexto del perfil para conservar sus cookies y ajustes.
- Al terminar, desconecta tu herramienta y detén el perfil si tu tarea debe cerrarlo.

Python con Playwright
Instala las dependencias en tu entorno con pip install requests playwright. Este ejemplo conecta con el Chromium que abre Mantis y cierra el perfil al terminar; sustituye PROFILE_ID por el id elegido.
import requests
from playwright.sync_api import sync_playwright
API = "http://127.0.0.1:3848/v1"
PROFILE_ID = "REPLACE_WITH_PROFILE_ID"
def api(method, path):
response = requests.request(method, API + path, timeout=120)
response.raise_for_status()
return response
started = api("POST", f"/perfiles/{PROFILE_ID}/start").json()
try:
with sync_playwright() as p:
browser = p.chromium.connect_over_cdp(
started["automation"]["wsEndpoint"]
)
context = browser.contexts[0]
page = context.new_page()
page.goto("https://example.com")
print(page.title())
page.close()
finally:
api("POST", f"/perfiles/{PROFILE_ID}/stop")Node.js con Puppeteer
En tu proyecto instala puppeteer-core y guarda el ejemplo como un archivo .mjs. Usa una versión de Node con fetch disponible. La llamada disconnect cierra la conexión de automatización; /stop cierra el perfil.
import puppeteer from "puppeteer-core";
const API = "http://127.0.0.1:3848/v1";
const PROFILE_ID = "REPLACE_WITH_PROFILE_ID";
async function api(path, method = "GET") {
const response = await fetch(API + path, { method });
if (!response.ok) {
throw new Error(response.status + ": " + await response.text());
}
return response;
}
const started = await (await api(
"/perfiles/" + PROFILE_ID + "/start", "POST"
)).json();
let browser;
try {
browser = await puppeteer.connect({
browserWSEndpoint: started.automation.wsEndpoint,
defaultViewport: null,
});
const page = await browser.newPage();
await page.goto("https://example.com");
console.log(await page.title());
await page.close();
} finally {
if (browser) await browser.disconnect();
await api("/perfiles/" + PROFILE_ID + "/stop", "POST");
}Trabajar con varias sesiones
- Asigna explícitamente el perfil a cada tarea y evita que dos scripts controlen el mismo contexto a la vez.
- Limita la concurrencia según RAM, CPU y conexión. Cada perfil iniciado es un navegador real.
- Mantén los ajustes de huella en Mantis; evita redefinirlos desde el script si quieres conservar la identidad del perfil.
- Para Selenium u otras herramientas necesitas una integración compatible con Chromium/CDP. No sustituye automáticamente cualquier configuración de WebDriver existente.