<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="acceleratedmobilepageurl_v1.html">Accelerated Mobile Pages (AMP) URL API</a> . <a href="acceleratedmobilepageurl_v1.ampUrls.html">ampUrls</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#batchGet">batchGet(body=None, x__xgafv=None)</a></code></p>
<p class="firstline">Returns AMP URL(s) and equivalent</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="batchGet">batchGet(body=None, x__xgafv=None)</code>
  <pre>Returns AMP URL(s) and equivalent
[AMP Cache URL(s)](/amp/cache/overview#amp-cache-url-format).

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

{ # AMP URL request for a batch of URLs.
    &quot;lookupStrategy&quot;: &quot;A String&quot;, # The lookup_strategy being requested.
    &quot;urls&quot;: [ # List of URLs to look up for the paired AMP URLs.
        # The URLs are case-sensitive. Up to 50 URLs per lookup
        # (see [Usage Limits](/amp/cache/reference/limits)).
      &quot;A String&quot;,
    ],
  }

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Batch AMP URL response.
    &quot;ampUrls&quot;: [ # For each URL in BatchAmpUrlsRequest, the URL response. The response might
        # not be in the same order as URLs in the batch request.
        # If BatchAmpUrlsRequest contains duplicate URLs, AmpUrl is generated
        # only once.
      { # AMP URL response for a requested URL.
        &quot;cdnAmpUrl&quot;: &quot;A String&quot;, # The [AMP Cache URL](/amp/cache/overview#amp-cache-url-format) pointing to
            # the cached document in the Google AMP Cache.
        &quot;ampUrl&quot;: &quot;A String&quot;, # The AMP URL pointing to the publisher&#x27;s web server.
        &quot;originalUrl&quot;: &quot;A String&quot;, # The original non-AMP URL.
      },
    ],
    &quot;urlErrors&quot;: [ # The errors for requested URLs that have no AMP URL.
      { # AMP URL Error resource for a requested URL that couldn&#x27;t be found.
        &quot;originalUrl&quot;: &quot;A String&quot;, # The original non-AMP URL.
        &quot;errorMessage&quot;: &quot;A String&quot;, # An optional descriptive error message.
        &quot;errorCode&quot;: &quot;A String&quot;, # The error code of an API call.
      },
    ],
  }</pre>
</div>

</body></html>