<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="consumersurveys_v2.html">Consumer Surveys API</a> . <a href="consumersurveys_v2.surveys.html">surveys</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(surveyUrlId)</a></code></p>
<p class="firstline">Removes a survey from view in all user GET requests.</p>
<p class="toc_element">
  <code><a href="#get">get(surveyUrlId)</a></code></p>
<p class="firstline">Retrieves information about the specified survey.</p>
<p class="toc_element">
  <code><a href="#insert">insert(body)</a></code></p>
<p class="firstline">Creates a survey.</p>
<p class="toc_element">
  <code><a href="#list">list(startIndex=None, maxResults=None, token=None)</a></code></p>
<p class="firstline">Lists the surveys owned by the authenticated user.</p>
<p class="toc_element">
  <code><a href="#start">start(resourceId, body)</a></code></p>
<p class="firstline">Begins running a survey.</p>
<p class="toc_element">
  <code><a href="#stop">stop(resourceId)</a></code></p>
<p class="firstline">Stops a running survey.</p>
<p class="toc_element">
  <code><a href="#update">update(surveyUrlId, body)</a></code></p>
<p class="firstline">Updates a survey. Currently the only property that can be updated is the owners property.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(surveyUrlId)</code>
  <pre>Removes a survey from view in all user GET requests.

Args:
  surveyUrlId: string, External URL ID for the survey. (required)

Returns:
  An object of the form:

    {
    "requestId": "A String", # Unique request ID used for logging and debugging. Please include in any error reporting or troubleshooting requests.
  }</pre>
</div>

<div class="method">
    <code class="details" id="get">get(surveyUrlId)</code>
  <pre>Retrieves information about the specified survey.

Args:
  surveyUrlId: string, External URL ID for the survey. (required)

Returns:
  An object of the form:

    {
      "owners": [
        "A String",
      ],
      "description": "A String",
      "title": "A String",
      "customerData": "A String",
      "state": "A String",
      "audience": {
        "countrySubdivision": "A String",
        "mobileAppPanelId": "A String",
        "country": "A String",
        "ages": [
          "A String",
        ],
        "populationSource": "A String",
        "languages": [
          "A String",
        ],
        "gender": "A String",
      },
      "cost": {
        "nanos": "A String",
        "currencyCode": "A String",
        "costPerResponseNanos": "A String",
        "maxCostPerResponseNanos": "A String",
      },
      "surveyUrlId": "A String",
      "questions": [
        {
          "highValueLabel": "A String",
          "mustPickSuggestion": True or False,
          "thresholdAnswers": [
            "A String",
          ],
          "sentimentText": "A String",
          "question": "A String",
          "numStars": "A String",
          "lowValueLabel": "A String",
          "videoId": "A String",
          "answers": [
            "A String",
          ],
          "lastAnswerPositionPinned": True or False,
          "hasOther": True or False,
          "unitOfMeasurementLabel": "A String",
          "images": [
            {
              "url": "A String",
              "altText": "A String",
              "data": "A String",
            },
          ],
          "singleLineResponse": True or False,
          "openTextSuggestions": [
            "A String",
          ],
          "type": "A String",
          "answerOrder": "A String",
          "openTextPlaceholder": "A String",
        },
      ],
      "wantedResponseCount": 42,
      "rejectionReason": {
        "explanation": "A String",
        "type": "A String",
      },
    }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(body)</code>
  <pre>Creates a survey.

Args:
  body: object, The request body. (required)
    The object takes the form of:

{
    "owners": [
      "A String",
    ],
    "description": "A String",
    "title": "A String",
    "customerData": "A String",
    "state": "A String",
    "audience": {
      "countrySubdivision": "A String",
      "mobileAppPanelId": "A String",
      "country": "A String",
      "ages": [
        "A String",
      ],
      "populationSource": "A String",
      "languages": [
        "A String",
      ],
      "gender": "A String",
    },
    "cost": {
      "nanos": "A String",
      "currencyCode": "A String",
      "costPerResponseNanos": "A String",
      "maxCostPerResponseNanos": "A String",
    },
    "surveyUrlId": "A String",
    "questions": [
      {
        "highValueLabel": "A String",
        "mustPickSuggestion": True or False,
        "thresholdAnswers": [
          "A String",
        ],
        "sentimentText": "A String",
        "question": "A String",
        "numStars": "A String",
        "lowValueLabel": "A String",
        "videoId": "A String",
        "answers": [
          "A String",
        ],
        "lastAnswerPositionPinned": True or False,
        "hasOther": True or False,
        "unitOfMeasurementLabel": "A String",
        "images": [
          {
            "url": "A String",
            "altText": "A String",
            "data": "A String",
          },
        ],
        "singleLineResponse": True or False,
        "openTextSuggestions": [
          "A String",
        ],
        "type": "A String",
        "answerOrder": "A String",
        "openTextPlaceholder": "A String",
      },
    ],
    "wantedResponseCount": 42,
    "rejectionReason": {
      "explanation": "A String",
      "type": "A String",
    },
  }


