Sooner or later every project that reads RSS feeds has to answer the same question: how do we know when there are new items in a RSS feed, efficently?
Polling: simple at first
Polling means your code requests the feed URL on a schedule, parses the XML and compares the entries with what it has already seen. For one or two feeds, a cron job and a parsing library can be all you need.
The trouble starts when the number of feeds grows. A few things you will end up dealing with:
- Deduplication. You need to store which entries you have already processed. Feeds are not consistent about GUIDs, so you may end up hashing links or titles instead.
- Choosing an interval. Poll every minute and you waste requests on feeds that update weekly (and annoy their owners). Poll hourly and you are late for the feeds that matter.
- Broken feeds. Invalid XML, odd encodings, timeouts and servers that block unknown clients all need handling, and each feed fails in its own way.
- Different formats. RSS 2.0, RDF, Atom and JSON Feed all structure the same information differently. See our glossary if some of those terms are new.
Webhooks: someone else does the checking
With a webhook-based setup you tell a service which feeds to watch and give it a URL. When a feed has new entries, the service sends an HTTP POST request with the new items to that URL. Your side shrinks to a single endpoint that accepts JSON.
With RSS API, subscribing to a feed is one request:
curl "https://api.rssapi.net/v1/apikey/subscribe?url=https://www.nasa.gov/rss/dyn/breaking_news.rss"
The response confirms the subscription:
{
"ok": true,
"result": {
"status": "subscribed",
"subscription_id": "22946",
"feed_type": "rss",
"webhook_url": "https://example.org/webhook",
"url": "https://www.nasa.gov/rss/dyn/breaking_news.rss",
"info": ""
}
}
From then on, new entries arrive at your webhook URL as JSON, already normalized no matter which feed format the source uses. The webhook documentation shows the full payload.
Trade-offs
Webhooks are not free of cost either. Your endpoint has to be publicly reachable and reasonably available, and one-off parsing is not possible with the webhook-based system. RSS API offers that too, through the parsing endpoint.
A rough rule of thumb
- A handful of feeds in a common format and no time sensitivity: you could poll them yourself.
- Many feeds, or you want to react to new items quickly: use webhooks.
- On-demand lookups: fetch and parse when the user asks.
If you want to try the webhook route, our guide on receiving webhooks for new RSS items walks through the setup .