<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.useruploaded.html">useruploaded</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#list">list(maxResults=None, volumeId=None, processingState=None, startIndex=None, source=None, locale=None, x__xgafv=None)</a></code></p>
<p class="firstline">Return a list of books uploaded by the current user.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="list">list(maxResults=None, volumeId=None, processingState=None, startIndex=None, source=None, locale=None, x__xgafv=None)</code>
  <pre>Return a list of books uploaded by the current user.

Args:
  maxResults: integer, Maximum number of results to return.
  volumeId: string, The ids of the volumes to be returned. If not specified all that match the processingState are returned. (repeated)
  processingState: string, The processing state of the user uploaded volumes to be returned. (repeated)
    Allowed values
      PROCESSING_STATE_UNDEFINED - 
      COMPLETED_FAILED - The volume processing hase failed.
      COMPLETED_SUCCESS - The volume processing was completed.
      RUNNING - The volume processing is not completed.
  startIndex: integer, Index of the first result to return (starts at 0)
  source: string, String to identify the originator of this request.
  locale: string, ISO-639-1 language and ISO-3166-1 country code. Ex: &#x27;en_US&#x27;. Used for generating recommendations.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &quot;items&quot;: [ # A list of volumes.
      {
        &quot;layerInfo&quot;: { # What layers exist in this volume and high level information about them.
          &quot;layers&quot;: [ # A layer should appear here if and only if the layer exists for this book.
            {
              &quot;layerId&quot;: &quot;A String&quot;, # The layer id of this layer (e.g. &quot;geo&quot;).
              &quot;volumeAnnotationsVersion&quot;: &quot;A String&quot;, # The current version of this layer&#x27;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.
            },
          ],
        },
        &quot;searchInfo&quot;: { # Search result information related to this volume.
          &quot;textSnippet&quot;: &quot;A String&quot;, # A text snippet containing the search query.
        },
        &quot;userInfo&quot;: { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)
          &quot;updated&quot;: &quot;A String&quot;, # 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).
          &quot;isUploaded&quot;: True or False, # Whether or not this volume was user uploaded.
          &quot;isFamilySharedToUser&quot;: True or False, # Whether or not the user received this volume through family sharing.
          &quot;isPurchased&quot;: True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)
          &quot;readingPosition&quot;: { # The user&#x27;s current reading position in the volume, if one is available. (In LITE projection.)
            &quot;gbImagePosition&quot;: &quot;A String&quot;, # Position in a volume for image-based content.
            &quot;kind&quot;: &quot;A String&quot;, # Resource type for a reading position.
            &quot;volumeId&quot;: &quot;A String&quot;, # Volume id associated with this reading position.
            &quot;updated&quot;: &quot;A String&quot;, # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).
            &quot;epubCfiPosition&quot;: &quot;A String&quot;, # Position in an EPUB as a CFI.
            &quot;pdfPosition&quot;: &quot;A String&quot;, # Position in a PDF file.
            &quot;gbTextPosition&quot;: &quot;A String&quot;, # Position in a volume for text-based content.
          },
          &quot;isFamilySharingAllowed&quot;: True or False, # Deprecated: Replaced by familySharing.
          &quot;isFamilySharingDisabledByFop&quot;: True or False, # Deprecated: Replaced by familySharing.
          &quot;acquisitionType&quot;: 42, # How this volume was acquired.
          &quot;acquiredTime&quot;: &quot;A String&quot;, # Timestamp when this volume was acquired by the user. (RFC 3339 UTC date-time format) Acquiring includes purchase, user upload, receiving family sharing, etc.
          &quot;review&quot;: { # This user&#x27;s review of this volume, if one exists.
            &quot;date&quot;: &quot;A String&quot;, # Date of this review.
            &quot;type&quot;: &quot;A String&quot;, # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.
            &quot;volumeId&quot;: &quot;A String&quot;, # Volume that this review is for.
            &quot;rating&quot;: &quot;A String&quot;, # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.
            &quot;source&quot;: { # Information regarding the source of this review, when the review is not from a Google Books user.
              &quot;url&quot;: &quot;A String&quot;, # URL of the source of the review.
              &quot;extraDescription&quot;: &quot;A String&quot;, # Extra text about the source of the review.
              &quot;description&quot;: &quot;A String&quot;, # Name of the source.
            },
            &quot;content&quot;: &quot;A String&quot;, # Review text.
            &quot;fullTextUrl&quot;: &quot;A String&quot;, # URL for the full review text, for reviews gathered from the web.
            &quot;author&quot;: { # Author of this review.
              &quot;displayName&quot;: &quot;A String&quot;, # Name of this person.
            },
            &quot;kind&quot;: &quot;A String&quot;, # Resource type for a review.
            &quot;title&quot;: &quot;A String&quot;, # Title for this review.
          },
          &quot;userUploadedVolumeInfo&quot;: {
            &quot;processingState&quot;: &quot;A String&quot;,
          },
          &quot;rentalState&quot;: &quot;A String&quot;, # Whether this book is an active or an expired rental.
          &quot;familySharing&quot;: { # Information on the ability to share with the family.
            &quot;isSharingAllowed&quot;: 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.
            &quot;isSharingDisabledByFop&quot;: True or False, # Whether or not sharing this volume is temporarily disabled due to issues with the Family Wallet.
            &quot;familyRole&quot;: &quot;A String&quot;, # The role of the user in the family.
          },
          &quot;rentalPeriod&quot;: { # Period during this book is/was a valid rental.
            &quot;startUtcSec&quot;: &quot;A String&quot;,
            &quot;endUtcSec&quot;: &quot;A String&quot;,
          },
          &quot;isInMyBooks&quot;: True or False, # Whether or not this volume is currently in &quot;my books.&quot;
          &quot;copy&quot;: { # Copy/Paste accounting information.
            &quot;updated&quot;: &quot;A String&quot;,
            &quot;limitType&quot;: &quot;A String&quot;,
            &quot;allowedCharacterCount&quot;: 42,
            &quot;remainingCharacterCount&quot;: 42,
          },
          &quot;entitlementType&quot;: 42, # Whether this volume is purchased, sample, pd download etc.
          &quot;isPreordered&quot;: True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)
          &quot;isFamilySharedFromUser&quot;: True or False, # Whether or not the user shared this volume with the family.
        },
        &quot;kind&quot;: &quot;A String&quot;, # Resource type for a volume. (In LITE projection.)
        &quot;etag&quot;: &quot;A String&quot;, # Opaque identifier for a specific version of a volume resource. (In LITE projection)
        &quot;saleInfo&quot;: { # 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).
          &quot;buyLink&quot;: &quot;A String&quot;, # URL to purchase this volume on the Google Books site. (In LITE projection)
          &quot;listPrice&quot;: { # Suggested retail price. (In LITE projection.)
            &quot;amount&quot;: 3.14, # Amount in the currency listed below. (In LITE projection.)
            &quot;currencyCode&quot;: &quot;A String&quot;, # An ISO 4217, three-letter currency code. (In LITE projection.)
          },
          &quot;retailPrice&quot;: { # 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.)
            &quot;currencyCode&quot;: &quot;A String&quot;, # An ISO 4217, three-letter currency code. (In LITE projection.)
            &quot;amount&quot;: 3.14, # Amount in the currency listed below. (In LITE projection.)
          },
          &quot;isEbook&quot;: True or False, # Whether or not this volume is an eBook (can be added to the My eBooks shelf).
          &quot;offers&quot;: [ # Offers available for this volume (sales and rentals).
            {
              &quot;rentalDuration&quot;: { # The rental duration (for rental offers only).
                &quot;count&quot;: 3.14,
                &quot;unit&quot;: &quot;A String&quot;,
              },
              &quot;giftable&quot;: True or False, # Indicates whether the offer is giftable.
              &quot;listPrice&quot;: { # Offer list (=undiscounted) price in Micros.
                &quot;amountInMicros&quot;: 3.14,
                &quot;currencyCode&quot;: &quot;A String&quot;,
              },
              &quot;finskyOfferType&quot;: 42, # The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
              &quot;retailPrice&quot;: { # Offer retail (=discounted) price in Micros
                &quot;amountInMicros&quot;: 3.14,
                &quot;currencyCode&quot;: &quot;A String&quot;,
              },
            },
          ],
          &quot;country&quot;: &quot;A String&quot;, # The two-letter ISO_3166-1 country code for which this sale information is valid. (In LITE projection.)
          &quot;saleability&quot;: &quot;A String&quot;, # 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.
          &quot;onSaleDate&quot;: &quot;A String&quot;, # The date on which this book is available for sale.
        },
        &quot;volumeInfo&quot;: { # General volume information.
          &quot;authors&quot;: [ # The names of the authors and/or editors for this volume. (In LITE projection)
            &quot;A String&quot;,
          ],
          &quot;samplePageCount&quot;: 42, # Total number of sample pages as per publisher metadata.
          &quot;seriesInfo&quot;: {
            &quot;bookDisplayNumber&quot;: &quot;A String&quot;, # The display number string. This should be used only for display purposes and the actual sequence should be inferred from the below orderNumber.
            &quot;kind&quot;: &quot;A String&quot;, # Resource type.
            &quot;volumeSeries&quot;: [
              {
                &quot;seriesBookType&quot;: &quot;A String&quot;, # The book type in the context of series. Examples - Single Issue, Collection Edition, etc.
                &quot;issue&quot;: [ # List of issues. Applicable only for Collection Edition and Omnibus.
                  {
                    &quot;issueDisplayNumber&quot;: &quot;A String&quot;,
                    &quot;issueOrderNumber&quot;: 42,
                  },
                ],
                &quot;orderNumber&quot;: 42, # The book order number in the series.
                &quot;seriesId&quot;: &quot;A String&quot;, # The series id.
              },
            ],
            &quot;shortSeriesBookTitle&quot;: &quot;A String&quot;, # Short book title in the context of the series.
          },
          &quot;publishedDate&quot;: &quot;A String&quot;, # Date of publication. (In LITE projection.)
          &quot;contentVersion&quot;: &quot;A String&quot;, # An identifier for the version of the volume content (text &amp; images). (In LITE projection)
          &quot;ratingsCount&quot;: 42, # The number of review ratings for this volume.
          &quot;subtitle&quot;: &quot;A String&quot;, # Volume subtitle. (In LITE projection.)
          &quot;comicsContent&quot;: True or False, # Whether the volume has comics content.
          &quot;printType&quot;: &quot;A String&quot;, # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
          &quot;language&quot;: &quot;A String&quot;, # Best language for this volume (based on content). It is the two-letter ISO 639-1 code such as &#x27;fr&#x27;, &#x27;en&#x27;, etc.
          &quot;imageLinks&quot;: { # A list of image links for all the sizes that are available. (In LITE projection.)
            &quot;extraLarge&quot;: &quot;A String&quot;, # Image link for extra large size (width of ~1280 pixels). (In LITE projection)
            &quot;large&quot;: &quot;A String&quot;, # Image link for large size (width of ~800 pixels). (In LITE projection)
            &quot;small&quot;: &quot;A String&quot;, # Image link for small size (width of ~300 pixels). (In LITE projection)
            &quot;medium&quot;: &quot;A String&quot;, # Image link for medium size (width of ~575 pixels). (In LITE projection)
            &quot;thumbnail&quot;: &quot;A String&quot;, # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)
            &quot;smallThumbnail&quot;: &quot;A String&quot;, # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)
          },
          &quot;averageRating&quot;: 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
          &quot;title&quot;: &quot;A String&quot;, # Volume title. (In LITE projection.)
          &quot;publisher&quot;: &quot;A String&quot;, # Publisher of this volume. (In LITE projection.)
          &quot;allowAnonLogging&quot;: True or False, # Whether anonymous logging should be allowed.
          &quot;pageCount&quot;: 42, # Total number of pages as per publisher metadata.
          &quot;panelizationSummary&quot;: { # A top-level summary of the panelization info in this volume.
            &quot;containsImageBubbles&quot;: True or False,
            &quot;epubBubbleVersion&quot;: &quot;A String&quot;,
            &quot;imageBubbleVersion&quot;: &quot;A String&quot;,
            &quot;containsEpubBubbles&quot;: True or False,
          },
          &quot;maturityRating&quot;: &quot;A String&quot;,
          &quot;description&quot;: &quot;A String&quot;, # 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.)
          &quot;canonicalVolumeLink&quot;: &quot;A String&quot;, # Canonical URL for a volume. (In LITE projection.)
          &quot;mainCategory&quot;: &quot;A String&quot;, # The main category to which this volume belongs. It will be the category from the categories list returned below that has the highest weight.
          &quot;printedPageCount&quot;: 42, # Total number of printed pages in generated pdf representation.
          &quot;dimensions&quot;: { # Physical dimensions of this volume.
            &quot;height&quot;: &quot;A String&quot;, # Height or length of this volume (in cm).
            &quot;thickness&quot;: &quot;A String&quot;, # Thickness of this volume (in cm).
            &quot;width&quot;: &quot;A String&quot;, # Width of this volume (in cm).
          },
          &quot;categories&quot;: [ # A list of subject categories, such as &quot;Fiction&quot;, &quot;Suspense&quot;, etc.
            &quot;A String&quot;,
          ],
          &quot;infoLink&quot;: &quot;A String&quot;, # URL to view information about this volume on the Google Books site. (In LITE projection)
          &quot;readingModes&quot;: { # The reading modes available for this volume.
            &quot;text&quot;: True or False,
            &quot;image&quot;: True or False,
          },
          &quot;previewLink&quot;: &quot;A String&quot;, # URL to preview this volume on the Google Books site.
          &quot;industryIdentifiers&quot;: [ # Industry standard identifiers for this volume.
            {
              &quot;type&quot;: &quot;A String&quot;, # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.
              &quot;identifier&quot;: &quot;A String&quot;, # Industry specific volume identifier.
            },
          ],
        },
        &quot;recommendedInfo&quot;: { # Recommendation related information for this volume.
          &quot;explanation&quot;: &quot;A String&quot;, # A text explaining why this volume is recommended.
        },
        &quot;selfLink&quot;: &quot;A String&quot;, # URL to this resource. (In LITE projection.)
        &quot;accessInfo&quot;: { # 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.).
          &quot;downloadAccess&quot;: { # Information about a volume&#x27;s download license access restrictions.
            &quot;signature&quot;: &quot;A String&quot;, # Response signature.
            &quot;downloadsAcquired&quot;: 42, # If restricted, the number of content download licenses already acquired (including the requesting client, if licensed).
            &quot;restricted&quot;: True or False, # Whether this volume has any download access restrictions.
            &quot;maxDownloadDevices&quot;: 42, # If restricted, the maximum number of content download licenses for this volume.
            &quot;source&quot;: &quot;A String&quot;, # Client app identifier for verification. Download access and client-validation only.
            &quot;kind&quot;: &quot;A String&quot;, # Resource type.
            &quot;reasonCode&quot;: &quot;A String&quot;, # 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
            &quot;nonce&quot;: &quot;A String&quot;, # Client nonce for verification. Download access and client-validation only.
            &quot;volumeId&quot;: &quot;A String&quot;, # Identifies the volume for which this entry applies.
            &quot;message&quot;: &quot;A String&quot;, # Error/warning message.
            &quot;deviceAllowed&quot;: True or False, # If restricted, whether access is granted for this (user, device, volume).
            &quot;justAcquired&quot;: True or False, # If deviceAllowed, whether access was just acquired with this request.
          },
          &quot;quoteSharingAllowed&quot;: True or False, # Whether quote sharing is allowed for this volume.
          &quot;textToSpeechPermission&quot;: &quot;A String&quot;, # Whether text-to-speech is permitted for this volume. Values can be ALLOWED, ALLOWED_FOR_ACCESSIBILITY, or NOT_ALLOWED.
          &quot;viewability&quot;: &quot;A String&quot;, # 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.
          &quot;pdf&quot;: { # Information about pdf content. (In LITE projection.)
            &quot;isAvailable&quot;: True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)
            &quot;acsTokenLink&quot;: &quot;A String&quot;, # URL to retrieve ACS token for pdf download. (In LITE projection.)
            &quot;downloadLink&quot;: &quot;A String&quot;, # URL to download pdf. (In LITE projection.)
          },
          &quot;epub&quot;: { # Information about epub content. (In LITE projection.)
            &quot;isAvailable&quot;: True or False, # Is a flowing text epub available either as public domain or for purchase. (In LITE projection.)
            &quot;acsTokenLink&quot;: &quot;A String&quot;, # URL to retrieve ACS token for epub download. (In LITE projection.)
            &quot;downloadLink&quot;: &quot;A String&quot;, # URL to download epub. (In LITE projection.)
          },
          &quot;viewOrderUrl&quot;: &quot;A String&quot;, # For ordered but not yet processed orders, we give a URL that can be used to go to the appropriate Google Wallet page.
          &quot;publicDomain&quot;: True or False, # Whether or not this book is public domain in the country listed above.
          &quot;webReaderLink&quot;: &quot;A String&quot;, # URL to read this volume on the Google Books site. Link will not allow users to read non-viewable volumes.
          &quot;country&quot;: &quot;A String&quot;, # The two-letter ISO_3166-1 country code for which this access information is valid. (In LITE projection.)
          &quot;driveImportedContentLink&quot;: &quot;A String&quot;, # URL to the Google Drive viewer if this volume is uploaded by the user by selecting the file from Google Drive.
          &quot;accessViewStatus&quot;: &quot;A String&quot;, # 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.)
          &quot;embeddable&quot;: True or False, # Whether this volume can be embedded in a viewport using the Embedded Viewer API.
          &quot;explicitOfflineLicenseManagement&quot;: 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.
        },
        &quot;id&quot;: &quot;A String&quot;, # Unique identifier for a volume. (In LITE projection.)
      },
    ],
    &quot;kind&quot;: &quot;A String&quot;, # Resource type.
    &quot;totalItems&quot;: 42, # Total number of volumes found. This might be greater than the number of volumes returned in this response if results have been paginated.
  }</pre>
</div>

</body></html>