The Changes Feed in the Documents List API

We’re announcing the availability of the Changes feed in the Documents List API. This feed makes it easier to detect resources that have changed.

Currently, clients needing to sync resources between Google Docs and other systems or device often encounter a number of issues detecting changes to resources via the API. Clients typically query for all resources modified after a given date. This date is denoted by the app:edited field of a resource entry. However, this field is not updated in all cases the client may care about, for instance if a resource is shared. In addition, querying for all resources modified after a given date does not produce entries for resources that have been deleted. This leads to very complex implementations of change detection by clients. These complex implementations usually have race conditions, and require a large volume of data to be exchanged with the API.

The Changes feed simplifies this process by providing resource entries only for changed resources. If a resource occurs in the Changes feed at all, the occurrence indicates a change to the resource. Once all changes are consumed, clients can store an identifier of the last change consumed. This identifier is called a changestamp. Future queries to the Changes feed with a changestamp will only return changes occurring after the given changestamp.

To start using the Changes feed, make an authorized HTTP GET request to the following URI:

https://docs.google.com/feeds/default/private/changes

The response from the API includes a Google Data API feed of resources that have changed:


    xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/"
    xmlns:docs="http://schemas.google.com/docs/2007" 
    xmlns:gd="http://schemas.google.com/g/2005"
    gd:etag="W/"DEEMQ3w8eyt7ImA9WhZUGUo."">
  5635
        href="...?start-index=5636"/>
  
            term="http://schemas.google.com/docs/2007#change" 
        label="change"/>
    Project tasks
    ...
    
  
  ...

Fields shown in this example response are discussed in detail in the updated developer guide.

Leave a Reply