Stay organized with collections Save and categorize content based on your preferences.
This document details the background knowledge that you need in order to use the Google Books API.
IntroductionThis document is intended for developers who want to write applications that can interact with the Google Books API. Google Books has a vision to digitize the world's books. You can use the Google Books API to search content, organize an authenticated user's personal library and modify it as well.
Before you start Get a Google accountYou need a Google account for testing purposes. If you already have a test account, then you're all set; you can visit the Google Books user interface to set up, edit, or view your test data.
Get familiar with BooksIf you're unfamiliar with Google Books concepts, you should read this document and experiment with the user interface before starting to code. This document assumes that you're familiar with web programming concepts and web data formats.
Learn about authorizing requests and identifying your applicationWhen your application requests private data, the request must be authorized by an authenticated user who has access to that data.
In particular, all operations under "My Library" in the Google Books API are considered to be private and require authentication and authorization. In addition, any operation that modifies Google Books data can be performed only by the user who owns that data.
When your application requests public data, the request doesn't need to authorized, but does need to be accompanied by an identifier, such as an API key.
For information about how to authorize requests and use API keys, see Authorizing requests and identifying your application in the Using the API document.
Books API background Books conceptsGoogle Books is built upon four basic concepts:
Note: Creating and deleting bookshelves as well as modifying privacy settings on bookshelves can currently only be done through the Google Books site.
A resource is an individual data entity with a unique identifier. The Books API operates on two types of resources, based on the concepts described above:
The Books API data model is based on groups of resources, called collections:
Google provides a set of pre-defined bookshelves for each user:
Example bookshelves:
You can invoke five different methods on collections and resources in the Books API, as described in the following table.
Operation Description REST HTTP mappings list Lists a specified subset of resources within a collection.GET
on a collection URI. insert Inserts a new resource into a collection (creating a new resource). POST
on a collection URI, where you pass in data for a new resource. get Gets a specific resource. GET
on resource URI. update Updates a specific resource. PUT
on resource URI, where you pass in data for the updated resource. delete Deletes a specific resource. DELETE
on resource URI, where you pass in data for the resource to be deleted.
The operations that are supported for the various types of resources are summarized in the table below. Operations that apply to a user's private data are called "My Library" operations, and they all require authentication.
Resource Type
Supported Operations
list insert get update delete Volumes yes* yes Bookshelves yes* yes, AUTHENTICATED yes* yes, AUTHENTICATED yes, AUTHENTICATED Reading Positions yes, AUTHENTICATED yes, AUTHENTICATED yes, AUTHENTICATED yes, AUTHENTICATED*Both AUTHENTICATED and unauthenticated versions of these operations are available, where the authenticated requests operate on the user's private "My Library" data, and unauthenticated requests operate on public data only.
Calling stylesThere are several ways to invoke the API:
REST is a style of software architecture that provides a convenient and consistent approach to requesting and modifying data.
The term REST is short for "Representational State Transfer." In the context of Google APIs, it refers to using HTTP verbs to retrieve and modify representations of data stored by Google.
In a RESTful system, resources are stored in a data store; a client sends a request that the server perform a particular action (such as creating, retrieving, updating, or deleting a resource), and the server performs the action and sends a response, often in the form of a representation of the specified resource.
In Google's RESTful APIs, the client specifies an action using an HTTP verb such as POST
, GET
, PUT
, or DELETE
. It specifies a resource by a globally-unique URI of the following form:
https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters
Because all API resources have unique HTTP-accessible URIs, REST enables data caching and is optimized to work with the web's distributed infrastructure.
You may find the method definitions in the HTTP 1.1 standards documentation useful; they include specifications for GET
, POST
, PUT
, and DELETE
.
The supported Books operations map directly to REST HTTP verbs, as described in Books API operations.
The specific format for Books API URIs are:
https://www.googleapis.com/books/v1/{collectionName}/resourceID?parameters
where resourceID
is the identifier for a volume or bookshelf resource, and parameters
are any parameters to apply to the query. See Query parameter reference for details.
The format of the resourceID
path extensions lets you identify the resource you're currently operating on, for example:
https://www.googleapis.com/books/v1/volumes https://www.googleapis.com/books/v1/volumes/volumeId https://www.googleapis.com/books/v1/mylibrary/bookshelves https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf https://www.googleapis.com/books/v1/mylibrary/bookshelves/shelf/volumes ...
Note that operations with mylibrary
in the URI apply only to the currently authenticated user's private library data. The full set of URIs used for each supported operation in the API is summarized in the Books API Reference document.
Here are a couple of examples of how this works in the Books API.
Perform a search for quilting:
GET https://www.googleapis.com/books/v1/volumes?q=quilting
Get information on volume s1gVAAAAYAAJ:
GET https://www.googleapis.com/books/v1/volumes/s1gVAAAAYAAJREST from JavaScript
You can invoke the Books API using REST from JavaScript (also called JSON-P), using the callback
query parameter and a callback function. This allows you to write rich applications that display Books data without writing any server side code.
Note: You can call authenticated methods by passing an OAuth 2.0 token using the access_token
parameter. To obtain an OAuth 2.0 token for use with JavaScript, follow the instructions described in OAuth 2.0 for client-side web applications. In the "API Access" tab of the APIs Console, be sure set up a Client ID for web applications, and to use those OAuth 2.0 credentials when getting your token.
The following example uses this approach to display search results for "harry potter":
<html> <head> <title>Books API Example</title> </head> <body> <div id="content"></div> <script> function handleResponse(response) { for (var i = 0; i < response.items.length; i++) { var item = response.items[i]; // in production code, item.text should have the HTML entities escaped. document.getElementById("content").innerHTML += "<br>" + item.volumeInfo.title; } } </script> <script src="https://www.googleapis.com/books/v1/volumes?q=harry+potter&callback=handleResponse"></script> </body> </html>Data format JSON
JSON (JavaScript Object Notation) is a common, language-independent data format that provides a simple text representation of arbitrary data structures. For more information, see json.org.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-06-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-06-26 UTC."],[[["Adds a new post to a specified blog using the Blogger API."],["Requires authorization with the `https://www.googleapis.com/auth/blogger` scope."],["The request body must contain a `Posts` resource with details of the new post."],["A successful response returns the newly created `Posts` resource, including details like title, author, and content."],["Example code in Java demonstrates how to use the API to insert a post."]]],[]]
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4