ForHosting KIT · Web: scraping y monitoreo

RSS a JSON

RSS y Atom son dos dialectos de la misma idea, escritos con veinte años de diferencia, y todo consumidor de feeds termina teniendo que lidiar con ambos, más los feeds mal formados de por medio. Este endpoint visita la URL de un feed y devuelve sus elementos como JSON plano y predecible, para que su código nunca más tenga que tocar un analizador de XML.

● EstableGratis · en su navegador
Úselo desde WebAPIEmailApp prontoTelegram pronto

Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.

Una especificación de feed se volvió dos, y luego un enredo

RSS apareció a finales de los años noventa como una forma simple de publicar una lista de actualizaciones, y se bifurcó en versiones que competían entre sí (0.91, 1.0, 2.0) antes de que Atom llegara en 2005 a corregir las ambigüedades de RSS con una especificación más estricta. Ambos siguen usándose a diario: un blog en WordPress emite RSS 2.0 por defecto, mucha herramienta de publicación emite Atom, y un agregador real tiene que aceptar cualquiera de los dos más los innumerables feeds que violan su propia especificación con espacios de nombres faltantes o fechas mal formadas. Escribir ese analizador una sola vez, bien hecho, es un trabajo más grande de lo que parece.

Qué devuelve la llamada

Envíe la URL de un feed por POST a /web/rss-to-json y reciba un task_id de inmediato mientras el feed se descarga y analiza en segundo plano. El JSON terminado normaliza el título, enlace y descripción del feed junto con cada elemento —título, enlace, fecha de publicación, autor y contenido— en una sola estructura plana sin importar si el origen era RSS o Atom, así que el código que lo consume no necesita ramificarse según el dialecto recibido. Los resultados llegan a su webhook o a un enlace firmado válido por 24 horas.

Quién necesita esto en realidad

Una herramienta de boletines que arma un resumen diario a partir de veinte feeds de editores, un panel que muestra las últimas publicaciones del blog de un cliente, o un script de investigación que rastrea con qué frecuencia publica un grupo de medios sobre un tema, todos chocan con el mismo obstáculo: los feeds son XML, y la mayoría de las plataformas modernas prefieren trabajar con JSON antes que analizar XML a mano o cargar una librería pesada solo para esto. Normalizar en el punto de ingreso mantiene simple el resto del flujo.

Cómo encaja en la automatización

Como la tarea es asíncrona y se cobra por solicitud, un planificador puede consultar cien feeds cada hora sin que nadie vigile un cron que de vez en cuando se atora con un documento XML mal formado. Un feed que no devuelve nada analizable simplemente reporta una falla clara en lugar de tumbar un script, y las descargas fallidas nunca se cobran, así que una lista de vigilancia que incluye algunos feeds muertos o mal configurados no desperdicia presupuesto en silencio en los que nunca responden.

Boletín diario de resumen

Extraiga los últimos elementos de una lista de feeds de editores cada mañana y arme un solo paquete JSON para una plantilla de boletín.

Widget de blog de cliente

Descargue el feed RSS de un cliente en un horario fijo para alimentar un widget de 'últimas publicaciones' sin incrustar un analizador XML en vivo en el frontend.

Seguimiento del ritmo de publicación de la competencia

Monitoree con qué frecuencia un grupo de feeds de noticias o de la industria publica elementos nuevos para medir la producción de la competencia a lo largo del tiempo.

Republicación cruzada de podcast y blog

Normalice una mezcla de feeds RSS y Atom de distintas plataformas en una sola forma JSON antes de republicar elementos seleccionados en otro sitio.

¿Cómo convierto RSS a JSON con la API?

Envíe la URL del feed por POST a /web/rss-to-json, guarde el task_id devuelto y reciba el JSON analizado por webhook o mediante un enlace firmado válido por 24 horas.

¿Es gratis la API RSS a JSON?

No, no hay plan gratuito ni prueba; cuesta $0.002 por solicitud, y un análisis fallido nunca se cobra.

¿También soporta feeds Atom, o solo RSS?

Sí, tanto RSS (0.91, 1.0, 2.0) como Atom se analizan hacia la misma estructura JSON plana.

¿Qué pasa si la URL del feed es inválida o no responde?

La tarea devuelve un error claro en lugar de un resultado parcial, y como falló, no se cobra.

¿Maneja feeds mal formados o fuera de estándar?

Maneja las irregularidades comunes que se ven en feeds publicados en el mundo real, pero un feed que viola seriamente la especificación de RSS o Atom puede que no se analice de forma limpia.

¿Puedo convertir muchos feeds por lote en un horario fijo?

Sí, envíe una tarea asíncrona por cada URL de feed en el horario que necesite y reciba cada resultado por webhook a medida que termine.

¿Qué campos incluye la salida JSON?

Título, enlace y descripción a nivel de feed, más título, enlace, fecha de publicación, autor y contenido de cada elemento, normalizados igual sin importar el formato de origen.

¿Se guarda el contenido del feed descargado después?

No, los feeds descargados y los datos analizados se eliminan después del período de retención y nunca se usan para entrenamiento.

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.

POSThttps://api.kit.forhosting.com/web/rss-to-json

¿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.

curl -X POST https://api.kit.forhosting.com/web/rss-to-json \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":"…"}'
{
  "input": "…"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "web.rss_to_json",
  "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.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

timeout_sec30
max_crawl_pages25
HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →