1{
2  "basePath": "/pagespeedonline/v5/",
3  "baseUrl": "https://www.googleapis.com/pagespeedonline/v5/",
4  "batchPath": "batch/pagespeedonline/v5",
5  "description": "Analyzes the performance of a web page and provides tailored suggestions to make that page faster.",
6  "discoveryVersion": "v1",
7  "documentationLink": "https://developers.google.com/speed/docs/insights/v5/get-started",
8  "etag": "\"F5McR9eEaw0XRpaO3M9gbIugkbs/0NYpZPBBXGhzfbqEP9bLgGyZsRk\"",
9  "icons": {
10    "x16": "https://www.google.com/images/icons/product/pagespeed-16.png",
11    "x32": "https://www.google.com/images/icons/product/pagespeed-32.png"
12  },
13  "id": "pagespeedonline:v5",
14  "kind": "discovery#restDescription",
15  "name": "pagespeedonline",
16  "ownerDomain": "google.com",
17  "ownerName": "Google",
18  "parameters": {
19    "alt": {
20      "default": "json",
21      "description": "Data format for the response.",
22      "enum": [
23        "json"
24      ],
25      "enumDescriptions": [
26        "Responses with Content-Type of application/json"
27      ],
28      "location": "query",
29      "type": "string"
30    },
31    "fields": {
32      "description": "Selector specifying which fields to include in a partial response.",
33      "location": "query",
34      "type": "string"
35    },
36    "key": {
37      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
38      "location": "query",
39      "type": "string"
40    },
41    "oauth_token": {
42      "description": "OAuth 2.0 token for the current user.",
43      "location": "query",
44      "type": "string"
45    },
46    "prettyPrint": {
47      "default": "true",
48      "description": "Returns response with indentations and line breaks.",
49      "location": "query",
50      "type": "boolean"
51    },
52    "quotaUser": {
53      "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
54      "location": "query",
55      "type": "string"
56    },
57    "userIp": {
58      "description": "Deprecated. Please use quotaUser instead.",
59      "location": "query",
60      "type": "string"
61    }
62  },
63  "protocol": "rest",
64  "resources": {
65    "pagespeedapi": {
66      "methods": {
67        "runpagespeed": {
68          "description": "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.",
69          "httpMethod": "GET",
70          "id": "pagespeedonline.pagespeedapi.runpagespeed",
71          "parameterOrder": [
72            "url"
73          ],
74          "parameters": {
75            "category": {
76              "description": "A Lighthouse category to run; if none are given, only Performance category will be run",
77              "enum": [
78                "accessibility",
79                "best-practices",
80                "performance",
81                "pwa",
82                "seo"
83              ],
84              "enumDescriptions": [
85                "",
86                "",
87                "",
88                "",
89                ""
90              ],
91              "location": "query",
92              "repeated": true,
93              "type": "string"
94            },
95            "locale": {
96              "description": "The locale used to localize formatted results",
97              "location": "query",
98              "pattern": "[a-zA-Z]+((_|-)[a-zA-Z]+)?",
99              "type": "string"
100            },
101            "strategy": {
102              "description": "The analysis strategy (desktop or mobile) to use, and desktop is the default",
103              "enum": [
104                "desktop",
105                "mobile"
106              ],
107              "enumDescriptions": [
108                "Fetch and analyze the URL for desktop browsers",
109                "Fetch and analyze the URL for mobile devices"
110              ],
111              "location": "query",
112              "type": "string"
113            },
114            "url": {
115              "description": "The URL to fetch and analyze",
116              "location": "query",
117              "pattern": "(?i)(url:|origin:)?http(s)?://.*",
118              "required": true,
119              "type": "string"
120            },
121            "utm_campaign": {
122              "description": "Campaign name for analytics.",
123              "location": "query",
124              "type": "string"
125            },
126            "utm_source": {
127              "description": "Campaign source for analytics.",
128              "location": "query",
129              "type": "string"
130            }
131          },
132          "path": "runPagespeed",
133          "response": {
134            "$ref": "PagespeedApiPagespeedResponseV5"
135          }
136        }
137      }
138    }
139  },
140  "revision": "20191028",
141  "rootUrl": "https://www.googleapis.com/",
142  "schemas": {
143    "GoogleprotobufListValue": {
144      "id": "GoogleprotobufListValue",
145      "items": {
146        "$ref": "GoogleprotobufValue"
147      },
148      "type": "array"
149    },
150    "GoogleprotobufValue": {
151      "id": "GoogleprotobufValue",
152      "type": "any"
153    },
154    "LighthouseAuditResultV5": {
155      "id": "LighthouseAuditResultV5",
156      "properties": {
157        "description": {
158          "description": "The description of the audit.",
159          "type": "string"
160        },
161        "details": {
162          "additionalProperties": {
163            "type": "any"
164          },
165          "description": "Freeform details section of the audit.",
166          "type": "object"
167        },
168        "displayValue": {
169          "description": "The value that should be displayed on the UI for this audit.",
170          "type": "string"
171        },
172        "errorMessage": {
173          "description": "An error message from a thrown error inside the audit.",
174          "type": "string"
175        },
176        "explanation": {
177          "description": "An explanation of the errors in the audit.",
178          "type": "string"
179        },
180        "id": {
181          "description": "The audit's id.",
182          "type": "string"
183        },
184        "numericValue": {
185          "description": "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.",
186          "format": "double",
187          "type": "number"
188        },
189        "score": {
190          "type": "any"
191        },
192        "scoreDisplayMode": {
193          "description": "The enumerated score display mode.",
194          "type": "string"
195        },
196        "title": {
197          "description": "The human readable title.",
198          "type": "string"
199        },
200        "warnings": {
201          "type": "any"
202        }
203      },
204      "type": "object"
205    },
206    "LighthouseCategoryV5": {
207      "id": "LighthouseCategoryV5",
208      "properties": {
209        "auditRefs": {
210          "description": "An array of references to all the audit members of this category.",
211          "items": {
212            "properties": {
213              "group": {
214                "description": "The category group that the audit belongs to (optional).",
215                "type": "string"
216              },
217              "id": {
218                "description": "The audit ref id.",
219                "type": "string"
220              },
221              "weight": {
222                "description": "The weight this audit's score has on the overall category score.",
223                "format": "double",
224                "type": "number"
225              }
226            },
227            "type": "object"
228          },
229          "type": "array"
230        },
231        "description": {
232          "description": "A more detailed description of the category and its importance.",
233          "type": "string"
234        },
235        "id": {
236          "description": "The string identifier of the category.",
237          "type": "string"
238        },
239        "manualDescription": {
240          "description": "A description for the manual audits in the category.",
241          "type": "string"
242        },
243        "score": {
244          "type": "any"
245        },
246        "title": {
247          "description": "The human-friendly name of the category.",
248          "type": "string"
249        }
250      },
251      "type": "object"
252    },
253    "LighthouseResultV5": {
254      "id": "LighthouseResultV5",
255      "properties": {
256        "audits": {
257          "additionalProperties": {
258            "$ref": "LighthouseAuditResultV5",
259            "description": "An audit that was performed in this run. Keyed by audit id."
260          },
261          "description": "Map of audits in the LHR.",
262          "type": "object"
263        },
264        "categories": {
265          "description": "Map of categories in the LHR.",
266          "properties": {
267            "accessibility": {
268              "$ref": "LighthouseCategoryV5",
269              "description": "The accessibility category, containing all accessibility related audits."
270            },
271            "best-practices": {
272              "$ref": "LighthouseCategoryV5",
273              "description": "The best practices category, containing all web best practice related audits."
274            },
275            "performance": {
276              "$ref": "LighthouseCategoryV5",
277              "description": "The performance category, containing all performance related audits."
278            },
279            "pwa": {
280              "$ref": "LighthouseCategoryV5",
281              "description": "The Progressive-Web-App (PWA) category, containing all pwa related audits."
282            },
283            "seo": {
284              "$ref": "LighthouseCategoryV5",
285              "description": "The Search-Engine-Optimization (SEO) category, containing all seo related audits."
286            }
287          },
288          "type": "object"
289        },
290        "categoryGroups": {
291          "additionalProperties": {
292            "description": "A grouping contained in a category that groups similar audits together.",
293            "properties": {
294              "description": {
295                "description": "An optional human readable description of the category group.",
296                "type": "string"
297              },
298              "title": {
299                "description": "The title of the category group.",
300                "type": "string"
301              }
302            },
303            "type": "object"
304          },
305          "description": "Map of category groups in the LHR.",
306          "type": "object"
307        },
308        "configSettings": {
309          "description": "The configuration settings for this LHR.",
310          "properties": {
311            "emulatedFormFactor": {
312              "description": "The form factor the emulation should use.",
313              "type": "string"
314            },
315            "locale": {
316              "description": "The locale setting.",
317              "type": "string"
318            },
319            "onlyCategories": {
320              "type": "any"
321            }
322          },
323          "type": "object"
324        },
325        "environment": {
326          "description": "Environment settings that were used when making this LHR.",
327          "properties": {
328            "benchmarkIndex": {
329              "description": "The benchmark index number that indicates rough device class.",
330              "format": "double",
331              "type": "number"
332            },
333            "hostUserAgent": {
334              "description": "The user agent string of the version of Chrome used.",
335              "type": "string"
336            },
337            "networkUserAgent": {
338              "description": "The user agent string that was sent over the network.",
339              "type": "string"
340            }
341          },
342          "type": "object"
343        },
344        "fetchTime": {
345          "description": "The time that this run was fetched.",
346          "type": "string"
347        },
348        "finalUrl": {
349          "description": "The final resolved url that was audited.",
350          "type": "string"
351        },
352        "i18n": {
353          "description": "The internationalization strings that are required to render the LHR.",
354          "properties": {
355            "rendererFormattedStrings": {
356              "description": "Internationalized strings that are formatted to the locale in configSettings.",
357              "properties": {
358                "auditGroupExpandTooltip": {
359                  "description": "The tooltip text on an expandable chevron icon.",
360                  "type": "string"
361                },
362                "crcInitialNavigation": {
363                  "description": "The label for the initial request in a critical request chain.",
364                  "type": "string"
365                },
366                "crcLongestDurationLabel": {
367                  "description": "The label for values shown in the summary of critical request chains.",
368                  "type": "string"
369                },
370                "errorLabel": {
371                  "description": "The label shown next to an audit or metric that has had an error.",
372                  "type": "string"
373                },
374                "errorMissingAuditInfo": {
375                  "description": "The error string shown next to an erroring audit.",
376                  "type": "string"
377                },
378                "labDataTitle": {
379                  "description": "The title of the lab data performance category.",
380                  "type": "string"
381                },
382                "lsPerformanceCategoryDescription": {
383                  "description": "The disclaimer shown under performance explaning that the network can vary.",
384                  "type": "string"
385                },
386                "manualAuditsGroupTitle": {
387                  "description": "The heading shown above a list of audits that were not computerd in the run.",
388                  "type": "string"
389                },
390                "notApplicableAuditsGroupTitle": {
391                  "description": "The heading shown above a list of audits that do not apply to a page.",
392                  "type": "string"
393                },
394                "opportunityResourceColumnLabel": {
395                  "description": "The heading for the estimated page load savings opportunity of an audit.",
396                  "type": "string"
397                },
398                "opportunitySavingsColumnLabel": {
399                  "description": "The heading for the estimated page load savings of opportunity audits.",
400                  "type": "string"
401                },
402                "passedAuditsGroupTitle": {
403                  "description": "The heading that is shown above a list of audits that are passing.",
404                  "type": "string"
405                },
406                "scorescaleLabel": {
407                  "description": "The label that explains the score gauges scale (0-49, 50-89, 90-100).",
408                  "type": "string"
409                },
410                "toplevelWarningsMessage": {
411                  "description": "The label shown preceding important warnings that may have invalidated an entire report.",
412                  "type": "string"
413                },
414                "varianceDisclaimer": {
415                  "description": "The disclaimer shown below a performance metric value.",
416                  "type": "string"
417                },
418                "warningHeader": {
419                  "description": "The label shown above a bulleted list of warnings.",
420                  "type": "string"
421                }
422              },
423              "type": "object"
424            }
425          },
426          "type": "object"
427        },
428        "lighthouseVersion": {
429          "description": "The lighthouse version that was used to generate this LHR.",
430          "type": "string"
431        },
432        "requestedUrl": {
433          "description": "The original requested url.",
434          "type": "string"
435        },
436        "runWarnings": {
437          "$ref": "GoogleprotobufListValue",
438          "description": "List of all run warnings in the LHR. Will always output to at least `[]`."
439        },
440        "runtimeError": {
441          "description": "A top-level error message that, if present, indicates a serious enough problem that this Lighthouse result may need to be discarded.",
442          "properties": {
443            "code": {
444              "description": "The enumerated Lighthouse Error code.",
445              "type": "string"
446            },
447            "message": {
448              "description": "A human readable message explaining the error code.",
449              "type": "string"
450            }
451          },
452          "type": "object"
453        },
454        "stackPacks": {
455          "description": "The Stack Pack advice strings.",
456          "items": {
457            "properties": {
458              "descriptions": {
459                "additionalProperties": {
460                  "description": "The specific stack pack description.",
461                  "type": "string"
462                },
463                "description": "The stack pack advice strings.",
464                "type": "object"
465              },
466              "iconDataURL": {
467                "description": "The stack pack icon data uri.",
468                "type": "string"
469              },
470              "id": {
471                "description": "The stack pack id.",
472                "type": "string"
473              },
474              "title": {
475                "description": "The stack pack title.",
476                "type": "string"
477              }
478            },
479            "type": "object"
480          },
481          "type": "array"
482        },
483        "timing": {
484          "description": "Timing information for this LHR.",
485          "properties": {
486            "total": {
487              "description": "The total duration of Lighthouse's run.",
488              "format": "double",
489              "type": "number"
490            }
491          },
492          "type": "object"
493        },
494        "userAgent": {
495          "description": "The user agent that was used to run this LHR.",
496          "type": "string"
497        }
498      },
499      "type": "object"
500    },
501    "PagespeedApiLoadingExperienceV5": {
502      "id": "PagespeedApiLoadingExperienceV5",
503      "properties": {
504        "id": {
505          "description": "The url, pattern or origin which the metrics are on.",
506          "type": "string"
507        },
508        "initial_url": {
509          "type": "string"
510        },
511        "metrics": {
512          "additionalProperties": {
513            "description": "The type of the metric.",
514            "properties": {
515              "category": {
516                "type": "string"
517              },
518              "distributions": {
519                "items": {
520                  "properties": {
521                    "max": {
522                      "format": "int32",
523                      "type": "integer"
524                    },
525                    "min": {
526                      "format": "int32",
527                      "type": "integer"
528                    },
529                    "proportion": {
530                      "format": "double",
531                      "type": "number"
532                    }
533                  },
534                  "type": "object"
535                },
536                "type": "array"
537              },
538              "percentile": {
539                "format": "int32",
540                "type": "integer"
541              }
542            },
543            "type": "object"
544          },
545          "type": "object"
546        },
547        "overall_category": {
548          "type": "string"
549        }
550      },
551      "type": "object"
552    },
553    "PagespeedApiPagespeedResponseV5": {
554      "id": "PagespeedApiPagespeedResponseV5",
555      "properties": {
556        "analysisUTCTimestamp": {
557          "description": "The UTC timestamp of this analysis.",
558          "type": "string"
559        },
560        "captchaResult": {
561          "description": "The captcha verify result",
562          "type": "string"
563        },
564        "id": {
565          "description": "Canonicalized and final URL for the document, after following page redirects (if any).",
566          "type": "string"
567        },
568        "kind": {
569          "default": "pagespeedonline#result",
570          "description": "Kind of result.",
571          "type": "string"
572        },
573        "lighthouseResult": {
574          "$ref": "LighthouseResultV5",
575          "description": "Lighthouse response for the audit url as an object."
576        },
577        "loadingExperience": {
578          "$ref": "PagespeedApiLoadingExperienceV5",
579          "description": "Metrics of end users' page loading experience."
580        },
581        "originLoadingExperience": {
582          "$ref": "PagespeedApiLoadingExperienceV5",
583          "description": "Metrics of the aggregated page loading experience of the origin"
584        },
585        "version": {
586          "description": "The version of PageSpeed used to generate these results.",
587          "properties": {
588            "major": {
589              "description": "The major version number of PageSpeed used to generate these results.",
590              "format": "int32",
591              "type": "integer"
592            },
593            "minor": {
594              "description": "The minor version number of PageSpeed used to generate these results.",
595              "format": "int32",
596              "type": "integer"
597            }
598          },
599          "type": "object"
600        }
601      },
602      "type": "object"
603    }
604  },
605  "servicePath": "pagespeedonline/v5/",
606  "title": "PageSpeed Insights API",
607  "version": "v5"
608}