<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="#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, 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, locale=None, showPreorders=None, volumeIds=None)</a></code></p>
<p class="firstline">Request downloaded content access for specified volumes on the My eBooks shelf.</p>
<h3>Method Details</h3>
<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, 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)
  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, locale=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)
  locale: string, ISO-639-1, ISO-3166-1 codes for message localization, i.e. en_US.
  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.)
          "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>