<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.myconfig.html">myconfig</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#getUserSettings">getUserSettings()</a></code></p>
<p class="firstline">Gets the current settings for the user.</p>
<p class="toc_element">
  <code><a href="#releaseDownloadAccess">releaseDownloadAccess(volumeIds, cpksver, source=None, locale=None)</a></code></p>
<p class="firstline">Release downloaded content access restriction.</p>
<p class="toc_element">
  <code><a href="#requestAccess">requestAccess(source, volumeId, nonce, cpksver, licenseTypes=None, locale=None)</a></code></p>
<p class="firstline">Request concurrent and download access restrictions.</p>
<p class="toc_element">
  <code><a href="#syncVolumeLicenses">syncVolumeLicenses(source, nonce, cpksver, features=None, locale=None, includeNonComicsSeries=None, showPreorders=None, volumeIds=None)</a></code></p>
<p class="firstline">Request downloaded content access for specified volumes on the My eBooks shelf.</p>
<p class="toc_element">
  <code><a href="#updateUserSettings">updateUserSettings(body)</a></code></p>
<p class="firstline">Sets the settings for the user. If a sub-object is specified, it will overwrite the existing sub-object stored in the server. Unspecified sub-objects will retain the existing value.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="getUserSettings">getUserSettings()</code>
  <pre>Gets the current settings for the user.

Args:

