Reference · Tools

Google Books

Search and manage books and bookshelves using the Google Books API.

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.

Node type
Action
Parameters
19
Outputs
Output, Error
Credentials
Google Books OAuth2

Google Books

Search and manage books and bookshelves via the Google Books API.

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.

Category: Productivity
Tool Name: google_books
Version: 1

Appearance: Icon: lucide-BookOpen | Color: #4285F4

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 IDstringYesThe ID of the volume to retrieve. Supports expressions like {{ $json.volumeId }}.

Volume: Get All (getAll)

ParameterTypeRequiredDefaultDescription
Search QuerystringYesThe 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 IDstringYesThe ID of the bookshelf to retrieve.
User IDstringYesThe ID of the user whose bookshelves to access.

Bookshelf: Get All (getAll)

ParameterTypeRequiredDefaultDescription
User IDstringYesThe ID of the user whose bookshelves to access.

Bookshelf Volume: Add (add)

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

Bookshelf Volume: Clear (clear)

ParameterTypeRequiredDefaultDescription
Shelf IDstringYesThe ID of the bookshelf to operate on.

Bookshelf Volume: Get All (getAll)

ParameterTypeRequiredDefaultDescription
Shelf IDstringYesThe ID of the bookshelf to operate on.
User IDstringYesThe 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 IDstringYesThe ID of the volume to add, move, or remove. Supports expressions.
Shelf IDstringYesThe 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 IDstringYesThe ID of the volume to add, move, or remove. Supports expressions.
Shelf IDstringYesThe ID of the bookshelf to operate on.

All Operations

ParameterTypeRequiredDefaultDescription
AuthenticationoptionsNooAuth2Authentication method to use.
Options: oAuth2 (OAuth2, recommended), serviceAccount (Service Account)
Google AccountcredentialNoConnect or select your Google account. (shown when Authentication is oAuth2)
Service Account EmailstringYesThe email address of the Google service account, for example my-service-account@project.iam.gserviceaccount.com. (shown when Authentication is serviceAccount)
Private KeystringYesThe 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 }}.

Usage Examples

  • 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

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

Search volumes and manage bookshelves using the Google Books API — get books by ID, search, and manage your library shelves.

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 the Google Books node

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 updated . Spotted something wrong? Tell us.