Google Wave Data API

The Wave Data API allows developers to write programs that can read from and write to Wave on behalf of Wave users. The Wave Data API is built on top of an HTTP Protocol and we provide client libraries in several languages (Java, Python) to ease development.

You can use the Wave Data API to create alternative clients, like for a mobile or desktop environment, and client applications, like an Android app for uploading photos to a Wave or a Chrome extension for storing notes in wave.

Using the Client Libraries

When possible, we recommend using our official client libraries, since they already handle the tricky parts, like authenticating users and de-serializing JSON. The same client libraries are used for the Data API as the Robot API, as they share an underlying protocol.

We currently offer 2 official client libraries for use with the Wave Data API: Python, and Java. You can grab the source and view the reference from those links, or click the links in the navigation at the side.

After downloading the client libraries, browse the documentation for the Wave Data API to see how you can use them to authenticate, retrieve, and modify waves.

Using the HTTP Protocol

If you don't want to use our client libraries or you are developing in a different language, you can write your own library wrapping the HTTP protocol. We hope that you will share your code and client libraries in the forum, so that other developers can benefit from them.


The following samples can show you how to use the Wave Data APIs:


  • Splash: A lightweight servlet-based Wave client utilizing Guice, MVEL, jQuery, and Jetty. Can run on App Engine.
  • Python:

  • Inbox Checker: A simple app that displays an inbox and renders waves as HTML. Runs on App Engine.
  • microwave: A lightweight Wave client designed for iPhone/iPad devices,and lets the user create new waves and modify existing ones. Runs on App Engine.
  • Other:

  • Ripple: A pure-HTML Wave renderer, written in Perl.