Books — entry 008 of 22

Google Books

Verified Jul 2026

Google Books searches the metadata and, where licensed, previewable text of the tens of millions of scanned books, magazines, and public-domain works in Google's digitization project, returning volume details and ISBN/LCCN/OCLC lookups. A project API key is sufficient for search and volume data; the OAuth 2.0 this entry used to require only applies when reading or writing a signed-in user's own bookshelves. There's no separate pricing tier — usage is metered by a free per-project quota in the Google Cloud console rather than billed.

bookssearchmetadatagoogle
AuthenticationAPI KeySign up with the provider to obtain credentials.
HTTPSSupportedTraffic is encrypted in transit.
CORSEnabledCallable directly from browser JavaScript.
PricingFreeNo paid tier — free for the documented use case.
FormatsJSONResponses can be requested as JSON.

GreatAPIs Score

Score84out of 100
Authentication15/25API key required
Pricing20/20Free to use
Docs20/20Machine-readable spec file bundled
Formats9/15Single response format
Freshness20/20Verified within 6 months

Embed this badge

Scored 84 on greatapis.com
<a href="https://greatapis.com/api/google-books/"><img src="https://greatapis.com/badge/google-books.svg" alt="Scored 84 on greatapis.com"></a>

Auth quickstart

  1. Sign up with the provider to get an API key.
  2. Send it on every request as a query param?key=<key>
Stored keyNo key stored

Your key is stored only in this browser (localStorage) and sent directly to the API — never to greatapis.

Endpoints

Servers
https://books.googleapis.com/
Auth
Oauth2Oauth2c
bookshelves3
GET/books/v1/users/{userId}/bookshelves
Parameters
NameInRequiredType
userIdpathyesstring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseBookshelves
GET/books/v1/users/{userId}/bookshelves/{shelf}
Parameters
NameInRequiredType
userIdpathyesstring
shelfpathyesstring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseBookshelf
GET/books/v1/users/{userId}/bookshelves/{shelf}/volumes
Parameters
NameInRequiredType
userIdpathyesstring
shelfpathyesstring
maxResultsquerynointeger
showPreordersquerynoboolean
sourcequerynostring
startIndexquerynointeger
Responses
StatusDescriptionSchema
200Successful responseVolumes
cloudloading3
POST/books/v1/cloudloading/addBook
Parameters
NameInRequiredType
drive_document_idquerynostring
mime_typequerynostring
namequerynostring
upload_client_tokenquerynostring
Responses
StatusDescriptionSchema
200Successful responseBooksCloudloadingResource
POST/books/v1/cloudloading/deleteBook
Parameters
NameInRequiredType
volumeIdqueryyesstring
Responses
StatusDescriptionSchema
200Successful responseEmpty
POST/books/v1/cloudloading/updateBook
Request body

application/jsonBooksCloudloadingResource

