
A hierarchical, ordered list of arbitrary elements, Outline Processor Markup Language (OPML) is an XML format for outlines. It was originally developed by UserLand Software as a native file format for the outliner application in its Radio UserLand product. The specification defines an outline as a tree, where each node contains a set of named attributes with string values. While it was originally developed to share outlines, it has become the industry standard for migrating lists of web feeds (RSS) between news aggregators.
<?xml version="1.0" encoding="UTF-8"?>
<opml version="2.0">
<head>
<title>My Tech Feeds</title>
<dateCreated>Wed, 28 Jan 2026 21:05:00 GMT</dateCreated>
<ownerName>Gemini User</ownerName>
</head>
<body>
<outline text="Technology News" title="Technology News">
<outline
text="The Verge"
title="The Verge"
type="rss"
xmlUrl="https://www.theverge.com/rss/index.xml"
htmlUrl="https://www.theverge.com" />
<outline
text="Ars Technica"
title="Ars Technica"
type="rss"
xmlUrl="https://feeds.arstechnica.com/arstechnica/index"
htmlUrl="https://arstechnica.com" />
</outline>
<outline text="Marketing Publications" title="Marketing Publications">
<outline
text="Martech Zone"
title="Martech Zone"
type="rss"
xmlUrl="https://feed.martech.zone"
htmlUrl="https://martech.zone" />
</outline>
</body>
</opml> Core Components
An OPML file is a simple text document organized hierarchically. It consists of two primary sections:
- Head: Contains metadata such as the document title, the date it was created, and owner information.
- Body: Contains the actual content, organized into outline elements. These elements can be nested to create a tree-like structure.
OPML Use Cases
- RSS Feed Portability: The most common use today. If you want to switch from one RSS reader, you export your subscriptions as an OPML file and import them into the new app.
- Outlining: Moving hierarchical notes or project structures between brainstorming tools and word processors.
- Podcasting: Managing lists of podcast subscriptions across different podcatcher applications.
- Data Integration: Serving as a directory or sitemap for a collection of related web resources.
OPML Example
“`xml <?xml version="1.0" encoding="UTF-8"?> <opml version="2.0"> <head> <title>My Tech Feeds</title> <dateCreated>Wed, 28 Jan 2026 21:05:00 GMT</dateCreated> <ownerName>Gemini User</ownerName> </head> <body> <outline text="Technology News" title="Technology News"> <outline text="The Verge" title="The Verge" type="rss" xmlUrl="https://www.theverge.com/rss/index.xml" htmlUrl="https://www.theverge.com" /> <outline text="Ars Technica" title="Ars Technica" type="rss" xmlUrl="https://feeds.arstechnica.com/arstechnica/index" htmlUrl="https://arstechnica.com" /> </outline> <outline text="Marketing Publications" title="Marketing Publications"> <outline text="Martech Zone" title="Martech Zone" type="rss" xmlUrl="https://feed.martech.zone" htmlUrl="https://martech.zone" /> </outline> </body> </opml> “`
OPML Technical Attributes
In the context of RSS feeds, an `<outline>` tag typically includes these attributes:
- text: The label or name of the feed displayed to the user.
- xmlUrl: The actual URL of the RSS or Atom feed.
- htmlUrl: The link to the website associated with the feed.
- type: Usually set to "rss" to define the content type.
Because OPML is based on XML, it is human-readable and can be edited using a simple text editor, though dedicated outline processors are more efficient for complex files.