Returns:
  An object of the form:

    {
    "notification": {
      "moreFromSeries": {
        "opted_state": "A String",
      },
      "rewardExpirations": {
        "opted_state": "A String",
      },
      "moreFromAuthors": {
        "opted_state": "A String",
      },
    },
    "kind": "books#usersettings", # Resource type.
    "notesExport": { # User settings in sub-objects, each for different purposes.
      "isEnabled": True or False,
      "folderName": "A String",
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="releaseDownloadAccess">releaseDownloadAccess(volumeIds, cpksver, source=None, locale=None)</code>
  <pre>Release downloaded content access restriction.

Args:
  volumeIds: string, The volume(s) to release restrictions for. (required) (repeated)
  cpksver: string, The device/version ID from which to release the restriction. (required)
  source: string, String to identify the originator of this request.
  locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.

Returns:
  An object of the form:

    {
    "downloadAccessList": [ # A list of download access responses.
      {
        "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.
      },
    ],
    "kind": "books#downloadAccesses", # Resource type.
  }</pre>
</div>

<div class="method">
    <code class="details" id="requestAccess">requestAccess(source, volumeId, nonce, cpksver, licenseTypes=None, locale=None)</code>
  <pre>Request concurrent and download access restrictions.

Args:
  source: string, String to identify the originator of this request. (required)
  volumeId: string, The volume to request concurrent/download restrictions for. (required)
  nonce: string, The client nonce value. (required)
  cpksver: string, The device/version ID from which to request the restrictions. (required)
  licenseTypes: string, The type of access license to request. If not specified, the default is BOTH.
    Allowed values
      BOTH - Both concurrent and download licenses.
      CONCURRENT - Concurrent access license.
      DOWNLOAD - Offline download access license.
  locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.

Returns:
  An object of the form:

    {
    "downloadAccess": { # A download access response.
      "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.
    },
    "kind": "books#requestAccess", # Resource type.
    "concurrentAccess": { # A concurrent access response.
      "nonce": "A String", # Client nonce for verification. Download access and client-validation only.
      "kind": "books#concurrentAccessRestriction", # Resource type.
      "restricted": True or False, # Whether this volume has any concurrent access restrictions.
      "volumeId": "A String", # Identifies the volume for which this entry applies.
      "maxConcurrentDevices": 42, # The maximum number of concurrent access licenses for this volume.
      "deviceAllowed": True or False, # Whether access is granted for this (user, device, volume).
      "source": "A String", # Client app identifier for verification. Download access and client-validation only.
      "timeWindowSeconds": 42, # Time in seconds for license auto-expiration.
      "signature": "A String", # Response signature.
      "reasonCode": "A String", # Error/warning reason code.
      "message": "A String", # Error/warning message.
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="syncVolumeLicenses">syncVolumeLicenses(source, nonce, cpksver, features=None, locale=None, includeNonComicsSeries=None, showPreorders=None, volumeIds=None)</code>
  <pre>Request downloaded content access for specified volumes on the My eBooks shelf.

Args:
  source: string, String to identify the originator of this request. (required)
  nonce: string, The client nonce value. (required)
  cpksver: string, The device/version ID from which to release the restriction. (required)
  features: string, List of features supported by the client, i.e., 'RENTALS' (repeated)
    Allowed values
      RENTALS - Client supports rentals.
  locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
  includeNonComicsSeries: boolean, Set to true to include non-comics series. Defaults to false.
  showPreorders: boolean, Set to true to show pre-ordered books. Defaults to false.
  volumeIds: string, The volume(s) to request download restrictions for. (repeated)

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.)
          "quoteSharingAllowed": True or False, # Whether quote sharing is allowed for this volume.
          "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.
          "driveImportedContentLink": "A String", # URL to the Google Drive viewer if this volume is uploaded by the user by selecting the file from Google Drive.
          "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.)
          },
          "explicitOfflineLicenseManagement": True or False, # Whether this volume requires that the client explicitly request offline download license rather than have it done automatically when loading the content, if the client supports it.
          "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).
          "offers": [ # Offers available for this volume (sales and rentals).
            {
              "rentalDuration": { # The rental duration (for rental offers only).
                "count": 3.14,
                "unit": "A String",
              },
              "retailPrice": { # Offer retail (=discounted) price in Micros
                "currencyCode": "A String",
                "amountInMicros": 3.14,
              },
              "listPrice": { # Offer list (=undiscounted) price in Micros.
                "currencyCode": "A String",
                "amountInMicros": 3.14,
              },
              "giftable": True or False, # Indicates whether the offer is giftable.
              "finskyOfferType": 42, # The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
            },
          ],
          "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, FOR_RENTAL_ONLY, FOR_SALE_AND_RENTAL, 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.
          "subtitle": "A String", # Volume subtitle. (In LITE projection.)
          "pageCount": 42, # Total number of pages as per publisher metadata.
          "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.
          "seriesInfo": {
            "bookDisplayNumber": "A String", # The display number string. This should be used only for display purposes and the actual sequence should be inferred from the below orderNumber.
            "kind": "books#volume_series_info", # Resource type.
            "shortSeriesBookTitle": "A String", # Short book title in the context of the series.
            "volumeSeries": [
              {
                "orderNumber": 42, # The book order number in the series.
                "seriesId": "A String", # The series id.
                "issue": [ # List of issues. Applicable only for Collection Edition and Omnibus.
                  {
                    "issueOrderNumber": 42,
                    "issueDisplayNumber": "A String",
                  },
                ],
                "seriesBookType": "A String", # The book type in the context of series. Examples - Single Issue, Collection Edition, etc.
              },
            ],
          },
          "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).
          },
          "previewLink": "A String", # URL to preview this volume on the Google Books site.
          "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.
            },
          ],
          "canonicalVolumeLink": "A String", # Canonical URL for a volume. (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.)
          "publishedDate": "A String", # Date of publication. (In LITE projection.)
          "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)
          },
          "authors": [ # The names of the authors and/or editors for this volume. (In LITE projection)
            "A String",
          ],
          "categories": [ # A list of subject categories, such as "Fiction", "Suspense", etc.
            "A String",
          ],
          "panelizationSummary": { # A top-level summary of the panelization info in this volume.
            "containsEpubBubbles": True or False,
            "epubBubbleVersion": "A String",
            "imageBubbleVersion": "A String",
            "containsImageBubbles": True or False,
          },
          "publisher": "A String", # Publisher of this volume. (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.
          "maturityRating": "A String",
          "allowAnonLogging": True or False, # Whether anonymous logging should be allowed.
          "title": "A String", # Volume title. (In LITE projection.)
          "printType": "A String", # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
          "samplePageCount": 42, # Total number of sample pages as per publisher metadata.
          "readingModes": "", # The reading modes available for this volume.
          "printedPageCount": 42, # Total number of printed pages in generated pdf representation.
          "averageRating": 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
          "infoLink": "A String", # URL to view information about this volume on the Google Books site. (In LITE projection)
          "ratingsCount": 42, # The number of review ratings for this volume.
        },
        "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)
          "isFamilySharedFromUser": True or False, # Whether or not the user shared this volume with the family.
          "isInMyBooks": True or False, # Whether or not this volume is currently in "my books."
          "acquisitionType": 42, # How this volume was acquired.
          "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).
          "userUploadedVolumeInfo": {
            "processingState": "A String",
          },
          "rentalPeriod": { # Period during this book is/was a valid rental.
            "startUtcSec": "A String",
            "endUtcSec": "A String",
          },
          "familySharing": { # Information on the ability to share with the family.
            "isSharingDisabledByFop": True or False, # Whether or not sharing this volume is temporarily disabled due to issues with the Family Wallet.
            "familyRole": "A String", # The role of the user in the family.
            "isSharingAllowed": True or False, # Whether or not this volume can be shared with the family by the user. This includes sharing eligibility of both the volume and the user. If the value is true, the user can initiate a family sharing action.
          },
          "rentalState": "A String", # Whether this book is an active or an expired rental.
          "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.)
          "isFamilySharingAllowed": True or False, # Deprecated: Replaced by familySharing.
          "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.
          },
          "isFamilySharedToUser": True or False, # Whether or not the user received this volume through family sharing.
          "entitlementType": 42, # Whether this volume is purchased, sample, pd download etc.
          "copy": { # Copy/Paste accounting information.
            "limitType": "A String",
            "remainingCharacterCount": 42,
            "updated": "A String",
            "allowedCharacterCount": 42,
          },
          "isFamilySharingDisabledByFop": True or False, # Deprecated: Replaced by familySharing.
          "isUploaded": True or False, # Whether or not this volume was user uploaded.
          "acquiredTime": "A String", # Timestamp when this volume was acquired by the user. (RFC 3339 UTC date-time format) Acquiring includes purchase, user upload, receiving family sharing, etc.
        },
      },
    ],
    "kind": "books#volumes", # Resource type.
  }</pre>
</div>

<div class="method">
    <code class="details" id="updateUserSettings">updateUserSettings(body)</code>
  <pre>Sets the settings for the user. If a sub-object is specified, it will overwrite the existing sub-object stored in the server. Unspecified sub-objects will retain the existing value.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{
  "notification": {
    "moreFromSeries": {
      "opted_state": "A String",
    },
    "rewardExpirations": {
      "opted_state": "A String",
    },
    "moreFromAuthors": {
      "opted_state": "A String",
    },
  },
  "kind": "books#usersettings", # Resource type.
  "notesExport": { # User settings in sub-objects, each for different purposes.
    "isEnabled": True or False,
    "folderName": "A String",
  },
}


Returns:
  An object of the form:

    {
    "notification": {
      "moreFromSeries": {
        "opted_state": "A String",
      },
      "rewardExpirations": {
        "opted_state": "A String",
      },
      "moreFromAuthors": {
        "opted_state": "A String",
      },
    },
    "kind": "books#usersettings", # Resource type.
    "notesExport": { # User settings in sub-objects, each for different purposes.
      "isEnabled": True or False,
      "folderName": "A String",
    },
  }</pre>
</div>

</body></html>