<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="pagespeedonline_v5.html">PageSpeed Insights API</a> . <a href="pagespeedonline_v5.pagespeedapi.html">pagespeedapi</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#close">close()</a></code></p>
<p class="firstline">Close httplib2 connections.</p>
<p class="toc_element">
  <code><a href="#runpagespeed">runpagespeed(locale=None, strategy=None, utm_source=None, category=None, captchaToken=None, url=None, utm_campaign=None, x__xgafv=None)</a></code></p>
<p class="firstline">Runs PageSpeed analysis on the page at the specified URL, and returns PageSpeed scores, a list of suggestions to make that page faster, and other information.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="close">close()</code>
  <pre>Close httplib2 connections.</pre>
</div>

<div class="method">
    <code class="details" id="runpagespeed">runpagespeed(locale=None, strategy=None, utm_source=None, category=None, captchaToken=None, url=None, utm_campaign=None, x__xgafv=None)</code>
  <pre>Runs PageSpeed analysis on the page at the specified URL, and returns PageSpeed scores, a list of suggestions to make that page faster, and other information.

Args:
  locale: string, The locale used to localize formatted results
  strategy: string, The analysis strategy (desktop or mobile) to use, and desktop is the default
    Allowed values
      STRATEGY_UNSPECIFIED - UNDEFINED.
      DESKTOP - Fetch and analyze the URL for desktop browsers.
      MOBILE - Fetch and analyze the URL for mobile devices.
  utm_source: string, Campaign source for analytics.
  category: string, A Lighthouse category to run; if none are given, only Performance category will be run (repeated)
    Allowed values
      CATEGORY_UNSPECIFIED - Default UNDEFINED category.
      ACCESSIBILITY - Accessibility (a11y), category pertaining to a website&#x27;s capacity to be accessible to all users.
      BEST_PRACTICES - Best Practices, category pertaining to a website&#x27;s conformance to web best practice.
      PERFORMANCE - Performance, category pertaining to a website&#x27;s performance.
      PWA - Progressive Web App (PWA), category pertaining to a website&#x27;s ability to be run as a PWA.
      SEO - Search Engine Optimization (SEO), category pertaining to a website&#x27;s ability to be indexed by search engines.
  captchaToken: string, The captcha token passed when filling out a captcha.
  url: string, Required. The URL to fetch and analyze
  utm_campaign: string, Campaign name for analytics.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # The Pagespeed API response object.
    &quot;originLoadingExperience&quot;: { # The CrUX loading experience object that contains CrUX data breakdowns. # Metrics of the aggregated page loading experience of the origin
      &quot;overall_category&quot;: &quot;A String&quot;, # The human readable speed &quot;category&quot; of the id.
      &quot;id&quot;: &quot;A String&quot;, # The url, pattern or origin which the metrics are on.
      &quot;origin_fallback&quot;: True or False, # True if the result is an origin fallback from a page, false otherwise.
      &quot;metrics&quot;: { # The map of .
        &quot;a_key&quot;: { # A CrUX metric object for a single metric and form factor.
          &quot;formFactor&quot;: &quot;A String&quot;, # Identifies the form factor of the metric being collected.
          &quot;metricId&quot;: &quot;A String&quot;, # Identifies the type of the metric.
          &quot;percentile&quot;: 42, # We use this field to store certain percentile value for this metric. For v4, this field contains pc50. For v5, this field contains pc90.
          &quot;category&quot;: &quot;A String&quot;, # The category of the specific time metric.
          &quot;median&quot;: 42, # The median number of the metric, in millisecond.
          &quot;distributions&quot;: [ # Metric distributions. Proportions should sum up to 1.
            { # A proportion of data in the total distribution, bucketed by a min/max percentage. Each bucket&#x27;s range is bounded by min &lt;= x &lt; max, In millisecond.
              &quot;proportion&quot;: 3.14, # The proportion of data in this bucket.
              &quot;min&quot;: 42, # Lower bound for a bucket&#x27;s range.
              &quot;max&quot;: 42, # Upper bound for a bucket&#x27;s range.
            },
          ],
        },
      },
      &quot;initial_url&quot;: &quot;A String&quot;, # The requested URL, which may differ from the resolved &quot;id&quot;.
    },
    &quot;captchaResult&quot;: &quot;A String&quot;, # The captcha verify result
    &quot;lighthouseResult&quot;: { # The Lighthouse result object. # Lighthouse response for the audit url as an object.
      &quot;categories&quot;: { # The categories in a Lighthouse run. # Map of categories in the LHR.
        &quot;seo&quot;: { # A Lighthouse category. # The Search-Engine-Optimization (SEO) category, containing all seo related audits.
          &quot;id&quot;: &quot;A String&quot;, # The string identifier of the category.
          &quot;description&quot;: &quot;A String&quot;, # A more detailed description of the category and its importance.
          &quot;title&quot;: &quot;A String&quot;, # The human-friendly name of the category.
          &quot;score&quot;: &quot;&quot;, # The overall score of the category, the weighted average of all its audits. (The category&#x27;s score, can be null.)
          &quot;manualDescription&quot;: &quot;A String&quot;, # A description for the manual audits in the category.
          &quot;auditRefs&quot;: [ # An array of references to all the audit members of this category.
            { # A light reference to an audit by id, used to group and weight audits in a given category.
              &quot;group&quot;: &quot;A String&quot;, # The category group that the audit belongs to (optional).
              &quot;id&quot;: &quot;A String&quot;, # The audit ref id.
              &quot;weight&quot;: 3.14, # The weight this audit&#x27;s score has on the overall category score.
            },
          ],
        },
        &quot;accessibility&quot;: { # A Lighthouse category. # The accessibility category, containing all accessibility related audits.
          &quot;id&quot;: &quot;A String&quot;, # The string identifier of the category.
          &quot;description&quot;: &quot;A String&quot;, # A more detailed description of the category and its importance.
          &quot;title&quot;: &quot;A String&quot;, # The human-friendly name of the category.
          &quot;score&quot;: &quot;&quot;, # The overall score of the category, the weighted average of all its audits. (The category&#x27;s score, can be null.)
          &quot;manualDescription&quot;: &quot;A String&quot;, # A description for the manual audits in the category.
          &quot;auditRefs&quot;: [ # An array of references to all the audit members of this category.
            { # A light reference to an audit by id, used to group and weight audits in a given category.
              &quot;group&quot;: &quot;A String&quot;, # The category group that the audit belongs to (optional).
              &quot;id&quot;: &quot;A String&quot;, # The audit ref id.
              &quot;weight&quot;: 3.14, # The weight this audit&#x27;s score has on the overall category score.
            },
          ],
        },
        &quot;performance&quot;: { # A Lighthouse category. # The performance category, containing all performance related audits.
          &quot;id&quot;: &quot;A String&quot;, # The string identifier of the category.
          &quot;description&quot;: &quot;A String&quot;, # A more detailed description of the category and its importance.
          &quot;title&quot;: &quot;A String&quot;, # The human-friendly name of the category.
          &quot;score&quot;: &quot;&quot;, # The overall score of the category, the weighted average of all its audits. (The category&#x27;s score, can be null.)
          &quot;manualDescription&quot;: &quot;A String&quot;, # A description for the manual audits in the category.
          &quot;auditRefs&quot;: [ # An array of references to all the audit members of this category.
            { # A light reference to an audit by id, used to group and weight audits in a given category.
              &quot;group&quot;: &quot;A String&quot;, # The category group that the audit belongs to (optional).
              &quot;id&quot;: &quot;A String&quot;, # The audit ref id.
              &quot;weight&quot;: 3.14, # The weight this audit&#x27;s score has on the overall category score.
            },
          ],
        },
        &quot;best-practices&quot;: { # A Lighthouse category. # The best practices category, containing all best practices related audits.
          &quot;id&quot;: &quot;A String&quot;, # The string identifier of the category.
          &quot;description&quot;: &quot;A String&quot;, # A more detailed description of the category and its importance.
          &quot;title&quot;: &quot;A String&quot;, # The human-friendly name of the category.
          &quot;score&quot;: &quot;&quot;, # The overall score of the category, the weighted average of all its audits. (The category&#x27;s score, can be null.)
          &quot;manualDescription&quot;: &quot;A String&quot;, # A description for the manual audits in the category.
          &quot;auditRefs&quot;: [ # An array of references to all the audit members of this category.
            { # A light reference to an audit by id, used to group and weight audits in a given category.
              &quot;group&quot;: &quot;A String&quot;, # The category group that the audit belongs to (optional).
              &quot;id&quot;: &quot;A String&quot;, # The audit ref id.
              &quot;weight&quot;: 3.14, # The weight this audit&#x27;s score has on the overall category score.
            },
          ],
        },
        &quot;pwa&quot;: { # A Lighthouse category. # The Progressive-Web-App (PWA) category, containing all pwa related audits.
          &quot;id&quot;: &quot;A String&quot;, # The string identifier of the category.
          &quot;description&quot;: &quot;A String&quot;, # A more detailed description of the category and its importance.
          &quot;title&quot;: &quot;A String&quot;, # The human-friendly name of the category.
          &quot;score&quot;: &quot;&quot;, # The overall score of the category, the weighted average of all its audits. (The category&#x27;s score, can be null.)
          &quot;manualDescription&quot;: &quot;A String&quot;, # A description for the manual audits in the category.
          &quot;auditRefs&quot;: [ # An array of references to all the audit members of this category.
            { # A light reference to an audit by id, used to group and weight audits in a given category.
              &quot;group&quot;: &quot;A String&quot;, # The category group that the audit belongs to (optional).
              &quot;id&quot;: &quot;A String&quot;, # The audit ref id.
              &quot;weight&quot;: 3.14, # The weight this audit&#x27;s score has on the overall category score.
            },
          ],
        },
      },
      &quot;finalUrl&quot;: &quot;A String&quot;, # The final resolved url that was audited.
      &quot;requestedUrl&quot;: &quot;A String&quot;, # The original requested url.
      &quot;runtimeError&quot;: { # Message containing a runtime error config. # A top-level error message that, if present, indicates a serious enough problem that this Lighthouse result may need to be discarded.
        &quot;message&quot;: &quot;A String&quot;, # A human readable message explaining the error code.
        &quot;code&quot;: &quot;A String&quot;, # The enumerated Lighthouse Error code.
      },
      &quot;categoryGroups&quot;: { # Map of category groups in the LHR.
        &quot;a_key&quot;: { # Message containing a category
          &quot;title&quot;: &quot;A String&quot;, # The human readable title of the group
          &quot;description&quot;: &quot;A String&quot;, # The description of what the category is grouping
        },
      },
      &quot;audits&quot;: { # Map of audits in the LHR.
        &quot;a_key&quot;: { # An audit&#x27;s result object in a Lighthouse result.
          &quot;score&quot;: &quot;&quot;, # The score of the audit, can be null.
          &quot;errorMessage&quot;: &quot;A String&quot;, # An error message from a thrown error inside the audit.
          &quot;title&quot;: &quot;A String&quot;, # The human readable title.
          &quot;numericValue&quot;: 3.14, # A numeric value that has a meaning specific to the audit, e.g. the number of nodes in the DOM or the timestamp of a specific load event. More information can be found in the audit details, if present.
          &quot;explanation&quot;: &quot;A String&quot;, # An explanation of the errors in the audit.
          &quot;displayValue&quot;: &quot;A String&quot;, # The value that should be displayed on the UI for this audit.
          &quot;warnings&quot;: &quot;&quot;, # Possible warnings that occurred in the audit, can be null.
          &quot;scoreDisplayMode&quot;: &quot;A String&quot;, # The enumerated score display mode.
          &quot;details&quot;: { # Freeform details section of the audit.
            &quot;a_key&quot;: &quot;&quot;, # Properties of the object.
          },
          &quot;id&quot;: &quot;A String&quot;, # The audit&#x27;s id.
          &quot;description&quot;: &quot;A String&quot;, # The description of the audit.
        },
      },
      &quot;environment&quot;: { # Message containing environment configuration for a Lighthouse run. # Environment settings that were used when making this LHR.
        &quot;hostUserAgent&quot;: &quot;A String&quot;, # The user agent string of the version of Chrome used.
        &quot;networkUserAgent&quot;: &quot;A String&quot;, # The user agent string that was sent over the network.
        &quot;benchmarkIndex&quot;: 3.14, # The benchmark index number that indicates rough device class.
      },
      &quot;fetchTime&quot;: &quot;A String&quot;, # The time that this run was fetched.
      &quot;configSettings&quot;: { # Message containing the configuration settings for the Lighthouse run. # The configuration settings for this LHR.
        &quot;locale&quot;: &quot;A String&quot;, # The locale setting.
        &quot;onlyCategories&quot;: &quot;&quot;, # List of categories of audits the run should conduct.
        &quot;emulatedFormFactor&quot;: &quot;A String&quot;, # The form factor the emulation should use.
        &quot;channel&quot;: &quot;A String&quot;, # How Lighthouse was run, e.g. from the Chrome extension or from the npm module.
      },
      &quot;userAgent&quot;: &quot;A String&quot;, # The user agent that was used to run this LHR.
      &quot;i18n&quot;: { # Message containing the i18n data for the LHR - Version 1. # The internationalization strings that are required to render the LHR.
        &quot;rendererFormattedStrings&quot;: { # Message holding the formatted strings used in the renderer. # Internationalized strings that are formatted to the locale in configSettings.
          &quot;opportunitySavingsColumnLabel&quot;: &quot;A String&quot;, # The heading for the estimated page load savings of opportunity audits.
          &quot;varianceDisclaimer&quot;: &quot;A String&quot;, # The disclaimer shown below a performance metric value.
          &quot;scorescaleLabel&quot;: &quot;A String&quot;, # The label that explains the score gauges scale (0-49, 50-89, 90-100).
          &quot;toplevelWarningsMessage&quot;: &quot;A String&quot;, # The label shown preceding important warnings that may have invalidated an entire report.
          &quot;passedAuditsGroupTitle&quot;: &quot;A String&quot;, # The heading that is shown above a list of audits that are passing.
          &quot;lsPerformanceCategoryDescription&quot;: &quot;A String&quot;, # The disclaimer shown under performance explaning that the network can vary.
          &quot;warningHeader&quot;: &quot;A String&quot;, # The label shown above a bulleted list of warnings.
          &quot;auditGroupExpandTooltip&quot;: &quot;A String&quot;, # The tooltip text on an expandable chevron icon.
          &quot;notApplicableAuditsGroupTitle&quot;: &quot;A String&quot;, # The heading shown above a list of audits that do not apply to a page.
          &quot;errorLabel&quot;: &quot;A String&quot;, # The label shown next to an audit or metric that has had an error.
          &quot;labDataTitle&quot;: &quot;A String&quot;, # The title of the lab data performance category.
          &quot;manualAuditsGroupTitle&quot;: &quot;A String&quot;, # The heading shown above a list of audits that were not computerd in the run.
          &quot;opportunityResourceColumnLabel&quot;: &quot;A String&quot;, # The heading for the estimated page load savings opportunity of an audit.
          &quot;crcLongestDurationLabel&quot;: &quot;A String&quot;, # The label for values shown in the summary of critical request chains.
          &quot;errorMissingAuditInfo&quot;: &quot;A String&quot;, # The error string shown next to an erroring audit.
          &quot;crcInitialNavigation&quot;: &quot;A String&quot;, # The label for the initial request in a critical request chain.
        },
      },
      &quot;stackPacks&quot;: [ # The Stack Pack advice strings.
        { # Message containing Stack Pack information.
          &quot;title&quot;: &quot;A String&quot;, # The stack pack title.
          &quot;descriptions&quot;: { # The stack pack advice strings.
            &quot;a_key&quot;: &quot;A String&quot;,
          },
          &quot;iconDataURL&quot;: &quot;A String&quot;, # The stack pack icon data uri.
          &quot;id&quot;: &quot;A String&quot;, # The stack pack id.
        },
      ],
      &quot;runWarnings&quot;: [ # List of all run warnings in the LHR. Will always output to at least `[]`.
        &quot;&quot;,
      ],
      &quot;lighthouseVersion&quot;: &quot;A String&quot;, # The lighthouse version that was used to generate this LHR.
      &quot;timing&quot;: { # Message containing the performance timing data for the Lighthouse run. # Timing information for this LHR.
        &quot;total&quot;: 3.14, # The total duration of Lighthouse&#x27;s run.
      },
    },
    &quot;version&quot;: { # The Pagespeed Version object. # The version of PageSpeed used to generate these results.
      &quot;major&quot;: &quot;A String&quot;, # The major version number of PageSpeed used to generate these results.
      &quot;minor&quot;: &quot;A String&quot;, # The minor version number of PageSpeed used to generate these results.
    },
    &quot;kind&quot;: &quot;A String&quot;, # Kind of result.
    &quot;id&quot;: &quot;A String&quot;, # Canonicalized and final URL for the document, after following page redirects (if any).
    &quot;loadingExperience&quot;: { # The CrUX loading experience object that contains CrUX data breakdowns. # Metrics of end users&#x27; page loading experience.
      &quot;overall_category&quot;: &quot;A String&quot;, # The human readable speed &quot;category&quot; of the id.
      &quot;id&quot;: &quot;A String&quot;, # The url, pattern or origin which the metrics are on.
      &quot;origin_fallback&quot;: True or False, # True if the result is an origin fallback from a page, false otherwise.
      &quot;metrics&quot;: { # The map of .
        &quot;a_key&quot;: { # A CrUX metric object for a single metric and form factor.
          &quot;formFactor&quot;: &quot;A String&quot;, # Identifies the form factor of the metric being collected.
          &quot;metricId&quot;: &quot;A String&quot;, # Identifies the type of the metric.
          &quot;percentile&quot;: 42, # We use this field to store certain percentile value for this metric. For v4, this field contains pc50. For v5, this field contains pc90.
          &quot;category&quot;: &quot;A String&quot;, # The category of the specific time metric.
          &quot;median&quot;: 42, # The median number of the metric, in millisecond.
          &quot;distributions&quot;: [ # Metric distributions. Proportions should sum up to 1.
            { # A proportion of data in the total distribution, bucketed by a min/max percentage. Each bucket&#x27;s range is bounded by min &lt;= x &lt; max, In millisecond.
              &quot;proportion&quot;: 3.14, # The proportion of data in this bucket.
              &quot;min&quot;: 42, # Lower bound for a bucket&#x27;s range.
              &quot;max&quot;: 42, # Upper bound for a bucket&#x27;s range.
            },
          ],
        },
      },
      &quot;initial_url&quot;: &quot;A String&quot;, # The requested URL, which may differ from the resolved &quot;id&quot;.
    },
    &quot;analysisUTCTimestamp&quot;: &quot;A String&quot;, # The UTC timestamp of this analysis.
  }</pre>
</div>

</body></html>