Official: Facebook Opens Stream API

Today Facebook will officially announce the opening of their stream API. According to the soon to be published blog post, “In addition to the Activity Streams interface, the Open Stream API includes robust new APIs called stream.get and stream.publish and new FQL tables that enable you to directly access the stream.” The new services leverage the emerging Activity Streams standard.

The post continues, “With these new methods, you can access the stream on behalf of a user and then filter, remix, and display the stream back to that user however you choose, wherever you choose, in the manner most relevant for the user experience. Other new API methods will allow users to both publish into the stream and to add comments and ‘likes’ to posts in the stream.”

There is now live documentation of Stream.get and Stream.publish, the two methods that have been enabled for developers. The Stream.publish is similar to the existing feed publishing capabilities provided to Facebook developers except that developers are not required to develop templates prior to publishing stories.

Developers can also choose to include media within attachments including: images, flash, mp3s, and videos. I’d expect to start seeing streaming video published to the feeds through services like and Qik in the coming weeks. For the most part this is a fairly basic announcement but what I’d hope to see is the opening of public profile data through these new API methods.

Want to track all of the articles published on Oprah’s public profile? Simply call the Stream.get method and you will be able to view all “publicly viewable information”. Unfortunately such functionality is not currently available. So how does this compare to what we wrote about last night? In some ways it means Facebook has opened up shared items but developers can’t access is users’ data unless they add your application and explicitly grant you “read_stream” permissions.

We spoke with Ruchi Sanghvi and Dave Morin from Facebook who told us that “With the public stream API call, you can add comments and likes.” Additionally, “If you’ve published a story from an application, you can also remove the story from the application.” If you are to describe this release from a competition standpoint, this is more of a move against FriendFeed than against Twitter.

On Twitter you can currently access the vast majority of updates published by users whereas on Facebook you can’t. Instead you need to ask each user individually for permission which is restrictive in some regards yet an improvement in terms of the type of access developers have to the feed.

There are six new API methods for the new streams API: stream.publish, stream.addComment, steam.addLike, stream.remove, stream.removeLike, and stream.removeComment. Developers will most definitely cheer one of the new components of Stream.publish: “If the user previously granted your application the permission to publish short stories into the News Feed automatically, then you don’t need to prompt for this permission in order to call this method.”

That means we could soon see users’ feeds cluttered with application spam as the users are less aware of what “publish_stream” permissions mean. This is a pretty big deal for developers who previously had many other restrictions in place. It will be interesting to see what types of stories applications begin to publish.