Pages

Sunday, 6 July 2008

Blogger: unofficial feed FAQ






Here's a guide to some fundamental feeds info for bloggers who use Blogger / Blogspot.com blogs or just people who read Blogger/Blogspot blogs, with some explanation for beginners in the middle, a few tips and tricks on using query parameters, and a quick reference guide at the end.

You can use this info not only in relation to your own blog, if you're a Blogger user, but also in order to view the feeds of other Blogger blogs that you read, in a way that better suits you - e.g., knowing the tricks I'll show you, you can -
  • read the last 100 posts on the Googleblog on one page, even though they're no longer in their default feed and the default feed only shows 25 posts
  • check the 10 most recently updated posts on a particular Blogger blog (as opposed to the 10 most recently published posts)
  • view, in summary or excerpts format only, all posts with a particular label from a particular Blogger blog
  • (UPDATE:) submit sitemaps of your entire Blogger blog, including all your old posts, to the search engines to make sure they index your blog comprehensively
  • ensure Feedburner always shows to your feed subscribers just your most recently published posts, not old posts you've recently updated.
Note: to view the examples quickly, just click the link in Firefox. IE isn't so reliable for viewing feeds.

I start with some exposition for beginners.

What are feeds, news feeds or newsfeeds, web feeds, RSS feeds etc?

Same difference, mostly. See my introductory tutorial guides on What are feeds (including Atom vs RSS); How to publish and publicise a feed, for bloggers; How to use Feedburner; Quick start guide to using feeds with Feedburner for the impatient; and Podcasting.

Blogger feed basics

Blogspot, custom domain, ftp. You can publish via Blogger in 2 different ways. What can be done with your Blogger feed will, for some things, depend on which method you use:
Your public feed. Your feed is only publicly accessible if (1) you've enabled the feed in your blogs settings, and (2) your blog is not a private blog (private blogs don't have public feeds). All public Blogger blogs (whether blogspot, custom domain or published via FTP) with enabled feeds will always have publicly accessible feeds stored at blogger.com.

Feed content.
Blogger users can have separate feeds for posts, comments, and per post comments (i.e. a feed containing all comments made on one particular post only). You can even have feeds for labels.

Feed length/type.
You can set your feeds to either Full, Short (summary), or None. (More on full vs. short i.e. partial/excerpts/summary feeds.) This can be done separately with the posts feed, the comments feed and also the per-post comment feeds.

The basic Blogger feed address URL formats are summarised in the Blogger Help.

Posts feed address

Whichever way you publish (blogspot, custom domain or ftp), your feed will always be accessible at:
  • Atom feed
    http://www.blogger.com/feeds/BLOGID/posts/default

  • RSS feed
    http://www.blogger.com/feeds/BLOGID/posts/default?alt=rss
- first changing BLOGID to your blog's unique ID on Blogger, of course (how to find out a Blogger blog's blog ID?).

This URL works even if the blog's feed has been burned through Feedburner.

Example - Kirk's blog feed is at http://www.blogger.com/feeds/20460175/posts/default; and this blog's feed can be found at

