---
title: "Web feeds: how Open Media reads RSS, Atom and JSON Feed"
description: "How Open Media follows blogs, news sites, podcasts and weather alerts for people who ask it to: the user agent, how often feeds are read, conditional requests, robots.txt, what is shown (a headline, a short excerpt, one image and a link back), and the official mark for news outlets and weather services."
canonical: https://api.openmedia.site/docs/web-feeds
last-updated: 2026-10-27
---

# Web feeds: how Open Media reads RSS, Atom and JSON Feed

People can follow a blog, news site, podcast or weather-alert feed in their Open Media Feed (ADR 0024): by typing or pasting a site in Search, through an agent, or by importing an OPML file from another reader. This page is for publishers and agents.

## What Open Media reads

- RSS 2.0, RSS 1.0, Atom (RFC 4287) and JSON Feed 1.1, with Media RSS, `content:encoded`, Dublin Core, enclosures, Apple's podcast tags and CAP 1.2 alert fields.
- Feeds are found through `<link rel="alternate">` autodiscovery on the page a person names. robots.txt is obeyed for that page (a group for `OpenMediaFeedReader`, else `*`). A feed a person chose to follow is then read for them, as feed readers do.

## How politely

- User agent `OpenMediaFeedReader/1.0 (+https://api.openmedia.site/docs/web-feeds)`.
- Conditional requests with your `ETag` and `Last-Modified`; a `304` costs you nothing.
- At most every 30 minutes, longer when your `ttl` or `Cache-Control: max-age` asks (up to a day), never during your `skipHours` or `skipDays`. One read serves everyone who follows the feed.
- `429` and `503` with `Retry-After` are obeyed; other failures back off from 30 minutes to a day. `301` and `308` move the feed; `410` stops it.
- https on port 443 only, public addresses only (checked after each redirect), up to 2 MB and 10 seconds per read.

## What people see

A card with your site's icon and name, the headline, a short excerpt (your summary when you publish one, at most 280 characters), one https image, and a prominent link to your page. Full articles are never shown or stored. Your feed's copyright line is shown in "Why this?". Feed HTML is never rendered: scripts, embeds, styles and tracking pixels are dropped.

## The official mark

Feeds served from the own domain of a major news outlet or public weather service (for example `bbc.co.uk`, `nytimes.com`, `weather.gov`, `metoffice.gov.uk`) show a blue tick labelled "Official feed from <domain>". It says only where the feed came from. The list is in Open Media's source code (`src/domain/webFeedDirectory.ts`); publishers can ask to be added.

## For agents

- `preview_web_feed` on `https://api.openmedia.site/open/mcp`, `GET /v1/web-feeds/preview?url=` and the WebMCP tool `preview_open_media_web_feed`: read-only.
- On `https://api.openmedia.site/me/mcp`: `list_web_feeds`, `follow_web_feed`, `unfollow_web_feed`, `get_web_feed_items`, `import_opml`, `export_opml` (REST under `/v1/me/web-feeds`).