Responses
StatusDescriptionSchema
200Successful responseBooksCloudloadingResource
dictionary1
GET/books/v1/dictionary/listOfflineMetadata
Parameters
NameInRequiredType
cpksverqueryyesstring
Responses
StatusDescriptionSchema
200Successful responseMetadata
familysharing3
GET/books/v1/familysharing/getFamilyInfo
Parameters
NameInRequiredType
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseFamilyInfo
POST/books/v1/familysharing/share
Parameters
NameInRequiredType
docIdquerynostring
sourcequerynostring
volumeIdquerynostring
Responses
StatusDescriptionSchema
200Successful responseEmpty
POST/books/v1/familysharing/unshare
Parameters
NameInRequiredType
docIdquerynostring
sourcequerynostring
volumeIdquerynostring
Responses
StatusDescriptionSchema
200Successful responseEmpty
layers6
GET/books/v1/volumes/{volumeId}/layers/{layerId}
Parameters
NameInRequiredType
volumeIdpathyesstring
layerIdpathyesstring
contentVersionqueryyesstring
endOffsetquerynostring
endPositionquerynostring
localequerynostring
maxResultsquerynointeger
pageTokenquerynostring
showDeletedquerynoboolean
sourcequerynostring
startOffsetquerynostring
startPositionquerynostring
updatedMaxquerynostring
updatedMinquerynostring
volumeAnnotationsVersionquerynostring
Responses
StatusDescriptionSchema
200Successful responseVolumeannotations
GET/books/v1/volumes/{volumeId}/layers/{layerId}/annotations/{annotationId}
Parameters
NameInRequiredType
volumeIdpathyesstring
layerIdpathyesstring
annotationIdpathyesstring
localequerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseVolumeannotation
GET/books/v1/volumes/{volumeId}/layers/{layerId}/data
Parameters
NameInRequiredType
volumeIdpathyesstring
layerIdpathyesstring
contentVersionqueryyesstring
annotationDataIdquerynoarray
hquerynointeger
localequerynostring
maxResultsquerynointeger
pageTokenquerynostring
scalequerynointeger
sourcequerynostring
updatedMaxquerynostring
updatedMinquerynostring
wquerynointeger
Responses
StatusDescriptionSchema
200Successful responseAnnotationsdata
GET/books/v1/volumes/{volumeId}/layers/{layerId}/data/{annotationDataId}
Parameters
NameInRequiredType
volumeIdpathyesstring
layerIdpathyesstring
annotationDataIdpathyesstring
contentVersionqueryyesstring
allowWebDefinitionsquerynoboolean
hquerynointeger
localequerynostring
scalequerynointeger
sourcequerynostring
wquerynointeger
Responses
StatusDescriptionSchema
200Successful responseDictionaryAnnotationdata
GET/books/v1/volumes/{volumeId}/layersummary
Parameters
NameInRequiredType
volumeIdpathyesstring
contentVersionquerynostring
maxResultsquerynointeger
pageTokenquerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseLayersummaries
GET/books/v1/volumes/{volumeId}/layersummary/{summaryId}
Parameters
NameInRequiredType
volumeIdpathyesstring
summaryIdpathyesstring
contentVersionquerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseLayersummary
myconfig5
GET/books/v1/myconfig/getUserSettings
Parameters
NameInRequiredType
countryquerynostring
Responses
StatusDescriptionSchema
200Successful responseUsersettings
POST/books/v1/myconfig/releaseDownloadAccess
Parameters
NameInRequiredType
cpksverqueryyesstring
volumeIdsqueryyesarray
localequerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseDownloadAccesses
POST/books/v1/myconfig/requestAccess
Parameters
NameInRequiredType
cpksverqueryyesstring
noncequeryyesstring
sourcequeryyesstring
volumeIdqueryyesstring
licenseTypesquerynostring
localequerynostring
Responses
StatusDescriptionSchema
200Successful responseRequestAccessData
POST/books/v1/myconfig/syncVolumeLicenses
Parameters
NameInRequiredType
cpksverqueryyesstring
noncequeryyesstring
sourcequeryyesstring
featuresquerynoarray
includeNonComicsSeriesquerynoboolean
localequerynostring
showPreordersquerynoboolean
volumeIdsquerynoarray
Responses
StatusDescriptionSchema
200Successful responseVolumes
POST/books/v1/myconfig/updateUserSettings
Request body

application/jsonUsersettings

Responses
StatusDescriptionSchema
200Successful responseUsersettings
mylibrary14
GET/books/v1/mylibrary/annotations
Parameters
NameInRequiredType
contentVersionquerynostring
layerIdquerynostring
layerIdsquerynoarray
maxResultsquerynointeger
pageTokenquerynostring
showDeletedquerynoboolean
sourcequerynostring
updatedMaxquerynostring
updatedMinquerynostring
volumeIdquerynostring
Responses
StatusDescriptionSchema
200Successful responseAnnotations
POST/books/v1/mylibrary/annotations
Parameters
NameInRequiredType
annotationIdquerynostring
countryquerynostring
showOnlySummaryInResponsequerynoboolean
sourcequerynostring
Request body

