July 19, 2008

Throttled By the Twitter API? Try Something New.

Guest Post By Rob Diana of Regular Geek (Twitter/FriendFeed)

Well, the microblogging API space sure got interesting in a hurry.

First, on Thursday, Louis Gray reported that Twitter was throttling unauthenticated API requests. This obviously would effect several applications in a very bad way. Later in the day, Dave Winer let everyone know that Identi.ca has implemented the Twitter API. And on Friday, in a surprising move, TechCrunch announced that Twitter is sending the XMPP firehose to new middle man Gnip.

So, what does this mean to you? Well, that is a good question. First, we know what the Twitter API looks like. Identi.ca replicating the API is good for interoperability as well. Yes, they copied the main Twitter API, but have yet to include the searching capabilities that Summize supplies. However, they do have RSS feeds for any search query which does suffice for basic searching. The other big players in the microblogging space, Jaiku and Pownce, also have APIs. But, what do they have to offer?

Jaiku's API contains the usual suspects, the public feed, a user's feed and a user's profile. It also allows for "presence" updates which is helpful for allowing applications like Ping.fm to post to multiple services. It also provides a method to get a user's current "presence", their last item in the "presence" stream and as well as a specific item in the "presence" stream.

Pownce's API is similar as well. There is a public "note" list, a user's note list (which can be filtered for replies, private messages and other coolness) and a user's profile. You can also retrieve a specific note, with replies included optionally, and the list of recipients for the note. For social graph fans, you can get the friends (mutual relationship) of a user, fans of the user and who the user is a fan of. For posting notes, there is the normal post method as well as separate post link, event, file and reply methods.

Interestingly, there is a method to determine the list of users a post can go to. There are some other minor goodies like feeds for the public list and a user as well as simple web post integration. Obviously, this is an API designed with developers in mind. They thought of several different ways to use the application and provided APIs accordingly. The only problem that I could see is that there is no search supported. Hopefully a third party service like Gnip will fill that void, like Summize did for Twitter.

Now that looks like a good foundation, but there are some fundamental problems. It is not obvious that Pownce and Jaiku support something like an XMPP feed, so, there may not be the ability to have the full public stream at all times. This type of thing is critical for interoperability. There is also inconsistent support for threaded messages and other post types (like the Pownce event and file posts). Why haven't we seen a real multi-microblog client? Ping.fm is doing multi-writes, but does not support multi-reads. In the instant messaging world, where the XMPP standard comes from, we do have multi-chat clients and few actually support XMPP! We are starting to see some standardization in this space as well with Identi.ca copying the Twitter API as well. If we consider the Twitter API a defacto standard and we have the XMPP standard for real time transfer, there should be little stopping developers from creating the ultimate micro-blogging client.

Now, the question is, are you willing to wait or do you want to crown someone king?