Returns:
  An object of the form:

    {
      "owners": [
        "A String",
      ],
      "description": "A String",
      "title": "A String",
      "customerData": "A String",
      "state": "A String",
      "audience": {
        "countrySubdivision": "A String",
        "mobileAppPanelId": "A String",
        "country": "A String",
        "ages": [
          "A String",
        ],
        "populationSource": "A String",
        "languages": [
          "A String",
        ],
        "gender": "A String",
      },
      "cost": {
        "nanos": "A String",
        "currencyCode": "A String",
        "costPerResponseNanos": "A String",
        "maxCostPerResponseNanos": "A String",
      },
      "surveyUrlId": "A String",
      "questions": [
        {
          "highValueLabel": "A String",
          "mustPickSuggestion": True or False,
          "thresholdAnswers": [
            "A String",
          ],
          "sentimentText": "A String",
          "question": "A String",
          "numStars": "A String",
          "lowValueLabel": "A String",
          "videoId": "A String",
          "answers": [
            "A String",
          ],
          "lastAnswerPositionPinned": True or False,
          "hasOther": True or False,
          "unitOfMeasurementLabel": "A String",
          "images": [
            {
              "url": "A String",
              "altText": "A String",
              "data": "A String",
            },
          ],
          "singleLineResponse": True or False,
          "openTextSuggestions": [
            "A String",
          ],
          "type": "A String",
          "answerOrder": "A String",
          "openTextPlaceholder": "A String",
        },
      ],
      "wantedResponseCount": 42,
      "rejectionReason": {
        "explanation": "A String",
        "type": "A String",
      },
    }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(startIndex=None, maxResults=None, token=None)</code>
  <pre>Lists the surveys owned by the authenticated user.

Args:
  startIndex: integer, A parameter
  maxResults: integer, A parameter
  token: string, A parameter

Returns:
  An object of the form:

    {
    "tokenPagination": {
      "nextPageToken": "A String",
      "previousPageToken": "A String",
    },
    "pageInfo": {
      "totalResults": 42,
      "startIndex": 42,
      "resultPerPage": 42,
    },
    "resources": [ # An individual survey resource.
      {
          "owners": [
            "A String",
          ],
          "description": "A String",
          "title": "A String",
          "customerData": "A String",
          "state": "A String",
          "audience": {
            "countrySubdivision": "A String",
            "mobileAppPanelId": "A String",
            "country": "A String",
            "ages": [
              "A String",
            ],
            "populationSource": "A String",
            "languages": [
              "A String",
            ],
            "gender": "A String",
          },
          "cost": {
            "nanos": "A String",
            "currencyCode": "A String",
            "costPerResponseNanos": "A String",
            "maxCostPerResponseNanos": "A String",
          },
          "surveyUrlId": "A String",
          "questions": [
            {
              "highValueLabel": "A String",
              "mustPickSuggestion": True or False,
              "thresholdAnswers": [
                "A String",
              ],
              "sentimentText": "A String",
              "question": "A String",
              "numStars": "A String",
              "lowValueLabel": "A String",
              "videoId": "A String",
              "answers": [
                "A String",
              ],
              "lastAnswerPositionPinned": True or False,
              "hasOther": True or False,
              "unitOfMeasurementLabel": "A String",
              "images": [
                {
                  "url": "A String",
                  "altText": "A String",
                  "data": "A String",
                },
              ],
              "singleLineResponse": True or False,
              "openTextSuggestions": [
                "A String",
              ],
              "type": "A String",
              "answerOrder": "A String",
              "openTextPlaceholder": "A String",
            },
          ],
          "wantedResponseCount": 42,
          "rejectionReason": {
            "explanation": "A String",
            "type": "A String",
          },
        },
    ],
    "requestId": "A String", # Unique request ID used for logging and debugging. Please include in any error reporting or troubleshooting requests.
  }</pre>
