Atom Feed
A well-formed Atom feed with multiple entries — for testing feed readers and parsers.
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Novus Examples Feed</title>
<link href="https://examples.novusstreamsolutions.com"/>
<updated>2026-01-02T09:00:00Z</updated>
<id>urn:uuid:novus-examples-feed</id>
<entry>
<title>First entry</title>
<id>urn:1</id>
<updated>2026-01-01T09:00:00Z</updated>
<summary>The first entry.</summary>
</entry>
<entry>
<title>Second entry</title>
<id>urn:2</id>
<updated>2026-01-02T09:00:00Z</updated>
<summary>The second entry.</summary>
</entry>
</feed>
Specifications
- Format
- Atom 1.0
- Entries
- 2
- Feed
- Novus Examples Feed
- Encoding
- UTF-8
What is a .atom file?
Atom is an XML-based web syndication format standardized by the IETF as a more rigorous alternative to RSS. It publishes entries with structured metadata including unique IDs, updated timestamps, and typed content. It is used for blogs, news, and API feeds.
How to use this file
Use an example Atom file to test feed parsing, entry and metadata extraction, and clients that must support both Atom and RSS syndication.
How to use this file for testing
“Atom Feed” is a deterministic Novus Examples fixture for Feed parsing. Well-formed RSS 2.0 and Atom feeds with multiple entries — for testing feed readers and parsers.
Documented properties for this file: 2 entries · UTF-8 · Atom 1.0. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Data fixtures document their exact quirks — delimiters, encodings, null handling, schema, and row counts — in the spec table. Point your parser or importer at the file and assert it handles the documented edge cases; clean and deliberately-messy siblings make before/after diffs straightforward.
Code examples
import feedparser # pip install feedparser
feed = feedparser.parse("feed.atom")
print(feed.feed.get("title"))
for e in feed.entries[:5]:
print(e.title, e.link)Related files
- jsonJSON Feed 1.1A JSON Feed 1.1 document — the JSON alternative to RSS/Atom — with a feed header and three items using content_html, content_text, tags, and publish dates, for testing JSON Feed parsers and readers.

- opmlOPML Subscription ListAn OPML 2.0 subscription list with nested outline groups and three feed entries (title, xmlUrl, htmlUrl) — the format RSS readers use to import and export subscriptions, for testing OPML parsers.

- rssRSS 2.0 FeedA well-formed RSS 2.0 feed with a channel and multiple items — for testing feed readers and parsers.

- atomFeed twin - Atom 1.0The same four articles as Atom 1.0: tag: ids identical to the RSS twin, RFC 3339 published and updated timestamps, escaped HTML content, and both alternate and self links. For diffing an RSS-to-Atom converter against a known answer.

- jsonFeed twin - JSON Feed 1.1The third twin: the same four articles as JSON Feed 1.1, using the 1.1 `authors` array rather than the 1.0 singular form, with ids, URLs, summaries, HTML bodies and timestamps identical to the RSS and Atom files. The reference output for an XML-to-JSON feed converter.

- rssFeed twin - RSS 2.0Four articles of a fictional publication as RSS 2.0, with a self-referential atom:link, non-permalink tag: GUIDs, RFC 822 dates and full HTML bodies in content:encoded. One of three twins carrying identical content, so a feed converter can be diffed against a known answer.

Generated by generation/data_formats.py. Free for any use, no attribution required — license.