<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, 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, 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. (required)
    The object takes the form of:

{ # AMP URL request for a batch of URLs.
    "lookupStrategy": "A String", # The lookup_strategy being requested.
    "urls": [ # 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)).
      "A String",
    ],
  }

  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.
    "ampUrls": [ # 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.
        "ampUrl": "A String", # The AMP URL pointing to the publisher's web server.
        "originalUrl": "A String", # The original non-AMP URL.
        "cdnAmpUrl": "A String", # The [AMP Cache URL](/amp/cache/overview#amp-cache-url-format) pointing to
            # the cached document in the Google AMP Cache.
      },
    ],
    "urlErrors": [ # The errors for requested URLs that have no AMP URL.
      { # AMP URL Error resource for a requested URL that couldn't be found.
        "errorCode": "A String", # The error code of an API call.
        "errorMessage": "A String", # An optional descriptive error message.
        "originalUrl": "A String", # The original non-AMP URL.
      },
    ],
  }</pre>
</div>

</body></html>