<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="partners_v2.html">Google Partners API</a> . <a href="partners_v2.offers.html">offers</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="partners_v2.offers.history.html">history()</a></code>
</p>
<p class="firstline">Returns the history Resource.</p>

<p class="toc_element">
  <code><a href="#list">list(requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</a></code></p>
<p class="firstline">Lists the Offers available for the current user</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="list">list(requestMetadata_userOverrides_ipAddress=None, requestMetadata_trafficSource_trafficSubId=None, requestMetadata_userOverrides_userId=None, x__xgafv=None, requestMetadata_locale=None, requestMetadata_experimentIds=None, requestMetadata_trafficSource_trafficSourceId=None, requestMetadata_partnersSessionId=None)</code>
  <pre>Lists the Offers available for the current user

Args:
  requestMetadata_userOverrides_ipAddress: string, IP address to use instead of the user's geo-located IP address.
  requestMetadata_trafficSource_trafficSubId: string, Second level identifier to indicate where the traffic comes from.
An identifier has multiple letters created by a team which redirected the
traffic to us.
  requestMetadata_userOverrides_userId: string, Logged-in user ID to impersonate instead of the user's ID.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format
  requestMetadata_locale: string, Locale to use for the current request.
  requestMetadata_experimentIds: string, Experiment IDs the current request belongs to. (repeated)
  requestMetadata_trafficSource_trafficSourceId: string, Identifier to indicate where the traffic comes from.
An identifier has multiple letters created by a team which redirected the
traffic to us.
  requestMetadata_partnersSessionId: string, Google Partners session ID.

Returns:
  An object of the form:

    { # Response for ListOffer.
    "noOfferReason": "A String", # Reason why no Offers are available.
    "availableOffers": [ # Available Offers to be distributed.
      { # Available Offers to be distributed.
        "available": 42, # The number of codes for this offer that are available for distribution.
        "countryOfferInfos": [ # Offer info by country.
          { # Offer info by country.
            "spendXAmount": "A String", # (localized) Spend X amount for that country's offer.
            "offerType": "A String", # Type of offer country is eligible for.
            "offerCountryCode": "A String", # Country code for which offer codes may be requested.
            "getYAmount": "A String", # (localized) Get Y amount for that country's offer.
          },
        ],
        "qualifiedCustomer": [ # Customers who qualify for this offer.
          { # Customers qualified for an offer.
            "name": "A String", # Name of the customer.
            "countryCode": "A String", # Country code of the customer.
            "spendXAmount": "A String", # Formatted Spend X amount with currency code.
            "adwordsUrl": "A String", # URL to the customer's AdWords page.
            "creationTime": "A String", # Time the customer was created.
            "externalCid": "A String", # External CID for the customer.
            "eligibilityDaysLeft": 42, # Days the customer is still eligible.
            "getYAmount": "A String", # Formatted Get Y amount with currency code.
            "offerType": "A String", # Type of the offer
          },
        ],
        "terms": "A String", # Terms of the offer.
        "name": "A String", # Name of the offer.
        "maxAccountAge": 42, # The maximum age of an account [in days] to be eligible.
        "offerLevel": "A String", # Level of this offer.
        "showSpecialOfferCopy": True or False, # Should special text be shown on the offers page.
        "offerType": "A String", # Type of offer.
        "id": "A String", # ID of this offer.
        "qualifiedCustomersComplete": True or False, # Whether or not the list of qualified customers is definitely complete.
        "description": "A String", # Description of the offer.
      },
    ],
    "responseMetadata": { # Common data that is in each API response. # Current response metadata.
      "debugInfo": { # Debug information about this request. # Debug information about this request.
        "serverTraceInfo": "A String", # Server-side debug stack trace.
        "serviceUrl": "A String", # URL of the service that handled this request.
        "serverInfo": "A String", # Info about the server that serviced this request.
      },
    },
  }</pre>
</div>

</body></html>