As of April 20, 2023, the Instant Articles API no longer returns data. Instant Articles API endpoints cannot be called on v17 or later and will be removed entirely on August 21, 2023.
Instant Articles support syndication using a secure RSS feed. This feed can integrate seamlessly with your existing workflow if new stories are automatically syndicated as Instant Articles whenever you publish them from your regular content management system. Note that this will need to be an Instant Articles-specific RSS feed and is not the same as other RSS feeds you may already have.
You should only publish new stories via your Instant Articles RSS feed when they are also publicly available on your website. The Instant Articles system requires access to each article's standard web URL to render the content properly.
Here's how to set up automated publishing using an RSS feed:
To enable automated publishing of your Instant Articles, configure your content management system to generate an RSS feed which contains the full content of each article in Instant Articles markup. This feed should be new and separate from other RSS feeds you may already operate.
Each article in this RSS feed must be represented as an <item>
and should include a set of elements that contain the article content and all relevant metadata. While not all elements are required, it's best to include the entire set of elements to provide as much context about your Instant Articles as possible.
Articles from your RSS feed will be ingested by Facebook multiple times every hour. As a best practice, we recommend that your RSS feed includes only articles that have been created or updated in the last hour to ensure a sufficient overlap between pulls of your RSS feed. Once new or updated articles have been ingested successfully, you can remove them from your RSS feed.
Element | Description | Required |
---|---|---|
| The headline of the article. | Yes |
| The canonical URL for this article on your site. | Yes |
| The full content of your article, in HTML form. Remember to escape all HTML content by wrapping it within a CDATA section. | Yes |
| A string that provides a unique identifier for this article in your feed. | |
| A summary of your article, in plain text form. | |
| The date of the article’s publication, in ISO-8601 format. | |
| Name of the person who wrote the article. Use multiple |
Specify the RSS feed that will distribute your content to Facebook through Creator Studio for your Facebook Page. From Creator Studio select Links under the Published or Pre-Published header from the menu on the left hand side and click on the gear icon on the right to open the Instant Articles Configuration screen. Then scroll to RSS Feeds and click on the Add button for Production RSS Feed.
Though optional, we recommend configuring basic authentication (username and password) for your RSS feed and serving it with SSL/TLS (i.e. HTTPS) if you want your feed to be private.
You can specify a username and password for your feed on the Configuration page when adding a new RSS Feed. Facebook will encrypt and store these internally for use when publishing your content.
Once your RSS feed has been approved and you activate your feed, all new articles received from your RSS feed will automatically appear in Instant Article form when you share them on your Page.
If you want to disable automatic conversion, check the box for “Import all articles as drafts” under Production RSS Feed when adding the RSS Feed. Yo'll see all articles in draft on the Pre-Published section of Creator Studio. Learn more about managing your Instant Articles library.
You can also configure a development RSS feed for testing purposes. Articles from the development feed are isolated from your production feed and will never be publicly visible. Read more about the development feed below in the Development RSS Feed section.
Once you’ve connected your RSS feed to your Facebook Page, Facebook will pull stories from your RSS feed into the Instant Articles system.
If there are no RSS feed errors, ensure that your articles are populating the Instant Articles library associated with your Facebook Page. From Creator Studio select Links under Published in the menu on the left hand side, and select Instant Articles as Post Type. The Instant Articles library looks like this:
At times you may need to update the content of a previously published article, as in the case of a developing news story. To automatically specify an article to update and republish, its HTML must include the op-published and op-modified <time>
elements, and the updated article must be redistributed via your RSS feed.
Facebook checks your RSS feed multiple times each hour to determine if any of your Instant Articles content has been updated. An Instant Article will be updated and republished if the op-modified date for an article in your RSS feed is more recent than the op-modified date of the existing article in your library.
There are a few limitations to consider when updating articles that have been previously published:
Facebook pulls a maximum of 100 items that are new or modified since the last pull. If you are adding or changing more than 100 items every ten minutes or so, the Instant Articles system will only update the first 100 items, sorted by modified time, with the most recent appearing first.
If an update to an existing Instant Article is more than 24 hours old based on its op-modified
time, it will be ignored by the pull. For example, if your feed is pulled at 12:00pm on October 8th and an article in your feed with the op-modified time set to 11:59am on October 7th, it will be ignored.
If you attempt to update an existing article through your RSS feed and the update is ignored, Facebook will continue to display the most recent version of the article in the Instant Articles system. Changes to published Instant Articles that are more than one day old can be implemented manually, via the web-based Instant Articles editor tool accessible from your Facebook Page.
Media assets associated with an RSS item will only update if the URL of the media asset has changed.
To properly distribute your content to Instant Articles, ensure your content is visible to our crawler. If you normally restrict access to your content, you'll need to add our crawler to your allwo list. Please refer to our Facebook Crawler guide for advice on how to identify our crawler and preferred approaches to allow listing.
You will be able to activate your Instant Articles feed after it has successfully passed the Article Review. Until then, you won't be able to publish Instant Articles.
Publishers with an approved production RSS feed can set up a separate development RSS feed to develop and test changes. The development feed is isolated from your production feed, and articles from this feed will never be publicly visible.
To set up a development feed, from the left navigation of your Page, click Creator Studio then select Links under Published or Pre-Published in the menu on the left of the screen, and select Instant Articles as Post Type. Click on the gear icon and scroll to find the Development RSS Feed section:
Input the URL of your development RSS feed and provide HTTP authentication credentials if needed. Click Save and Facebook will begin to pull content from the feed every 3 minutes. After the first pull, you will see an updated status for the feed as well as any warnings or error messages from the processing.
If your development feed is error-free and articles have been ingested, you will see these articles in a separate “sandbox” section of your Instant Articles library. To find the articles, go to Creator Studio > Pre-Published section in the menu on the left side, then Links and filter by Instant Articles using the Post Type dropdown. Finally, make sure the Drafts toggle is selected to display your development articles.
The library of your articles from the development feed will look like this:
From here, you can create, edit and delete articles in the development sandbox.
This is an example of an RSS 2.0 feed optimized for Instant Articles:
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"> <channel> <title>News Publisher</title> <link>http://www.example.com/</link> <description> Read our awesome news, every day. </description> <language>en-us</language> <lastBuildDate>2014-12-11T04:44:16Z</lastBuildDate> <item> <title>This is an Instant Article</title> <link>http://example.com/article.html</link> <guid>2fd4e1c67a2d28fced849ee1bb76e7391b93eb12</guid> <pubDate>2014-12-11T04:44:16Z</pubDate> <author>Mr. Author</author> <description>This is my first Instant Article. How awesome is this?</description> <content:encoded> <![CDATA[ <!doctype html> <html lang="en" prefix="op: http://media.facebook.com/op#"> <head> <meta charset="utf-8"> <link rel="canonical" href="http://example.com/article.html"> <meta property="op:markup_version" content="v1.0"> </head> <body> <article> <header> <!— Article header goes here --> </header> <!— Article body goes here --> <footer> <!— Article footer goes here --> </footer> </article> </body> </html> ]]> </content:encoded> </item> <!— Another Article (Each Article must be represented as an <item>) --> <item> <title>This is another Instant Article</title> <link>http://example.com/another_article.html</link> <pubDate>2017-02-14T05:20:00Z</pubDate> <content:encoded> <![CDATA[ <!doctype html> <html lang="en" prefix="op: http://media.facebook.com/op#"> <head> <meta charset="utf-8"> <link rel="canonical" href="http://example.com/another_article.html"> <meta property="op:markup_version" content="v1.0"> </head> <body> <article> <header> <!— Article header goes here --> </header> <!— Article body goes here --> <footer> <!— Article footer goes here --> </footer> </article> </body> </html> ]]> </content:encoded> </item> </channel> </rss>