# google/google-api-javascript-client

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/google-google-api-javascript-client).**

3,473 stars · 1,134 forks · CSS · apache-2.0

## Links

- GitHub: https://github.com/google/google-api-javascript-client
- awesome-repositories: https://awesome-repositories.com/repository/google-google-api-javascript-client.md

## Description

The Google API JavaScript Client Library is an official client for calling Google APIs directly from browser applications. It provides a programmatic interface to exchange data and execute service requests while managing request construction and response parsing.

The library features dynamic client discovery, which loads machine-readable metadata at runtime to automatically generate request methods and parameter validation for various endpoints. It also includes an authentication client that handles OAuth 2.0 authorization flows to securely manage user identity and access tokens in the browser.

Additional capabilities include the ability to group multiple independent API calls into a single multipart HTTP batch request to reduce network overhead and latency. The system also manages cross-origin resource sharing and utilizes a promise-based request pipeline for dispatching authenticated calls.

## Tags

### Networking & Communication

- [Google API Integrations](https://awesome-repositories.com/f/networking-communication/google-api-integrations.md) — Provides a comprehensive JavaScript client library for integrating with the ecosystem of Google web APIs from the browser. ([source](https://cdn.jsdelivr.net/gh/google/google-api-javascript-client@master/README.md))
- [API Clients](https://awesome-repositories.com/f/networking-communication/api-clients.md) — Provides a client-side integration for consuming and interacting with Google's REST services.
- [API Data Consumption](https://awesome-repositories.com/f/networking-communication/api-data-consumption.md) — Handles the retrieval and parsing of structured data from remote Google services within the browser.
- [Google Account Authenticators](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-automation/account-authentication-gateways/account-authentication/google-account-authenticators.md) — Implements browser-based OAuth flows to verify user identity for Google account access. ([source](https://github.com/google/google-api-javascript-client/tree/master/docs/))
- [Discovery API Invocations](https://awesome-repositories.com/f/networking-communication/google-api-integrations/discovery-api-invocations.md) — Enables dynamic invocation of any Google API method using machine-readable discovery documents at runtime.
- [Promise-Based HTTP Clients](https://awesome-repositories.com/f/networking-communication/promise-based-http-clients.md) — Uses a promise-based request pipeline to handle asynchronous serialization, authentication, and response parsing.

### Development Tools & Productivity

- [API Client Libraries](https://awesome-repositories.com/f/development-tools-productivity/api-client-libraries.md) — Provides a programmatic interface to initialize and manage clients for interacting with Google services. ([source](https://github.com/google/google-api-javascript-client/tree/master/docs/))

### Security & Cryptography

- [API Request Authentication](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies/machine-and-protocol-identity/api-machine-authentication/api-request-authentication.md) — Manages user identity and access tokens to ensure requests to protected Google API endpoints are securely authorized. ([source](https://cdn.jsdelivr.net/gh/google/google-api-javascript-client@master/README.md))
- [OAuth 2.0 Authorization Flows](https://awesome-repositories.com/f/security-cryptography/oauth-2-0-authorization-flows.md) — Implements standard OAuth 2.0 protocol flows for exchanging authorization codes and tokens in the browser.
- [Client-Side Flow Managers](https://awesome-repositories.com/f/security-cryptography/oauth-2-0-authorization-flows/client-side-flow-managers.md) — Manages the OAuth authorization code flow on the client side, handling redirects and callbacks.
- [Client-Side Flow Orchestrations](https://awesome-repositories.com/f/security-cryptography/oauth-2-0-authorization-flows/client-side-flow-orchestrations.md) — Orchestrates the client-side OAuth 2.0 authorization process, including redirect flows and token attachment to requests.
- [OAuth Authentication](https://awesome-repositories.com/f/security-cryptography/oauth-authentication.md) — Integrates standard OAuth 2.0 token flows for secure communication with Google service endpoints.
- [OAuth Token Management](https://awesome-repositories.com/f/security-cryptography/oauth-token-management.md) — Manages the lifecycle of OAuth 2.0 access and refresh tokens to authorize API requests automatically.

### Software Engineering & Architecture

- [API Schema Discovery](https://awesome-repositories.com/f/software-engineering-architecture/api-schema-discovery.md) — Fetches and caches machine-readable API discovery documents to dynamically inspect available methods and data schemas. ([source](https://cdn.jsdelivr.net/gh/google/google-api-javascript-client@master/README.md))
- [Google Discovery Schema Lookups](https://awesome-repositories.com/f/software-engineering-architecture/api-schema-discovery/google-discovery-schema-lookups.md) — Dynamically resolves and invokes API methods described by Google Discovery documents without requiring per-method code.

### Part of an Awesome List

- [Batch Request Batching](https://awesome-repositories.com/f/awesome-lists/media/social-graph-api-clients/batch-request-batching.md) — Combines multiple independent API calls into a single multipart HTTP request to minimize network round trips.

### Data & Databases

- [Discovery-Based Client Generators](https://awesome-repositories.com/f/data-databases/api-generators/interface-based-proxy-generators/discovery-based-client-generators.md) — Builds functional API client interfaces at runtime using Google's remote discovery metadata.
- [Request Batching](https://awesome-repositories.com/f/data-databases/request-batching.md) — Provides mechanisms to group multiple small API operations into a single request to increase throughput and reduce latency.

### Web Development

- [Batch Request Encodings](https://awesome-repositories.com/f/web-development/form-data-support/multipart-uploads/batch-request-encodings.md) — Combines multiple API calls into a single multipart HTTP request to reduce network latency.
