Google Apps and its APIs open up a wide variety of new opportunities to integrate and extend Google's communication and collaboration services. Domain adminstrators can use the APIs manage their domains, as well as migrate from and integrate with existing IT infrastructure. During adoption of Google Apps, the following APIs can be leveraged to migrate data from systems currently in use and to maintain stability in business processes through deep system integration.
This service interface allows you to plug in your own identity provider to authenticate users who are trying to access Google Apps services. By implementing the interface you retain ownership and management of user credentials and avoid requiring users to remember yet another password. It's based on the SAML v2.0 Standard XML-based framework for communicating user authentication information between business entities. The single sign-on service is only available in Google Apps Premier, Education and Partner Editions.
The Reporting API allows you to monitor the overall usage and utilization of Google Apps within your domain. Using this API, you can download a variety of CSV formatted reports about activity, storage, status, and more. This API is only available in Google Apps Premier, Education and Partner Editions.
The Reporting Visualiztion API allows you to monitor the overall usage and utilization of Google Apps within your domain. Using this API, you can visualize your reporting data with a variety of visualization gadgets provided by the developer community or custom visualizations for your specific needs. This API is only available in Google Apps Premier, Education and Partner Editions.
The Provisioning API provides a mechanism to programmatically create and manage Google Apps user accounts, nicknames, and groups. Using this API you can minimize disruption to your organization's current processes by synchronizing user data between Google Apps and your existing user management system. This API is only available in Google Apps Premier, Education and Partner Editions.
The Email Migration API enables you to migrate email from any data source into Google Apps. You can write extraction code which operates against an email server data store, interface protocol, or email client data store, then, using this API, upload the email messages to a target mailbox, specifying the correct labels, date, and status. The Email Migration API supports both end user tools and administrative tools. This API is only available in Google Apps Premier, Education and Partner Editions.
The application APIs use the Google data protocol to provide a simple way for reading and writing data on the web. An increasing number of Google services provide data APIs, so application developers should become familiar with the protocol. These APIs are based on the Atom and RSS syndication formats and the Atom publishing protocol, and also includes support for authentication, querying, and version conflict detection. Client applications can use any programming language that can issue HTTP requests and parse XML-based responses. Client libraries are avaialable in a variety of popular languages.
The Shared Contacts API allows client applications to retrieve and update contacts that are shared to all users in the Apps domain.
With the Google Contacts Data API, developers can create client applications to manage a user's Gmail contacts. Developers can use the API to synchronize a user's Google contacts with contacts on a mobile device, maintain relationships between people in social applications, and give users the ability to communicate directly with their friends from external applications using phone, email, and IM.
The Google Calendar data API allows client applications to create new events, edit or delete existing events, and query for events that match particular criteria. This is the same API that is available to all Google Calendar developers so Google Apps developers can leverage and participate in that growing community. However with Google Apps a whole new set of calendar-based business applications become possible. Google Calendar's calendar sharing feature is that much more important in growing organizations with lots of group interactions and overlapping schedules. A client application has access to its user's private and accessible shared and group calendars. Application developers can interact with these calendars by creating front end applications powered by their event information or by creating applications that publish event information to them.
The Google Documents List Data API allows client applications to manage a user's Google Documents (spreadsheets, word processor, presentations) using the Google Data protocol. Your client application can query a user's list of documents, manage folders, request or update the contents of a document, and upload, edit, or delete specific documents.
The Google Spreadsheets data API allows client applications to view and update spreadsheets content. This is the same API that is available to all Google Spreadsheets developers so Google Apps developers can leverage and participate in that growing community. Spreadsheets are at the heart of an increasing number of critical business applications ranging from modeling and analysis to communication and plannng. A client application can use this API to implement spreadsheet functionality or to extend the functionality provided by Google Spreadsheets. It can also simply use a spreadsheet as a database back end or it can publish data to a spreadsheet to provide users a more expressive view.
The Email Settings API enables you to modify user-level Google Mail settings for any of the users at your domain. Using this API, you can change a user's forwarding, POP, or IMAP settings, set up an alias for them to send e-mail as, and more. This API is only available in Google Apps Premier, Education and Partner Editions.
While OAuth authentication is available to all developers wishing to access the Google Data APIs, Premier and Education Edition administrators can enable a special kind of OAuth, called 2-legged OAuth. 2-legged OAuth allows administrators to act on behalf of end-users without their involvement and without requiring an access token as per the normal authorization flow (3-legged OAuth). As an example, administrators can use this feature to upload new documents to a user's account, add events to their Google Calendar, or create a new contact in their address book, all without the end-user's involvement.
Apps developers can utilize Gmail's Atom feed to request read-only access to a user's unread messages. To obtain access, you can use AuthSub or OAuth by requesting a token with scope=https://mail.google.com/mail/feed/atom/.