application/jsonAnnotation

Responses
StatusDescriptionSchema
200Successful responseAnnotation
POST/books/v1/mylibrary/annotations/summary
Parameters
NameInRequiredType
layerIdsqueryyesarray
volumeIdqueryyesstring
Responses
StatusDescriptionSchema
200Successful responseAnnotationsSummary
PUT/books/v1/mylibrary/annotations/{annotationId}
Parameters
NameInRequiredType
annotationIdpathyesstring
sourcequerynostring
Request body

application/jsonAnnotation

Responses
StatusDescriptionSchema
200Successful responseAnnotation
DELETE/books/v1/mylibrary/annotations/{annotationId}
Parameters
NameInRequiredType
annotationIdpathyesstring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseEmpty
GET/books/v1/mylibrary/bookshelves
Parameters
NameInRequiredType
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseBookshelves
GET/books/v1/mylibrary/bookshelves/{shelf}
Parameters
NameInRequiredType
shelfpathyesstring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseBookshelf
POST/books/v1/mylibrary/bookshelves/{shelf}/addVolume
Parameters
NameInRequiredType
shelfpathyesstring
volumeIdqueryyesstring
reasonquerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseEmpty
POST/books/v1/mylibrary/bookshelves/{shelf}/clearVolumes
Parameters
NameInRequiredType
shelfpathyesstring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseEmpty
POST/books/v1/mylibrary/bookshelves/{shelf}/moveVolume
Parameters
NameInRequiredType
shelfpathyesstring
volumeIdqueryyesstring
volumePositionqueryyesinteger
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseEmpty
POST/books/v1/mylibrary/bookshelves/{shelf}/removeVolume
Parameters
NameInRequiredType
shelfpathyesstring
volumeIdqueryyesstring
reasonquerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseEmpty
GET/books/v1/mylibrary/bookshelves/{shelf}/volumes
Parameters
NameInRequiredType
shelfpathyesstring
countryquerynostring
maxResultsquerynointeger
projectionquerynostring
qquerynostring
showPreordersquerynoboolean
sourcequerynostring
startIndexquerynointeger
Responses
StatusDescriptionSchema
200Successful responseVolumes
GET/books/v1/mylibrary/readingpositions/{volumeId}
Parameters
NameInRequiredType
volumeIdpathyesstring
contentVersionquerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseReadingPosition
POST/books/v1/mylibrary/readingpositions/{volumeId}/setPosition
Parameters
NameInRequiredType
volumeIdpathyesstring
positionqueryyesstring
timestampqueryyesstring
actionquerynostring
contentVersionquerynostring
deviceCookiequerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseEmpty
notification1
GET/books/v1/notification/get
Parameters
NameInRequiredType
notification_idqueryyesstring
localequerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseNotification
onboarding2
GET/books/v1/onboarding/listCategories
Parameters
NameInRequiredType
localequerynostring
Responses
StatusDescriptionSchema
200Successful responseCategory
GET/books/v1/onboarding/listCategoryVolumes
Parameters
NameInRequiredType
categoryIdquerynoarray
localequerynostring
maxAllowedMaturityRatingquerynostring
pageSizequerynointeger
pageTokenquerynostring
Responses
StatusDescriptionSchema
200Successful responseVolume2
personalizedstream1
GET/books/v1/personalizedstream/get
Parameters
NameInRequiredType
localequerynostring
maxAllowedMaturityRatingquerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseDiscoveryclusters
promooffer3
POST/books/v1/promooffer/accept
Parameters
NameInRequiredType
androidIdquerynostring
devicequerynostring
manufacturerquerynostring
modelquerynostring
offerIdquerynostring
productquerynostring
serialquerynostring
volumeIdquerynostring
Responses
StatusDescriptionSchema
200Successful responseEmpty
POST/books/v1/promooffer/dismiss
Parameters
NameInRequiredType
androidIdquerynostring
devicequerynostring
manufacturerquerynostring
modelquerynostring
offerIdquerynostring
productquerynostring
serialquerynostring
Responses
StatusDescriptionSchema
200Successful responseEmpty
GET/books/v1/promooffer/get
Parameters
NameInRequiredType
androidIdquerynostring
devicequerynostring
manufacturerquerynostring
modelquerynostring
productquerynostring
serialquerynostring
Responses
StatusDescriptionSchema
200Successful responseOffers
series2
GET/books/v1/series/get
Parameters
NameInRequiredType
series_idqueryyesarray
Responses
StatusDescriptionSchema
200Successful responseSeries
GET/books/v1/series/membership/get
Parameters
NameInRequiredType
series_idqueryyesstring
page_sizequerynointeger
page_tokenquerynostring
Responses
StatusDescriptionSchema
200Successful responseSeriesmembership
volumes7
GET/books/v1/volumes
Parameters
NameInRequiredType
qqueryyesstring
downloadquerynostring
filterquerynostring
langRestrictquerynostring
libraryRestrictquerynostring
maxAllowedMaturityRatingquerynostring
maxResultsquerynointeger
orderByquerynostring
partnerquerynostring
printTypequerynostring
projectionquerynostring
showPreordersquerynoboolean
sourcequerynostring
startIndexquerynointeger
Responses
StatusDescriptionSchema
200Successful responseVolumes
GET/books/v1/volumes/mybooks
Parameters
NameInRequiredType
acquireMethodquerynoarray
countryquerynostring
localequerynostring
maxResultsquerynointeger
processingStatequerynoarray
sourcequerynostring
startIndexquerynointeger
Responses
StatusDescriptionSchema
200Successful responseVolumes
GET/books/v1/volumes/recommended
Parameters
NameInRequiredType
localequerynostring
maxAllowedMaturityRatingquerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseVolumes
POST/books/v1/volumes/recommended/rate
Parameters
NameInRequiredType
ratingqueryyesstring
volumeIdqueryyesstring
localequerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseBooksVolumesRecommendedRateResponse
GET/books/v1/volumes/useruploaded
Parameters
NameInRequiredType
localequerynostring
maxResultsquerynointeger
processingStatequerynoarray
sourcequerynostring
startIndexquerynointeger
volumeIdquerynoarray
Responses
StatusDescriptionSchema
200Successful responseVolumes
GET/books/v1/volumes/{volumeId}
Parameters
NameInRequiredType
volumeIdpathyesstring
countryquerynostring
includeNonComicsSeriesquerynoboolean
partnerquerynostring
projectionquerynostring
sourcequerynostring
user_library_consistent_readquerynoboolean
Responses
StatusDescriptionSchema
200Successful responseVolume
GET/books/v1/volumes/{volumeId}/associated
Parameters
NameInRequiredType
volumeIdpathyesstring
associationquerynostring
localequerynostring
maxAllowedMaturityRatingquerynostring
sourcequerynostring
Responses
StatusDescriptionSchema
200Successful responseVolumes

Try it

Developer reference

Base URLhttps://books.googleapis.com
Rate limit

Google doesn't publish a single fixed public ceiling on the Books API's own docs page; the per-project default shown on the Cloud Console's Quotas page is a 1,000 requests/day courtesy limit at up to 1 request/second per user, raisable through the console's standard 'request more quota' flow used across Google Cloud APIs -- confirmed against Google's own quota-capping documentation (docs.cloud.google.com/apis/docs/capping-api-usage) plus multiple developers' live Cloud Console quota screenshots showing this exact Books API default, and consistent with the getting-started guide's note that usage is metered by project quota rather than billed per call.

Key endpoints
  • GET/books/v1/volumes
  • GET/books/v1/volumes/{volumeId}
  • GET/books/v1/users/{userId}/bookshelves
  • GET/books/v1/users/{userId}/bookshelves/{shelf}
  • GET/books/v1/users/{userId}/bookshelves/{shelf}/volumes