</div>

<div class="method">
    <code class="details" id="start">start(resourceId, body)</code>
  <pre>Begins running a survey.

Args:
  resourceId: string, A parameter (required)
  body: object, The request body. (required)
    The object takes the form of:

{
    "maxCostPerResponseNanos": "A String", # Threshold to start a survey automically if the quoted prices is less than or equal to this value. See Survey.Cost for more details.
  }


Returns:
  An object of the form:

    {
    "requestId": "A String", # Unique request ID used for logging and debugging. Please include in any error reporting or troubleshooting requests.
  }</pre>
</div>

<div class="method">
    <code class="details" id="stop">stop(resourceId)</code>
  <pre>Stops a running survey.

Args:
  resourceId: string, A parameter (required)

Returns:
  An object of the form:

    {
    "requestId": "A String", # Unique request ID used for logging and debugging. Please include in any error reporting or troubleshooting requests.
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(surveyUrlId, body)</code>
  <pre>Updates a survey. Currently the only property that can be updated is the owners property.

Args:
  surveyUrlId: string, External URL ID for the survey. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
    "owners": [
      "A String",
    ],
    "description": "A String",
    "title": "A String",
    "customerData": "A String",
    "state": "A String",
    "audience": {
      "countrySubdivision": "A String",
      "mobileAppPanelId": "A String",
      "country": "A String",
      "ages": [
        "A String",
      ],
      "populationSource": "A String",
      "languages": [
        "A String",
      ],
      "gender": "A String",
    },
    "cost": {
      "nanos": "A String",
      "currencyCode": "A String",
      "costPerResponseNanos": "A String",
      "maxCostPerResponseNanos": "A String",
    },
    "surveyUrlId": "A String",
    "questions": [
      {
        "highValueLabel": "A String",
        "mustPickSuggestion": True or False,
        "thresholdAnswers": [
          "A String",
        ],
        "sentimentText": "A String",
        "question": "A String",
        "numStars": "A String",
        "lowValueLabel": "A String",
        "videoId": "A String",
        "answers": [
          "A String",
        ],
        "lastAnswerPositionPinned": True or False,
        "hasOther": True or False,
        "unitOfMeasurementLabel": "A String",
        "images": [
          {
            "url": "A String",
            "altText": "A String",
            "data": "A String",
          },
        ],
        "singleLineResponse": True or False,
        "openTextSuggestions": [
          "A String",
        ],
        "type": "A String",
        "answerOrder": "A String",
        "openTextPlaceholder": "A String",
      },
    ],
    "wantedResponseCount": 42,
    "rejectionReason": {
      "explanation": "A String",
      "type": "A String",
    },
  }


Returns:
  An object of the form:

    {
      "owners": [
        "A String",
      ],
      "description": "A String",
      "title": "A String",
      "customerData": "A String",
      "state": "A String",
      "audience": {
        "countrySubdivision": "A String",
        "mobileAppPanelId": "A String",
        "country": "A String",
        "ages": [
          "A String",
        ],
        "populationSource": "A String",
        "languages": [
          "A String",
        ],
        "gender": "A String",
      },
      "cost": {
        "nanos": "A String",
        "currencyCode": "A String",
        "costPerResponseNanos": "A String",
        "maxCostPerResponseNanos": "A String",
      },
      "surveyUrlId": "A String",
      "questions": [
        {
          "highValueLabel": "A String",
          "mustPickSuggestion": True or False,
          "thresholdAnswers": [
            "A String",
          ],
          "sentimentText": "A String",
          "question": "A String",
          "numStars": "A String",
          "lowValueLabel": "A String",
          "videoId": "A String",
          "answers": [
            "A String",
          ],
          "lastAnswerPositionPinned": True or False,
          "hasOther": True or False,
          "unitOfMeasurementLabel": "A String",
          "images": [
            {
              "url": "A String",
              "altText": "A String",
              "data": "A String",
            },
          ],
          "singleLineResponse": True or False,
          "openTextSuggestions": [
            "A String",
          ],
          "type": "A String",
          "answerOrder": "A String",
          "openTextPlaceholder": "A String",
        },
      ],
      "wantedResponseCount": 42,
      "rejectionReason": {
        "explanation": "A String",
        "type": "A String",
      },
    }</pre>
</div>

</body></html>