Lanzamiento de nuevo producto: Web Render API
All Posts

Presentamos Massive Web Render: la web, como una API para la IA

Jason Grad
Jason Grad · Co-founder

La web no se construyó para máquinas. Se construyó para humanos haciendo clic en páginas y leyendo HTML renderizado. Ahora los humanos quieren que las máquinas hagan ese trabajo por ellos, y la brecha entre lo que necesitan los agentes de IA y lo que la web ofrece es el mayor problema sin resolver de la infraestructura agéntica.

Hoy lanzamos Massive Web Render: tres endpoints que convierten la web abierta, los motores de búsqueda y los LLM de frontera en APIs limpias para quienes construyen IA.

Lo que lanzamos

Web Render es una sola API key con tres endpoints:

/ai consulta ChatGPT, Gemini, Perplexity y Copilot de forma programática. Tú envías un prompt. Recibes JSON estructurado con la respuesta, las fuentes y las subconsultas de fanout. Geosegmenta a cualquiera de los más de 195 países para ver cómo responde un LLM desde Tokio frente a São Paulo. Emula cualquier dispositivo. Este es el endpoint por el que las startups de AEO y GEO cobran de $400 a $2.000 al mes. Con nosotros cuesta unos pocos dólares.

/search extrae resultados de Google y Bing en tiempo real, incluidos los AI Overviews y las respuestas de "People Also Ask". Geosegmentado, paginado y consciente del idioma.

/browser renderiza cualquier página web. Salida en HTML renderizado, HTML crudo o markdown listo para LLM.

Por qué lo construimos

En febrero lanzamos ClawPod. Era una skill de OpenClaw que conectaba los navegadores de los agentes a nuestra red de proxies residenciales para que las 145.000 personas que ejecutan sus propios agentes de OpenClaw pudieran cargar páginas web sin ser bloqueadas.

ClawPod nos enseñó lo que los agentes realmente necesitan.

No era solo rotación de IP. Era emulación completa de navegador, resolución de captchas, gestión de huellas digitales y todas las demás capas de desbloqueo que se sitúan entre la solicitud de un agente y los datos limpios y estructurados. Los agentes que mejor funcionaban no eran los que esquivaban los bloqueos. Eran los que recuperaban datos listos para que un LLM razonara sobre ellos.

Tomamos esas lecciones y construimos la versión de producción.

Lo que hay debajo: la capa de desbloqueo

La mayoría de las APIs que dicen "extraer datos de cualquier sitio" se detienen en la IP. Web Render va más allá porque la web moderna lo exige.

Cloudflare, DataDome y PerimeterX bloquean las solicitudes HTTP crudas. Verifican huellas digitales, ejecutan retos de JavaScript, sirven captchas y limitan la tasa de cualquier cosa que parezca un bot. Incluso las IP residenciales fallan sin un navegador real detrás.

Web Render gestiona toda la pila de desbloqueo:

  • Renderizado con navegador real y ejecución completa de JavaScript
  • Resolución de captchas para hCaptcha, reCAPTCHA y Cloudflare Turnstile
  • Bypass anti-bot para Cloudflare, DataDome y PerimeterX
  • Reintentos inteligentes cuando el primer intento es desafiado
  • Sesiones persistentes para flujos de varias páginas

Hasta 3 minutos por llamada para los sitios más difíciles. Si un sitio sigue bloqueado, contáctanos y lo dejaremos funcionando en menos de 48 horas.

No gestionas sesiones de navegador, rotación de huellas digitales ni lógica de reintentos. Envías una URL o un prompt y recibes los datos.

Para quién es esto

Quienes construyen agentes de IA y necesitan que su agente cargue de forma fiable la web abierta. Startups de AEO y GEO que monitorizan la visibilidad de marca en los LLM. Equipos de empresa que ejecutan pipelines internos de evaluación de LLM. Herramientas de ventas con IA que ejecutan flujos de enriquecimiento (un alpha tester acaba de reducir su coste por enriquecimiento de $1 a menos de $0,01 sustituyendo una herramienta bloqueada por UI con nuestra API y un agente de código abierto).

Si alguna vez te dijiste "ya lo extraemos nosotros mismos" y acabaste con un pipeline frágil que se rompe cada vez que el sitio objetivo se actualiza, esta es la alternativa.

