Detectar tecnologías web
Una página de inicio nunca le dice con qué está hecha, pero el marcado, los encabezados y los scripts que hay debajo casi siempre sí. Este endpoint identifica el stack de un sitio —CMS, framework de JavaScript, analítica, procesador de pagos, CDN y decenas más— a partir de una sola URL, del mismo modo en que lo haría un desarrollador curioso inspeccionándola a mano, solo que más rápido y a escala.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Por qué surge tanto la pregunta de 'con qué está hecho esto'
Los equipos de ventas que investigan a un prospecto quieren saber si ya usa una plataforma de la competencia antes de una llamada. Las agencias que dimensionan un rediseño quieren saber qué están heredando antes de cotizar un precio. Los analistas de mercado que siguen una categoría quieren saber qué CMS o plataforma de comercio electrónico está ganando terreno entre un grupo de competidores. Las tres son la misma pregunta de fondo —con qué está construido realmente este sitio— y hasta ahora la respuesta honesta requería abrir las herramientas de desarrollador en cada URL, una por una.
Cómo funciona la identificación
Haga POST a /web/tech-detect con una o varias URL, reciba un task_id de inmediato y obtenga un desglose estructurado por webhook firmado o mediante un enlace firmado cuando la tarea asíncrona termine. La detección funciona comparando firmas en el marcado HTML, los encabezados de respuesta, las cookies, el origen de los scripts y las etiquetas meta contra patrones conocidos que deja un software específico —una etiqueta meta generator particular, un script cargado desde una ruta distintiva, un nombre de cookie único de una plataforma— las mismas pistas que notaría una persona, solo que revisadas de forma sistemática en vez de a memoria.
Un enfoque de identificación por firmas, no una suposición
Este tipo de detección existe desde hace años en extensiones de navegador y herramientas independientes precisamente porque buena parte del stack de un sitio deja rastros visibles en lo que envía a un navegador, incluso cuando el diseño visual no delata nada. No es infalible —un sitio puede construirse para ocultar su stack, y la detección refleja lo públicamente observable y no la infraestructura interna— pero para la enorme mayoría de sitios construidos sobre plataformas comunes, las firmas visibles están presentes y son consistentes.
Ejecutarlo sobre muchos sitios a la vez
Como el endpoint acepta un lote de URL en una sola llamada, encaja de forma natural en flujos que necesitan la misma respuesta repetida sobre una lista: un equipo de ventas que enriquece una lista de leads con la plataforma actual de cada prospecto, un analista que sigue la adopción de frameworks entre un grupo de dominios de la competencia, una agencia que audita cada sitio de la cartera de un cliente antes de proponer una consolidación. Con precio por solicitud más por URL, ejecutarlo sobre una lista larga cuesta en proporción directa a cuántos sitios realmente revise, así que una prueba pequeña y una corrida sobre toda la cartera caen bajo la misma tarifa.
Qué puede hacer con ella
Investigación de prospectos para ventas
Un vendedor detecta el CMS y la analítica actuales de un prospecto antes de una llamada de descubrimiento para orientar el discurso hacia lo que en verdad estaría reemplazando.
Dimensionar un rediseño para una agencia
Una agencia corre la detección sobre el sitio actual de un cliente antes de cotizar una reconstrucción, para saber de antemano si está heredando un montaje headless, un CMS antiguo o un constructor de páginas.
Seguimiento de plataformas de la competencia
Un analista de mercado escanea periódicamente una lista de dominios de la competencia para rastrear qué plataforma de comercio electrónico o framework está ganando adopción en una categoría.
Auditoría de stack para toda una cartera
Una agencia que gestiona decenas de sitios de clientes corre una detección por lotes para encontrar cuáles todavía usan un plugin desactualizado o un framework sin soporte.
Preguntas frecuentes
¿Cómo averiguo con qué tecnología está hecho un sitio con la API?
Envíe la URL por POST a /web/tech-detect, guarde el task_id devuelto y reciba el desglose de tecnologías por webhook o mediante un enlace firmado válido por 24 horas.
¿Es gratis la API para detectar tecnologías de una web?
No, no hay plan gratuito ni prueba; cuesta $0.040 por solicitud más $0.001 por URL, y una tarea fallida nunca se cobra.
¿Qué tipo de tecnologías detecta?
Plataformas CMS, frameworks de JavaScript, herramientas de analítica y gestores de etiquetas, herramientas de comercio electrónico y pagos, CDN, y otro software que deja una firma visible en el marcado, los encabezados o los scripts de un sitio.
¿Puedo revisar varios sitios en una sola solicitud?
Sí, el endpoint acepta un lote de URL en una sola llamada, con precio por solicitud más por URL revisada.
¿Qué tan precisa es la detección de tecnologías?
Se basa en comparar firmas públicas conocidas en el marcado y las respuestas de red de un sitio, así que es confiable para plataformas comunes pero refleja lo públicamente observable y no la infraestructura interna.
¿Detecta el hospedaje o la infraestructura del servidor?
Reporta lo que es visible desde afuera, como el CDN y los encabezados del servidor, pero no infraestructura interna privada que nunca llega al navegador.
¿Ya está disponible este endpoint?
Sí, está en producción y aceptando solicitudes.
¿Se conservan los datos de la página escaneada después?
No, el contenido de la página y los resultados se eliminan después del período de retención y nunca se usan para entrenamiento.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/web/tech-detect \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://ejemplo.com"}'const res = await fetch("https://api.kit.forhosting.com/web/tech-detect", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://ejemplo.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/tech-detect",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://ejemplo.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/tech-detect", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://ejemplo.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://ejemplo.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/tech-detect", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"url": "https://ejemplo.com"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.tech_detect",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
timeout_sec | 30 |
max_crawl_pages | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |