---
title: "ListBooks"
method: GET
path: "/v1/shelves/{shelf}/books"
tags: ["LibraryService"]
---

# ListBooks

`GET /v1/shelves/{shelf}/books`

Lists books in a shelf. The order is unspecified but deterministic. Newly
 created books will not necessarily be added to the end of this list.
 Returns NOT_FOUND if the shelf does not exist.

## Path parameters

- `shelf` string, required

## Query parameters

- `page_size` integer
- `page_token` string

## Response `200`

OK

- ListBooksResponse — Response message for LibraryService.ListBooks.
  - `books` Book[] — The list of books.
    - `name` string, required — The resource name of the book. Book names have the form `shelves/{shelf_id}/books/{book_id}`. The name is ignored when creating a book.
    - `author` string — The name of the book author.
    - `title` string — The title of the book.
    - `read` boolean — Value indicating whether the book has been read.
    - `borrow_time` string, date-time — The previous borrowing timestamp.
    - `created_at` string, date-time — The creation date and time.
    - `updated_at` string, date-time — The last update date and time.
  - `next_page_token` string — A token to retrieve next page of results. Pass this value in the [ListBooksRequest.page_token][google.example.library.v1.ListBooksRequest.page_token] field in the subsequent call to `ListBooks` method to retrieve the next page of results.

## Other responses

- `default` — Default error response

## Changes

- **2022-04-11** (v1) `ac9d37cae0e0` — 2 breaking
  - the response's body type changed from no type to `object` for status `200`
  - the `books/items/` response's property type changed from no type to `object` for status `200`
- **2022-02-23** (v1) `639a4ec995ca` — 1 info
  - the response property `books/items/name` became required for the status `200`
- **2022-01-12** (v1) `dbd82bd71d47` — 1 breaking
  - the `books/items/borrow_time` response's property format changed from `RFC3339` to `date-time` for status `200`
- **2022-01-12** (v1) `00e696b6b84a` — 1 breaking, 1 info
  - the `books/items/borrow_time` response's property format changed from `date-time` to `RFC3339` for status `200`
  - the `books/items/name` response's property pattern `^shelves/[a-z2-7]{26}/books/[a-z2-7]{26}$` was added for the status `200`
- **2022-01-12** (v1) `fab7e7c2f60c` — 1 breaking
  - the `books/items/borrow_time` response's property format changed from `RFC3339` to `date-time` for status `200`

[Full history](https://skmtc.dev/kollalabs/apis/libraryservice-api/changes/v1/shelves/:shelf/books/get.md)

---

[API](https://skmtc.dev/kollalabs/apis/libraryservice-api.md) · [All operations](https://skmtc.dev/kollalabs/apis/libraryservice-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kollalabs/apis/libraryservice-api/revisions/b3518c94ac37?raw)
