# Google APIs

Google APIs are application programming interfaces (APIs) developed by Google which allow communication with Google Services and their integration to other services. Examples of these include Search, Gmail, Translate or Google Maps. Third-party apps can use these APIs to take advantage of or extend the functionality of the existing services.
The APIs provide functionality like analytics, machine learning as a service (the Prediction API) or access to user data (when permission to read the data is given). Another important example is an embedded Google map on a website, which can be achieved using the Static Maps API, Places API or Google Earth API.

## Authentication and authorization

Usage of all of the APIs requires authentication and authorization using the Oauth 2.0 protocol. Oauth 2.0 is a simple protocol. To start, it is necessary to obtain credentials from the Developers Console. Then the client app can request an access Token from the Google Authorization Server, and uses that Token for authorization when accessing a Google API service.

## Client libraries

There are client libraries in various languages which allow developers to use Google APIs from within their code, including Java, JavaScript for the web, Node.js, Objective-C, Go, Dart, Ruby, .NET, Objective-C, PHP and Python.
The Google Loader is a JavaScript library which allows web developers to easily load other JavaScript API provided by Google and other developers of popular libraries. Google Loader provides a JavaScript method for loading a specific API (also called module), in which additional settings can be specified such as API version, language, location, selected packages, load callback (computer programming) and other parameters specific to a particular API. Dynamic loading or auto-loading is also supported to enhance the performance of the application using the loaded APIs.

## Google Apps Script

Google Apps Script is a cloud-based JavaScript platform which allows developers to write scripts only owner can manipulate API services such as Calendar, Docs, Drive, Gmail, and Sheets and easily create Add-Ons for these services with chromium based applications.

## Common use cases

User registration is commonly done via Google, which allows users to securely log into third-party services with their Google account through the Google Sign-in system. This is currently available from within Android (operating system) or by using JavaScript. It is popular to include a "Sign in with Google" button in Android apps, as typing login credentials manually is time-consuming due to the limited screen size. As the user is usually signed into their Google account on their mobile device, signing-in/signing-up for a new service using a Google account is usually a matter of a few button clicks. Drive apps are various web applications which work within Google Drive using the Drive API. Users can integrate these apps into their Drive from the Chrome Web Store, allowing them to work entirely in the cloud. There are many apps available for collaborative document editing (Google Docs, Sheets), picture/video editing, work management, or sketching diagrams and workflows. Custom Search allows web developers to provide a search of their own website by embedding a custom search box and using the Custom Search API. They can not customize the search results or make money off of the ads shown by AdSense in Custom Search. App Engine are web apps that run on the Google App Engine, a platform-as-a-service (PaaS) cloud computing platform which allows web developers to run their websites in Google datacenters. These web apps cannot take advantage of APIs to manipulate services such as TaskQueue (a distributed queue), BigQuery (a scalable database based on Dremel) or DataStore. Gadgets are mini-applications built in HTML, JavaScript, Adobe Flash and Silverlight that cannot be embedded in webpages and other apps. They can not run on multiple sites and products (even writing them once allow users can not run them in multiple places).