<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="#list">list(locale=None, startIndex=None, source=None, maxResults=None, volumeId=None, processingState=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="list">list(locale=None, startIndex=None, source=None, maxResults=None, volumeId=None, processingState=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.
  startIndex: integer, Index of the first result to return (starts at 0)
  source: string, String to identify the originator of this request.
  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.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    {
    &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.
    &quot;kind&quot;: &quot;A String&quot;, # Resource type.
    &quot;items&quot;: [ # A list of volumes.
      {
        &quot;userInfo&quot;: { # User specific information related to this volume. (e.g. page this user last read or whether they purchased this book)
          &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;epubCfiPosition&quot;: &quot;A String&quot;, # Position in an EPUB as a CFI.
            &quot;volumeId&quot;: &quot;A String&quot;, # Volume id associated with this reading position.
            &quot;gbTextPosition&quot;: &quot;A String&quot;, # Position in a volume for text-based content.
            &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;kind&quot;: &quot;A String&quot;, # Resource type for a reading position.
          },
          &quot;isFamilySharedToUser&quot;: True or False, # Whether or not the user received this volume through family sharing.
          &quot;isUploaded&quot;: True or False, # Whether or not this volume was user uploaded.
          &quot;review&quot;: { # This user&#x27;s review of this volume, if one exists.
            &quot;volumeId&quot;: &quot;A String&quot;, # Volume that this review is for.
            &quot;type&quot;: &quot;A String&quot;, # Source type for this review. Possible values are EDITORIAL, WEB_USER or GOOGLE_USER.
            &quot;date&quot;: &quot;A String&quot;, # Date of this review.
            &quot;content&quot;: &quot;A String&quot;, # Review text.
            &quot;author&quot;: { # Author of this review.
              &quot;displayName&quot;: &quot;A String&quot;, # Name of this person.
            },
            &quot;rating&quot;: &quot;A String&quot;, # Star rating for this review. Possible values are ONE, TWO, THREE, FOUR, FIVE or NOT_RATED.
            &quot;fullTextUrl&quot;: &quot;A String&quot;, # URL for the full review text, for reviews gathered from the web.
            &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;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;title&quot;: &quot;A String&quot;, # Title for this review.
            &quot;kind&quot;: &quot;A String&quot;, # Resource type for a review.
          },
          &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;entitlementType&quot;: 42, # Whether this volume is purchased, sample, pd download etc.
          &quot;isFamilySharedFromUser&quot;: True or False, # Whether or not the user shared this volume with the family.
          &quot;userUploadedVolumeInfo&quot;: {
            &quot;processingState&quot;: &quot;A String&quot;,
          },
          &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;isSharingDisabledByFop&quot;: True or False, # Whether or not sharing this volume is temporarily disabled due to issues with the Family Wallet.
            &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;acquisitionType&quot;: 42, # How this volume was acquired.
          &quot;isFamilySharingDisabledByFop&quot;: True or False, # Deprecated: Replaced by familySharing.
          &quot;rentalState&quot;: &quot;A String&quot;, # Whether this book is an active or an expired rental.
          &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;isPreordered&quot;: True or False, # Whether or not this volume was pre-ordered by the authenticated user making the request. (In LITE projection.)
          &quot;copy&quot;: { # Copy/Paste accounting information.
            &quot;limitType&quot;: &quot;A String&quot;,
            &quot;updated&quot;: &quot;A String&quot;,
            &quot;remainingCharacterCount&quot;: 42,
            &quot;allowedCharacterCount&quot;: 42,
          },
          &quot;isFamilySharingAllowed&quot;: True or False, # Deprecated: Replaced by familySharing.
          &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;recommendedInfo&quot;: { # Recommendation related information for this volume.
          &quot;explanation&quot;: &quot;A String&quot;, # A text explaining why this volume is recommended.
        },
        &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;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;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;quoteSharingAllowed&quot;: True or False, # Whether quote sharing is allowed for this volume.
          &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;isAvailable&quot;: True or False, # Is a scanned image pdf available either as public domain or for purchase. (In LITE projection.)
            &quot;downloadLink&quot;: &quot;A String&quot;, # URL to download pdf. (In LITE projection.)
            &quot;acsTokenLink&quot;: &quot;A String&quot;, # URL to retrieve ACS token for pdf download. (In LITE projection.)
          },
          &quot;publicDomain&quot;: True or False, # Whether or not this book is public domain in the country listed above.
          &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;epub&quot;: { # Information about epub content. (In LITE projection.)
            &quot;downloadLink&quot;: &quot;A String&quot;, # URL to download epub. (In LITE projection.)
            &quot;acsTokenLink&quot;: &quot;A String&quot;, # URL to retrieve ACS token for epub download. (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;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;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;downloadAccess&quot;: { # Information about a volume&#x27;s download license access restrictions.
            &quot;justAcquired&quot;: True or False, # If deviceAllowed, whether access was just acquired with this request.
            &quot;signature&quot;: &quot;A String&quot;, # Response signature.
            &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;maxDownloadDevices&quot;: 42, # If restricted, the maximum number of content download licenses for this volume.
            &quot;deviceAllowed&quot;: True or False, # If restricted, whether access is granted for this (user, device, volume).
            &quot;nonce&quot;: &quot;A String&quot;, # Client nonce for verification. Download access and client-validation only.
            &quot;message&quot;: &quot;A String&quot;, # Error/warning message.
            &quot;restricted&quot;: True or False, # Whether this volume has any download access restrictions.
            &quot;downloadsAcquired&quot;: 42, # If restricted, the number of content download licenses already acquired (including the requesting client, if licensed).
            &quot;volumeId&quot;: &quot;A String&quot;, # Identifies the volume for which this entry applies.
            &quot;kind&quot;: &quot;A String&quot;, # Resource type.
            &quot;source&quot;: &quot;A String&quot;, # Client app identifier for verification. Download access and client-validation only.
          },
          &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;embeddable&quot;: True or False, # Whether this volume can be embedded in a viewport using the Embedded Viewer API.
          &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;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;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;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;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;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;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;finskyOfferType&quot;: 42, # The finsky offer type (e.g., PURCHASE=0 RENTAL=3)
              &quot;listPrice&quot;: { # Offer list (=undiscounted) price in Micros.
                &quot;currencyCode&quot;: &quot;A String&quot;,
                &quot;amountInMicros&quot;: 3.14,
              },
              &quot;retailPrice&quot;: { # Offer retail (=discounted) price in Micros
                &quot;currencyCode&quot;: &quot;A String&quot;,
                &quot;amountInMicros&quot;: 3.14,
              },
              &quot;giftable&quot;: True or False, # Indicates whether the offer is giftable.
            },
          ],
          &quot;buyLink&quot;: &quot;A String&quot;, # URL to purchase this volume on the Google Books site. (In LITE projection)
          &quot;onSaleDate&quot;: &quot;A String&quot;, # The date on which this book is available for sale.
          &quot;listPrice&quot;: { # Suggested retail price. (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;kind&quot;: &quot;A String&quot;, # Resource type for a volume. (In LITE projection.)
        &quot;volumeInfo&quot;: { # General volume information.
          &quot;maturityRating&quot;: &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;averageRating&quot;: 3.14, # The mean review rating for this volume. (min = 1.0, max = 5.0)
          &quot;printedPageCount&quot;: 42, # Total number of printed pages in generated pdf representation.
          &quot;pageCount&quot;: 42, # Total number of pages as per publisher metadata.
          &quot;imageLinks&quot;: { # A list of image links for all the sizes that are available. (In LITE projection.)
            &quot;smallThumbnail&quot;: &quot;A String&quot;, # Image link for small thumbnail size (width of ~80 pixels). (In LITE projection)
            &quot;extraLarge&quot;: &quot;A String&quot;, # Image link for extra large size (width of ~1280 pixels). (In LITE projection)
            &quot;thumbnail&quot;: &quot;A String&quot;, # Image link for thumbnail size (width of ~128 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;title&quot;: &quot;A String&quot;, # Volume title. (In LITE projection.)
          &quot;subtitle&quot;: &quot;A String&quot;, # Volume subtitle. (In LITE projection.)
          &quot;seriesInfo&quot;: {
            &quot;shortSeriesBookTitle&quot;: &quot;A String&quot;, # Short book title in the context of the series.
            &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;volumeSeries&quot;: [
              {
                &quot;seriesBookType&quot;: &quot;A String&quot;, # The book type in the context of series. Examples - Single Issue, Collection Edition, etc.
                &quot;orderNumber&quot;: 42, # The book order number in the series.
                &quot;seriesId&quot;: &quot;A String&quot;, # The series id.
                &quot;issue&quot;: [ # List of issues. Applicable only for Collection Edition and Omnibus.
                  {
                    &quot;issueOrderNumber&quot;: 42,
                    &quot;issueDisplayNumber&quot;: &quot;A String&quot;,
                  },
                ],
              },
            ],
            &quot;kind&quot;: &quot;A String&quot;, # Resource type.
          },
          &quot;authors&quot;: [ # The names of the authors and/or editors for this volume. (In LITE projection)
            &quot;A String&quot;,
          ],
          &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;publisher&quot;: &quot;A String&quot;, # Publisher of this volume. (In LITE projection.)
          &quot;readingModes&quot;: { # The reading modes available for this volume.
            &quot;image&quot;: True or False,
            &quot;text&quot;: True or False,
          },
          &quot;publishedDate&quot;: &quot;A String&quot;, # Date of publication. (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;samplePageCount&quot;: 42, # Total number of sample pages as per publisher metadata.
          &quot;comicsContent&quot;: True or False, # Whether the volume has comics content.
          &quot;panelizationSummary&quot;: { # A top-level summary of the panelization info in this volume.
            &quot;epubBubbleVersion&quot;: &quot;A String&quot;,
            &quot;containsImageBubbles&quot;: True or False,
            &quot;containsEpubBubbles&quot;: True or False,
            &quot;imageBubbleVersion&quot;: &quot;A String&quot;,
          },
          &quot;allowAnonLogging&quot;: True or False, # Whether anonymous logging should be allowed.
          &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;contentVersion&quot;: &quot;A String&quot;, # An identifier for the version of the volume content (text &amp; images). (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;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;ratingsCount&quot;: 42, # The number of review ratings for this volume.
          &quot;categories&quot;: [ # A list of subject categories, such as &quot;Fiction&quot;, &quot;Suspense&quot;, etc.
            &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;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;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;layerId&quot;: &quot;A String&quot;, # The layer id of this layer (e.g. &quot;geo&quot;).
            },
          ],
        },
      },
    ],
  }</pre>
</div>

</body></html>