El panorama general

Salesforce acaba de pasarse a headless. Todos los SaaS importantes seguirán en los próximos 18 meses. Los agentes no hacen clic en botones, así que toda la pila de software se está reconstruyendo para ellos.

La web abierta va en la dirección opuesta. Los sitios web se están cerrando detrás de sistemas anti-bot mientras los humanos cada vez piden más a las máquinas que hagan su trabajo por ellos. No existe un Headless 360 para la web abierta. Esa infraestructura hay que construirla.

Esta es la capa que estamos construyendo.

Empieza ya

Prueba la demo: un prompt, tres LLM de frontera, lado a lado, geosegmentados a cualquier ciudad del mundo.

Los primeros 100 registros reciben $50 en crédito.

Pruébalo tú mismo

Los mismos tres LLM de frontera que consulta la demo están a una llamada HTTP de distancia. Regístrate en dashboard.joinmassive.com para obtener una API key y luego:

bash
curl -H "Authorization: Bearer $MASSIVE_TOKEN" \
'https://render.joinmassive.com/ai?prompt=best+ai+coding+assistant&country=us&city=New+York&model=chatgpt'
python
import os, asyncio, httpx
PROMPT = "best ai coding assistant" # ← swap for your "best [category]"
CITY = "New York"
MODELS = ["chatgpt", "gemini", "perplexity"]
async def query(client, model):
r = await client.get(
"https://render.joinmassive.com/ai",
headers={"Authorization": f"Bearer {os.environ['MASSIVE_TOKEN']}"},
params={"prompt": PROMPT, "country": "us", "city": CITY, "model": model},
timeout=180,
)
return model, r.json()
async def main():
async with httpx.AsyncClient() as c:
for model, data in await asyncio.gather(*(query(c, m) for m in MODELS)):
print(f"--- {model} ---")
print(data.get("completion", "")[:300])
asyncio.run(main())
typescript
const PROMPT = 'best ai coding assistant' // ← swap for your "best [category]"
const CITY = 'New York'
const MODELS = ['chatgpt', 'gemini', 'perplexity'] as const
const results = await Promise.all(
MODELS.map(async (model) => {
const url = new URL('https://render.joinmassive.com/ai')
url.searchParams.set('prompt', PROMPT)
url.searchParams.set('country', 'us')
url.searchParams.set('city', CITY)
url.searchParams.set('model', model)
const res = await fetch(url, {
headers: { Authorization: `Bearer ${process.env.MASSIVE_TOKEN}` },
})
return { model, data: await res.json() }
}),
)
for (const { model, data } of results) {
console.log(`--- ${model} ---`, data.completion?.slice(0, 300))
}

Un prompt para pegar en cualquier agente

Funciona en Claude, ChatGPT, Gemini o en tu propio bucle de agente. Sustituye "Replit" por tu marca y "best AI coding assistant" por la consulta que harían tus clientes.

markdown
Use Massive Web Render's /ai endpoint to query "best AI coding assistant" across
ChatGPT, Gemini, and Perplexity — geo-targeted to NYC, London, and SF.
For each (model × city), capture the top recommendations, sources cited, and the
position of "Replit" in each answer.
Aggregate into a single visibility report:
• avg rank of Replit per model
• avg rank of each competitor (Cursor, Windsurf, Copilot, etc.)
• cities where Replit doesn't appear at all
• which sources LLMs cite most often (so I know where to invest)
Then give me 5 concrete actions to improve Replit's visibility for
"best AI coding assistant", ranked by likely lift.

Un paso más rápido — Massive MCP

Lanzamos un servidor Model Context Protocol en npm para que los agentes puedan llamar a Web Render directamente. Instálalo una sola vez:

bash
npm install -g @joinmassive/mcp-server

Después pega este prompt en tu agente con MCP habilitado:

markdown
Use Massive MCP to search "best AI coding assistant" across Google
(organic + AI Overview), ChatGPT, Perplexity, and Gemini — geo-targeted
to NYC, London, and SF. List competitors by avg rank and build me a
visibility report for Replit. Then propose 5 concrete actions to improve
my ranking, ranked by likely lift.

La web no se construyó para los agentes de IA. Nosotros construimos la capa de API que la hace funcionar como si lo hubiera sido.