The Google Books API allows clients to access the Google Books repository.
Bring your own key. This API needs your own Google Books API key - get one from the provider, add it once below, and the proxy injects it on every call. Your OmniStream plan covers the unified SDK, key storage, and proxy - the provider's own rate limits still apply to your key.
This is a community listing. If you own this API, you can request ownership.
npm install omnistream-sdkimport { OmniClient } from "omnistream-sdk";
const omni = new OmniClient({ token: process.env.OMNI_KEY! });
// One key reaches every API on the marketplace.
const data = await omni.call("google-books/books.cloudloading.addBook");One install, one key - the same client calls every API on the marketplace.
V1 error format.
OAuth access token.
Data format for response.
JSONP
Selector specifying which fields to include in a partial response.
API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
OAuth 2.0 token for the current user.
Returns response with indentations and line breaks.
Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
Upload protocol for media (e.g. "raw", "multipart").
Legacy upload protocol for media (e.g. "media", "multipart").
A drive document id. The upload_client_token must not be set.
The document MIME type. It can be set only if the drive_document_id is set.
The document name. It can be set only if the drive_document_id is set.
Scotty upload token.
Add a user-upload volume and triggers processing.
Remove the book and its contents
Updates a user-upload volume.
/**
* GoogleBooksAPI - generated by OmniStream from Google Books API's OpenAPI spec.
* One typed method per endpoint. A single Omni key reaches the API.
*/
const DEFAULT_BASE = "https://grid.skinvaults.online/v1/proxy/google-books";
export class GoogleBooksAPIError extends Error {
status: number;
code?: string;
constructor(status: number, code: string | undefined, message?: string) {
super(message || `GoogleBooksAPI error ${status}`);
this.name = "GoogleBooksAPIError";
this.status = status;
this.code = code;
}
}
export interface GoogleBooksAPIOptions {
baseUrl?: string;
fetch?: typeof fetch;
timeoutMs?: number;
}
export class GoogleBooksAPI {
/** @param token Your OmniStream key (one key for every API). */
constructor(private token: string, private opts: GoogleBooksAPIOptions = {}) {
if (!token) throw new Error("GoogleBooksAPI: token is required");
}
rateLimit: { remainingMinute?: number; remainingDay?: number } | null = null;
private async _request(method: string, path: string, { params, body }: { params?: Record<string, unknown>; body?: unknown } = {}): Promise<any> {
const f = this.opts.fetch ?? globalThis.fetch;
const url = new URL((this.opts.baseUrl ?? DEFAULT_BASE).replace(/\/+$/, "") + path);
if (params) for (const [k, v] of Object.entries(params)) if (v != null) url.searchParams.set(k, String(v));
const headers: Record<string, string> = { "x-omni-key": this.token };
if (body !== undefined) headers["content-type"] = "application/json";
const res = await f(url, { method, headers, body: body !== undefined ? JSON.stringify(body) : undefined });
this.rateLimit = {
remainingMinute: Number(res.headers.get("x-ratelimit-remaining-minute")) || undefined,
remainingDay: Number(res.headers.get("x-ratelimit-remaining-day")) || undefined,
};
const data = await res.json().catch(() => ({}));
if (!res.ok) throw new GoogleBooksAPIError(res.status, data?.error?.code, data?.error?.message);
return data.data ?? data;
}
/** Add a user-upload volume and triggers processing. */
booksCloudloadingAddBook(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "drive_document_id"?: string; "mime_type"?: string; "name"?: string; "upload_client_token"?: string }): Promise<any> {
return this._request("POST", "/books/v1/cloudloading/addBook", { params });
}
/** Remove the book and its contents */
booksCloudloadingDeleteBook(params: { "volumeId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/books/v1/cloudloading/deleteBook", { params });
}
/** Updates a user-upload volume. */
booksCloudloadingUpdateBook(body: unknown, params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/books/v1/cloudloading/updateBook", { body, params });
}
/** Returns a list of offline dictionary metadata available */
booksDictionaryListOfflineMetadata(params: { "cpksver": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("GET", "/books/v1/dictionary/listOfflineMetadata", { params });
}
/** Gets information regarding the family that the user is part of. */
booksFamilysharingGetFamilyInfo(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/familysharing/getFamilyInfo", { params });
}
/** Initiates sharing of the content with the user's family. Empty response indicates success. */
booksFamilysharingShare(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "docId"?: string; "source"?: string; "volumeId"?: string }): Promise<any> {
return this._request("POST", "/books/v1/familysharing/share", { params });
}
/** Initiates revoking content that has already been shared with the user's family. Empty response indicates success. */
booksFamilysharingUnshare(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "docId"?: string; "source"?: string; "volumeId"?: string }): Promise<any> {
return this._request("POST", "/books/v1/familysharing/unshare", { params });
}
/** Gets the current settings for the user. */
booksMyconfigGetUserSettings(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "country"?: string }): Promise<any> {
return this._request("GET", "/books/v1/myconfig/getUserSettings", { params });
}
/** Release downloaded content access restriction. */
booksMyconfigReleaseDownloadAccess(params: { "cpksver": string; "volumeIds": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "locale"?: string; "source"?: string }): Promise<any> {
return this._request("POST", "/books/v1/myconfig/releaseDownloadAccess", { params });
}
/** Request concurrent and download access restrictions. */
booksMyconfigRequestAccess(params: { "cpksver": string; "nonce": string; "source": string; "volumeId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "licenseTypes"?: string; "locale"?: string }): Promise<any> {
return this._request("POST", "/books/v1/myconfig/requestAccess", { params });
}
/** Request downloaded content access for specified volumes on the My eBooks shelf. */
booksMyconfigSyncVolumeLicenses(params: { "cpksver": string; "nonce": string; "source": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "features"?: unknown[]; "includeNonComicsSeries"?: boolean; "locale"?: string; "showPreorders"?: boolean; "volumeIds"?: unknown[] }): Promise<any> {
return this._request("POST", "/books/v1/myconfig/syncVolumeLicenses", { params });
}
/** Sets the settings for the user. If a sub-object is specified, it will overwrite the existing sub-object stored in the server. Unspecified sub-objects will retain the existing value. */
booksMyconfigUpdateUserSettings(body: unknown, params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/books/v1/myconfig/updateUserSettings", { body, params });
}
/** Retrieves a list of annotations, possibly filtered. */
booksMylibraryAnnotationsList(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "contentVersion"?: string; "layerId"?: string; "layerIds"?: unknown[]; "maxResults"?: number; "pageToken"?: string; "showDeleted"?: boolean; "source"?: string; "updatedMax"?: string; "updatedMin"?: string; "volumeId"?: string }): Promise<any> {
return this._request("GET", "/books/v1/mylibrary/annotations", { params });
}
/** Inserts a new annotation. */
booksMylibraryAnnotationsInsert(body: unknown, params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "annotationId"?: string; "country"?: string; "showOnlySummaryInResponse"?: boolean; "source"?: string }): Promise<any> {
return this._request("POST", "/books/v1/mylibrary/annotations", { body, params });
}
/** Gets the summary of specified layers. */
booksMylibraryAnnotationsSummary(params: { "layerIds": unknown[]; "volumeId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("POST", "/books/v1/mylibrary/annotations/summary", { params });
}
/** Updates an existing annotation. */
booksMylibraryAnnotationsUpdate(body: unknown, params: { "annotationId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "source"?: string }): Promise<any> {
return this._request("PUT", "/books/v1/mylibrary/annotations/{annotationId}", { body, params });
}
/** Deletes an annotation. */
booksMylibraryAnnotationsDelete(params: { "annotationId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "source"?: string }): Promise<any> {
return this._request("DELETE", "/books/v1/mylibrary/annotations/{annotationId}", { params });
}
/** Retrieves a list of bookshelves belonging to the authenticated user. */
booksMylibraryBookshelvesList(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/mylibrary/bookshelves", { params });
}
/** Retrieves metadata for a specific bookshelf belonging to the authenticated user. */
booksMylibraryBookshelvesGet(params: { "shelf": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/mylibrary/bookshelves/{shelf}", { params });
}
/** Adds a volume to a bookshelf. */
booksMylibraryBookshelvesAddVolume(params: { "shelf": string; "volumeId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "reason"?: string; "source"?: string }): Promise<any> {
return this._request("POST", "/books/v1/mylibrary/bookshelves/{shelf}/addVolume", { params });
}
/** Clears all volumes from a bookshelf. */
booksMylibraryBookshelvesClearVolumes(params: { "shelf": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "source"?: string }): Promise<any> {
return this._request("POST", "/books/v1/mylibrary/bookshelves/{shelf}/clearVolumes", { params });
}
/** Moves a volume within a bookshelf. */
booksMylibraryBookshelvesMoveVolume(params: { "shelf": string; "volumeId": string; "volumePosition": number; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "source"?: string }): Promise<any> {
return this._request("POST", "/books/v1/mylibrary/bookshelves/{shelf}/moveVolume", { params });
}
/** Removes a volume from a bookshelf. */
booksMylibraryBookshelvesRemoveVolume(params: { "shelf": string; "volumeId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "reason"?: string; "source"?: string }): Promise<any> {
return this._request("POST", "/books/v1/mylibrary/bookshelves/{shelf}/removeVolume", { params });
}
/** Gets volume information for volumes on a bookshelf. */
booksMylibraryBookshelvesVolumesList(params: { "shelf": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "country"?: string; "maxResults"?: number; "projection"?: string; "q"?: string; "showPreorders"?: boolean; "source"?: string; "startIndex"?: number }): Promise<any> {
return this._request("GET", "/books/v1/mylibrary/bookshelves/{shelf}/volumes", { params });
}
/** Retrieves my reading position information for a volume. */
booksMylibraryReadingpositionsGet(params: { "volumeId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "contentVersion"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/mylibrary/readingpositions/{volumeId}", { params });
}
/** Sets my reading position information for a volume. */
booksMylibraryReadingpositionsSetPosition(params: { "volumeId": string; "position": string; "timestamp": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "action"?: string; "contentVersion"?: string; "deviceCookie"?: string; "source"?: string }): Promise<any> {
return this._request("POST", "/books/v1/mylibrary/readingpositions/{volumeId}/setPosition", { params });
}
/** Returns notification details for a given notification id. */
booksNotificationGet(params: { "notification_id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "locale"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/notification/get", { params });
}
/** List categories for onboarding experience. */
booksOnboardingListCategories(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "locale"?: string }): Promise<any> {
return this._request("GET", "/books/v1/onboarding/listCategories", { params });
}
/** List available volumes under categories for onboarding experience. */
booksOnboardingListCategoryVolumes(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "categoryId"?: unknown[]; "locale"?: string; "maxAllowedMaturityRating"?: string; "pageSize"?: number; "pageToken"?: string }): Promise<any> {
return this._request("GET", "/books/v1/onboarding/listCategoryVolumes", { params });
}
/** Returns a stream of personalized book clusters */
booksPersonalizedstreamGet(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "locale"?: string; "maxAllowedMaturityRating"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/personalizedstream/get", { params });
}
/** Accepts the promo offer. */
booksPromoofferAccept(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "androidId"?: string; "device"?: string; "manufacturer"?: string; "model"?: string; "offerId"?: string; "product"?: string; "serial"?: string; "volumeId"?: string }): Promise<any> {
return this._request("POST", "/books/v1/promooffer/accept", { params });
}
/** Marks the promo offer as dismissed. */
booksPromoofferDismiss(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "androidId"?: string; "device"?: string; "manufacturer"?: string; "model"?: string; "offerId"?: string; "product"?: string; "serial"?: string }): Promise<any> {
return this._request("POST", "/books/v1/promooffer/dismiss", { params });
}
/** Returns a list of promo offers available to the user */
booksPromoofferGet(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "androidId"?: string; "device"?: string; "manufacturer"?: string; "model"?: string; "product"?: string; "serial"?: string }): Promise<any> {
return this._request("GET", "/books/v1/promooffer/get", { params });
}
/** Returns Series metadata for the given series ids. */
booksSeriesGet(params: { "series_id": unknown[]; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string }): Promise<any> {
return this._request("GET", "/books/v1/series/get", { params });
}
/** Returns Series membership data given the series id. */
booksSeriesMembershipGet(params: { "series_id": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "page_size"?: number; "page_token"?: string }): Promise<any> {
return this._request("GET", "/books/v1/series/membership/get", { params });
}
/** Retrieves a list of public bookshelves for the specified user. */
booksBookshelvesList(params: { "userId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/users/{userId}/bookshelves", { params });
}
/** Retrieves metadata for a specific bookshelf for the specified user. */
booksBookshelvesGet(params: { "userId": string; "shelf": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/users/{userId}/bookshelves/{shelf}", { params });
}
/** Retrieves volumes in a specific bookshelf for the specified user. */
booksBookshelvesVolumesList(params: { "userId": string; "shelf": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "maxResults"?: number; "showPreorders"?: boolean; "source"?: string; "startIndex"?: number }): Promise<any> {
return this._request("GET", "/books/v1/users/{userId}/bookshelves/{shelf}/volumes", { params });
}
/** Performs a book search. */
booksVolumesList(params: { "q": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "download"?: string; "filter"?: string; "langRestrict"?: string; "libraryRestrict"?: string; "maxAllowedMaturityRating"?: string; "maxResults"?: number; "orderBy"?: string; "partner"?: string; "printType"?: string; "projection"?: string; "showPreorders"?: boolean; "source"?: string; "startIndex"?: number }): Promise<any> {
return this._request("GET", "/books/v1/volumes", { params });
}
/** Return a list of books in My Library. */
booksVolumesMybooksList(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "acquireMethod"?: unknown[]; "country"?: string; "locale"?: string; "maxResults"?: number; "processingState"?: unknown[]; "source"?: string; "startIndex"?: number }): Promise<any> {
return this._request("GET", "/books/v1/volumes/mybooks", { params });
}
/** Return a list of recommended books for the current user. */
booksVolumesRecommendedList(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "locale"?: string; "maxAllowedMaturityRating"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/volumes/recommended", { params });
}
/** Rate a recommended book for the current user. */
booksVolumesRecommendedRate(params: { "rating": string; "volumeId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "locale"?: string; "source"?: string }): Promise<any> {
return this._request("POST", "/books/v1/volumes/recommended/rate", { params });
}
/** Return a list of books uploaded by the current user. */
booksVolumesUseruploadedList(params: { "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "locale"?: string; "maxResults"?: number; "processingState"?: unknown[]; "source"?: string; "startIndex"?: number; "volumeId"?: unknown[] }): Promise<any> {
return this._request("GET", "/books/v1/volumes/useruploaded", { params });
}
/** Gets volume information for a single volume. */
booksVolumesGet(params: { "volumeId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "country"?: string; "includeNonComicsSeries"?: boolean; "partner"?: string; "projection"?: string; "source"?: string; "user_library_consistent_read"?: boolean }): Promise<any> {
return this._request("GET", "/books/v1/volumes/{volumeId}", { params });
}
/** Return a list of associated books. */
booksVolumesAssociatedList(params: { "volumeId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "association"?: string; "locale"?: string; "maxAllowedMaturityRating"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/volumes/{volumeId}/associated", { params });
}
/** Gets the volume annotations for a volume and layer. */
booksLayersVolumeAnnotationsList(params: { "volumeId": string; "layerId": string; "contentVersion": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "endOffset"?: string; "endPosition"?: string; "locale"?: string; "maxResults"?: number; "pageToken"?: string; "showDeleted"?: boolean; "source"?: string; "startOffset"?: string; "startPosition"?: string; "updatedMax"?: string; "updatedMin"?: string; "volumeAnnotationsVersion"?: string }): Promise<any> {
return this._request("GET", "/books/v1/volumes/{volumeId}/layers/{layerId}", { params });
}
/** Gets the volume annotation. */
booksLayersVolumeAnnotationsGet(params: { "volumeId": string; "layerId": string; "annotationId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "locale"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/volumes/{volumeId}/layers/{layerId}/annotations/{annotationId}", { params });
}
/** Gets the annotation data for a volume and layer. */
booksLayersAnnotationDataList(params: { "volumeId": string; "layerId": string; "contentVersion": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "annotationDataId"?: unknown[]; "h"?: number; "locale"?: string; "maxResults"?: number; "pageToken"?: string; "scale"?: number; "source"?: string; "updatedMax"?: string; "updatedMin"?: string; "w"?: number }): Promise<any> {
return this._request("GET", "/books/v1/volumes/{volumeId}/layers/{layerId}/data", { params });
}
/** Gets the annotation data. */
booksLayersAnnotationDataGet(params: { "volumeId": string; "layerId": string; "annotationDataId": string; "contentVersion": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "allowWebDefinitions"?: boolean; "h"?: number; "locale"?: string; "scale"?: number; "source"?: string; "w"?: number }): Promise<any> {
return this._request("GET", "/books/v1/volumes/{volumeId}/layers/{layerId}/data/{annotationDataId}", { params });
}
/** List the layer summaries for a volume. */
booksLayersList(params: { "volumeId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "contentVersion"?: string; "maxResults"?: number; "pageToken"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/volumes/{volumeId}/layersummary", { params });
}
/** Gets the layer summary for a volume. */
booksLayersGet(params: { "volumeId": string; "summaryId": string; "$.xgafv"?: string; "access_token"?: string; "alt"?: string; "callback"?: string; "fields"?: string; "key"?: string; "oauth_token"?: string; "prettyPrint"?: boolean; "quotaUser"?: string; "upload_protocol"?: string; "uploadType"?: string; "contentVersion"?: string; "source"?: string }): Promise<any> {
return this._request("GET", "/books/v1/volumes/{volumeId}/layersummary/{summaryId}", { params });
}
}
export default GoogleBooksAPI;
No reviews yet. Be the first to rate this API.
Yes. Google Books API uses apiKey authentication, so you bring your own key from the provider. You store it once on OmniStream and the proxy injects it into every call, so your code only ever sends your Omni key.
The Google Books API allows clients to access the Google Books repository. It exposes 51 endpoints over POST, GET, PUT, DELETE, including POST /books/v1/cloudloading/addBook, POST /books/v1/cloudloading/deleteBook, POST /books/v1/cloudloading/updateBook.
Install the OmniStream SDK for your language and call Google Books API through it. The client is generated from this API's OpenAPI spec, so parameters and responses are fully typed, and the same client also calls every other API in the marketplace.
You can start on the free plan. OmniStream charges for the unified SDK, key storage and proxy rather than for Google Books API itself, and Google Books API's own rate limits still apply to your provider key.
DEV Community: Access Forem and DEV Community articles, users, comments, and other resources via a simple REST API.
Returns a list of offline dictionary metadata available
Gets information regarding the family that the user is part of.
Initiates sharing of the content with the user's family. Empty response indicates success.
Initiates revoking content that has already been shared with the user's family. Empty response indicates success.
Gets the current settings for the user.
Release downloaded content access restriction.
Request concurrent and download access restrictions.
Request downloaded content access for specified volumes on the My eBooks shelf.
Sets the settings for the user. If a sub-object is specified, it will overwrite the existing sub-object stored in the server. Unspecified sub-objects will retain the existing value.
Retrieves a list of annotations, possibly filtered.
Inserts a new annotation.
Gets the summary of specified layers.
Updates an existing annotation.
Deletes an annotation.
Retrieves a list of bookshelves belonging to the authenticated user.
Retrieves metadata for a specific bookshelf belonging to the authenticated user.
Adds a volume to a bookshelf.
Clears all volumes from a bookshelf.
Moves a volume within a bookshelf.
Removes a volume from a bookshelf.
Gets volume information for volumes on a bookshelf.
Retrieves my reading position information for a volume.
Sets my reading position information for a volume.
Returns notification details for a given notification id.
List categories for onboarding experience.
List available volumes under categories for onboarding experience.
Returns a stream of personalized book clusters
Accepts the promo offer.
Marks the promo offer as dismissed.
Returns a list of promo offers available to the user
Returns Series metadata for the given series ids.
Returns Series membership data given the series id.
Retrieves a list of public bookshelves for the specified user.
Retrieves metadata for a specific bookshelf for the specified user.
Retrieves volumes in a specific bookshelf for the specified user.
Performs a book search.
Return a list of books in My Library.
Return a list of recommended books for the current user.
Rate a recommended book for the current user.
Return a list of books uploaded by the current user.
Gets volume information for a single volume.
Return a list of associated books.
Gets the volume annotations for a volume and layer.
Gets the volume annotation.
Gets the annotation data for a volume and layer.
Gets the annotation data.
List the layer summaries for a volume.
Gets the layer summary for a volume.