Search all guides

Reference · Tools

Google Books integration

Search for book volumes and manage personal bookshelves, including adding, removing, and organizing books within them.

Action Productivity v1

The Google Books node connects your workflows to the Google Books API, letting you search volumes, fetch book details by ID, and fully manage your personal bookshelves — adding, moving, listing, and removing volumes. A practical use case: automatically add every book from a curated Airtable list to a specific Google Books shelf without touching the app manually.

Works as
Action
Tool name
google_books
Parameters
19
Outputs
Output, Error
Credentials
Google Books OAuth2
Official docs
Google Books docs developers.google.com

What you can build with Google Books

  • Search for books by title, author, or keyword.
  • Get detailed information about a specific book by volume ID.
  • List all public bookshelves for a Google Books user.
  • Add a book to a personal library bookshelf.
  • Remove a book from a library bookshelf.
  • Move a book to a specific position on a shelf.
  • Clear all books from a bookshelf.

Overview

Google Books tool provides access to book volumes and user bookshelves. Volume operations: get a volume by ID, search volumes by query. Bookshelf operations: get a public bookshelf by ID, list all public bookshelves for a user. Bookshelf Volume operations: add a volume to a shelf, clear all volumes from a shelf, list volumes on a shelf, move a volume to a position within a shelf, remove a volume from a shelf. Authenticated operations (add, clear, move, remove) use the authenticated user’s My Library and require OAuth2 with write scope. Read operations for other users’ public shelves only require a userId.

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Google Books OAuth2 credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Bookshelfbookshelf
Bookshelf VolumebookshelfVolume
Volumevolume

Operations

ResourceOperationValueDescription
VolumeGetgetRetrieve a specific book volume by its ID.
VolumeGet AllgetAllSearch for book volumes matching a query string.
BookshelfGetgetRetrieve a specific bookshelf by ID for a given user.
BookshelfGet AllgetAllList all public bookshelves belonging to a given user.
Bookshelf VolumeAddaddAdd a volume to the authenticated user’s bookshelf.
Bookshelf VolumeClearclearRemove all volumes from the authenticated user’s bookshelf.
Bookshelf VolumeGet AllgetAllList all volumes in a public bookshelf for a user.
Bookshelf VolumeMovemoveMove a volume to a specific position within the authenticated user’s bookshelf.
Bookshelf VolumeRemoveremoveRemove a specific volume from the authenticated user’s bookshelf.

Parameters

Volume: Get (get)

ParameterTypeRequiredDefaultDescription
Volume IDstringYes—The ID of the volume to retrieve. Supports expressions like {{ $json.volumeId }}.

Volume: Get All (getAll)

ParameterTypeRequiredDefaultDescription
Search QuerystringYes—The search query string (e.g. “flowers+inauthor:keyes”). Supports Google Books query syntax. Supports expressions.
Return AllbooleanNofalseWhether to return all results or limit to a maximum number.
LimitnumberNo10Maximum number of results to return. Between 1 and 40. (shown when Return All is false)

Bookshelf: Get (get)

ParameterTypeRequiredDefaultDescription
Shelf IDstringYes—The ID of the bookshelf to retrieve.
User IDstringYes—The ID of the user whose bookshelves to access.

Bookshelf: Get All (getAll)

ParameterTypeRequiredDefaultDescription
User IDstringYes—The ID of the user whose bookshelves to access.

Bookshelf Volume: Add (add)

ParameterTypeRequiredDefaultDescription
Volume IDstringYes—The ID of the volume to add, move, or remove. Supports expressions.
Shelf IDstringYes—The ID of the bookshelf to operate on.

Bookshelf Volume: Clear (clear)

ParameterTypeRequiredDefaultDescription
Shelf IDstringYes—The ID of the bookshelf to operate on.

Bookshelf Volume: Get All (getAll)

ParameterTypeRequiredDefaultDescription
Shelf IDstringYes—The ID of the bookshelf to operate on.
User IDstringYes—The ID of the user whose bookshelf volumes to list.
Return AllbooleanNofalseWhether to return all results or limit to a maximum number.
LimitnumberNo10Maximum number of results to return. Between 1 and 40. (shown when Return All is false)

Bookshelf Volume: Move (move)

ParameterTypeRequiredDefaultDescription
Volume IDstringYes—The ID of the volume to add, move, or remove. Supports expressions.
Shelf IDstringYes—The ID of the bookshelf to operate on.
Volume PositionnumberYes0The zero-based position to move the volume to within the bookshelf.

Bookshelf Volume: Remove (remove)

ParameterTypeRequiredDefaultDescription
Volume IDstringYes—The ID of the volume to add, move, or remove. Supports expressions.
Shelf IDstringYes—The ID of the bookshelf to operate on.

