# googleapis/google-api-go-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/googleapis-google-api-go-client).**

4,395 stars · 1,182 forks · Go · bsd-3-clause

## Links

- GitHub: https://github.com/googleapis/google-api-go-client
- Homepage: https://pkg.go.dev/google.golang.org/api
- awesome-repositories: https://awesome-repositories.com/repository/googleapis-google-api-go-client.md

## Topics

`go`

## Description

The Google API Go Client Library is a collection of auto-generated Go packages designed to facilitate authenticated requests to Google services via HTTP and gRPC. It serves as an API request and response manager that converts API discovery documents into typed code to provide a consistent interface for interacting with various services.

The library includes a dedicated OAuth 2.0 authentication client used to manage token lifecycles, handle service account credentials, and perform authorization flows. It supports identity impersonation, allowing a security context to assume the identity of a target service account for specific API calls.

Broad capability areas include API request optimization through response pagination and field filtering, as well as asynchronous operation tracking for monitoring long-running tasks. The project also provides a communication interface for configuring connection pools, overriding service endpoints, and injecting custom transport layers.

## Tags

### Networking & Communication

- [Google API Integrations](https://awesome-repositories.com/f/networking-communication/google-api-integrations.md) — Provides auto-generated typed clients for calling Google API services with authentication and request signing. ([source](https://cdn.jsdelivr.net/gh/googleapis/google-api-go-client@main/README.md))
- [Application Default Credential Authentications](https://awesome-repositories.com/f/networking-communication/google-api-integrations/application-default-credential-authentications.md) — Uses Google Application Default Credentials or service account JSON key files to authorize API calls. ([source](https://cdn.jsdelivr.net/gh/googleapis/google-api-go-client@main/README.md))

### DevOps & Infrastructure

- [Custom API Endpoints](https://awesome-repositories.com/f/devops-infrastructure/custom-api-endpoints.md) — Allows overriding default API endpoints to connect to custom or self-hosted Google service instances. ([source](https://pkg.go.dev/google.golang.org/api/option))

### Security & Cryptography

- [Credentials Object Authentications](https://awesome-repositories.com/f/security-cryptography/authentication-clients/credential-authentication/credentials-object-authentications.md) — Passes a pre-built credentials object to authenticate all API requests. ([source](https://pkg.go.dev/google.golang.org/api/option))
- [Service Account Authenticators](https://awesome-repositories.com/f/security-cryptography/identity-access-management/authentication-strategies/machine-and-protocol-identity/api-machine-authentication/api-key-authentication/service-account-authenticators.md) — Loads a service account or refresh token JSON file to authenticate API calls. ([source](https://pkg.go.dev/google.golang.org/api/option))
- [API Key Authentications](https://awesome-repositories.com/f/security-cryptography/oauth-authentication-apis/api-key-authentications.md) — Passes a simple API key string as the credential for JSON-over-HTTP API calls. ([source](https://pkg.go.dev/google.golang.org/api/option))
- [OAuth2 Client Management](https://awesome-repositories.com/f/security-cryptography/oauth2-client-management.md) — Provides OAuth2 scope configuration to control access permissions for Google API requests. ([source](https://pkg.go.dev/google.golang.org/api/option))
- [OAuth2 Token Source Suppliers](https://awesome-repositories.com/f/security-cryptography/token-based-authentication/oauth2-access-token-issuance/oauth2-token-source-suppliers.md) — Supplies an OAuth2 token source to obtain access tokens for API requests. ([source](https://pkg.go.dev/google.golang.org/api/option))
- [Client Certificate Authentication](https://awesome-repositories.com/f/security-cryptography/client-certificate-authentication.md) — Provides a callback to obtain a TLS client certificate for mutual TLS authentication. ([source](https://pkg.go.dev/google.golang.org/api/option))
- [Account Impersonation](https://awesome-repositories.com/f/security-cryptography/user-access-management/session-impersonators/account-impersonation.md) — Impersonates a target service account using a chain of delegate accounts for authentication. ([source](https://pkg.go.dev/google.golang.org/api/option))

### Web Development

- [Long-Running Operation Polling](https://awesome-repositories.com/f/web-development/rest-apis/api-response-validation/long-running-task-endpoints/long-running-operation-polling.md) — Waits for asynchronous operations to complete by checking status with configurable backoff intervals. ([source](https://pkg.go.dev/google.golang.org/api))
- [Token-Based Pagination Clients](https://awesome-repositories.com/f/web-development/token-based-pagination-clients.md) — Walks through paginated result sets by repeating requests with next-page tokens from previous responses. ([source](https://pkg.go.dev/api/))
- [Descriptive HTTP Error Responses](https://awesome-repositories.com/f/web-development/http-error-handling/descriptive-http-error-responses.md) — Extracts HTTP status codes and structured error reasons from API responses using typed error wrappers. ([source](https://pkg.go.dev/google.golang.org/api))

### Data & Databases

- [Module Version Listers](https://awesome-repositories.com/f/data-databases/module-package-lists/module-version-listers.md) — Lists available versions of a Go module in descending order, including tagged releases and pseudo-versions. ([source](https://pkg.go.dev/api/))

### Development Tools & Productivity

- [Symbol Search Interfaces](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/artifact-distribution-systems/software-packages/package-search/symbol-search-interfaces.md) — Searches Go packages and symbols by query string, returning results sorted by relevance. ([source](https://pkg.go.dev/api/))

### Programming Languages & Runtimes

- [Exported Symbol Listers](https://awesome-repositories.com/f/programming-languages-runtimes/symbolic-identifiers/exported-symbols/symbol-package-management/exported-symbol-listers.md) — Lists exported symbols from a Go package with filtering and pagination support. ([source](https://pkg.go.dev/api/))

### Software Engineering & Architecture

- [Module Detail Retrievers](https://awesome-repositories.com/f/software-engineering-architecture/module-detail-retrievers.md) — Retrieves structured information about a Go module, including versions, licenses, and README content. ([source](https://pkg.go.dev/api/))
- [Package Detail Retrievers](https://awesome-repositories.com/f/software-engineering-architecture/package-detail-retrievers.md) — Retrieves structured information about a Go package, including documentation, imports, and license details. ([source](https://pkg.go.dev/api/))
- [Quota Project Selectors](https://awesome-repositories.com/f/software-engineering-architecture/project-configuration-management/project-quotas/quota-project-selectors.md) — Enables selection of the Google Cloud project used for quota tracking on API requests. ([source](https://pkg.go.dev/google.golang.org/api/option))
