<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="books_v1.html">Books API</a> . <a href="books_v1.volumes.html">volumes</a> . <a href="books_v1.volumes.recommended.html">recommended</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#list">list(source=None, locale=None)</a></code></p>
<p class="firstline">Return a list of recommended books for the current user.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="list">list(source=None, locale=None)</code>
  <pre>Return a list of recommended books for the current user.

Args:
  source: string, String to identify the originator of this request.
  locale: string, ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. Used for generating recommendations.

Returns:
  An object of the form:

    {
    "totalItems": 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
    "items": [ # A list of volumes.
      {
        "kind": "books#volume", # Resource type for a volume. (In LITE projection.)
        "accessInfo": { # Any information about a volume related to reading or obtaining that volume text. This information can depend on country (books may be public domain in one country but not in another, e.g.).
          "webReaderLink": "A String", # URL to read this volume on the Google Books site. Link will not allow users to read non-viewable volumes.
          "publicDomain": True or False, # Whether or not this book is public domain in the country listed above.
          "embeddable": True or False, # Whether this volume can be embedded in a viewport using the Embedded Viewer API.
          "downloadAccess": { # Information about a volume's download license access restrictions.
            "nonce": "A String", # Client nonce for verification. Download access and client-validation only.
            "kind": "books#downloadAccessRestriction", # Resource type.
            "justAcquired": True or False, # If deviceAllowed, whether access was just acquired with this request.
            "maxDownloadDevices": 42, # If restricted, the maximum number of content download licenses for this volume.
            "downloadsAcquired": 42, # If restricted, the number of content download licenses already acquired (including the requesting client, if licensed).
            "signature": "A String", # Response signature.
            "volumeId": "A String", # Identifies the volume for which this entry applies.
            "deviceAllowed": True or False, # If restricted, whether access is granted for this (user, device, volume).
            "source": "A String", # Client app identifier for verification. Download access and client-validation only.
            "restricted": True or False, # Whether this volume has any download access restrictions.
            "reasonCode": "A String", # Error/warning reason code. Additional codes may be added in the future. 0 OK 100 ACCESS_DENIED_PUBLISHER_LIMIT 101 ACCESS_DENIED_LIMIT 200 WARNING_USED_LAST_ACCESS
            "message": "A String", # Error/warning message.
          },
          "country": "A String", # The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)
          "viewOrderUrl": "A String", # For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page.
          "textToSpeechPermission": "A String", # Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.
          "pdf": { # Information about pdf content. (In LITE projection.)
            "isAvailable": True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)
            "downloadLink": "A String", # URL to download pdf. (In LITE projection.)
            "acsTokenLink": "A String", # URL to retrieve ACS token for pdf download. (In LITE projection.)
          },
          "viewability": "A String", # The read access of a volume. Possible values are PARTIAL, ALL_PAGES, NO_PAGES or UNKNOWN. This value depends on the country listed above. A value of PARTIAL means that the publisher has allowed some portion of the volume to be viewed publicly, without purchase. This can apply to eBooks as well as non-eBooks. Public domain books will always have a value of ALL_PAGES.
          "epub": { # Information about epub content. (In LITE projection.)
            "isAvailable": True or False, # Is a flowing text epub available either as public domain or for purchase. (In LITE projection.)
            "downloadLink": "A String", # URL to download epub. (In LITE projection.)
            "acsTokenLink": "A String", # URL to retrieve ACS token for epub download. (In LITE projection.)
          },
          "accessViewStatus": "A String", # Combines the access and viewability of this volume into a single status field for this user. Values can be FULL_PURCHASED, FULL_PUBLIC_DOMAIN, SAMPLE or NONE. (In LITE projection.)
        },
        "searchInfo": { # Search result information related to this volume.
          "textSnippet": "A String", # A text snippet containing the search query.
        },
        "saleInfo": { # Any information about a volume related to the eBookstore and/or purchaseability. This information can depend on the country where the request originates from (i.e. books may not be for sale in certain countries).
          "country": "A String", # The two-letter ISO_3166-1 country code for which this sale information is valid. (In LITE projection.)
          "retailPrice": { # The actual selling price of the book. This is the same as the suggested retail or list price unless there are offers or discounts on this volume. (In LITE projection.)
            "amount": 3.14, # Amount in the currency listed below. (In LITE projection.)
            "currencyCode": "A String", # An ISO 4217, three-letter currency code. (In LITE projection.)
          },
          "isEbook": True or False, # Whether or not this volume is an eBook (can be added to the My eBooks shelf).
          "saleability": "A String", # Whether or not this book is available for sale or offered for free in the Google eBookstore for the country listed above. Possible values are FOR_SALE, FREE, NOT_FOR_SALE, or FOR_PREORDER.
          "buyLink": "A String", # URL to purchase this volume on the Google Books site. (In LITE projection)
          "onSaleDate": "A String", # The date on which this book is available for sale.
          "listPrice": { # Suggested retail price. (In LITE projection.)
            "amount": 3.14, # Amount in the currency listed below. (In LITE projection.)
            "currencyCode": "A String", # An ISO 4217, three-letter currency code. (In LITE projection.)
          },
        },
        "etag": "A String", # Opaque identifier for a specific version of a volume resource. (In LITE projection)
        "selfLink": "A String", # URL to this resource. (In LITE projection.)
        "volumeInfo": { # General volume information.
          "publisher": "A String", # Publisher of this volume. (In LITE projection.)
          "subtitle": "A String", # Volume subtitle. (In LITE projection.)
          "description": "A String", # A synopsis of the volume. The text of the description is formatted in HTML and includes simple formatting elements, such as b, i, and br tags. (In LITE projection.)
          "language": "A String", # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as 'fr', 'en', etc.
          "pageCount": 42, # Total number of pages.
          "imageLinks": { # A list of image links for all the sizes that are available. (In LITE projection.)
            "medium": "A String", # Image link for medium size (width of ~575 pixels). (In LITE projection)
            "smallThumbnail": "A String", # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)
            "large": "A String", # Image link for large size (width of ~800 pixels). (In LITE projection)
            "extraLarge": "A String", # Image link for extra large size (width of ~1280 pixels). (In LITE projection)
            "small": "A String", # Image link for small size (width of ~300 pixels). (In LITE projection)
            "thumbnail": "A String", # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)
          },
          "publishedDate": "A String", # Date of publication. (In LITE projection.)
          "previewLink": "A String", # URL to preview this volume on the Google Books site.
          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
          "ratingsCount": 42, # The number of review ratings for this volume.
          "mainCategory": "A String", # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.
          "dimensions": { # Physical dimensions of this volume.
            "width": "A String", # Width of this volume (in cm).
            "thickness": "A String", # Thickness of this volume (in cm).
            "height": "A String", # Height or length of this volume (in cm).
          },
          "contentVersion": "A String", # An identifier for the version of the volume content (text & images). (In LITE projection)
          "industryIdentifiers": [ # Industry standard identifiers for this volume.
            {
              "identifier": "A String", # Industry specific volume identifier.
              "type": "A String", # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.
            },
          ],
          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
            "A String",
          ],
          "title": "A String", # Volume title. (In LITE projection.)
          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (In LITE projection.)
          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
            "A String",
          ],
          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
        },
        "recommendedInfo": { # Recommendation related information for this volume.
          "explanation": "A String", # A text explaining why this volume is recommended.
        },
        "id": "A String", # Unique identifier for a volume. (In LITE projection.)
        "layerInfo": { # What layers exist in this volume and high level information about them.
          "layers": [ # A layer should appear here if and only if the layer exists for this book.
            {
              "volumeAnnotationsVersion": "A String", # The current version of this layer's volume annotations. Note that this version applies only to the data in the books.layers.volumeAnnotations.* responses. The actual annotation data is versioned separately.
              "layerId": "A String", # The layer id of this layer (e.g. "geo").
            },
          ],
        },
        "userInfo": { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)
          "isInMyBooks": True or False, # Whether or not this volume is currently in "my books."
          "updated": "A String", # Timestamp when this volume was last modified by a user action, such as a reading position update, volume purchase or writing a review. (RFC 3339 UTC date-time format).
          "review": { # This user's review of this volume, if one exists.
            "rating": "A String", # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.
            "kind": "books#review", # Resource type for a review.
            "author": { # Author of this review.
              "displayName": "A String", # Name of this person.
            },
            "title": "A String", # Title for this review.
            "volumeId": "A String", # Volume that this review is for.
            "content": "A String", # Review text.
            "source": { # Information regarding the source of this review, when the review is not from a Google Books user.
              "extraDescription": "A String", # Extra text about the source of the review.
              "url": "A String", # URL of the source of the review.
              "description": "A String", # Name of the source.
            },
            "date": "A String", # Date of this review.
            "type": "A String", # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.
            "fullTextUrl": "A String", # URL for the full review text, for reviews gathered from the web.
          },
          "isPurchased": True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)
          "readingPosition": { # The user's current reading position in the volume, if one is available. (In LITE projection.)
            "kind": "books#readingPosition", # Resource type for a reading position.
            "gbImagePosition": "A String", # Position in a volume for image-based content.
            "epubCfiPosition": "A String", # Position in an EPUB as a CFI.
            "updated": "A String", # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).
            "volumeId": "A String", # Volume id associated with this reading position.
            "pdfPosition": "A String", # Position in a PDF file.
            "gbTextPosition": "A String", # Position in a volume for text-based content.
          },
          "isPreordered": True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)
        },
      },
    ],
    "kind": "books#volumes", # Resource type.
  }</pre>
</div>

</body></html>