Google's mission is to organize the world's information and make it universally accessible and useful. This includes making information accessible in contexts other than a web browser and accessible to services outside of Google.
The Google Data Protocol provides a secure means for external developers to write new applications that let end users access and update the data stored by many Google products. External developers can use the Google Data Protocol directly, or they can use any of the supported programming languages provided by the client libraries.
This set of documents is intended for anyone who wants to understand Google Data Protocol. Even if you just want to write code that uses the language-specific client libraries, this document set can be helpful if you want to understand what's going on beneath the client-library abstraction layer.
If you're looking for the Developer's Guide for a specific API, visit the Google Data Protocol API Directory.
If you want to access an API in your favorite programming language, visit the Client Libraries download page.
A number of Google products, such as Calendar and Spreadsheets, provide APIs that are based on the Google Data Protocol. You, the developer, can use these APIs to write client applications that give end users new ways to access and manipulate the data they store in those Google products.
Note: Google products that provide APIs are sometimes referred to as services in these and other related documents.
If you write code that uses the Google Data Protocol directly, it accesses the API using HTTP requests like GET or POST. With these requests, data stored by the Google product is transferred back and forth over the wire in the form of data feeds. The data feeds are simply structured lists that contain the data. Historically, the primary feed format has been AtomPub XML, but now JSON, or JavaScript Object Notation, is also available as an alternate format.
If you prefer not to write code that makes HTTP requests directly, you can instead program your client application using one of the programming languages available in the set of client libraries provided. When you do this, the details of the HTTP requests are handled by the client library; you write your code at a more conceptual level using the language-specific methods and classes provided by the client library.
Refer to the product-specific documentation for more information about the particular languages available for the API, or API version, you are using.
The first version of the Google Data Protocol was developed before the Atom Publishing Protocol was finalized. The second version of the Google Data Protocol is fully compliant with the AtomPub RFC 5023 standard.
The Google Data Protocol Version 2.0 also includes support for:
If the API you are using was built upon the latest version of the protocol, then the Protocol v2.0 functionality is included in its documentation. In general, we recommend that you upgrade your client application to the latest version available for your API.
If your client application uses a client library, such as the Java client library or the .NET client library, it may contain a version of the API that supports Protocol v2.0 features. To find out, refer to the API documentation for the Google product you are using to find out if both of the following are true:
If the client library supports it and you want to update your existing application, just download and use the latest version of the client library. All of your code still works, and the client library takes care of the Protocol v2.0 changes under the hood.
If you wrote your client application using the Google Data Protocol directly, you need to make these changes:
GData-Version: X.0) to every HTTP request you send, where X is the version of the API that supports Google Data Protocol v2.0 features. Alternatively, add a query parameter (v=X.0) to the URL of every request, where X is, again, the correct version of the API. If you do not specify a later version, your requests are sent to the earliest supported version of the API by default.app) has been changed from http://purl.org/atom/app to http://www.w3.org/2007/app.openSearch) has been changed from http://a9.com/-/spec/opensearchrss/1.0/ to http://a9.com/-/spec/opensearch/1.1/.