Note
and tip. If you publish via ftp, the above URLs are for a separate copy of your feed which is stored on Blogger's servers, not the URL for feed files stored on your own server, of course. So an FTP-published blog has an accessible feed on blogger.com (as long as it's not a private blog) as well as its own posts feed on its own domain/servers (uploaded by Blogger when publishing, as full or summary depending on the blog owner's settings).

Feed length or type. The "default" in the URL is essential (if you try just http://www.blogger.com/feeds/20460175/posts/ for instance, you'll get an error message). What's it for? The "default" simply means, show this feed in whatever version has been set as the default on that Blogger blog's feed settings - if the blog owner has set it to output a full feed, the http://www.blogger.com/feeds/20460175/posts/default URL will show the full feed; but if the owner has set it for a short feed only, "default" shows a feed with only excerpts.

So here's the first trick. If the blog owner has set their default feed as "full", but you only want to see an excerpts feed or partial feed, you can get it by tweaking the URL.

Examples

This blog is set to output a full feed by default so http://www.consumingexperience.com/feeds/posts/default gets you a full feed. To get a short feed instead, use http://www.consumingexperience.com/feeds/posts/summary.

To get my summary feed in RSS format, you'd use http://www.blogger.com/feeds/8849059/posts/summary?alt=rss (note that http://www.consumingexperience.com/feeds/posts/summary?alt=RSS doesn't work. Note that if trying these tricks using the custom domain of a Blogger blog doesn't get you anywhere, the Blogger.com version using the blog ID in the URL will always work, as should the blogspot.com version of the custom domain blog, if any.)

This tip lets you get a summary feed from a full feed, but not vice versa. If you try to get a full feed from a blog which has been set to output only a short feed, you'll only see an error message like "The feed specified by [url] is not enabled". You can cut down, but not expand beyond, what the blog owner has chosen to allow.

Posts feed address - Blogspot or custom domain alternative feed address

If your blog files are hosted on Blogspot, i.e. it's a blogspot.com or custom domain blog, your feed's web address will also always be at:
  • Atom feed
    http://BLOGNAME.blogspot.com/feeds/posts/default
    or

    http://CUSTOMDOMAIN.com/feeds/posts/default

  • RSS feed
    http://BLOGNAME.blogspot.com/feeds/posts/default?alt=rss
    or

    http://CUSTOMDOMAIN.com/feeds/posts/default?alt=rss
- again first changing BLOGNAME to your usual blog name or CUSTOMDOMAIN to your custom domain, of course
(Alternatively you can think of it as adding "/feeds/posts/default" etc after the end of your usual blog URL).

Note. Even if you use a custom domain, you're still hosting your blog files on Blogger/Blogspot behind the scenes, so the blogspot.com feed addresses will also work. If you changed to a custom domain and kept your old blogspot.com address, you can use that. (Can't remember your old blogspot.com address? In the Blogger dashboard, Settings, Publishing, click Switch to: blogspot.com to see your Blog*spot address; but do not Save Settings, just close or back out of that page!)

Note. For backward compatibility with Old Blogger, for non-FTP blogs you can also get a feed at
http://BLOGNAME.blogspot.com/atom.xml
or

http://CUSTOMDOMAIN.com/atom.xml
(or the RSS equivalent if you change "atom.xml" to "rss.xml"). However you should move to using the above URLs, going forward.

Examples

ACE's RSS feed can be found at several URLs:
http://www.consumingexperience.com/feeds/posts/default?alt=rss
http://consumingexperience.blogspot.com/feeds/posts/default?alt=rss and
http://www.blogger.com/feeds/8849059/posts/default?alt=rss

While for Kirk's default Atom feed, you can use any of these URLs:
http://www.blogger.com/feeds/20460175/posts/default
http://phydeaux3.blogspot.com/feeds/posts/default
http://phydeaux3.blogspot.com/feeds/posts/summary
(Since his feed is set to "short" in his Blogger settings, the "default" URL will go to his summary feeds, and no full feed will be available.)

Or
http://phydeaux3.blogspot.com/atom.xml
http://phydeaux3.blogspot.com/rss.xml
(available, but you should transition to the new feed URL formats.)

Comments feed address

As with posts, the blog comment feed (a feed for all comments made on all posts) for a particular Blogger blog can be set to Full, Short or None, and you can only access the comment feed of a blog if it isn't a private blog.

To work out the URL for the comments feed of a Blogger blog, it's exactly the same as for posts feeds, including the ability to get full or summary comments feed - except you just change "posts" to "comments" i.e.
http://www.blogger.com/feeds/BLOGID/comments/TYPE

and, for non-FTP blogs only, alternative additional URLs at
http://YOURBLOG.blogspot.com/feeds/comments/TYPE or
http://CUSTOMDOMAIN.com/feeds/comments/TYPE

- where of course you should first change BLOGID, YOURBLOG or CUSTOMDOMAIN to the one for the blog you want, and change TYPE to the length of feed you want to get i.e. default, summary or full.

Note: for FTP blogs, the only way to access the comments feed is through the blogger.com address - currently, no comments feed is uploaded to an FTP blog's own servers, only the posts feed is uploaded.

Examples

The summary Atom feed for all comments made on my blog can be reached via:
http://www.consumingexperience.com/feeds/comments/summary
http://consumingexperience.blogspot.com/feeds/comments/summary or
http://www.blogger.com/feeds/8849059/comments/summary

The full feed for all comments on this blog:
http://www.consumingexperience.com/feeds/comments/full
http://consumingexperience.blogspot.com/feeds/comments/full or
http://www.blogger.com/feeds/8849059/comments/full
(or changing "full" to "default" would also work as this blog outputs a full feed as default.)

And one way to get the RSS feed for all comments in summary form only:
http://www.consumingexperience.com/feeds/comments/summary?alt=rss

Per post comment feeds

Per-post comment feeds, i.e. a feed of all comments made on one particular post only, are again available only if the blog owner has turned on per-post comment feeds (I turned mine off, for instance), and it's not a private blog.

To get the URL of a per-post comment feed, use the URL as for the main comment feed, but add the ID of that post after "/feeds/" e.g.:
http://YOURBLOG.blogspot.com/feeds/POSTID/comments/TYPE

Two ways to find out the post ID:
  • as mentioned in the Blogger Help, if the blog owner is logged in to the Blogger Dashboard, in the Edit Posts view (making sure Published or All is selected if necessary), just mouseover the 'Edit' link next to a particular post, and its postId will be displayed in the browser's status bar as the number just after the "postID=" bit - or

  • if you're not the owner of a Blogger blog but want to find out a post ID, and they've enabled "Email this post to a friend" or similar (the envelope icon , usually at the end of the post - Dashboard>Settings>Basic>Show Email Post links set to Yes), just hover over that link. Again the postId will be the number after "postID=". (If there's no such link because it's not been enabled, I'm not sure how you'd find out the post ID.)
Example

To get the feed for all comments on Frivolous Fragments' post on heroic materialism (whose post ID is 3253976247961230387), I'd use one of these URLs:
http://frivolousfragments.blogspot.com/feeds/3253976247961230387/comments/default or
http://www.blogger.com/feeds/5281402533658280011/3253976247961230387/comments/default (as I can tell the blog ID from viewing source on that blog).

Label feeds

Feeds for labels are available as well (if the posts feed has been enabled on the blog and it's not a private blog).

Unlike comments and per-post comments feeds, you can't set feeds for labels separately. Labels are a subset of posts, and as such take on the same settings enabled for posts (full or short).

You access a label feed by taking the post feed URL, adding "/-" and then "/labelname". Again, with ftp blogs you can only access the label feed at the blogger.com URL.

Example

Here's 2 ways to access the feed for the label "Blogger" on Kirk's blog:
http://www.blogger.com/feeds/20460175/posts/default/-/Blogger
http://phydeaux3.blogspot.com/feeds/posts/default/-/Blogger

Or to get all posts labelled "consumer" on this blog, in summary format only (not the full post):
http://www.consumingexperience.com/feeds/posts/summary/-/consumer

Note. Label names are case sensitive (so to find all posts labelled "food" don't use "Food"), and label names should also be URL encoded for any special characters. In other words to get a feed for a label whose name includes a special character like "bits&bobs", you need to make it "bits%26bobs". So look up the % substitute or use a converter for any special characters which appear in the label name, namely: ! * ' ( ) ; : @ & = + $ , / ? % # [ ]

Multiple labels ("and" label search). You can even query for multiple labels by adding the additional label name with a slash ("AND" operation ), e.g.
http://phydeaux3.blogspot.com/feeds/posts/default/-/Blogger/Google
will return posts labeled both Blogger and Google but not posts that have only been labelled "Blogger", or only labelled "Google".

Labels do not currently support an OR operation - although the base Google Data APIs do, so it may become available on Blogger one day. (If it does it most likely will be done with a | character (URL encoded to %7C) between the label names.)

Query parameters - tips & tricks, the fun stuff!

Blogger feeds on blogspot and at blogger.com both now support a wide range of useful query parameters. Most won't be that useful to the basic blogger, but some are. And many will be useful if you like to play with your feeds.

"Query parameters" may sound like gobbledygook if you're a non-geek but bear with me until the examples at the end (just ignore the developer-y bits) and you'll see that it's quite straightforward and potentially very handy to know how to use them.

To use a query parameter, you first append a question mark (?) to the end of the feed URL you are requesting (make sure there is no slash \ immediately before the ?), and then add the appropiate query in a name=value format. You can use multiple query parameters, separating them with an ampersand (&). It doesn't really matter in what order the query parameters are added.

I'll just list all of these in a table, and I'll give some working examples at the end. The first column is the parameter name, the second is valid values with defaults and notes about their usage.

Note. Again, query paraments will only work with the blogger.com URL, for FTP blogs (whereas for custom domain or blogspot.com blogs they'll just work). Also note query parameters won't work with atom.xml or rss.xml feed URLs.

Name Value
alt
atom Will return output in ATOM 1.0 Format (wikipedia) (THIS IS THE DEFAULT)
rss Will return output in RSS 2.0 Format (wikipedia)
json Will return output as a raw JSON (wikipedia) object
json-in-script Returns JSON object in a javascript function - use the callback parameter to
specify the function name
callback
name of functionUsed with the json-in-script alt parameter to specify the name of the callback function
This parameter has no defaults
orderby
updated Returns the feed sorted by last updated status
published Returns the feed sorted by published date (THIS IS THE DEFAULT)
start-index
integer Sets the number of the first entry to be returned. The default is 1
max-results
integer Sets the maximum number of entries to be returned.
The default is 25. Most Blogger feeds currently are throttled at an upper limit of 100 though sometimes I've been able to get 500 posts in one feed
published-min published-max
Date in RFC 3339
format
These set boundaries on the results returned by published date. The lower bound is inclusive. The upper bound is exclusive. Like everything it should be URL encoded. Unencoded example 2007-05-03T23:59:59-05:00 (see RFC 3339 para 5.8 for more examples)
The same URL encoded is 2007-05-03T23%3A59%3A59-05%3A00
updated-min, updated-max
Date in
RFC 3339
format
The same as the above, only the boundaries are set by "last updated" date

Examples

To see the 10 posts in this Blogger blog which have been most recently updated (not the 10 most recently published posts), use e.g.:
http://www.consumingexperience.com/feeds/posts/default?orderby=updated
(You'll see that this is quite different from the posts I most recently published
http://www.consumingexperience.com/feeds/posts/default?orderby=published)

To view the last 30 posts from the Google Public Policy blog, even though it only has 12 posts on the main page and the default number of posts output in a Blogger feed is 25, try:
http://googlepublicpolicy.blogspot.com/feeds/posts/default?max-results=30

If I've been offline for a few months and want to see just the posts published on Kent's blog since 18 January 2008, I'd use:
http://www.blogger.com/feeds/5523094/posts/default?published-min=2008-01-18T00%3A00%3A00&orderby=published
(to view posts published between 2 dates, I'd add "&published-max=" for the upper bound).

To view a Blogger blog's feed starting at the 5th entry in the feed (i.e. not the latest post in that blog, but the 5th latest post), and return just the next 5 results, in a JSON object with a callback function named outputFeed, the URL would be
http://phydeaux3.blogspot.com/feeds/posts/default?alt=json-in-script&callback=outputFeed
&start-index=5&max-results=5

Even more information (non-geeks can ignore)

OpenSearch elements

Blogger feeds return 3 OpenSearch (Wikipedia) elements in the feed header (location varies depending on format type)
  1. openSearch:totalResults - the total number of results in the query (not necessarily the number returned in that feed)
  2. openSearch:startIndex - the index number of the first search result returned in the query
  3. openSearch:itemsPerPage -the number of entries returned from the query
Possible uses: find out the total number of posts and/or comments in a blog.

Rel links

Blogger feeds also return several link elements with rel attributes in the feed header.
  1. self - <link rel="self" type=" ..." href="..."> Link pointing to the query returned. Type and href will depend on the query requested
  2. next - <link rel="next" type="..." href="..."> Link pointing to the next set of results if the results are chunked (more results than the max-results set)
  3. previous - <link rel="previous" type="..." href="..."> Link pointing to the previous set of results from a chunked query result
Uses: can be used to paginate through a long list of results

Secret feature - post feeds are podcast enabled
The API now also supports adding enclosures to a post (a link element with the rel="enclosure" set and a valid URL with mime-type and optionally a content length set). This can only be done via the API as of now, but support in the Blogger posting interface should come at some point. In other words, unless you know how to post via the API you can't use it yet, but it's there waiting for the Blogger interface to use and feeds can start returning them attached to each post entry now.

REFERENCE GUIDE to Blogger feeds and feed URLs

Basic structure of feed URLs -

http://www.blogger.com/[POSTID/]feeds/BLOGID/CONTENT/TYPE[/-/LABELNAME1[/LABELNAME2]][?alt=&orderby=&max-results=&...]

plus alternative additional URLs for non-ftp blogs only -
http://BLOGNAME.blogspot.com/feeds/[POSTID/]CONTENT/TYPE[/-/LABELNAME1[/LABELNAME2]][?alt=&orderby=&max-results=&...] or
http://CUSTOMDOMAIN.com/feeds/[POSTID/]CONTENT/TYPE[/-/LABELNAME1[/LABELNAME2]][?alt=&orderby=&max-results=&...]

where:
CONTENT is posts or feeds
TYPE is full or summary or (is full or summary depending on how the blog owner has set it) default
POSTID is optional and only used for per-post feeds, in which case CONTENT must be comments for it to work of course
(Update: forgot to add info for label feeds before, sorry) /-/LABELNAME1 is optional, add it only when you want to get the feed for a particular label called LABELNAME1 (NB case-sensitive), in which case CONTENT must be posts for it to work. If you add /LABELNAME2 it will find only posts that have both labels

and optional parameters at the end:
alt=rss for the RSS feed (default is Atom)
orderby=updated (default is published)
max-results=number (default is 25, maximum seems to be 500)
Other query parameters are possible, as mentioned above.

Posts feed

Atom feeds
http://www.blogger.com/feeds/BLOGID/posts/TYPE

and alternative additional URLs for non-ftp blogs only -
http://BLOGNAME.blogspot.com/feeds/posts/TYPE or
http://CUSTOMDOMAIN.com/feeds/posts/TYPE or

historical only - ideally don't use -
http://CUSTOMDOMAIN.com/atom.xml or
http://BLOGNAME.blogspot.com/atom.xml

- where TYPE (which is non-optional) can be default, summary or (if full feed has been enabled by the blog owner) full. (How to find out a Blogger blog's blog ID)
RSS feeds
Just add "?alt=rss" at the end of the above URLs e.g.
http://www.blogger.com/feeds/BLOGID/posts/TYPE?alt=rss

or change "atom.xml" to "rss.xml" in the above examples e.g.
http://BLOGNAME.blogspot.com/rss.xml

Comments feed

As above, but change "posts" to "comments" (and add ?alt=rss at the end if you want an RSS feed) i.e.
http://www.blogger.com/feeds/BLOGID/comments/TYPE
and alternative additional URLs for non-ftp blogs only -
http://YOURBLOG.blogspot.com/feeds/comments/TYPE
http://CUSTOMDOMAIN.com/feeds/comments/TYPE

Per-post comment feeds

As for comments, but add "/postID" before "/comments" where postID is the ID of that particular post (and add ?alt=rss at the end if you want an RSS feed) e.g.
http://www.blogger.com/feeds/BLOGID/POSTID/comments/TYPE

Label feeds

As for posts, but add "/-/labelname" at the end - NB lTHE abel name is case-sensitive, you can't have summary posts
http://www.blogger.com/feeds/BLOGID/posts/TYPE/-/LABELNAME
and alternative additional URLs for non-ftp blogs only -
http://BLOGNAME.blogspot.com/feeds/posts/TYPE/-/LABELNAME or
http://CUSTOMDOMAIN.com/feeds/posts/TYPE/-/LABELNAME or

To find only posts that have been labelled both with X and with Y (but not posts labelled with X but not Y or vice versa):
http://www.blogger.com/feeds/BLOGID/posts/TYPE/-/X/Y
and alternative additional URLs for non-ftp blogs only -
http://BLOGNAME.blogspot.com/feeds/posts/TYPE/-/X/Y or
http://CUSTOMDOMAIN.com/feeds/posts/TYPE/-/X/Y or

(It's not possible to find posts with label X or label Y, yet)

Query parameters

The most useful parameters for most people are these (stick a ? at the end of the base URL and & in between queries):

orderby=updated (the default is published) - to show feed with most recently updated posts (not most recently published ones)
max-results=figure (up to 500 currently, the default is 25) - to get a Blogger feed with more than 25 posts e.g. if the figure is 50 it'll show 50 posts in the feed
published-min=date-time1 in RFC 3339 format e.g. 2007-05-03T23:59:59-05:00, but URL encoded e.g. 2007-05-03T23%3A59%3A59-05%3A00 (changing each colon to %3A) - for posts published after date-time1; can be combined with &published-max=date2 for posts published before (but not including) date-time2
updated-min, updated-max - similar, but for posts updated after the dates stated.

Example for the official Blogger blog Buzz, whose blog ID is 2399953 - to see the last 50 posts most-recently updated posts from Buzz, in summary form i.e. only the first few characters of each post:
http://www.blogger.com/feeds/2399953/posts/summary?orderby=updated&max-results=50

Note: doesn't work for FTP blogs unless you use the blogger.com URL. If something doesn't work with the custom domain or blogspot.com domain URL, it will work with the blogger.com one.

Resources

Blogger Help
Blogger Buzz
Blogger Data API
Google Data API in particular query requests
Blogger Data API Group
JSON Inspector

Acknowledgements

This post wouldn't have been possible without the sterling work of Kirk, on whose draft I based it. Though I've made it a whole lot longer... Thanks, as always, Kap'n Kirk!

12 comments:

mel said...

Hi there... question for you: I contribute to a private blog with multiple authors and would like to be able to subscribe to it. (So that when other blog authors post, I know it without having to check manually.)

Do you know of any way that the authors of a private Blogger blog can subsribe to the feed?

Dave Anderson said...

Wow...this has been the most resourceful blog I have come across for my FTP blogger site. I had one question however. I'm using only a few labels i.e Music, Blog, News, Images etc. I have 59 blog posts and I want to limit the number of results when you click on it.

my URL is www.daveandersononline.com/labels/blog.html if i put the max results query after it, the page loads, but doesn't limit the number of posts.

Hope you can help!

Dave

Djangofan said...

Can you post a way to view the feed as "Raw XML" instead of it being rendered with a style sheet? Is this possible?

New Kid said...

I am using feedburner for my main feed but I have an active blog for comments, more than the 25 that the feedburner allows/caps. I figured out from your tips how to increase it to the last 50, but I'm getting *just* the comments. My widget isn't picking up the url and my feed that you virtually/bloggerly (?) fixed isn't picking up names/titles of posts and dates.

Can all of this happen and exceed my 25?

I hope I'm making sense, the blog url is below and keep in mind it's under construction -again- so it's not at prime viewing.

Thank you.

milanocookieaisle

SOHO Studios said...

How would I go about creating a link like http://overberg.blogspot.com/feeds/posts/summary/-/Hermanus/Martial%20Arts for posts on my site, and not a feed. In other words, a similar link to only show posts with both "Hermanus" and "Martial Arts" labels - like it would show the posts for http://overberg.blogspot.com/search/label/Hermanus ???

Help would be much appreciated ;-)

Susan Cook said...

Hi, I bought my own domain through blogger awhile ago, but never changed my feeds url through feedburner. Do I need to change that in order for it to keep working? Up until now the old feed seems to have worked but today I noticed like 50 or more of my readers are missing. Don't know if it's because there is a problem with my feed. Thanks for any help.

Evergreen Songs said...

I have used this info and created a table of content for my blog. Check it out..

Anonymous said...

Hi! Thank you for this post. I've been searching for this since Blogger can't fully explain the details of their features.

Best Blogger Tutorials said...

I love this resource. I have included it in my roundup of best tutorials on Blogger feeds and Feedburner. Thank you

Best Tutorials About Blogger Feeds and Feedburner

Eric Kamander said...

This is a great resource!

Do you know how I can build the queries (max-results) into my template, and/or change the defaults?

Pushpinder Bagga said...

you should be given an oscar for writing this post lol

Anonymous said...

HOW CAN I SEE FULL BLOG FEED WITH MORE THAN 500 POSTS? I HAVE SEEN FIRST PAGE OF 500, HOW DO I SEE NEXT PAGE OF 500?

THANKS FOR SHOWING HOW TO SEE 500 MAX.