<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="androidpublisher_v2.html">Google Play Developer API</a> . <a href="androidpublisher_v2.reviews.html">reviews</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#get">get(packageName, reviewId)</a></code></p>
<p class="firstline">Returns a single review.</p>
<p class="toc_element">
  <code><a href="#list">list(packageName, token=None, maxResults=None, startIndex=None)</a></code></p>
<p class="firstline">Returns a list of reviews.</p>
<p class="toc_element">
  <code><a href="#reply">reply(packageName, reviewId, body)</a></code></p>
<p class="firstline">Reply to a single review, or update an existing reply.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="get">get(packageName, reviewId)</code>
  <pre>Returns a single review.

Args:
  packageName: string, Unique identifier for the Android app for which we want reviews; for example, "com.spiffygame". (required)
  reviewId: string, A parameter (required)

Returns:
  An object of the form:

    {
    "authorName": "A String", # The name of the user who wrote the review.
    "reviewId": "A String", # Unique identifier for this review.
    "comments": [ # A repeated field containing comments for the review.
      {
        "developerComment": { # A comment from a developer.
          "lastModified": { # The last time at which this comment was updated.
            "nanos": 42,
            "seconds": "A String",
          },
          "text": "A String", # The content of the comment, i.e. reply body.
        },
        "userComment": { # A comment from a user.
          "appVersionCode": 42, # Integer version code of the app as installed at the time the review was written. May be absent.
          "reviewerLanguage": "A String", # Language code for the reviewer. This is taken from the device settings so is not guaranteed to match the language the review is written in. May be absent.
          "lastModified": { # The last time at which this comment was updated.
            "nanos": 42,
            "seconds": "A String",
          },
          "starRating": 42, # The star rating associated with the review, from 1 to 5.
          "text": "A String", # The content of the comment, i.e. review body. In some cases users have been able to write a review with separate title and body; in those cases the title and body are concatenated and separated by a tab character.
          "device": "A String", # Codename for the reviewer's device, e.g. klte, flounder. May be absent.
          "androidOsVersion": 42, # Integer Android SDK version of the user's device at the time the review was written, e.g. 23 is Marshmallow. May be absent.
          "appVersionName": "A String", # String version name of the app as installed at the time the review was written. May be absent.
        },
      },
    ],
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(packageName, token=None, maxResults=None, startIndex=None)</code>
  <pre>Returns a list of reviews.

Args:
  packageName: string, Unique identifier for the Android app for which we want reviews; for example, "com.spiffygame". (required)
  token: string, A parameter
  maxResults: integer, A parameter
  startIndex: integer, A parameter

Returns:
  An object of the form:

    {
    "reviews": [
      {
        "authorName": "A String", # The name of the user who wrote the review.
        "reviewId": "A String", # Unique identifier for this review.
        "comments": [ # A repeated field containing comments for the review.
          {
            "developerComment": { # A comment from a developer.
              "lastModified": { # The last time at which this comment was updated.
                "nanos": 42,
                "seconds": "A String",
              },
              "text": "A String", # The content of the comment, i.e. reply body.
            },
            "userComment": { # A comment from a user.
              "appVersionCode": 42, # Integer version code of the app as installed at the time the review was written. May be absent.
              "reviewerLanguage": "A String", # Language code for the reviewer. This is taken from the device settings so is not guaranteed to match the language the review is written in. May be absent.
              "lastModified": { # The last time at which this comment was updated.
                "nanos": 42,
                "seconds": "A String",
              },
              "starRating": 42, # The star rating associated with the review, from 1 to 5.
              "text": "A String", # The content of the comment, i.e. review body. In some cases users have been able to write a review with separate title and body; in those cases the title and body are concatenated and separated by a tab character.
              "device": "A String", # Codename for the reviewer's device, e.g. klte, flounder. May be absent.
              "androidOsVersion": 42, # Integer Android SDK version of the user's device at the time the review was written, e.g. 23 is Marshmallow. May be absent.
              "appVersionName": "A String", # String version name of the app as installed at the time the review was written. May be absent.
            },
          },
        ],
      },
    ],
    "tokenPagination": {
      "nextPageToken": "A String",
      "previousPageToken": "A String",
    },
    "pageInfo": {
      "totalResults": 42,
      "startIndex": 42,
      "resultPerPage": 42,
    },
  }</pre>
</div>

<div class="method">
    <code class="details" id="reply">reply(packageName, reviewId, body)</code>
  <pre>Reply to a single review, or update an existing reply.

Args:
  packageName: string, Unique identifier for the Android app for which we want reviews; for example, "com.spiffygame". (required)
  reviewId: string, A parameter (required)
  body: object, The request body. (required)
    The object takes the form of:

{
    "replyText": "A String", # The text to set as the reply. Replies of more than approximately 350 characters will be rejected. HTML tags will be stripped.
  }


Returns:
  An object of the form:

    {
    "result": {
      "replyText": "A String", # The reply text that was applied.
      "lastEdited": { # The time at which the reply took effect.
        "nanos": 42,
        "seconds": "A String",
      },
    },
  }</pre>
</div>

</body></html>