# Google Books API

> Google Books returns book search results, book details, ratings, and ebook offers as a workflow and API.

Google Books Search, also called Google Book Search, finds books by words, title, author, subject, or ISBN and can filter by language or free access. Get book returns details and reader ratings for a title or ISBN, with ebook availability and local pricing based on the selected country.

- Page: https://fous.com/workflows/google-books
- Handle: `@google-books`
- Category: [Education](https://fous.com/workflows/category/education)
- Source website: https://books.google.com
- Last verified: Sep 29, 2026
- Fous is not affiliated with Google Books.

## Methods

### Get book

Operation `get_book`, version 1. 1 credit per call.

Get a Google Books book’s details, reader ratings and ebook offer in a country from its title or ISBN. An ebook price is shown only when Google Play Books lists a local offer; some books or countries have no offer.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `book` | string | yes | `"9780399590511"` | Book title or ISBN, for example Educated or 9780399590511. |
| `author` | string | no | `"Tara Westover"` | Author to narrow down the book, for example Tara Westover. |
| `country` | string | no | `"United States"` | Country for ebook sale and price, such as United States or US. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "book"
  ],
  "properties": {
    "book": {
      "type": "string",
      "description": "Book title or ISBN, for example Educated or 9780399590511.",
      "examples": [
        "9780399590511",
        "Educated"
      ]
    },
    "author": {
      "type": "string",
      "default": "",
      "description": "Author to narrow down the book, for example Tara Westover.",
      "examples": [
        "Tara Westover"
      ]
    },
    "country": {
      "type": "string",
      "default": "United States",
      "description": "Country for ebook sale and price, such as United States or US.",
      "examples": [
        "United States",
        "United Kingdom"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "book": "9780399590511",
      "country": "United States"
    },
    {
      "book": "Educated",
      "author": "Tara Westover",
      "country": "United States"
    },
    {
      "book": "Educated",
      "author": "Tara Westover",
      "country": "United Kingdom"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `title` | string or null | `"Educated"` | Book title. |
| `authors` | array or null |  | Book authors. |
| `isbn_10` | string or null | `"039959051X"` | Ten-digit ISBN, if listed. |
| `isbn_13` | string or null | `"9780399590511"` | Thirteen-digit ISBN, if listed. |
| `buy_link` | string or null | `"https://play.google.com/store/books/details?id=2ObWDgAAQBAJ&gl=US"` | Link to the Google Play ebook offer, if for sale. |
| `language` | string or null | `"English"` | Language of the book, if listed. |
| `subtitle` | string or null | `"A Memoir"` | Book subtitle, if listed. |
| `publisher` | string or null | `"Random House Publishing Group"` | Publisher name. |
| `volume_id` | string or null | `"2ObWDgAAQBAJ"` | Google Books volume ID. |
| `categories` | array or null |  | Book subjects or categories. |
| `page_count` | integer or null | `352` | Number of pages. |
| `description` | string or null |  | Full listed book description as plain text. |
| `ebook_price` | object or null |  | Local ebook price and currency, or null if not for sale. |
| `ebook_price.amount` | number | `9.99` | Price as a number. |
| `ebook_price.currency_code` | string | `"USD"` | ISO currency code. |
| `ratings_count` | integer or null | `548` | Number of reader ratings, if available. |
| `average_rating` | number or null | `4.72` | Average reader rating out of five, if available. |
| `ebook_for_sale` | boolean or null | `true` | Whether Google Play Books offers the ebook in the selected country. |
| `published_date` | string or null | `"2018-02-20"` | Publication date in YYYY-MM-DD, when a full date is listed. |
| `cover_image_link` | string or null | `"https://books.google.com/books/publisher/content?id=2ObWDgAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&imgtk=AFLRE` | Cover image link, if available. |
| `google_books_link` | string or null | `"https://books.google.com/books?id=2ObWDgAAQBAJ"` | Google Books page link. |
| `preview_availability` | string or null | `"Limited preview"` | Preview availability in words. |

**Example input**

```json
{
  "book": "9780399590511",
  "country": "United States"
}
```

**Example output**

```json
{
  "title": "Educated",
  "authors": [
    "Tara Westover"
  ],
  "isbn_10": "039959051X",
  "isbn_13": "9780399590511",
  "buy_link": "https://play.google.com/store/books/details?id=2ObWDgAAQBAJ&gl=US",
  "language": "English",
  "subtitle": "A Memoir",
  "publisher": "Random House Publishing Group",
  "volume_id": "2ObWDgAAQBAJ",
  "categories": [
    "Biography & Autobiography",
    "Women",
    "Biography & Autobiography / Memoirs"
  ],
  "page_count": 352,
  "description": "#1 NEW YORK TIMES BESTSELLER WITH FOUR MILLION COPIES SOLD • “A heartbreaking, heartwarming, best-in-years memoir about striding beyond the limitations of birth and environment into a better life.”— U…",
  "ebook_price": {
    "amount": 9.99,
    "currency_code": "USD"
  },
  "ratings_count": 548,
  "average_rating": 4.72,
  "ebook_for_sale": true,
  "published_date": "2018-02-20",
  "cover_image_link": "https://books.google.com/books/publisher/content?id=2ObWDgAAQBAJ&printsec=frontcover&img=1&zoom=1&edge=curl&imgtk=AFLRE705tDsztAn5PXJ5nRm-iapAJYEnM7WUpNZRfgae3y3LguwIN57LV4uNHU64CNLfmKnNyLfCoMGv-50M_P…",
  "google_books_link": "https://books.google.com/books?id=2ObWDgAAQBAJ",
  "preview_availability": "Limited preview"
}
```

### Search books

Operation `search_books`, version 1. 1 credit per call.

Search Google Books by words, author, subject, or ISBN, with language, free-ebook, and publication-order options. Ratings counts are not shown by the public book feed; newest sorts the available matches by publication date.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `order` | string | no | `"newest"` | Order matching books by relevance or newest publication. Example: relevance |
| `query` | string | yes | `"9780735211292"` | Search words, a book title, author name, subject, or ISBN. Example: Atomic Habits |
| `author` | string | no | `"James Clear"` | Limit results to an author. Example: James Clear |
| `subject` | string | no | `"cooking"` | Limit results to a subject. Example: cooking |
| `language` | string | no | `"English"` | Book language as a name or two-letter code, or any. Example: English |
| `max_results` | integer | no | `3` | Maximum number of books to return, up to 40. Example: 10 |
| `free_ebooks_only` | boolean | no | `true` | Only return books available to read in full with free access. Example: false |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "query"
  ],
  "properties": {
    "order": {
      "enum": [
        "relevance",
        "newest"
      ],
      "type": "string",
      "default": "relevance",
      "description": "Order matching books by relevance or newest publication. Example: relevance",
      "examples": [
        "newest"
      ]
    },
    "query": {
      "type": "string",
      "description": "Search words, a book title, author name, subject, or ISBN. Example: Atomic Habits",
      "examples": [
        "9780735211292",
        "Atomic Habits",
        "zzzxxyy123456789notabook"
      ]
    },
    "author": {
      "type": "string",
      "default": "",
      "description": "Limit results to an author. Example: James Clear",
      "examples": [
        "James Clear"
      ]
    },
    "subject": {
      "type": "string",
      "default": "",
      "description": "Limit results to a subject. Example: cooking",
      "examples": [
        "cooking"
      ]
    },
    "language": {
      "type": "string",
      "default": "any",
      "description": "Book language as a name or two-letter code, or any. Example: English",
      "examples": [
        "English"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 10,
      "maximum": 40,
      "minimum": 1,
      "description": "Maximum number of books to return, up to 40. Example: 10",
      "x-fous-developer": true,
      "examples": [
        3,
        10,
        4
      ]
    },
    "free_ebooks_only": {
      "type": "boolean",
      "default": false,
      "description": "Only return books available to read in full with free access. Example: false",
      "examples": [
        true
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "query": "9780735211292",
      "max_results": 3
    },
    {
      "query": "Atomic Habits",
      "author": "James Clear",
      "max_results": 10
    },
    {
      "query": "zzzxxyy123456789notabook",
      "max_results": 4
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `books` | array |  |  |
| `books[].title` | string | `"Atomic Habits"` |  |
| `books[].authors` | array |  |  |
| `books[].isbn_10` | string or null | `"0735211299"` |  |
| `books[].isbn_13` | string or null | `"9780735211292"` |  |
| `books[].subtitle` | string or null | `"An Easy & Proven Way to Build Good Habits & Break Bad Ones"` |  |
| `books[].publisher` | string or null | `"Penguin"` |  |
| `books[].volume_id` | string | `"XfFvDwAAQBAJ"` |  |
| `books[].categories` | array |  |  |
| `books[].page_count` | integer or null | `321` |  |
| `books[].ratings_count` | integer or null |  | Null when the source does not report a ratings count. |
| `books[].average_rating` | number or null | `3.86` |  |
| `books[].published_date` | string or null | `"2018-10-16"` | Publication date, as a year or full date. |
| `books[].cover_image_link` | string or null | `"https://books.google.com/books/content?id=XfFvDwAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_gdata"` |  |
| `books[].google_books_link` | string | `"https://books.google.com/books?id=XfFvDwAAQBAJ"` |  |
| `books[].short_description` | string or null | `"Atomic Habits will reshape the way you think about progress and success, and give you the tools and strategies you need` |  |
| `books[].preview_availability` | string | `"partial preview"` |  |

**Example input**

```json
{
  "query": "9780735211292",
  "max_results": 3
}
```

**Example output**

```json
{
  "books": [
    {
      "title": "Atomic Habits",
      "authors": [
        "James Clear"
      ],
      "isbn_10": "0735211299",
      "isbn_13": "9780735211292",
      "subtitle": "An Easy & Proven Way to Build Good Habits & Break Bad Ones",
      "publisher": "Penguin",
      "volume_id": "XfFvDwAAQBAJ",
      "categories": [
        "Business & Economics"
      ],
      "page_count": 321,
      "ratings_count": null,
      "average_rating": 3.86,
      "published_date": "2018-10-16",
      "cover_image_link": "https://books.google.com/books/content?id=XfFvDwAAQBAJ&printsec=frontcover&img=1&zoom=5&edge=curl&source=gbs_gdata",
      "google_books_link": "https://books.google.com/books?id=XfFvDwAAQBAJ",
      "short_description": "Atomic Habits will reshape the way you think about progress and success, and give you the tools and strategies you need to transform your habits--whether you are a team looking to win a championship, …",
      "preview_availability": "partial preview"
    }
  ]
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@google-books",
  "visibility": "public",
  "operation": "get_book",
  "version": 1,
  "input": {
    "book": "9780399590511",
    "country": "United States"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@google-books\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_book\",\n  \"version\": 1,\n  \"input\": {\n    \"book\": \"9780399590511\",\n    \"country\": \"United States\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@google-books",
  "visibility": "public",
  "operation": "get_book",
  "version": 1,
  "input": {
    "book": "9780399590511",
    "country": "United States"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@google-books","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Find books by title, author, subject, or ISBN
- Build a reading list from matching titles and authors
- Compare book publication dates, categories, and page counts
- Check reader ratings for a specific book
- Check ebook availability and local prices by country

## FAQ

### Is Fous affiliated with Google Books?

No. Fous is not affiliated with Google Books. This workflow reads the public books.google.com website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a Google Books account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from books.google.com when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 29, 2026.

### How can I find books by author or subject?

Use Search books with a required query and optional author or subject filters.

### How can I get a book’s details and ratings?

Use Get book with a title or ISBN; add an author to narrow down the match.

### Can I check ebook prices by country?

Use Get book and provide a country. Prices appear only when a local Google Play Books offer is listed.

## Related

- [Goodreads API](https://fous.com/workflows/goodreads.md): Goodreads returns public book searches, matched-book details with variable editions, popular or newest reviews, author books by popularity or date, and up to 100 quotes.
- [Project Gutenberg API](https://fous.com/workflows/project-gutenberg.md): Project Gutenberg offers free public-domain ebooks and reading materials, with searchable book details and plain text from the most-downloaded matching edition available.
- [Open Library API](https://fous.com/workflows/open-library.md): Open Library returns book search results, catalog details, and author works; availability reflects listed editions, not current loan availability, and catalog details may be missing.
- [Google Search API](https://fous.com/workflows/google-search.md): Google Search returns public web, image, job, event, related-question, and autocomplete results in Google’s order, with answers and details when available; results may be fewer, omit information, or be empty.
- [Audible API](https://fous.com/workflows/audible.md): Audible offers audiobooks, podcasts, and audio entertainment, with public book details and current bestselling audiobook charts; availability and categories vary by store.
- [Google Shopping API](https://fous.com/workflows/google-shopping.md): Google Shopping shows product offers, prices, ratings, delivery and store links; results vary by country and listings, totals need shown shipping, and typical ranges may be missing.
- [OverDrive API](https://fous.com/workflows/overdrive.md): Find ebooks and audiobooks at public libraries.
- [Google Patents API](https://fous.com/workflows/google-patents.md): Google Patents searches public records and provides patent details and company summaries; legal status is estimated, and citations, claims, and company breakdowns have record limits.
- [All Education workflows](https://fous.com/workflows/category/education)
