Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

BazQux Reader API Documentation

branch: master

BazQux Reader API

It's a copy of Google Reader API.

The only thing you need to support BazQux Reader is to change endpoint URLs from to in your code.

To set login/password you need to sign into BazQux Reader and go to the Options (top-right corner) => Mobile login.

API implementation is tested and works with Mr.Reader, Feeddler, JustReader and Vienna RSS. So there is a high probability it will work with your App without any hassle.

Main API endpoints

Getting lists of all/unread items/ids in json/atom formats, marking items read/unread, starring, tagging, adding/removing/renaming of subscriptions, folders and tags, custom subscriptions ordering -- everything is supported.

NB: Starred items, tagging and custom subscriptions ordering are not yet available in BazQux Reader web interface but already available through API.


BazQux Reader does not automatically mark items as read after 30 days. So please don't add ot=CurrentTime-30days when you get unread items (s=user/-/state/ You may miss some unread items this way.


> curl -d Email=foo -d Passwd=bar

> curl -d Email=realuser -d Passwd=***

Where cltoken is a client login token that you must pass to all other API calls in Authorization header in form GoogleLogin auth=cltoken.

You can test most API calls right in your browser when you signed in BazQux Reader.


> curl

> curl -H "Authorization: GoogleLogin auth=cltoken"


It's not used currently but may be used later the same way Google Reader uses it (expires in 30 minutes, with "x-reader-google-bad-token: true" header set).

> curl -H "Authorization: GoogleLogin auth=cltoken"

Directory search

> curl -H "Authorization: GoogleLogin auth=cltoken"
Search is not yet supported

User info

> curl -H "Authorization: GoogleLogin auth=cltoken"

BazQux Reader uses dummy 01234567890123456789 user id for all users and accept any user in Google Reader labels or states user/Abracadabra/label/MyFolder = user/01234567890123456789/label/MyFolder = user/-/label/MyFolder.

Preferences list (?output=json)

The only preference is alphabetical sorting of subscriptions (custom ordering is not yet available on website).

Friend list (?output=json)

Empty list for compatibility.

Stream preferences list (?output=json)

Contains information about sorting (alphabetical) and expanded/collapsed state of folders. sortId is just a number of a feed or folder for current user. The same number is also first half of ItemId so beware that ItemIds are not unique between users while unique for single user.

Set stream preferences

You may only set k=subscription-ordering&s=...&v=.... Other parameters are ignored.

Tag list (?output=json)

Only contains list of folders, tags and some google specific feeds.

Subscriptions list (?output=json)

Always contain htmlUrl not depending on favicons setting. firstitemmsec is always dummy 1234567890000 (it seems that no one use it).

Subscriptions OPML

Adding subscription (?output=xml)

BazQux Reader currently doesn't differ GET/POST and query string or form parameters. But you must use POST and append T=token to be future proof (and to be compatible with Google Reader API).

Editing subscription




You can put one subscription in many folders.

Unread count (?output=json)

Item ids (?output=json)




s=user/-/state/ - empty results

s=user/-/state/ - empty results

s=user/-/label/... for folders or tags


r=o for oldest first ranking.

xt=... - everything possible in s=.

it=... - only messages with specific tags (starred items in feed). NB: It's an extension to GR API

ck=... is ignored.

ot=... - please don't add it when you get unread items list.


c=... continuation from previous request (it's just an ItemId and hence never expire).

n=50000 maximum, 20 default.

Note that item ids are unique for one user but can overlap between users. Please use separate database for each account.

Fetching individual items (?output=atom)

No more than 1000 items at once.

Fetching streams (?output=atom) (= /stream/contents?output=atom)

The same options as in stream/items/ids are supported. When no subscription given defaults to reading-list.

n=1000 maximum.

Tagging items

user/-/state/ for marking read/unread, user/-/state/ for starring and s=user/-/label/... for tagging.

No more than 10000 items to tag at once.

Folder/tag renaming

Folder/tag removing

Feeds are not removed, only folder tag is (like in Google Reader).

Subscriptions import

NB: This method is an extension to GR API.

Post OPML data here. It will return percent of feeds currently processed (integer number in plain text).

You can then poll (each 3 seconds for example)

till it return "100".

Something went wrong with that request. Please try again.