All Operations

ParameterTypeRequiredDefaultDescription
AuthenticationoptionsNooAuth2Authentication method to use.
Options: oAuth2 (OAuth2, recommended), serviceAccount (Service Account)
Google AccountcredentialNo—Connect or select your Google account. (shown when Authentication is oAuth2)
Service Account EmailstringYes—The email address of the Google service account, for example my-service-account@project.iam.gserviceaccount.com. (shown when Authentication is serviceAccount)
Private KeystringYes—The private key from the service account JSON key file. Paste the full PEM block, including the BEGIN and END lines. (shown when Authentication is serviceAccount)
Max ConcurrencynumberNo5Maximum number of items to process concurrently. Between 1 and 20.

Output Data

The API response is merged into the item JSON, so the incoming fields pass through except where a response field uses the same name. Binary data on the input item is not carried to the output.

How many output items an input item produces depends on the operation:

OperationOutput
Volume getOne item carrying the volume record.
Volume getAllFans out — one item per matching volume. A search with no matches still emits one item, carrying the input JSON unchanged.
Bookshelf getOne item carrying the bookshelf record.
Bookshelf getAllFans out — one item per bookshelf. An empty shelf list still emits one item, carrying the input JSON unchanged.
Bookshelf Volume getAllFans out — one item per volume on the shelf. An empty shelf still emits one item, carrying the input JSON unchanged.
Bookshelf Volume add, clear, move, removeOne item carrying success: true. The Google Books API returns no body for these calls, so there is nothing else to report.

Because the fan-out operations already emit one item per record, you do not need a Split Out node after them. Reference a returned field downstream by expression, e.g. {{ $json.volumeInfo.title }}.

Example Configuration

Search the catalogue and return the first 10 matches, one item each:

{
  "type": "google_books",
  "parameters": {
    "authentication": "oAuth2",
    "resource": "volume",
    "operation": "getAll",
    "searchQuery": "{{ $json.query }}",
    "returnAll": false,
    "limit": 10
  }
}

Look up one volume by ID:

{
  "type": "google_books",
  "parameters": {
    "resource": "volume",
    "operation": "get",
    "volumeId": "{{ $json.id }}"
  }
}

List a user’s public bookshelves:

{
  "type": "google_books",
  "parameters": {
    "resource": "bookshelf",
    "operation": "getAll",
    "userId": "117435690842326208722"
  }
}

Add a volume to a shelf in your own library:

{
  "type": "google_books",
  "parameters": {
    "resource": "bookshelfVolume",
    "operation": "add",
    "shelfId": "1001",
    "volumeId": "{{ $json.id }}"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

This tool searches for book volumes and manages bookshelves using the Google Books service. It is the right tool when you need to find books by ID or query, or to interact with a user’s public bookshelves or the authenticated user’s private bookshelves. It produces book volume information, lists of bookshelves, and modified bookshelves.

Frequently asked questions

Which operations require OAuth2 and which don't?

Write operations on your own library — adding a volume to a shelf, clearing a shelf, moving a volume to a position, and removing a volume — all require OAuth2 authentication with write scope. Read-only operations like searching volumes, fetching a volume by ID, or listing another user's public bookshelves only need a userId and do not require write access. Make sure your OAuth2 credential includes the write scope if you plan to modify any shelf.

How do I read someone else's bookshelves versus my own?

To read another user's public bookshelves, you supply their userId and use the public bookshelf operations (get a bookshelf by ID or list all public bookshelves). To manage your own shelves — adding, removing, or moving volumes — the node targets your authenticated user's My Library automatically via OAuth2; no userId is needed for those write operations.

What does the node return when something goes wrong?

The node has two distinct outputs: Output and Error. If an API call fails — for example, an invalid volume ID, insufficient OAuth2 scope, or a shelf that doesn't exist — execution is routed through the Error output rather than stopping the entire workflow. This lets you branch your workflow to handle failures gracefully, such as logging the error or retrying with corrected parameters.

Can I move a volume to a specific position on a shelf?

Yes. The 'move a volume to a position within a shelf' operation lets you reorder volumes on a shelf by specifying the target position. This operates on your own authenticated My Library shelves and requires OAuth2 with write scope, like all other shelf modification operations.

What credential do I need to set up, and where do I get it?

You need a Google Books OAuth2 credential, identified in BusyBot as googleBooksOAuth2Api. You create this by setting up an OAuth2 client in the Google Cloud Console with the Books API enabled, then authorizing it inside BusyBot's credential manager. If you only need read access to public data, a minimal scope is sufficient, but shelf write operations require the full library write scope.

Build with Google Books

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Google Books OAuth2 credentials first.

Open BusyBot

Last reviewed . Spotted something wrong? Tell us.