RSS & MRSS Feed Specification
This document describes how to format RSS/Atom article feeds and MRSS video feeds for NewsBreak. It replaces the earlier "NewsBreak RSS and MRSS Specifications" PDF and all previous versions of this specification.
Part 1 — Article feeds (RSS / Atom)
1. Supported formats
-
RSS 2.0 (https://www.rssboard.org/rss-profile)
-
Atom 1.0 (https://www.rfc-editor.org/rfc/rfc4287)
2. Allow our crawler
NewsBreak fetches your feed with this User-Agent:
| NewsBreakRSS |
If your site uses a firewall, CDN bot protection or rate limiting, please allow this User-Agent. Otherwise we may not be able to read your feed.
A User-Agent can be copied by anyone, so don't rely on it alone to protect content that isn't otherwise public (for example full-text, paywalled or rate-limit-exempt feeds). For those feeds, ask your NewsBreak partner manager to set up HTTP Basic authentication or a secret request header instead.
3. XML namespaces
Declare these namespaces on the feed root:
| xmlns:nb="https://www.newsbreak.com/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/" |
4. Item fields
| Field | Status | Notes |
|---|---|---|
| <title> | Required | Items without a title are skipped. |
| <link> | Required | The canonical article URL, with no NewsBreak-specific parameters. Use an absolute http(s) URL; items without a usable URL are skipped. If the same URL has already been published under another NewsBreak account, it won't be published again. |
| <content:encoded> | Required | Full article body as HTML. This is what NewsBreak displays. Include all images, captions, videos, audio and hyperlinks. If it's missing we may fall back to <description>, but readers then see only that text, so always put the full article here. |
| <guid> | Strongly recommended | A stable, unique ID for each article (see §5). |
| <pubDate> | Strongly recommended | RFC 822 (standard RSS) or ISO 8601. If it is missing, we use the time we fetched the item. A date in the future is set to the fetch time. |
| <dc:creator> | Recommended | Article author. Use one tag per author when there are several. <author> is also accepted. Don't put photo credits in an item-level <media:credit>: it's read as an author. |
| <description> | Recommended | Article summary. If it is missing, we generate a summary from the body. |
| <media:thumbnail url="…"> | Optional | Thumbnail image (see §6). |
| <nb:disclosure> | Optional | Disclosure for sponsored or affiliate content (see §9). Use at most one per item. |
| <nb:scripts> | Optional | Analytics IDs (see §10). Use at most one per item. |
If you publish Atom, use <content>, <summary>, <published>, <id> and <author><name> in place of the RSS fields above.
Tip: to preview an article, save the text of <content:encoded> as a .html file and open it in a browser. This gives you a rough preview only: NewsBreak cleans the HTML before display (for example it removes layout wrappers, inline styles and non-whitelisted scripts), so the final layout can differ.
5. GUID and article updates
- NewsBreak uses <guid> and the article URL to recognize the same article across feed refreshes. Keep each article's GUID stable and unique, and keep its URL stable too. Changing only query parameters (for example utm_ tags) is fine; if the URL path changes, we treat it as a new article. If you publish several feeds, generate GUIDs the same way in all of them.
- If an article's title or body changes, we pick up the change. Updates are applied for 3 days after we first ingest the article; changes made after that are not applied. Updates are detected from the title and body only.
- If the same URL appears more than once in a feed, we keep only one copy.
6. Thumbnail
NewsBreak chooses the thumbnail in this order:
- An image <enclosure> on the item. Query parameters in its URL are removed, so the URL must work without them.
- <media:thumbnail url="…">, on the item or directly inside <media:content> or <media:group>
- If neither is present, we use the first image in the article that meets the size requirement (§7).
7. Images and captions
Put images in <content:encoded> using <figure>, <img> and <figcaption>. Captions get their own style so readers can tell them apart from body text.
|
<content:encoded><![CDATA[ <img src="https://example.com/pictrulli.jpg" alt="Trulli"> </figure> |
Use absolute image URLs, and don't require cookies or a login to load them.
Images must be at least 201 pixels in both width and height (each dimension independently). Smaller images are removed from the article and can't be used as the thumbnail.
8. Video, audio and social embeds
- Put video and audio in <content:encoded> using HTML <video>, <audio> or <iframe>.
- When you use an <iframe> for video, add class="nb-video" so it's shown as a full-width 16:9 player. Use class="nb-audio" for audio players.
- Make sure your embeds can be framed by third-party sites and load without cookies or a login.
- A video player URL in <media:player url="…"> is also accepted. Only the first one is used, and it's placed at the top of the article, so don't also embed the same video in the body.
- We support embedded posts from X (Twitter), Instagram and TikTok using the platform's standard embed code in <content:encoded>. For Facebook, use the iframe embed code. Instagram Reels embeds aren't supported at the moment.
|
<content:encoded><![CDATA[ <iframe class="nb-video" src="https://example.com/embed/123"></iframe> </figure> |
9. Disclosure (sponsored, branded, promotional and affiliate content)
This content must clearly disclose the commercial relationship (see "Commercial and Promotional Content" in the Community Standards). Put the plain-text disclosure in <nb:disclosure>. The disclosure must state who benefits from the affiliate links in the article. NewsBreak shows it below the headline and byline, above the article body. Use only one <nb:disclosure> per item.
| <nb:disclosure>{Media name} is supported by its audience. When you purchase through links in this article, {Media name} may earn an affiliate commission.</nb:disclosure> |
10. Analytics (<nb:scripts>)
Give us your analytics IDs as JSON inside <nb:scripts>. NewsBreak then generates and runs the tracking code for you. You don't need to send raw JavaScript.
| Integration | Value |
|---|---|
| Google Analytics 4 | <nb:scripts>{ "gid": "G-XXXXXXXXXX" }</nb:scripts> |
| Comscore | <nb:scripts>{ "comscore_client_id": "12345678" }</nb:scripts> |
| Both | <nb:scripts>{ "gid": "G-XXXXXXXXXX", "comscore_client_id": "12345678" }</nb:scripts> |
Notes:
- Use a GA4 measurement ID (G-…). Universal Analytics (UA-…) IDs no longer collect data.
- Use only one <nb:scripts> per item; if there are several, they are ignored.
- Raw <script> blocks (the legacy method) are still accepted for now, but please move to the JSON format. Ad code is not allowed in <nb:scripts>: scripts containing ad code are converted to the JSON format using the Google Analytics and Comscore IDs we find, and if none are found, the block is dropped.
11. Sample feed
|
<?xml version="1.0" encoding="UTF-8"?> <nb:scripts>{ "gid": "G-XXXXXXXXXX", "comscore_client_id": "12345678" }</nb:scripts> |
Part 2 — Video feeds (MRSS)
1. Getting set up
Add your MRSS feed URL in your NewsBreak publisher portal settings. Our team reviews each feed before it goes live, and you'll get an email with the result. One feed publishes to one NewsBreak profile. If you want videos on several profiles (for example one per brand), give us a separate feed for each profile.
Please allow the NewsBreakRSS User-Agent (see Part 1 §2).
2. Item fields
| Field | Status | Notes |
|---|---|---|
| <media:content url="…" type="video/mp4" duration="…" width="…" height="…"> | Required | A direct, publicly downloadable MP4 file. HLS/m3u8 streams and player-page URLs are not supported. Use a stable URL without expiring signatures or tokens: if the URL changes, we treat it as a new video. If you list several renditions, we take the widest. |
| <title> | Required | Every item must have a title. Shown as the video caption; captions longer than 230 characters are shortened. |
| <pubDate> | Required | RFC 822 or ISO 8601. Items without a parseable date are skipped. |
| <media:thumbnail url="…"> | Recommended | A JPG image whose URL ends in lowercase .jpg; other formats are ignored. If you list several, the last one is used. Give each thumbnail a unique file name. |
3. Limits
- Maximum duration: 30 minutes. Please include the duration attribute, in seconds.
- Only videos published in the last 30 days are ingested.
- Keep each video's MP4 URL stable. We use it to detect duplicates.
- The MP4 must be downloadable without cookies or a login.
- The feed must be UTF-8 encoded.
4. Sample item
|
<rss version="2.0" xmlns:media="http://search.yahoo.com/mrss/"> <media:thumbnail url="https://cdn.example.com/videos/98765.jpg"/> |