<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(locale=None, maxResults=None, processingState=None, source=None, startIndex=None, volumeId=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(locale=None, maxResults=None, processingState=None, source=None, startIndex=None, volumeId=None, x__xgafv=None)</code>
  <pre>Return a list of books uploaded by the current user.

Args:
  locale: string, ISO-639-1 language and ISO-3166-1 country code. Ex: &#x27;en_US&#x27;. Used for generating recommendations.
  maxResults: integer, Maximum number of results to return.
  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.
  source: string, String to identify the originator of this request.
  startIndex: integer, Index of the first result to return (starts at 0)
  volumeId: string, The ids of the volumes to be returned. If not specified all that match the processingState are returned. (repeated)
  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;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;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;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;downloadAccess&quot;: { # Information about a volume&#x27;s download license access restrictions.
          &quot;deviceAllowed&quot;: True or False, # If restricted, whether access is granted for this (user, device, volume).
          &quot;downloadsAcquired&quot;: 42, # If restricted, the number of content download licenses already acquired (including the requesting client, if licensed).
          &quot;justAcquired&quot;: True or False, # If deviceAllowed, whether access was just acquired with this request.
          &quot;kind&quot;: &quot;A String&quot;, # Resource type.
          &quot;maxDownloadDevices&quot;: 42, # If restricted, the maximum number of content download licenses for this volume.
          &quot;message&quot;: &quot;A String&quot;, # Error/warning message.
          &quot;nonce&quot;: &quot;A String&quot;, # Client nonce for verification. Download access and client-validation only.
          &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;restricted&quot;: True or False, # Whether this volume has any download access restrictions.
          &quot;signature&quot;: &quot;A String&quot;, # Response signature.
          &quot;source&quot;: &quot;A String&quot;, # Client app identifier for verification. Download access and client-validation only.
          &quot;volumeId&quot;: &quot;A String&quot;, # Identifies the volume for which this entry applies.
        },
        &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;embeddable&quot;: True or False, # Whether this volume can be embedded in a viewport using the Embedded Viewer API.
        &quot;epub&quot;: { # Information about epub content. (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;isAvailable&quot;: True or False, # Is a flowing text epub available either as public domain or for purchase. (In LITE projection.)
        },
        &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;pdf&quot;: { # Information about pdf content. (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;isAvailable&quot;: True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)
        },
        &quot;publicDomain&quot;: True or False, # Whether or not this book is public domain in the country listed above.
        &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;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;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;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;etag&quot;: &quot;A String&quot;, # Opaque identifier for a specific version of a volume resource. (In LITE projection)
      &quot;id&quot;: &quot;A String&quot;, # Unique identifier for a volume. (In LITE projection.)
      &quot;kind&quot;: &quot;A String&quot;, # Resource type for a volume. (In LITE projection.)
      &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;recommendedInfo&quot;: { # Recommendation related information for this volume.
        &quot;explanation&quot;: &quot;A String&quot;, # A text explaining why this volume is recommended.
      },
      &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;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;isEbook&quot;: True or False, # Whether or not this volume is an eBook (can be added to the My eBooks shelf).
        &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;offers&quot;: [ # Offers available for this volume (sales and rentals).
          {
            &quot;finskyOfferType&quot;: 42, # The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
            &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;rentalDuration&quot;: { # The rental duration (for rental offers only).
              &quot;count&quot;: 3.14,
              &quot;unit&quot;: &quot;A String&quot;,
            },
            &quot;retailPrice&quot;: { # Offer retail (=discounted) price in Micros
              &quot;amountInMicros&quot;: 3.14,
              &quot;currencyCode&quot;: &quot;A String&quot;,
            },
          },
        ],
        &quot;onSaleDate&quot;: &quot;A String&quot;, # The date on which this book is available for sale.
        &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;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;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;searchInfo&quot;: { # Search result information related to this volume.
        &quot;textSnippet&quot;: &quot;A String&quot;, # A text snippet containing the search query.
      },
      &quot;selfLink&quot;: &quot;A String&quot;, # URL to this resource. (In LITE projection.)
      &quot;userInfo&quot;: { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)
        &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;acquisitionType&quot;: 42, # How this volume was acquired.
        &quot;copy&quot;: { # Copy/Paste accounting information.
          &quot;allowedCharacterCount&quot;: 42,
          &quot;limitType&quot;: &quot;A String&quot;,
          &quot;remainingCharacterCount&quot;: 42,
          &quot;updated&quot;: &quot;A String&quot;,
        },
        &quot;entitlementType&quot;: 42, # Whether this volume is purchased, sample, pd download etc.
        &quot;familySharing&quot;: { # Information on the ability to share with the family.
          &quot;familyRole&quot;: &quot;A String&quot;, # The role of the user in 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;isFamilySharedFromUser&quot;: True or False, # Whether or not the user shared this volume with the family.
        &quot;isFamilySharedToUser&quot;: True or False, # Whether or not the user received this volume through family sharing.
        &quot;isFamilySharingAllowed&quot;: True or False, # Deprecated: Replaced by familySharing.
        &quot;isFamilySharingDisabledByFop&quot;: True or False, # Deprecated: Replaced by familySharing.
        &quot;isInMyBooks&quot;: True or False, # Whether or not this volume is currently in &quot;my books.&quot;
        &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;isPurchased&quot;: True or False, # Whether or not this volume was purchased by the authenticated user making the request. (In LITE projection.)
        &quot;isUploaded&quot;: True or False, # Whether or not this volume was user uploaded.
        &quot;readingPosition&quot;: { # The user&#x27;s current reading position in the volume, if one is available. (In LITE projection.)
          &quot;epubCfiPosition&quot;: &quot;A String&quot;, # Position in an EPUB as a CFI.
          &quot;gbImagePosition&quot;: &quot;A String&quot;, # Position in a volume for image-based content.
          &quot;gbTextPosition&quot;: &quot;A String&quot;, # Position in a volume for text-based content.
          &quot;kind&quot;: &quot;A String&quot;, # Resource type for a reading position.
          &quot;pdfPosition&quot;: &quot;A String&quot;, # Position in a PDF file.
          &quot;updated&quot;: &quot;A String&quot;, # Timestamp when this reading position was last updated (formatted UTC timestamp with millisecond resolution).
          &quot;volumeId&quot;: &quot;A String&quot;, # Volume id associated with this reading position.
        },
        &quot;rentalPeriod&quot;: { # Period during this book is/was a valid rental.
          &quot;endUtcSec&quot;: &quot;A String&quot;,
          &quot;startUtcSec&quot;: &quot;A String&quot;,
        },
        &quot;rentalState&quot;: &quot;A String&quot;, # Whether this book is an active or an expired rental.
        &quot;review&quot;: { # This user&#x27;s review of this volume, if one exists.
          &quot;author&quot;: { # Author of this review.
            &quot;displayName&quot;: &quot;A String&quot;, # Name of this person.
          },
          &quot;content&quot;: &quot;A String&quot;, # Review text.
          &quot;date&quot;: &quot;A String&quot;, # Date of this review.
          &quot;fullTextUrl&quot;: &quot;A String&quot;, # URL for the full review text, for reviews gathered from the web.
          &quot;kind&quot;: &quot;A String&quot;, # Resource type for a review.
          &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;description&quot;: &quot;A String&quot;, # Name of the source.
            &quot;extraDescription&quot;: &quot;A String&quot;, # Extra text about the source of the review.
            &quot;url&quot;: &quot;A String&quot;, # URL of the source of the review.
          },
          &quot;title&quot;: &quot;A String&quot;, # Title for 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;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;userUploadedVolumeInfo&quot;: {
          &quot;processingState&quot;: &quot;A String&quot;,
        },
      },
      &quot;volumeInfo&quot;: { # General volume information.
        &quot;allowAnonLogging&quot;: True or False, # Whether anonymous logging should be allowed.
        &quot;authors&quot;: [ # The names of the authors and/or editors for this volume. (In LITE projection)
          &quot;A String&quot;,
        ],
        &quot;averageRating&quot;: 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
        &quot;canonicalVolumeLink&quot;: &quot;A String&quot;, # Canonical URL for a volume. (In LITE projection.)
        &quot;categories&quot;: [ # A list of subject categories, such as &quot;Fiction&quot;, &quot;Suspense&quot;, etc.
          &quot;A String&quot;,
        ],
        &quot;comicsContent&quot;: True or False, # Whether the volume has comics content.
        &quot;contentVersion&quot;: &quot;A String&quot;, # An identifier for the version of the volume content (text &amp; images). (In LITE projection)
        &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;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;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;medium&quot;: &quot;A String&quot;, # Image link for medium size (width of ~575 pixels). (In LITE projection)
          &quot;small&quot;: &quot;A String&quot;, # Image link for small size (width of ~300 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;thumbnail&quot;: &quot;A String&quot;, # Image link for thumbnail size (width of ~128 pixels). (In LITE projection)
        },
        &quot;industryIdentifiers&quot;: [ # Industry standard identifiers for this volume.
          {
            &quot;identifier&quot;: &quot;A String&quot;, # Industry specific volume identifier.
            &quot;type&quot;: &quot;A String&quot;, # Identifier type. Possible values are ISBN_10, ISBN_13, ISSN and OTHER.
          },
        ],
        &quot;infoLink&quot;: &quot;A String&quot;, # URL to view information about this volume on the Google Books site. (In LITE projection)
        &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;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;maturityRating&quot;: &quot;A String&quot;,
        &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;containsEpubBubbles&quot;: True or False,
          &quot;containsImageBubbles&quot;: True or False,
          &quot;epubBubbleVersion&quot;: &quot;A String&quot;,
          &quot;imageBubbleVersion&quot;: &quot;A String&quot;,
        },
        &quot;previewLink&quot;: &quot;A String&quot;, # URL to preview this volume on the Google Books site.
        &quot;printType&quot;: &quot;A String&quot;, # Type of publication of this volume. Possible values are BOOK or MAGAZINE.
        &quot;printedPageCount&quot;: 42, # Total number of printed pages in generated pdf representation.
        &quot;publishedDate&quot;: &quot;A String&quot;, # Date of publication. (In LITE projection.)
        &quot;publisher&quot;: &quot;A String&quot;, # Publisher of this volume. (In LITE projection.)
        &quot;ratingsCount&quot;: 42, # The number of review ratings for this volume.
        &quot;readingModes&quot;: { # The reading modes available for this volume.
          &quot;image&quot;: True or False,
          &quot;text&quot;: True or False,
        },
        &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;shortSeriesBookTitle&quot;: &quot;A String&quot;, # Short book title in the context of the series.
          &quot;volumeSeries&quot;: [
            {
              &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;seriesBookType&quot;: &quot;A String&quot;, # The book type in the context of series. Examples - Single Issue, Collection Edition, etc.
              &quot;seriesId&quot;: &quot;A String&quot;, # The series id.
            },
          ],
        },
        &quot;subtitle&quot;: &quot;A String&quot;, # Volume subtitle. (In LITE projection.)
        &quot;title&quot;: &quot;A String&quot;, # Volume title. (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>