RSS a JSON
Pegue un feed o indique su dirección y reciba cada publicación en la misma lista plana: el feed de ejemplo Blog de ZARZA da 2 entradas, Primer aviso y Segundo aviso, con título, enlace, resumen y fecha. RSS y Atom salen iguales. Gratis en su navegador si pega el feed.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
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.
Dos formatos de feed, un solo resultado
RSS nació a finales de los años noventa como una forma sencilla de publicar una lista de novedades y luego se dividió en versiones rivales, como la 0.91, la 1.0 y la 2.0. Atom llegó en 2005 con reglas más estrictas para acabar con las ambigüedades. Los dos siguen en uso a diario: un blog típico publica RSS 2.0 y muchas herramientas de publicación generan Atom, así que quien lee feeds acaba lidiando con ambos. Este conversor lee cualquiera de los dos y devuelve el título, el enlace y la descripción del feed junto a cada entrada, siempre con título, enlace, fecha de publicación, autor y contenido.
Qué se construye con un feed convertido
Una herramienta de boletines puede armar un resumen diario con veinte feeds de distintos medios. Un panel puede mostrar las últimas entradas del blog de un cliente, y un script de investigación puede contar con qué frecuencia publica un grupo de sitios de noticias, una forma sencilla de seguir la producción de la competencia. Todos prefieren una lista plana antes que leer XML a mano. Cuando a una entrada le falta un dato, ese dato llega vacío en lugar de perder la publicación, y un feed sin nada legible avisa con un fallo claro en vez de romper su proceso.
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é puede hacer con ella
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.
Preguntas frecuentes
¿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.
¿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.
¿Los feeds RSS y Atom salen con la misma forma?
Sí. Sea cual sea el formato de origen, cada entrada llega con los mismos datos, título, enlace, fecha de publicación, autor y contenido, junto al título, el enlace y la descripción del propio feed. El paso siguiente nunca tiene que averiguar qué formato recibió.
¿Puedo pegar el contenido del feed en vez de dar su dirección?
Sí. Si ya tiene el XML del feed, péguelo y se convierte igual que si la herramienta lo descargara de su dirección. Así no depende de que el feed esté publicado ni accesible en ese momento.
Herramientas relacionadas
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, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/web/rss-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/feed.xml"}'const res = await fetch("https://api.kit.forhosting.com/web/rss-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com/feed.xml"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/rss-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com/feed.xml"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/rss-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com/feed.xml"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com/feed.xml"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/rss-to-json", 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://example.com/feed.xml"
}Ejemplo de respuesta
{
"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.
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. |
Notas técnicas
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.
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
Normalizar en el punto de ingreso mantiene simple el resto del flujo. 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.
Cómo encaja en la automatización
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. 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.
Casos de integración
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.
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.
Preguntas técnicas
¿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.
¿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.