The Yammer API is a RESTful interface to the features provided by the Yammer web interface.
OAuth is used for all user authorization and application identification, the first step in gaining access to the API is registering your application and going through the OAuth process.
See also: http://en.wikipedia.org/wiki/REST
See also: http://oauth.net/
All resources support JSON (Recommended) and XML. The documentation allows you to shift from JSON to XML where relevant.
All timestamps are formatted according to RFC3339.
Rate Limits
All API calls are subject to rate limiting. Exceeding any rate limits will result in all resources returning a status code of 403 (Forbidden). Our specific rate limits are subject to change, but following these guidelines will ensure that your application will not exceed our limits.
Message Resources
When polling for messages, do not exceed one poll per minute. Clients polling excessively will be blocked. However, you may sometimes need to fetch messages more frequently than once per minute, for example, if a user flips between "following", "sent" and "received" feeds quickly), and this is allowed for a few requests. Do not attempt to decrease message latency in your client by checking for new messages more frequently than once per minute.
Autocomplete
The autocomplete resources allow more frequent polling than other resources, as they are meant to enable realtime responses for the user as she types. See the notes in the autocomplete section below for suggestions on how to use this feature of the API.
Other Resources
The rate limits for all other resources are tuned to virtually guarantee that a normally-functioning client serving even a heavy Yammer user will not run into rate limit problems.
Administrative API Functions
In order to perform administrative API functions, such as creating and deleting users, your API account must be a Verified Admin of your network. Please see the Yammer admin page for more information.
Changes and Versioning
Developers should expect that new elements could be added to the XML document or the JSON data structure. If any data structures are removed or rearranged, we will release a new version of the API.
All API urls begin with /api/v1. The version of the API being used is indicated in the URLs of resources. We may add additional functionality to the current version of the API but we will not make reverse incompatible changes to it.
Developers should anticipate the ordering of items within the data structures changing and code appropriately. Expect, for example, that the order of the foo and bar items in the excerpts below might be swapped:
<things>
<foo>Foo!</foo>
<bar>Bar!</bar>
</things>
{"things": {"foo": "Foo!", "bar": "Bar!"}}